Bài giảng Vi điều khiển 8051 8051 Microcontroller - Lê Thế Vinh

pdf 29 trang ngocly 680
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi điều khiển 8051 8051 Microcontroller - Lê Thế Vinh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_vi_dieu_khien_8051_8051_microcontroller_le_the_vin.pdf

Nội dung text: Bài giảng Vi điều khiển 8051 8051 Microcontroller - Lê Thế Vinh

  1. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 TRƯỜNG ĐẠIHỌCSƯ PHẠMKỸ THUẬT VINH PHÒNG ĐÀOTẠO - KHOA ĐIỆNTỬ Bài giảng VI ĐIỀU KHIỂN 8051 8051 Microcontroller TS. Lê Thế Vinh 21 April 2009 L.T.Vinh 1 Nội dung 1. Giới thiệu về 8051 2. Lập trình cho 8051, phần mềm 3. Đảm bảo về phần cứng 4. Bộ thực tập MDA-EMS51 5. Một số bài tập thực hành 21 April 2009 L.T.Vinh 2 L.T.Vinh 1
  2. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 1. Giới thiệu về 8051 - Vi điều khiển 8051 là một máy tính được tích hợp trên một chíp (là 1 IC, integrated circuit, có 40 chân) - Khác với Vi xử lý, CPU Ứng dụng: trong nhiều dụng cụ điện tử, thiết bị điện, ôtô, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v. 21 April 2009 L.T.Vinh 3 1. Giới thiệu về 8051 Communication- truyền thông Avionics- đ.tử hàng không Automobile - ôtô Consumer Electronics – TB đ.tử tiêu dùng Household Appliances – dụng cụ gia đình 21 April 2009 L.T.Vinh 4 L.T.Vinh 2
  3. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 1. Giới thiệu về 8051 Today’s high-end automobile have > 80 microprocessors: 4-bit microcontroller checks seat belt; microcontrollers run dashboard devices; 16/32-bit microprocessor controls engine. Millions lines of code 21 April 2009 L.T.Vinh 5 1. Giới thiệu về 8051 Một số thông số trên máy bay 21 April 2009 L.T.Vinh 6 L.T.Vinh 3
  4. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 1. Giới thiệu về 8051 Một số thông số trên máy bay 21 April 2009 L.T.Vinh 7 1. Giới thiệu về 8051 Đặc điểm: 4K Bytes ROM 128 Bytes RAM 4 cổng 8-bit I/O 2 bộ định thời 16-bit Cổng nối tiếp Sơ đồ khối 8051 21 April 2009 L.T.Vinh 8 L.T.Vinh 4
  5. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 2. Lập trình cho 8051 Ví dụ: Ngôn ngữ lập trình ORG 2000H MOV SP,#50H MOV PSW,#00H CLR P1,00H ; LED on ; SETB P1,0FH ;LED off END 21 April 2009 L.T.Vinh 9 2. Lập trình cho 8051 Các bước: • Viết chương trình • Dịch chương trình ra file hex • Nạp chương trình vào VĐK • Chạy chương trình 21 April 2009 L.T.Vinh 10 L.T.Vinh 5
  6. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 3. Đảm bảo về phần cứng 1. Nạp chương trình dạng Hex cho VĐK 2. Cấp nguồn: Vcc=+5V; (40) GND=0V (20) (mass) 3. Cấp xung nhịp (Mạch dao động, 18,19) 4. Tín hiệu khởi động (ban đầu, khi xảy ra lỗi, 9) 21 April 2009 L.T.Vinh 11 4. Bộ thực tập MDA-EMS51 + MDA - EMS51 là TB thực hành VĐK 8051 (cty Midas Engineering, Hàn Quốc). + Kit MDA - EMS51 gồm các khối giao tiếp cơ bản để tìm hiểu về bộ vi điều khiển 8051 + Có 2 chế độ làm việc: KIT và PC + Có phần cứng + mềm 21 April 2009 L.T.Vinh 12 L.T.Vinh 6
  7. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 4. Bộ thực tập MDA-EMS51 + CPU & MEMORY CPU sử dụng bộ vi điều khiển 8051 với xung nhịp 11,0592 MHz. Khối bộ nhớ gồm bộ nhớ ROM và SRAM. ROM chứa các chương trình cơ sở cho phép người sử dụng điều khiển kit MDA - EMS51 bằng bàn phím Hex, khối hiển thị LCD để trao đổi dữ liệu. SRAM dùng để chứa các chương trình ứng dụng do người dùng tạo ra + LED: 4 LEDs nối với các cổngn P1.0-P1.3 + Dot Matrix: Khối ma trận điểm sử dụng các LED để hiện thị. Kích thước của ma trận điểm là 8x8. Khối này giao tiếp với với bus hệ thống thông qua vi mạch 8255A. Các bài tập tìm hiểu cấu trúc và nguyên lý hiển thị của ma trận điểm sẽ được thực hiện trên khối này. + Keyboard: Khối bàn phím có 25 phím gồm: 16 phím dữ liệu số Hex, 8 phím chức năng và 1 phím khởi động lại (RESET). Phím RESET nằm ở góc trên bên phải và tách rời với các phím khác. Các thông tin điều khiển và dữ liệu được nhập vào hệ thống thông qua bàn phím. 21 April 2009 L.T.Vinh 13 4. Bộ thực tập MDA-EMS51 1. Bật máy tính 2. Mở nắp Bộ thực tập 3. Bật công tắc nguồn (off -> on) 4. Suy nghĩ về bài toán cần làm, viết ra giấy thuật toán 5. Viết mã lệnh (lập trình) trên Notepad 6. Dùng phần mềm (chương trình) MDA-EMS51 để chuyển mã lệnh sang mã hex, nạp vào VĐK, chạy thử 7. Quan sát kết quả trên Bộ thực hành 8. Xem xét, phân tích và sửa chương trình cho phù hợp (lặp lại các bước 4-8) 9. Làm bài tập khác (các bước 4-8) 10. Kết thúc buổi thực hành: Đóng phần mềm, Tắt Bộ thực tập- đậy nắp hộp, Tắt máy tính 21 April 2009 L.T.Vinh 14 L.T.Vinh 7
  8. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 15 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 16 L.T.Vinh 8
  9. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 17 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 18 L.T.Vinh 9
  10. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 19 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 20 L.T.Vinh 10
  11. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 4. Bộ thực tập MDA-EMS51 Một số giao diện: F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 21 Mục đích môn học M«n häc nµy, cung cÊp cho SV: - KiÕn thøc c¬ b¶n vÒ V§K 8051 vµ kh¶ n¨ng øng dông - Ph•¬ng ph¸p triÓn khai c¸c øng dông ®iÒu khiÓn - Lµm quen víi lËp tr×nh cho 8051, xem xÐt, ph©n tÝch thuËt to¸n, h×nh thµnh kü n¨ng lµm viÖc - RÌn luyÖn ý thøc chÊp hµnh kü luËt trong lao ®éng, häc tËp 21 April 2009 L.T.Vinh 22 L.T.Vinh 11
  12. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 Mục đích môn học §Þnh h•íng: - §èi t•îng nghiªn cøu: V§K 8051 vµ ®èi t•îng cÇn ®iÒu khiÓn: LED, LED ma trËn, Bµn phÝm, - C«ng viÖc cÇn lµm: HiÓu môc ®Ých bµi to¸n, lËp tr×nh cho V§K, lµm béc lé b¶n chÊt cña qu¸ tr×nh ®iÒu khiÓn - Nghiªn cøu: Dùa vµo ho¹t ®éng cña ®èi t•îng cÇn ®iÒu khiÓn, ph©n tÝch mèi quan hÖ, sù phô thuéc thuËt to¸n, ¶nh h•íng ®Õn kÕt qu¶ mong muèn cña bµi to¸n ntn? tèt hay ch•a tèt? dù ®o¸n t¹i sao? vµ ®•a ra c¸c ph•¬ng ¸n gi¶i quyÕt. 21 April 2009 L.T.Vinh 23 5. Một số bài tập thực hành Giao tiếp với LED đơn Bật ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 CLR P1.3 ; Led on END Tắt: ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 SETB P1.3 ; Led off END 21 April 2009 L.T.Vinh 24 L.T.Vinh 12
  13. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Làm sao cho LED nhấp nháy? ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 LOOP: CLR P1.3 ; Led on CALL DELAY SETB P1.3 ; Led off CALL DELAY JMP LOOP DELAY: PUSH PSW MOV PSW,#18h ; Bank 3 MOV R7,#0 DLY1: MOV R6,#0 DLY2: NOP NOP NOP DJNZ R6,DLY2 DJNZ R7,DLY1 POP PSW RET END 21 April 2009 L.T.Vinh 25 5. Một số bài tập thực hành Một số bài tập ? 1- Thuật toán? 2- Lưu đồ? 3- Chương trình? 4- Chạy thử nghiệm? 5- Xe xét, điều chỉnh (lặp đi, lặp lại) 21 April 2009 L.T.Vinh 26 L.T.Vinh 13
  14. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Giao tiếp với LED ma trận 21 April 2009 L.T.Vinh 27 5. Một số bài tập thực hành Kết nối với VĐK 21 April 2009 L.T.Vinh 28 L.T.Vinh 14
  15. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Bật sáng ; chuong trinh: Bat LED (0,0) ; Khai bao Bien dia chi HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C LED (0,0) TuDK EQU 0C017h ; Control Word Register ; Khoi dong ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 ; Khoi dong 8255A MOV DPTR,#TuDK MOV A,#80h ; Tu dieu khien MOVX @DPTR,A ; Khoi tao cho 8255A ; Dua gia tri DK ra Port A MOV A,#00000001B MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh ; Dua gia tri DK ra Port C MOV DPTR,#COTC ; DPTR tro vao PC MOV A,#11111110B ; Gia tri lieu cho PC MOVX @DPTR,A ; PC = A END 21 April 2009 L.T.Vinh 29 5. Một số bài tập thực hành Bật sáng ; chuong trinh: Bat LED (7,7) ; Khai bao Bien dia chi HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C LED (7,7) TuDK EQU 0C017h ; Control Word Register ; Khoi dong ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 ; Khoi dong 8255A MOV DPTR,#TuDK MOV A,#80h ; Tu dieu khien MOVX @DPTR,A ; Khoi tao cho 8255A ; Dua gia tri DK ra Port A MOV A,#10000000B MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh ; Dua gia tri DK ra Port C MOV DPTR,#COTC ; DPTR tro vao PC MOV A,#01111111B ; Gia tri lieu cho PC MOVX @DPTR,A ; PC = A END 21 April 2009 L.T.Vinh 30 L.T.Vinh 15
  16. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Bật sáng Thuật toán Quét nhu bai truoc LED (0,0) ; BAT LED (0,0) LP: MOV A,#00000001B MOV DPTR,#HANGA Và LED (7,7) MOVX @DPTR,A ; PA = 0FFh MOV DPTR,#COTC ; DPTR tro vao PC MOV A,#11111110B ; DL cho PC MOVX @DPTR,A ; PC = A CALL DELAY ; Luu y Do dai ; BAT LED (7,7) MOV A,#10000000B MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh MOV DPTR,#COTC ; DPTR tro vao PC MOV A,#01111111B ; DL cho PC MOVX @DPTR,A ; PC = A JMP LP END 21 April 2009 L.T.Vinh 31 5. Một số bài tập thực hành Quét nhanh - chậm ; chuong trinh con tao tre. DELAY: PUSH PSW MOV PSW,#18h ; Bank 3 MOV R7,#0 DLY1: MOV R6,#0 DLY2: NOP NOP NOP DJNZ R6,DLY2 DJNZ R7,DLY1 POP PSW RET Tổng độ dài thời gian trể: t=R7 x R6 (1-256), lưu ý: 0=256, 1 bé nhất 21 April 2009 L.T.Vinh 32 L.T.Vinh 16
  17. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Cột LED chạy? PA=1 màu đỏ PB=1 m. xanh PA=PB=1 vàng 21 April 2009 L.T.Vinh 33 5. Một số bài tập thực hành Lưu đồ thuật toán – Chương trình 21 April 2009 L.T.Vinh 34 L.T.Vinh 17
  18. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Một số bài tập ? 1- Bật/tắt một điểm LED bất kỳ, với các màu 1- Thuật toán? đỏ, xanh, vàng. Ví dụ: LEDs (1,3); 2- Lưu đồ? (2,6); (5,5); v.v. 2- Thử nghiệm thuật toán 3- Chương trình? QUÉT cho 2 điểm LED bất kỳ không 4- Chạy thử nghiệm? cùng hàng, cột với thời gian trể nhanh – 5- Xe xét, điều chỉnh chậm khác nhau (lặp đi, lặp lại) 21 April 2009 L.T.Vinh 35 5. Một số bài tập thực hành KT Lập trình cho VĐK Cấu trúc chương trình Ví dụ: X EQU 0C014H; Định nghĩa, khai báo biến, hằng Y DB 00100001B; ORG 2000H Bắt đầu: ORG 2000h MOV SP,#50H MOV PSW,#00H Chương trình chính CLR P1,00H Các chương trình con CALL Delay Delay: ; chuong trinh delay Kết thúc END END 21 April 2009 L.T.Vinh 36 L.T.Vinh 18
  19. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành KT Lập trình cho VĐK 1. Truy cập bít 2. Mảng 1 chiều CLR P1.0 CLR P1 CLR P1.1 Hoặc CLR P1.2 MOV a,#00000000h CLR P1.3 MOV P1,a 21 April 2009 L.T.Vinh 37 5. Một số bài tập thực hành HANGA EQU 0C014H MANG2: DB 00000000B KT Lập trình cho VĐK DB 11111100B DB 00010010B <= Mảng 2 chiều ORG 2000H . MOV B,0 MOV R1,3 MOV DPTR,#MANG2 ; Tro vao mang LAP: MOVC A,@B+DPTR ; Lay du lieu MOV DPTR,#HANGA MOVX @DPTR,A ; Dua DL ra HANGA INC B ; Tro den phan tu k.tiep DJNZ R1,LAP END 21 April 2009 L.T.Vinh 38 L.T.Vinh 19
  20. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Hiện ra chữ A trên ma trận LED 21 April 2009 L.T.Vinh 39 5. Một số bài tập thực hành Hiện ra chữ A trên ma trận LED 21 April 2009 L.T.Vinh 40 L.T.Vinh 20
  21. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Hiện ra chữ A trên ma trận LED 21 April 2009 L.T.Vinh 41 5. Một số bài tập thực hành Một số bài tập ? Hiện thị các chữ, số, 1- Thuật toán? biểu tượng khác tùy ý như chữ: B, 2- Lưu đồ? C, E ; số 1, 2, 3- Chương trình? 3 ; Quả tim v.v. 4- Chạy thử nghiệm? Hai chế độ: Tĩnh và 5- Xe xét, điều chỉnh động (lặp đi, lặp lại) 21 April 2009 L.T.Vinh 42 L.T.Vinh 21
  22. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Giao tiếp với Bàn phím 21 April 2009 L.T.Vinh 43 5. Một số bài tập thực hành Giao tiếp với Bàn phím Phát hiện phím bấm - Đọc dữ liệu cột VD: D3 – D0 = 1011 nghĩa là 1 phím trên cột D2 đã được ấn. - Đọc dữ liệu hàng cho đến khi tìm được phím ấn thì dừng. VD: D3 – D0 = 1110, phím được ấn nằm trên hàng D0 - Vậy đó là số 2 21 April 2009 L.T.Vinh 44 L.T.Vinh 22
  23. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Giao tiếp với Bàn phím Dữ liệu đọc từ địa chỉ 0C004H có dạng: 1xxxxxxx,D7=1: là chưa có phím bấm. 0xxxxxxx, D7=0: có phím đã bấm, thì tổ hợp 5 bit thấp nhất trong đó chính là mã của phím được bấm. Lưu ý: khi đã nhận được mã của phím, ta cần truy cập tới địa chỉ 0C000H để lập lại bit cờ I7 (D7) về 1 chuẩn bị cho quá trình kiểm tra phím tiếp theo. 21 April 2009 L.T.Vinh 45 5. Một số bài tập thực hành Giao tiếp với Bàn phím 21 April 2009 L.T.Vinh 46 L.T.Vinh 23
  24. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Giao tiếp với Bàn phím VD: Ấn phím 2 để bật/tắt LED 2 21 April 2009 L.T.Vinh 47 5. Một số bài tập thực hành Lập trình cho VĐK 8051 – Vòng lặp MOV A,B CJNE A,#2,Viec2 ; Việc 1 Viec2: ; Việc 2 CJNE A,#3,Viec4 ; Việc 3 Viec4: ; Việc 4 Cấu trúc Case 21 April 2009 L.T.Vinh 48 L.T.Vinh 24
  25. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Vòng lặp FOR MOV A,#10 MOV R1,#0 Viec1: INC R1 DJNZ A,Viec1 ;giam A, A#0 nhay 21 April 2009 L.T.Vinh 49 5. Một số bài tập thực hành Vòng lặp DO-WHILE Lap: MOV DPTR,#KEY MOVX A,@DPTR ; quet phim JB ACC.7,Lap ; tiep tuc quet neu bit co = 1 21 April 2009 L.T.Vinh 50 L.T.Vinh 25
  26. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Một số bài tập (1) 21 April 2009 L.T.Vinh 51 5. Một số bài tập thực hành Một số bài tập (2) 21 April 2009 L.T.Vinh 52 L.T.Vinh 26
  27. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Một số bài tập (3) 21 April 2009 L.T.Vinh 53 5. Một số bài tập thực hành Một số bài tập khác (4) 21 April 2009 L.T.Vinh 54 L.T.Vinh 27
  28. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 5. Một số bài tập thực hành Một số bài tập khác (5) 21 April 2009 L.T.Vinh 55 5. Một số bài tập thực hành Một số bài tập khác (6) 21 April 2009 L.T.Vinh 56 L.T.Vinh 28
  29. ĐHSư phạm Kỹ thuật Vinh 21 April 2009 Chúc các bạn học tốt 21 April 2009 L.T.Vinh 57 L.T.Vinh 29