Giáo trình Vi điều khiển được biên soạn dành cho hệ cao đẳng chuyên nghiệp và cao đẳng nghề, ngành điện – điện tử và cơ điện tử. Giáo trình gồm 5 chương: Chương I giới thiệu chung về bộ vi xử lý; chương II tổng quan về vi điều khiển MCS-51; chương III lập trình hợp ngữ trên vi điều khiển MCS-51; chương IV các hoạt động của vi điều khiển MCS-51; chương V các ứng dụng dựa trên vi điều khiển MCS-51. Mời các bạn cùng tham khảo để biết thêm nội dung chi tiết.
TRƯỜNG CAO KINH TẾ - KỸ THUẬT VINATEX TP.HCM GIÁO TRÌNH VI ĐIỀU KHIỂN Thành Phố Hồ Chí Minh – 2017 i MỤC LỤC LỜI NÓI ĐẦU iii Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ I SỰ PHÁT TRIỂN CỦA CÁC BỘ VI XỬ LÝ 1 Thế hệ (1971 - 1973) Thế hệ (1974 - 1977) Thế hệ (1978 - 1982) Thế hệ (1983 - nay) II SƠ ĐỒ KHỐI CỦA MỘT HỆ VI XỬ LÝ Khái niệm hệ vi xử lý 2 Sơ đồ khối hệ vi xử lý III ĐƠN VỊ XỬ LÝ TRUNG TÂM IV BỘ NHỚ BÁN DẪN ROM (Read Only Memory): RAM (Random Access Memory): V CÁC THIẾT BỊ NGOẠI VI (CÁC THIẾT BỊ XUẤT NHẬP) VI HỆ THỐNG BUS VII VI XỬ LÝ – VI ĐIỀU KHIỂN VIII MINH HỌA KIẾN TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN IX LỰA CHỌN BỘ VI ĐIỀU KHIỂN KHI THIẾT KẾ: Tiêu chuẩn thứ Tiêu chuẩn thứ hai Tiêu chuẩn thứ ba Chương II TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51 I GIỚI THIỆU II VI ĐIỀU KHIỂN AT89C51 Sơ đồ khối AT89C51 10 Định chu kỳ máy 13 Các ghi chức đặc biệt (SFR – Special Function Registers) 21 Cấu trúc port 25 Hoạt động Reset 26 Các vấn đề khác 27 Các đặc tính AT89C51 31 BÀI TẬP CHƯƠNG II 36 Chương III: LẬP TRÌNH HỢP NGỮ TRÊN VI ĐIỀU KHIỂN MCS-51 37 I CÁC PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ 37 Định địa trực tiếp 37 Định địa gián tiếp 37 Định địa ghi 38 Định địa tức thời 38 Định địa chỉ số 38 II CÁC VẤN ĐỀ LIÊN QUAN KHI LẬP TRÌNH HỢP NGỮ 38 Cú pháp lệnh 38 Khai báo liệu 38 Các toán tử 40 Cấu trúc chương trình 41 III TẬP LỆNH 41 Nhóm lệnh chuyển liệu 41 Nhóm lệnh xử lý bit 45 ii Nhóm lệnh chuyển điều khiển 47 4.Nhóm lệnh logic 50 5.Nhóm lệnh số học 51 BÀI TẬP CHƯƠNG III 54 Chương IV: CÁC HOẠT ĐỘNG CỦA VI ĐIỀU KHIỂN MCS-51 55 I HOẠT ĐỘNG ĐỊNH THỜI (TIMER / COUNTER) 55 Giới thiệu 55 Hoạt động Timer / Counter 55 Các ghi điều khiển hoạt động 56 Các chế độ hoạt động 57 Timer 59 Các ví dụ 64 II CỔNG NỐI TIẾP (SERIAL PORT) 67 Các ghi điều khiển hoạt động 68 Tạo tốc độ baud 69 Truyền thông đa xử lý 73 Nhận dạng địa tự động 74 Kiểm tra lỗi khung 75 Các ví dụ 75 III NGẮT (INTERRUPT) 77 Các ghi điều khiển hoạt động 77 Xử lý ngắt 79 Ngắt định thời 80 Ngắt cổng nối tiếp 83 Ngắt 85 BÀI TẬP CHƯƠNG IV 87 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 88 I ĐIỀU KHIỂN LED ĐƠN 88 II ĐIỀU KHIỂN LED ĐOẠN 90 Cấu trúc bảng mã hiển thị liệu Led đoạn 90 Các phương pháp hiển thị liệu 93 III ĐIỂU KHIỂN MA TRẬN LED 97 IV ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC 100 V ĐIỀU KHIỂN LCD (Liquid Crystal Display) 103 VI GIAO TIẾP VỚI PPI8255 112 BÀI TẬP CHƯƠNG V 118 Tài liệu tham khảo v iii LỜI NĨI ĐẦU Giáo trình Vi xử lý biên soạn dành cho hệ cao đẳng chuyên nghiệp cao đẳng nghề, ngành điện – điện tử điện tử Giáo trình gồm chương: Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ Số tiết : LT Chương II TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51 Số tiết : 15 LT Chương III: LẬP TRÌNH HỢP NGỮ TRÊN VI ĐIỀU KHIỂN MCS-51 Số tiết : 10 LT Chương IV: CÁC HOẠT ĐỘNG CỦA VI ĐIỀU KHIỂN MCS-51 Số tiết : 05 LT Chương V: CÁC ỨNG DỤNG CỦA VI ĐIỀU KHIỂN MCS-51 Số tiết : 10 LT + 90 TH Giáo trình nhằm cung cấp cho sinh viên kiến thức hệ vi xử lý, tìm hiểu tổng quan, cấu trúc, tập lệnh, kỹ thuật lập trình ứng dụng vi điều khiển MCS-51, qua người học vận dụng, tiếp cận với họ vi xử lý, vi điều khiển khác ngày phát triển không ngừng iv Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ Trang Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ I SỰ PHÁT TRIỂN CỦA CÁC BỘ VI XỬ LÝ Thế hệ (1971 - 1973) Đặc điểm chung vi xử lý hệ này: - Bus liệu: bit - Bus địa chỉ: 12 bit - Công nghệ chế tạo: PMOS - Tốc độ thực lệnh: 10 – 60 µs/lệnh với fCLOCK = 0,1 – 0,8 MHz Một số vi xử lý đặc trưng cho hệ này: 4040 (Intel), PPS-4 (Rockwell International)… Thế hệ (1974 - 1977) Đặc điểm chung vi xử lý hệ này: - Bus liệu: bit - Bus địa chỉ: 16 bit - Công nghệ chế tạo: NMOS CMOS - Tốc độ thực lệnh: – µs/lệnh với fCLOCK = – MHz Một số vi xử lý đặc trưng cho hệ này: 6502 (Mos Technology), 6800/6809 (Motorola), 8080/8085 (Intel), Z80 (Zilog), … Thế hệ (1978 - 1982) Đặc điểm chung vi xử lý hệ này: - Bus liệu: 16 bit - Bus địa chỉ: 20 - 24 bit - Công nghệ chế tạo: HMOS - Tốc độ thực lệnh: 0,1 – µs/lệnh với fCLOCK = – 10 MHz Một số vi xử lý đặc trưng cho hệ này: 68000/68010 (Motorola), 8086/80186/80286 (Intel)… Thế hệ (1983 - nay) Đặc điểm chung vi xử lý hệ này: - Bus liệu: 32 - 64 bit - Bus địa chỉ: 32 bit - Công nghệ chế tạo: HCMOS Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ Trang - Tốc độ thực lệnh: 0,01 – 0,1 µs với fCLOCK = 20 – 100 MHz Một số vi xử lý đặc trưng cho hệ này: 68020/68030/68040/68060 (Motorola), 80386/80486/Pentium (Intel), … II SƠ ĐỒ KHỐI CỦA MỘT HỆ VI XỬ LÝ Khái niệm hệ vi xử lý - Khả lập trình để thao tác liệu mà không cần can thiệp người - Khả lưu trữ phục hồi liệu Sơ đồ khối hệ vi xử lý - Phần cứng (Hardware): thiết bị ngoại vi → để giao tiếp với người - Phần mềm (Software): chương trình → để xử lý liệu Hình 1.1 – Sơ đồ khối hệ vi xử lý - CPU (Central Processing Unit): đơn vị xử lý trung tâm - RAM (Random Access Memory): nhớ truy xuất ngẫu nhiên ROM (Read Only Memory): nhớ đọc - Interface Circuitry: mạch điện giao tiếp - Peripheral Devices (Input): thiết bị ngoại vi (thiết bị nhập) - Peripheral Devices (Output): thiết bị ngoại vi (thiết bị xuất) - Address bus: bus địa - Data bus: bus liệu - Control bus: bus điều khiển III ĐƠN VỊ XỬ LÝ TRUNG TÂM CPU đóng vai trị chủ đạo hệ vi xử lý, quản lý tất hoạt động hệ thực Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ Trang tất thao tác liệu CPU vi mạch điện tử có độ tích hợp cao Khi hoạt động, CPU đọc mã lệnh ghi dạng bit bit từ nhớ, sau thực giải mã lệnh thành dãy xung điều khiển tương ứng với thao tác lệnh để điều khiển khối khác thực bước thao tác từ tạo xung điều khiển cho tồn hệ Hình 1.2 – Sơ đồ khối CPU - IR (Instruction Register): ghi lệnh - PC (Program Counter / Instruction Pointer): đếm chương trình / trỏ lệnh - Instruction decode and control unit: đơn vị giải mã lệnh điều khiển - ALU (Arithmetic and Logic Unit): đơn vị số học logic - Registers: ghi Tóm lại, hoạt động CPU thực liên tục thao tác: tìm nạp lệnh giải mã – thực lệnh + Thao tác tìm nạp lệnh: - Nội dung ghi PC CPU đưa lên bus địa (1) - Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực (2) - Mã lệnh (Opcode) từ nhớ đưa lên bus liệu (3) - Mã lệnh chuyển vào ghi IR CPU (4) - Nội dung ghi PC tăng lên đơn vị để chuẩn bị tìm nạp lệnh từ nhớ + Thao tác giải mã – thực lệnh: - Mã lệnh từ ghi IR đưa vào đơn vị giải mã lệnh điều khiển - Đơn vị giải mã lệnh điều khiển thực giải mã opcode tạo tín hiệu để điều khiển việc xuất nhập liệu ALU ghi (Registers) - Căn tín hiệu điều khiển này, ALU thực thao tác xác định Chương I GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ Trang Hình 1.3 – Hoạt động BUS cho chu kỳ nạp lệnh Một chuỗi lệnh (Opcode) kết hợp lại với để thực cơng việc có ý nghĩa gọi chương trình (Program) hay phần mềm (Software) IV BỘ NHỚ BÁN DẪN Bộ nhớ bán dẫn phận khác quan trọng hệ vi xử lý, chương trình liệu lưu giữ nhớ Bộ nhớ bán dẫn hệ vi xử lý gồm: - ROM: nhớ chương trình → lưu giữ chương trình điều khiển hoạt động tồn hệ thống - RAM: nhớ liệu → lưu giữ liệu, phần chương trình điều khiển hệ thống, ứng dụng kết tính tốn ROM (Read Only Memory): Bộ nhớ đọc, thông tin ROM không bị nguồn điện cung cấp cho ROM khơng cịn + Cấu trúc ROM: + Phân loại số loại ROM: Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 06h hay 0Eh 07h hay 0Fh 110 000 110 001 110 010 110 011 110 100 110 101 110 110 110 111 111 000 111 001 111 010 111 011 111 100 111 101 111 110 111 111 Trang 105 xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? xxx ????? Để định nghĩa ký tự, thực thay dấu ? giá trị hay tương ứng gởi vào CGRAM Ví dụ: Để định nghĩa chữ Đ vị trí CGRAM, địa liệu tương ứng là: Nghĩa địa 00h CGRAM chứa giá trị 1Eh tương tự địa 07h Các chế độ truyền liệu: LCD1602A có chế độ truyền liệu: chế độ bit (dùng D0 – D7) chế độ bit (không dùng D3 – D0, dùng D7 – D4) Trong trường hợp dùng chế độ bit, liệu bit truyền lần: truyền bit cao tiếp tục truyền bit thấp Sau thực truyền xong bit, BF chuyển lên Hai chế độ truyền mơ tả Hình 5.16 4.17 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Hình 5.16 – Định thời giao tiếp chế độ bit Hình 5.17 – Định thời giao tiếp chế độ bit Tập lệnh: Các giá trị thường dùng mô tả sau: Bảng 5.8 – Các lệnh thường dùng Lệnh Mơ tả 01H Xóa hình hình Trang 106 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 02H Trở đầu chuỗi 04H Dịch trỏ sang trái 06H Dịch trỏ sang phải 05H Dịch hình sang phải 07H Dịch hình sang trái 08H Tắt trỏ, tắt hiển thị 0AH Tắt hiển thị, bật trỏ 0CH Bật hiển thị, tắt trỏ 0EH Bật hiển thị, nhấp nháy trỏ 0FH Tắt hiển thị, nhấp nháy trỏ 10H Dịch vị trí trỏ sang trái 14H Dịch vị trí trỏ sang phải 18H Dịch tồn hình sang trái 1CH Dịch tồn hình sang phải 80H Đưa trỏ đầu dòng C0H Đưa trỏ đầu dòng 38H Xác lập chế độ dòng độ phân giải chữ 5x7 Trang 107 Ví dụ 1: Cho sơ đồ kết nối LCD 1602A với AT89C51 hình vẽ Viết chương trình hiển thị chuỗi “KHOA DIEN – DIEN TU” dòng “BO MON DIEN TU – VIEN THONG” dịng Hình 5.18 – Kết nối LCD 89C51 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 108 Giải bit liệu LCD nối với P1 → chế độ bit Yêu cầu dòng → chế độ dịng Chương trình thực sau: RW BIT P2.1 LCD_DATA EQU EN BIT P2.2 RS BIT P2.0 P1 ; -main: MOV LCD_DATA,#38h ; đặt chế độ dòng CALL write_command MOV LCD_DATA,#0Ch ; bật hiển thị CALL write_command MOV LCD_DATA,#01h ;xố hình CALL write_command MOV LCD_DATA,#80h ; Chuyển địa 00h (dòng 1) CALL write_command MOV DPTR,#Line1 CALL write ; Ghi vào DDRAM MOV LCD_DATA,#0C0h ; Chuyển địa 40h (dòng 2) CALL write_command MOV DPTR,#Line2 CALL write ; Ghi vao DDRAM SJMP $ ; -write: CLR A MOVC A,@A+DPTR CJNE A,#0FFh,write1;Nếu giá trị 0FFh hết chuỗi RET write1: MOV LCD_DATA,A call write_data INC DPTR SJMP write ; -write_command: CLR RS CLR RW CLR EN NOP SETB EN NOP CLR EN CALL Delay RET ; -write_data: SETB RS Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 109 CLR RW CLR EN NOP SETB EN NOP CLR EN CALL Delay RET ; -Delay: PUSH 07h PUSH 06h MOV R6,#50 MOV R7,#255 DJNZ R7,$ DJNZ R6,$-4 POP 06h POP 07h RET ; -Line1: DB 'KHOA DIEN – DIEN TU', 0FFh Line2: DB 'BO MON DIEN TU – VIEN THONG', 0FFH END Ví dụ 2: Yêu cầu giống ví dụ 1s dịch chuỗi sang trái ký tự Giải Chương trình thực thêm phần xử lý ngắt cho timer 0: định thời 1s dịch chuỗi sang trái (nghĩa dịch tồn hình sang phải) Theo bảng 5.9, lệnh cần gởi LCD có mã lệnh 1Ch Chương trình thực sau: … ORG 0000h LJMP main ORG 000Bh LJMP Timer0_ISR Main: MOV IE,#82h ; Cho phép ngắt Timer MOV TMOD,#01h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) MOV R7,#20 SETB TR0 … Timer0_ISR: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) DJNZ R7,exitTimer0 MOV R7,#20 MOV LCD_DATA,#1Ch ;Dịch toàn hình sang phải CALL write_command exitTimer0: RETI … END Ví dụ 3: Cho mạch kết nối LCD hình 5.18, viết chương trình xuất chuỗi “Khoa Điện – Điện tử” dịng “Bộ mơn Điện tử - Viễn thơng” dịng Giải Ví dụ u cầu ký tự khơng có bảng mã nên phải định nghĩa thêm Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 110 CGRAM Các ký tự cần định nghĩa là: Đ, ệ, ử, ộ, ô, ễ, tổng cộng ký tự (có thể thực LCD 1602A cho phép định nghĩa tối đa ký tự) Địa liệu tương ứng là: Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Chương trình thực sau: EN BIT P2.2 RS BIT P2.0 RW BIT P2.1 LCD_DATA EQU P1 ; -org ljmp main main: MOV LCD_DATA,#38h CALL write_command MOV LCD_DATA,#0Ch CALL write_command MOV LCD_DATA,#01h ;xố hình CALL write_command MOV LCD_DATA,#40h call write_command ; Địa đầu CGRAM ; 00h MOV DPTR,#cgram_data CALL write MOV LCD_DATA,#80h CALL write_command MOV DPTR,#Line1 CALL write MOV LCD_DATA,#0C0h CALL write_command MOV DPTR,#Line2 CALL write here:SJMP here ; -write: CLR A MOVC A,@A+DPTR CJNE A,#0FFh,write1 Trang 111 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 112 RET write1: MOV LCD_DATA,A call write_data INC DPTR SJMP write ; -Delay: PUSH 07h PUSH 06h MOV R6,#50 MOV R7,#255 DJNZ R7,$ DJNZ R6,$-4 POP 06h POP 07h RET ; -write_command: CLR RS CLR RW CLR EN NOP SETB EN NOP CLR EN SJMP wait ; -write_data: SETB RS CLR RW CLR EN NOP SETB EN NOP CLR EN wait: call delay ret ; Line1: DB 'Khoa ',00h,'i',01h,'n - ',00h,'i',01h,'n t',02h,0FFh ; Chuỗi ‘Khoa Điện – Điện tử’ Line2: DB 'B',03h,' m',04h,'n ',00h,'i',01h,'n t',02h,' - vi',05h,'n th',04h,'ng', 0FFH ; Chuỗi ‘Bộ môn Điện tử - Viễn thông’ ; cgram_data: DB 1Eh,09h,09h,1Dh,09h,09h,1Eh,00h ; Chữ Đ DB 04h,0Eh,11h,1Eh,10h,0Fh,04h,00h ; Chữ ệ DB 08h,05h,09h,12h,12h,12h,0Ch,00h ; Chữ DB 04h,0Ah,0Eh,11h,11h,0Eh,04h,00h ; Chữ ộ DB 04h,0Ah,0Eh,11h,11h,0Eh,00h,00h ; Chữ ô DB 05h,0Eh,0Ah,1Fh,1Fh,10h,0Fh,00h ; Chữ ễ DB 0FFh END VI GIAO TIẾP VỚI PPI8255 PPI8255 IC giao tiếp lập trình được, cho phép mở rộng port trường hợp port 89C51 không đủ dùng 8255 có tổng cộng chế độ: BSR (Bit Set/Reset) I/O (Input/Output) I/O chia thành chế độ khác nhau, tài liệu xét chế độ Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 113 (xuất/nhập bản) 8255 có tổng cộng port, port bit port C chia thành bit cao bit thấp tạo thành nhóm: nhóm A (PA + PCH) nhóm B (PB PCL) Hình 5.19 – Sơ đồ chân 8255 Để điều khiển 8255, bên có ghi điều khiển (CR – Control Register) cho phép chọn chế độ hoạt động Nội dung CR sau: Hình 5.20 – Dạng từ điều khiển cho 8255A chế độ I/O Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 114 Hình 5.21 - Dạng từ điều khiển cho 8255A chế độ BSR Lưu ý cần Set/Reset bit phải gởi liệu CR khơng gởi PC Như vậy, để xác lập điều khiện làm việc cho 8255, cần thực định cấu hình cho 8255 (chọn chế độ hoạt động cho PA, PB PC) Để thực trình này, cần tác động đến CR 8255 Logic chọn port cho 8255 mô tả sau: Bảng 5.9 – Logic chọn port 8255 CS A1 A0 Chọn 0 0 0 1 x 1 x Port A Port B Port C Thanh ghi điều khiển 8255A khơng hoạt động Ví dụ: Cho mạch kết nối AT89C51 8255 Hình 5.22 Viết chương trình điều khiển theo yêu cầu: - Nhấn SW1: sáng Led trái sáng Lamp - Nhấn SW2: sáng Led phải tắt Lamp Giải Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 115 Hình 5.22 – Sơ đồ kết nối 89C51 với 8255 Do PA điều khiển Led, PCL điều khiển công tắc nhấn, PCH điều khiển RL1 nên PA xuất, PCL nhập PCH xuất (còn PB tuỳ ý) Nội dung ghi điều khiển sau: Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 I/O 0 Chế độ Trang 116 0 0 PA xuất PCH xuất Chế độ PB xuất PCL nhập 81h Led đơn nối với bit PA cathode anode nối với Vcc nên để Led sáng liệu PA Led tắt liệu Đèn LAMP điều khiển RL1: RL1 đóng (ứng với PC7 = 0) LAMP sáng ngược lại, RL1 ngắt (ứng với PC7 = 1) LAMP tắt Nội dung ghi điều khiển điều khiển PC7 sau: PC7 = 0 BSR 0 Không dùng 1 PC7 0Eh =0 PC7 = BSR 0 Không dùng 1 PC7 0Fh =1 Công tắc SW1, SW2 nối với PC0 PC1: nhấn công tắc chân tương ứng PC = khơng nhấn = Do đó, để kiểm tra cơng tắc có nhấn hay khơng đọc liệu từ PCL kiểm tra tương ứng bit PC0, PC1 Chương trình thực sau: MOV DPTR,#0C003h ; Địa CR MOV A,#81h; PA: xuất, PB: xuất, PCH: xuất, PCL: nhập MOVX @DPTR,A ; Xuất CR Begin: MOV DPTR,#0C002h ; Địa PC MOVX A,@DPTR ; Đọc vào JNB ACC.0,SW1 ; Nếu PC0 = đến SW1 JNB ACC.1,SW2 ; Nếu PC1 = đến SW2 SJMP begin SW1: CALL Delay ; Tránh rung phím MOV A,11110000b ; Sáng Led trái MOV DPTR,#0C000h ; Địa PA (do PA nối với Led) MOVX @DPTR,A MOV A,0Eh ; PC7 = → đóng RL1 → sáng LAMP MOV DPTR,#0C003h ; Địa CR (do dùng chế độ BSR) MOVX @DPTR,A SJMP begin SW2: CALL Delay MOV A,00001111b ; Sáng Led phải MOV DPTR,#0C000h ; Địa PA (do PA nối với Led) Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 MOVX @DPTR,A MOV A,0Fh ; PC7 = → đóng RL1 → sáng LAMP MOV DPTR,#0C003h ; Địa CR (do dùng chế độ BSR) MOVX @DPTR,A SJMP begin ; -Delay: MOV TMOD,#02h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET END Trang 117 Chương V: CÁC ỨNG DỤNG DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Trang 118 BÀI TẬP CHƯƠNG V Cho sơ đồ kết nối Hình 5.3 Viết chương trình sáng Led theo yêu cầu: sáng Led từ phải sang trái thực lần; nhấp nháy Led lần; sáng Led từ vào trong, lần Led thực lần (thời gian trì hỗn lần sáng 300ms, dùng timer 1) Cho sơ đồ kết nối Hình 5.7 Viết chương trình tăng nội dung nhớ 30h từ 00 – 99 hiển thị giá trị Led đoạn (hiển thị Led ngắt timer thời gian trì hỗn tăng nội dung ô nhớ 30h 1s dùng ngắt timer 0) Cho sơ đồ kết nối Hình 5.7 kết nối thêm Led (Led2 – 6) điều khiển bit P1: P1.2 – P1.5 Viết chương trình hiển thị giờ, phút giây Led (Led1,2: giờ; Led3,4: phút; Led5,6: giây) chứa ô nhớ 30h, phút ô nhớ 31h, giây nhớ 32h (thời gian trì hỗn 1s dùng ngắt timer 0, quét Led dùng ngắt timer 1) Cho sơ đồ kết nối Hình 5.11 Viết chương trình cho chuỗi “CAO DANG VINATEX” di chuyển từ trái sang phải ma trận Led Cho sơ đồ kết nối Hình 5.14 Viết chương trình điều khiển động quay thuận 100 vòng với tốc độ 10 vịng/phút (giả sử bước có góc quay 7.20) Cho sơ đồ kết nối Hình 5.18 Viết chương trình cho chuỗi “Cao Đẳng VINATEX” dòng “Khoa Cơ Điện” dòng di chuyển từ trái sang phải (thời gian dịch chuyển 300ms dùng ngắt timer 1) v Tài liệu tham khảo Giáo trình Vi xử lý, (2008) Trường ĐH SPKT TPHCM Giáo trình Vi điều khiển, (2008) Trường ĐH KTCN TPHCM Intel, (1994) MCS@51 MICROCONTROLLER FAMILY USER’S MANUAL ... NGOẠI VI (CÁC THIẾT BỊ XUẤT NHẬP) VI HỆ THỐNG BUS VII VI XỬ LÝ – VI ĐIỀU KHIỂN VIII MINH HỌA KIẾN TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN IX LỰA CHỌN BỘ VI ĐIỀU KHIỂN... CỦA VI ĐIỀU KHIỂN MCS-51 Số tiết : 10 LT + 90 TH Giáo trình nhằm cung cấp cho sinh vi? ?n kiến thức hệ vi xử lý, tìm hiểu tổng quan, cấu trúc, tập lệnh, kỹ thuật lập trình ứng dụng vi điều khiển. .. Chương II TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51 Số tiết : 15 LT Chương III: LẬP TRÌNH HỢP NGỮ TRÊN VI ĐIỀU KHIỂN MCS-51 Số tiết : 10 LT Chương IV: CÁC HOẠT ĐỘNG CỦA VI ĐIỀU KHIỂN MCS-51 Số tiết : 05 LT