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

pdf29 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: dkS00TYs | Lượt xem: 2216 | Lượt tải: 1download
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:

  • pdfBài giảng Vi điều khiển 8051 - Lê Thế Vinh.pdf