Vi điều khiển phkkhanh VDK tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực k...
VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 1.1 Các hệ thống số loại mã 1.1.1 Hệ thập phân (Decimal Number System) Trong thực tế, ta thường dùng hệ thập phân để biểu diễn giá trị số Hệ thống dùng tổ hợp chữ số để biểu diễn giá trị Một số hệ thập phân biểu diễn theo số mũ 10 Ví dụ 1.1: Số 5346.72 biểu diễn sau: 5346.72 = 5x103 + 3x102 + 4x101 + 6x100 + 7x10-1 + 2x10-2 Trong mạch điện tử, lưu trữ phân biệt 10 mức điện áp khác khó khăn phân biệt hai mức điện áp lại dễ dàng Do đó, người ta sử dụng hệ nhị phân để biểu diễn giá trị hệ thống số 1.1.2 Hệ nhị phân (Binary Number System) Hệ nhị phân dùng chữ số để biểu diễn giá trị số Một số nhị phân (binary digit) thường gọi bit Một chuỗi gồm bit nhị phân gọi nibble, chuỗi bit gọi byte, chuỗi 16 bit gọi word chuỗi 32 bit gọi double word Chữ số nhị phân cuối bên phải chuỗi bit gọi bit có ý nghĩa nhỏ (least significant bit – LSB) chữ số nhị phân bên trái chuỗi bit gọi bit có ý nghĩa lớn (most significant bit – MSB) Một số hệ nhị phân biểu diễn theo số mũ Ta thường dùng chữ b cuối chuỗi bit để xác định số nhị phân Ví dụ 1.2:Số 101110.01b biểu diễn giá trị số: VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN 101110.01b 1x25 + 0x24 + 1x23 + 1x21 + + 0x2-1 + 1x2-2 Chuyển số nhị phân thành số thập phân: Để chuyển số nhị phân thành số thập phân, ta cần nhân chữ số số nhị phân với giá trị thập phân cộng tất giá trị lại Ví dụ 1.3: 1011.11b 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2 = 11.75 Chuyển số thập phân thành số nhị phân: Để chuyển số thập phân thành số nhị phân, ta dùng phương pháp sau: Phương pháp 1: Ta lấy số thập phân cần chuyển trừ 2i 2i số lớn nhỏ hay số thập phân cần chuyển Sau đó, ta lại lấy kết thực tương tự 20 dừng Trong trình thực hiện, ta ghi lại giá trị hay cho bit tuỳ theo trường hợp số thập phân nhỏ 2i (0) hay lớn 2i (1) Ví dụ 1.4: Xét số 21 số 2i lớn 24 24 23 22 21 20 16 21 = 1 5 1 (21 10101b) Phương pháp 2: Lấy số cần chuyển chia cho 2, ta nhớ lại số dư lấy tiếp thương kết chia cho thực tương tự thương cuối Kết chuyển đổi chuỗi bit số dư lấy theo thứ tự ngược lại Ví dụ 1.5: Chuyển 227 số nhị phân +1x22 VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Số bị chia Thương Số dư 227 113 (LSB) 113 56 56 28 28 14 14 7 3 1 1 (MSB) (227 1110 0011b) Để thực chuyển số thập phân nhỏ sang số nhị phân, ta làm sau: lấy số cần chuyển nhân với 2, giữ lại phần nguyên lại lấy phần lẻ nhân với Quá trình tiếp tục phần lẻ dừng Kết chuyển đổi chuỗi bit giá trị phần nguyên Ví dụ 1.6: Chuyển 0.625 thành số nhị phân: 0.625 = 1.25 0.25 = 0.5 0.5 = 1.0 (0.625 0.101b) Để thực chuyển đổi số nhị phân bất kỳ, ta thực chuyển đổi tương ứng với số nhị phân lớn nhỏ Ví dụ 1.7: Chuyển 227.625 thành số nhị phân: 227 11100011b 0.625 0.101b 227.625 11100011.101b VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Hệ thập lục phân (Hexadecimal Number System) Bảng 1.1: Mã nhị phân, thập phân thập lục phân Thập Nhị Thập Thập lục Nhị Thập lục phân phân phân phân phân phân 0000 1000 0001 1001 0010 A 1010 10 0011 B 1011 11 0100 C 1100 12 0101 D 1101 13 0110 E 1110 14 0111 F 1111 15 Như biết trên, dùng hệ nhị phân cần số lượng lớn bit để biểu diễn Giả sử số 1024 = 210 cần 10 bit để biểu diễn Để rút ngắn kết biểu diễn, ta dùng hệ thập lục phân dựa sở số mũ 16 Khi đó, bit hệ nhị phân (1 nibble) biểu diễn chữ số hệ thập lục phân (gọi số hex) Trong hệ thống này, ta dùng số ký tự A F để biểu diễn cho giá trị số Thông thường, ta dùng chữ h cuối để xác định số thập lục phân 1.1.3 1.1.4 Mã BCD (Binary Coded Decimal) Trong thực tế, số ứng dụng đếm tần số, đo điện áp, … ngõ dạng số thập phân, ta dùng mã BCD Mã BCD dùng bit nhị phân để mã hoá cho số thập phân Như vậy, số hex A F không tồn mã BCD VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Mã BCD gồm có loại: - Mã BCD khơng nén (unpacked): biểu diễn số BCD bit nhị phân - Mã BCD nén (packed): biểu diễn số BCD bit nhị phân Ví dụ 1.8: Thập phân BCD không nén Số BCD nén 0000 0101b 0101b 0000 0010b 0010b 12 0000 0001 0001 0000 0010b 0010b 1.1.5 Mã hiển thị Led đoạn (7-segment display) Bảng 1.2: Bảng mã Led đoạn Mã Led đoạn Số thập Số thập Số nhị phân lục phân phân a b c d e f g Hiển thị 0 0000 1111110 1 0001 0110000 2 0010 1101101 3 0011 1111011 4 0100 0110011 5 0101 1011011 6 0110 1011111 7 0111 1110000 8 1000 1111111 9 1001 1110011 10 A 1010 1111101 A 11 B 1011 0011111 B 12 C 1100 0001101 C VI ĐIỀU KHIỂN Số thập phân 13 14 15 TỔNG QUAN VỀ VI ĐIỀU KHIỂN Số thập Số nhị lục phân phân D 1101 E 1110 F 1111 Mã Led đoạn a b c d e f g Hiển thị 0111101 D 1101111 E 1000111 F Đối với ứng dụng dùng hiển thị số liệu Led đoạn, ta dùng mã hiển thị Led đoạn Ứng với loại Led đoạn (anode hay cathode chung) tuỳ theo sơ đồ kết nối có bảng mã riêng Một ví dụ mã Led đoạn cho bảng 1.2 a f a b c d e f g b g e c d Hình 1.1 – Led đoạn dạng cathode chung 1.2 Các phép toán số học 1.2.1 1.2.1.1 Hệ nhị phân Phép cộng Phép cộng hệ nhị phân thực giống hệ thập phân Bảng thật phép cộng bit với bit nhớ (carry) sau: VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Bảng 1.3: Bảng thật phép cộng nhị phân Vào Ra A B CIN S COUT 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 S = A B CIN COUT = AB + CIN(A B) Ví dụ 1.9: 1001 1010b + 1100 1100b Nhớ 0111 0110b 1.2.1.2 Số bù (2’s component) Trong hệ thống số thông thường, để biểu diễn số âm ta cần thêm dấu – vào chữ số Tuy nhiên, hệ thống máy tính, ta khơng thể biểu diễn Phương pháp thơng dụng dùng bit có ý nghĩa lớn (MSB) làm bit dấu: MSB = số âm MSB = số dương Khi đó, bit lại biểu diễn độ lớn số Như vậy, ta dùng bit để biểu diễn thu 256 tổ hợp ứng với giá trị 255 (số khơng dấu) hay –127 –0 +0 … +127 (số có dấu) VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Để thuận tiện việc tính tốn số có dấu, ta dùng dạng biểu diễn đặc biệt số bù Số bù số nhị phân xác định cách lấy đảo bit cộng thêm Ví dụ 1.10: Số biểu diễn là: 0000 0111b có MSB = (biểu diễn số dương) Số bù là: 111 1000b + 1b = 111 1001b Số đại diện cho số – là: 1111 1001b có MSB = (biểu diễn số âm) Như vậy, để thực việc xác định số bù số A, cần phải: - Biểu diễn số A theo mã bù - Đảo bit (tìm số bù A) - Cộng thêm vào để nhận số bù Khi biểu diễn theo số bù 2, sử dụng bit ta có giá trị số thay đổi từ -128 127 1.2.1.3 Phép trừ Phép trừ số nhị phân thực tương tự hệ thập phân Bảng thật phép trừ bit với bit mượn sau: Bảng 1.4: Bảng thật phép trừ nhị phân Vào Ra A B BIN D BOUT 0 0 0 1 1 1 1 1 0 1 0 VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Vào Ra 1 0 1 1 S = A B BIN BOUT = AB A B B IN 0110 1101b 149 - 0011 0001b 49 0011 1100b 100 Ngoài cách trừ trên, ta thực phép trừ thơng qua số bù số trừ Ví dụ 1.12: 0110 1101b 0110 1101b 0011 0001b + 1100 1111b 0011 1100b Số bù Nhớ Ví dụ 1.11: 100 1110b + 1b = 100 1111b (Số bù 2) Trong phép cộng với số bù 2, ta bỏ qua bit nhớ cuối kết phép cộng số bù 0011 1100 Đây kết phép trừ, bit MSB = cho biết kết số dương Ví dụ 1.13: 77 0100 1101b 0100 1101b -88 -0101 1000b + 1010 1000b -11 1111 0101b Số 88 0101 1000b số bù 010 0111 số bù 2: 010 1000 bit dấu = -88 trở thành 1010 1000b VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN Kết phép cộng số bù 1111 0101b có MSB = nên số âm Số bù 000 1010b số bù 2: 000 1011b Kết 11 nên phép trừ cho kết –11 Ta thấy, để thực chuyển số bù thành số có dấu cần thực hiện: - Lấy bù bit để tìm số bù - Cộng với - Thêm dấu trừ để xác định số âm 1.2.1.4 Phép nhân Phép nhân số nhị phân tương tự số thập phân Chú ý phép nhân nhân số bit có kết số bit, số bit có kết số 16 bit, … Ví dụ 1.14: 11 1011b x9 1001b 99 1011 0000 0000 1011 1100011b Đối với máy tính, phép nhân thực phương pháp cộng dịch phải (add-and-right-shift): - Thành phần dầu tiên tổng số bị nhân LSB số nhân Ngược lại, LSB số nhân thành phần - Mỗi thành phần thứ i tính tương tự với điều kiện phải dịch trái số bị nhân i bit 10 VI ĐIỀU KHIỂN SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data INC A INC Rn INC direct INC @Ri DEC A DEC Rn DEC direct PHỤ LỤC –TẬP LỆNH CỦA AT89C51 Subtract Register from Acc with Borrow Subtract direct byte from Acc with Borrow Subtract indirect RAM from ACC with Borrow Subtract immediate data from Acc with borrow Increment Accumulator Increment register Increment direct byte Increment direct RAM Decrement Accumulator Decrement Register Decrement direct byte 359 12 12 12 12 12 12 12 12 12 12 12 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 DEC @Ri Decrement indirect RAM INC DPTR Increment Data Pointer MUL AB Multiply A & B DIV AB Divide A by B DA A Decimal Adjust Accumulator LOGICAL OPERATIONS ANL A,Rn AND Register to Accumulator ANL A,direct AND direct byte to Accumulator ANL A,@Ri AND indirect RAM to Accumulator ANL A,#data AND immediate data to Accumulator ANL direct,A AND Accumulator to direct byte ANL AND immediate direct,#data data to direct byte ORL A,Rn OR register to Accumulator ORL A,direct OR direct byte to Accumulator ORL A,@Ri OR indirect RAM to Accumulator 360 12 24 1 48 48 12 12 12 12 12 12 24 12 12 12 VI ĐIỀU KHIỂN ORL A,#data ORL direct,A ORL direct,#data XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data CLR A CPL A PHỤ LỤC –TẬP LỆNH CỦA AT89C51 OR immediate data to Accumulator OR Accumulator to direct byte OR immediate data to direct byte Exclusive-OR register to Accumulator Exclusive-OR direct byte to Accumulator Exclusive-OR indirect RAM to Accumulator Exclusive-OR immediate data to Accumulator Exclusive-OR Accumulator to direct Byte Exclusive-OR immediate data to direct byte Clear Accumulator Complement Accumulator 361 12 12 24 12 12 12 12 12 24 12 12 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 RL A Rotate Accumulator Left RLC A Rotate Accumulator Left through the Carry RR A Rotate Accumulator Right RRC A Rotate Accumulator Right through the Carry SWAP A Swap nibbles within the Accumulator DATA TRANSFER MOV A,Rn Move register to Accumulator MOV A,direct Move direct byte to Accumulator MOV A,@Ri Move indirect RAM to Accumulator MOV A,#data Move immediate data to Accumulator MOV Rn,A Move Accumulator to register 362 12 12 12 12 12 12 12 12 12 12 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 MOV Rn,direct Move direct byte to register MOV Rn,#data Move immediate data to register MOV direct,A Move Accumulator to direct byte MOV direct,Rn Move register to direct byte MOV Move direct byte direct,direct to direct MOV Move indirect direct,@Ri RAM to direct byte MOV Move immediate direct,#data data to direct byte MOV @Ri,A Move Accumulator to indirect RAM MOV Move direct byte @Ri,direct to indirect RAM MOV Move immediate @Ri,#data data to indirect RAM MOV Load Data DPTR,#data16 Pointer with a 16bit Constant MOVC Move Code byte A,@A+DPTR relative to DPTR to Acc 363 24 12 12 24 24 24 24 12 24 12 24 24 VI ĐIỀU KHIỂN MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH direct POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri PHỤ LỤC –TẬP LỆNH CỦA AT89C51 Move Code byte relative to PC to Acc Move External RAM (8-bit addr) to Acc Move Exernal RAM (16-bit addr) to Acc Move Acc to External RAM (8-bit address) Move Acc to External RAM (16-bit address) Push direct byte onto stack Pop direct byte from stack Exchange register with Accumulator Exchange direct byte with Accumulator Exchange indirect RAM with Accumulator Exchange loworder Digit 364 24 24 24 24 24 24 24 12 12 12 12 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 indirect RAM with Acc BOOLEAN VARIABLE MANIPULATION CLR C Clear Carry 12 CLR bit Clear direct bit 12 SETB C Set Carry 12 SETB bit Set direct bit 12 CPL C Complement 12 Carry CPL bit Complement 12 direct bit ANL C,bit AND direct bit to 24 Carry ANL C,/bit AND 24 complement of direct bit to Carry ORL C,bit OR direct bit to 24 Carry ORL C,/bit OR complement 24 of direct bit to Carry MOV C,bit Move direct bit to 12 Carry MOV bit,C Move Carry to 24 direct bit JC rel Jump if Carry is 24 set JNC rel Jump if Carry not 24 set 365 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 JB bit,rel Jump if direct Bit is set JNB bit,rel Jump if direct Bit is Not set JBC bit,rel Jump if direct Bit is set & clear bit PROGRAM BRANCHING ACALL Absolute addr11 Subroutine Call LCALL addr16 Long Subroutine Call RET Return from Subroutine RETI Return from interrupt AJMP addr11 Absolute Jump LJMP addr16 Long Jump SJMP rel Short Jump (relative address) JMP Jump indirect @A+DPTR relative to the DPTR JZ rel Jump if Accumulator is Zero JNZ rel Jump if Accumulator is Not Zero CJNE Compare direct A,direct,rel byte to Acc and 366 24 24 24 24 24 24 24 24 24 24 24 24 24 24 VI ĐIỀU KHIỂN PHỤ LỤC –TẬP LỆNH CỦA AT89C51 Jump if Not Equal CJNE Compare A,#data,rel immediate to Acc and Jump if Not Equal CJNE Compare Rn,#data,rel immediate to register and Jump if Not Equal CJNE Compare @Ri,#data,rel immediate to indirect and Jump if Not Equal DJNZ Rn,rel Decrement register and Jump if Not Zero DJNZ direct,rel Decrement direct byte and Jump if Not Zero NOP No Operation 367 24 24 24 24 24 12 VI ĐIỀU KHIỂN TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Hồ Trung Mỹ - Vi xử lý – Đại học Bách Khoa TPHCM Tống Văn On, Hoàng Đức Hải - Họ Vi Điều Khiển 8051 – Nhà Xuất Bản Lao Động Xã Hội Văn Thế Minh - Kỹ thuật vi xử lý- Nhà Xuất Bản Giáo Dục, 1997 Trần Bá Thái - Điều khiển ghép nối thiết bị ngoại vi- Nhà Xuất Thống Kê, 1987 Ngô Diên Tập - Vi Xử Lý Đo Lường Điều Khiển – Nhà Xuất Bản Khoa Học & Kỹ Thuật, 2000 Ngô Diên Tập - Đo Lường Điều Khiển Máy Tính – Nhà Xuất Bản Khoa Học & Kỹ Thuật, 2001 Douglas V Hall - Microprocessors and interfacing: Programming and Hardware – Macmillan McGrawHill, 1992 Daniel Tabak - Advanced Microprocessors McGraw-Hill, 1995 Mohamed Rafiquzzaman - Microprocessors and microcomputer-based system design - CRC Press, 1995 10 Lewis C Eggebrecht - Interfacing to the IBM Personal Computer - SAMS, 1991 11 Michael Thorne - Computer Organization and Assembly Language Programming For IBM PC and Compatibles - The Benjamin-Cummings Publishing Company, Inc 1991 368 VI ĐIỀU KHIỂN LỜI NĨI ĐẦU Giáo trình Kỹ thuật Vi điều khiển biên soạn nhằm cung cấp cho sinh viên kiến thức hệ thống vi xử lý, họ vi điều khiển MCS-51, cách thức lập trình điều khiển, nạp chương trình thiết kế phần cứng điều khiển thiết bị dựa sở họ MCS-51 Giáo trình sử dụng cho khóa học 45 tiết dành cho sinh viên hệ đại học cao đẳng Học viện Hàng không Việt Nam Bố cục giáo trình gồm chương dựa theo đề cương mơn học Kỹ thuật Vi điều khiển dành cho sinh viên ngành Điện tử Viễn thông: Chương Tổng quan vi điều khiển Chương Giới thiệu chung MCS-51 Chương Tập lệnh lập trình cho MCS-51 Chương Các hoạt động MCS-51 Chương Thiết kế ứng dụng Phụ lục 1: Các đặc tính AT89C51 Phụ lục 2: Tóm tắt tập lệnh HỒ NGỌC BÁ PHẠM HÙNG KIM KHÁNH I VI ĐIỀU KHIỂN MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 1.1 Các hệ thống số loại mã 1.1.1 Hệ thập phân (Decimal Number System) 1.1.2 Hệ nhị phân (Binary Number System) 1.1.3 Hệ thập lục phân (Hexadecimal Number System) 1.1.4 Mã BCD (Binary Coded Decimal) 1.1.5 Mã hiển thị Led đoạn (7-segment display) 1.2 Các phép toán số học 1.2.1 Hệ nhị phân 1.2.2 Hệ thập lục phân 12 1.3 Các thiết bị số 12 1.3.1 Cổng đệm (buffer) cổng logic (logic gate) 12 1.3.2 Thiết bị logic lập trình 14 1.3.3 Chốt, flipflop ghi 16 1.3.4 Bộ nhớ 18 1.4 Vi xử lý 20 1.4.1 Các hệ vi xử lý 20 1.4.2 Vi xử lý (P – microproccessor) 29 1.4.3 Giao tiếp vi xử lý với nhớ 34 1.5 Vi điều khiển 44 1.5.1 Quá trình phát triển 44 1.5.2 8051 47 1.5.3 AVR 48 1.5.4 PIC 49 1.5.5 ARM 49 TÓM TẮT 51 ÔN TẬP 52 CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ MCS-51 57 2.1 Giới thiệu 57 II VI ĐIỀU KHIỂN 2.2 Vi điều khiển AT89C51 57 2.2.1 Định chu kỳ máy 64 2.2.2 Tổ chức nhớ 67 2.2.3 Các ghi chức đặc biệt (SFR – Special Function Registers) 78 2.2.4 Cấu trúc port 85 2.2.5 Hoạt động Reset 88 TÓM TẮT 90 ÔN TẬP 91 CHƯƠNG 3: TẬP LỆNH VÀ LẬP TRÌNH CHO AT89C51 92 3.1 Các phương pháp định địa 92 3.2 Các vấn đề liên quan lập trình hợp ngữ 94 3.2.1 Cú pháp lệnh 94 3.2.2 Khai báo liệu 95 3.2.3 Các toán tử 97 3.2.4 Cấu trúc chương trình 98 3.3 Tập lệnh 100 3.3.1 Nhóm lệnh chuyển liệu 100 3.3.2 Nhóm lệnh xử lý bit 108 3.3.3 Nhóm lệnh chuyển điều khiển 110 3.3.4 Nhóm lệnh logic 117 3.3.5 Nhóm lệnh số học 120 3.4 Lập trình C cho AT89C51 123 3.4.1 Cấu trúc chương trình C 123 3.4.2 Lập trình C cho AT89C51 133 TÓM TẮT 140 ÔN TẬP 141 CHƯƠNG 4: CÁC HOẠT ĐỘNG CỦA MCS-51 147 4.1 Hoạt động định thời (Timer / Counter) 147 4.1.1 Giới thiệu 147 4.1.2 Hoạt động Timer/Counter 148 4.1.3 Các ghi điều khiển hoạt động 149 III VI ĐIỀU KHIỂN 4.1.4 Các chế độ hoạt động 152 4.1.5 Timer 158 4.1.6 Các ví dụ 167 4.2 Cổng nối tiếp (Serial port) 175 4.2.1 Các ghi điều khiển hoạt động 176 4.2.2 Tạo tốc độ baud 177 4.2.3 Truyền thông đa xử lý 182 4.2.4 Chuẩn truyền thông RS-232 RS-485 184 4.2.5 Giao tiếp máy tính qua RS-232 192 4.2.6 Các ví dụ 193 4.3 Ngắt (Interrupt) 197 4.3.1 Các ghi điều khiển hoạt động 198 4.3.2 Xử lý ngắt 201 4.3.3 Ngắt định thời 204 4.3.4 Ngắt cổng nối tiếp 211 4.3.5 Ngắt 215 TÓM TẮT 219 ÔN TẬP 220 CHƯƠNG 5: THIẾT KẾ ỨNG DỤNG 222 5.1 Điều khiển Led đơn 222 5.2 Phím nhấn 226 5.2.1 Phím đơn 226 5.2.2 Bàn phím hex 231 5.3 Điều khiển Led đoạn 233 5.3.1 Cấu trúc bảng mã hiển thị liệu Led đoạn 233 5.3.2 Các phương pháp hiển thị liệu 237 5.4 Điều khiển ma trận Led 249 5.5 Điều khiển động bước 259 5.6 Điều khiển LCD (Liquid Crystal Display) 265 5.7 Giao tiếp với PPI8255 (Programmable Peripheral Interface) 294 5.8 ADC (Analog to Digital Converter) 303 IV VI ĐIỀU KHIỂN 5.9 Giao tiếp I2C (Inter-Intergrated Circuit) 310 5.9.1 Điều kiện START STOP 312 5.9.2 Định dạng liệu truyền 313 5.9.3 Định dạng địa thiết bị 317 5.9.4 Truyền liệu bus I2C, chế độ Master‐ Slave 318 5.10 Thiết kế số ứng dụng thực tế 328 5.10.1 Quy trình thiết kế ứng dụng 328 5.10.2 Đồng hồ thể thao 329 5.10.3 Đồng hồ số 332 5.10.4 Đo nhiệt độ 337 5.10.5 Đếm sản phẩm 339 TÓM TẮT 341 ÔN TẬP 342 PHỤ LỤC – CÁC ĐẶC TÍNH CỦA AT89C51 344 Dòng sink source 344 Đặc tính DC 344 Đặc tính AC 347 PHỤ LỤC –TẬP LỆNH CỦA AT89C51 358 TÀI LIỆU THAM KHẢO 368 V ... Hình 1.6 – Cấu trúc nội nhớ tiêu biểu 19 VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN 1.4 Vi xử lý 1.4.1 Các hệ vi xử lý Vi xử lý chế tạo từ transistor tích hợp vi mạch tích hợp đơn Xuất lần vào năm... gồm: +, -, *, /, phép toán logic, … - Control (điều khiển) : điều khiển, kiểm soát đường liệu thành phần máy tính 29 VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN - Memory (bộ nhớ): lưu trữ chương trình... cần nhiều vi mạch phụ trợ - Thế hệ 2: vi xử lý bit, đại diện 8080, 8085 (Intel) hay Z80 (Zilog) 21 VI ĐIỀU KHIỂN TỔNG QUAN VỀ VI ĐIỀU KHIỂN + Tập lệnh phong phú + Địa đến 64 KB Một số vi xử lý