Bài giảng Vi điều khiển 8051 - Lê Thế Vinh
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
Tóm tắt nội dung Bài giảng Vi điều khiển 8051 - Lê Thế Vinh, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 8 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 4. Bộ thực tập MDA-EMS51 Một số giao diện: … F2, F3, - F5, F6. ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 9 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 4. Bộ thực tập MDA-EMS51 Một số giao diện: … F2, F3, - F5, F6. ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 10 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 4. Bộ thực tập MDA-EMS51 Một số giao diện: … F2, F3, - F5, F6. ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 11 21 April 2009 L.T.Vinh 21 4. Bộ thực tập MDA-EMS51 Một số giao diện: … F2, F3, - F5, F6. 21 April 2009 L.T.Vinh 22 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 12 21 April 2009 L.T.Vinh 23 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 24 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 13 21 April 2009 L.T.Vinh 25 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 26 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) ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 14 21 April 2009 L.T.Vinh 27 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 28 5. Một số bài tập thực hành Kết nối với VĐK ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 15 21 April 2009 L.T.Vinh 29 5. Một số bài tập thực hành Bật sáng LED (0,0) ; chuong trinh: Bat LED (0,0) ;---- Khai bao Bien dia chi --- HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C 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 30 5. Một số bài tập thực hành Bật sáng LED (7,7) ; chuong trinh: Bat LED (7,7) ;---- Khai bao Bien dia chi --- HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 16 21 April 2009 L.T.Vinh 31 5. Một số bài tập thực hành Bật sáng LED (0,0) Và LED (7,7) nhu bai truoc ;---- BAT LED (0,0) --- LP: MOV A,#00000001B MOV DPTR,#HANGA 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 Thuật toán Quét 21 April 2009 L.T.Vinh 32 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 17 21 April 2009 L.T.Vinh 33 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 34 5. Một số bài tập thực hành Lưu đồ thuật toán – Chương trình ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 18 21 April 2009 L.T.Vinh 35 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) 1- Bật/tắt một điểm LED bất kỳ, với các màu đỏ, xanh, vàng. Ví dụ: LEDs (1,3); (2,6); (5,5); v.v. 2- Thử nghiệm thuật toán QUÉT cho 2 điểm LED bất kỳ không cùng hàng, cột với thời gian trể nhanh – chậm khác nhau 21 April 2009 L.T.Vinh 36 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 Định nghĩa, khai báo biến, hằng Bắt đầu: ORG 2000h Chương trình chính Các chương trình con Kết thúc END Ví dụ: X EQU 0C014H; Y DB 00100001B; ORG 2000H MOV SP,#50H MOV PSW,#00H CLR P1,00H CALL Delay Delay: ; chuong trinh delay END ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 19 21 April 2009 L.T.Vinh 37 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.1 CLR P1.2 CLR P1.3 CLR P1 Hoặc MOV a,#00000000h MOV P1,a 21 April 2009 L.T.Vinh 38 5. Một số bài tập thực hành KT Lập trình cho VĐK <= Mảng 2 chiều HANGA EQU 0C014H MANG2: DB 00000000B DB 11111100B DB 00010010B 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 20 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 5. Một số bài tập thực hành Hiện ra chữ A trên ma trận LED ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 21 21 April 2009 L.T.Vinh 41 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 42 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) Hiện thị các chữ, số, biểu tượng khác tùy ý như chữ: B, C, E … ; số 1, 2, 3 …; Quả tim v.v. Hai chế độ: Tĩnh và động ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 22 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 21 April 2009 L.T.Vinh 44 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 ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 23 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 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 46 5. Một số bài tập thực hành Giao tiếp với Bàn phím ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 24 21 April 2009 L.T.Vinh 47 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 48 5. Một số bài tập thực hành Lập trình cho VĐK 8051 – Vòng lặp Cấu trúc Case 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 --- ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 25 21 April 2009 L.T.Vinh 49 5. Một số bài tập thực hành MOV A,#10 MOV R1,#0 Viec1: INC R1 DJNZ A,Viec1 ;giam A, A#0 nhay … Vòng lặp FOR 21 April 2009 L.T.Vinh 50 5. Một số bài tập thực hành Lap: MOV DPTR,#KEY MOVX A,@DPTR ; quet phim JB ACC.7,Lap ; tiep tuc quet neu bit co = 1 Vòng lặp DO-WHILE ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 26 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 (1) 21 April 2009 L.T.Vinh 52 5. Một số bài tập thực hành Một số bài tập (2) ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 27 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 (3) 21 April 2009 L.T.Vinh 54 5. Một số bài tập thực hành Một số bài tập khác (4) ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 28 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 (5) 21 April 2009 L.T.Vinh 56 5. Một số bài tập thực hành Một số bài tập khác (6) ĐH Sư phạm Kỹ thuật Vinh 21 April 2009 L.T.Vinh 29 21 April 2009 L.T.Vinh 57 Chúc các bạn học tốt
File đính kèm:
- Bài giảng Vi điều khiển 8051 - Lê Thế Vinh.pdf