ỨNG DỤNG HỆ THỐN GI ĐIỀU KHIỂN LED MA TRẬN.
TỰA BÀ I: CHƯƠNGTRÌNH HIỂN THỊ CHUỖI “SPKT” TRÊN LEDMA TRẬN
mov a,dpl cjne a,#32,maina ljmp main delay: mov r5,#1 de: mov r6,#50 djnz r6,$ djnz r5,de ret org 0500h
mach: db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led db 0B3H,06DH,06DH,06DH,09BH,0ffh ;ma chu S
db 001H,0EDH,0EDH,0EDH,0F3H,0ffh ;ma chu P db 001H,0EFH,0D7H,0BBH,07DH,0ffh ;ma chu K db 0FDH,0FDH,001H,0FDH,0FDH,0ffh ;ma chu T
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led
end
4. Thực hiện các bước giống như các bài chuẩn cho đến khi mạch chạy đúng yêu cầu. III. Câu hỏi:
1. Muốn cho chuỗi chạy nhanh hơn hoặc chậm hơn thì phải làm gì ? IV. Bài tập ứng dụng:
1. Hãy điều chỉnh chương trình đã viết để chuỗi chạy theo chiều từ trái sang phải. 2. Hãy viết chương trình hiển thị chuỗi “SPKT-DT”.
3. Hãy viết chương trình hiển thị chuỗi dài ví du: “MICROCONTROLLER 89CXX”. 4. Hãy viết chương trình hiển thị lần lượt chuỗi “SPKT” sáng lần lượt 2 màu xanh , đỏ. 5. Hãy tổ hợp các bài đã viết và bài tập để viết chương trình chuỗi chạy từ phải qua trái và
từ trái qua phải. V. Bài tập mẫu:
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh chay chuoi SPKT tu trai sang phai hai mau xanh do
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hang equ p3 ;hang ket noi voi port 3
cotx equ p0 ;cot xanh ket noi voi port 0 cotd equ p2 ;cot do ket noi voi port 2 org 0000h
mov cotx,#0 ;tat quet neu co ket noi mov cotd,#0 ;tat quet neu co ket noi
main: lcall htdo ;goi chuong trinh con chay chu mau do lcall htxanh ;goi chuong trinh con chay chu mau xanh sjmp main
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau do
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htdo: mov dptr,#mach
maina: mov r2,#150 mainb: mov r1,#00
mov r3,#00000001b ;ma quet mainc: mov a,r1
movc a,@a+dptr mov hang,a mov cotx,r3 lcall delay mov cotx,#00h
inc r1 ;tang len de lay byte ke mov a,r3 ;dich chuyen ma quet
rl a mov r3,a cjne r1,#8,mainc djnz r2,mainb inc dptr mov a,dpl cjne a,#32,maina ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau xanh
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htxanh: mov dptr,#mach
maini: mov r2,#150 mainh: mov r1,#00
mov r3,#00000001b ;ma quet maing: mov a,r1
movc a,@a+dptr mov hang,a mov cotd,r3 lcall delay mov cotd,#00h
inc r1 ;tang len de lay byte ke mov a,r3 ;dich chuyen ma quet
rl a mov r3,a cjne r1,#8,maing djnz r2,mainh inc dptr mov a,dpl cjne a,#32,maini ret delay: mov r5,#1 de: mov r6,#50 djnz r6,$ djnz r5,de ret org 0500h
mach: db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led db 0B3H,06DH,06DH,06DH,09BH,0ffh ;ma chu S
db 001H,0EDH,0EDH,0EDH,0F3H,0ffh ;ma chu P db 001H,0EFH,0D7H,0BBH,07DH,0ffh ;ma chu K db 0FDH,0FDH,001H,0FDH,0FDH,0ffh ;ma chu T
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led
end
chương trình mẫu thứ 2
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh chay chuoi SPKT tu trai sang phai 3 mau xanh do cam
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hang equ p3 ;hang ket noi voi port 3
cotx equ p0 ;cot xanh ket noi voi port 0 cotd equ p2 ;cot do ket noi voi port 2 org 0000h
mov cotx,#0 ;tat quet neu co ket noi mov cotd,#0 ;tat quet neu co ket noi
main: lcall htdo ;goi chuong trinh con chay chu mau do lcall htxanh ;goi chuong trinh con chay chu mau xanh lcall htcam ;goi chuong trinh con chay chu mau cam sjmp main
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau do
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htdo: mov dptr,#mach
maina: mov r2,#100 ;so lan lap lai mainb: mov r1,#00
mov r3,#00000001b ;ma quet mainc: mov a,r1
movc a,@a+dptr mov hang,a mov cotx,r3 lcall delay mov cotx,#00h
inc r1 ;tang len de lay byte ke mov a,r3 ;dich chuyen ma quet
rl a mov r3,a cjne r1,#8,mainc djnz r2,mainb inc dptr mov a,dpl cjne a,#32,maina ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau xanh
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htxanh: mov dptr,#mach
maini: mov r2,#100 ;so lan lap lai mainh: mov r1,#00
mov r3,#00000001b ;ma quet maing: mov a,r1
movc a,@a+dptr mov hang,a mov cotd,r3 lcall delay mov cotd,#00h
inc r1 ;tang len de lay byte ke mov a,r3 ;dich chuyen ma quet
rl a mov r3,a cjne r1,#8,maing djnz r2,mainh inc dptr mov a,dpl cjne a,#32,maini ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau cam
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htcam: mov dptr,#mach
mainx: mov r2,#250 mainy: mov r1,#00
mov r3,#00000001b ;ma quet mainw: mov a,r1
movc a,@a+dptr mov hang,a mov cotx,r3 mov cotd,r3 lcall delay mov cotx,#00h mov cotd,#00h
inc r1 ;tang len de lay byte ke mov a,r3 ;dich chuyen ma quet
rl a mov r3,a cjne r1,#8,mainw djnz r2,mainy inc dptr mov a,dpl cjne a,#32,mainx ret delay: mov r5,#1 de: mov r6,#50
djnz r6,$ djnz r5,de ret
org 0500h
mach: db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led db 0B3H,06DH,06DH,06DH,09BH,0ffh ;ma chu S
db 001H,0EDH,0EDH,0EDH,0F3H,0ffh ;ma chu P db 001H,0EFH,0D7H,0BBH,07DH,0ffh ;ma chu K db 0FDH,0FDH,001H,0FDH,0FDH,0ffh ;ma chu T
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led end
chương trình mẫu thứ 3
;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxx
;chuong trinh chay chuoi SPKT tu trai sang phai 4 hang tren mau do 4 hang duoc mau xanh ;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxx
lap equ 100
hang equ p3 ;hang ket noi voi port 3 cotx equ p0 ;cot xanh ket noi voi port 0 cotd equ p2 ;cot do ket noi voi port 2 org 0000h
mov cotx,#0 ;tat quet neu co ket noi mov cotd,#0 ;tat quet neu co ket noi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chay mau xanh do : 4 hang tren xanh - 4 hang duoi do
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mov r5,#lap
mov dptr,#mach ; chpn4: mov r0,#00h
chpn3: mov r2,05 ;thuc hien 250 lan quet
chpn2: mov r1,00 ;copy dia chi dau de quan li data mov r3,#8 ;so lan hien thi la 8 cot
mov r4,#1 ;ma quet cot
chpn1: mov a,r1 ;chuyen dia chi tuong toi cho A movc a,@a+dptr ;lay data dua vao A
chpppn1: push acc
orl a,#0fh ;xoa 4 bit thap mov hang,a
mov cotx,r4
lcall delay ;goi chuong trinh con delay mov cotx,#00
pop acc
orl a,#0f0h ;xoa 4 bit cao mov hang,a
mov cotd,r4
lcall delay ;goi chuong trinh con delay
mov cotd,#00
lcall xoayr4 ;xoay ma quet
inc r1 ;chuan bi lay byte data ke djnz r3,chpn1 ;chuan bi sang cot ke djnz r2,chpn2 ;thuc hien chu ky tiep theo
inc r0 ;lay tang len 1 hang de lay 8buyte quay lai pn3 cjne r0,#40,chpn3
ljmp chpn4 ;chua het thi quay lai
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay co kiem tra nhan du lieu
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov 75h,#1 del2: mov 76h,#50 del1: djnz 76h,del1 djnz 75h,del2 ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;ch trinh con xoay ma quet dieu khien cot
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xoayr4: mov a,r4 ;lay data tu port 2
rl a ;xoay a sang phai de quet cot ke mov r4,a
ret
org 0500h
mach: db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led db 0B3H,06DH,06DH,06DH,09BH,0ffh ;ma chu S
db 001H,0EDH,0EDH,0EDH,0F3H,0ffh ;ma chu P db 001H,0EFH,0D7H,0BBH,07DH,0ffh ;ma chu K db 0FDH,0FDH,001H,0FDH,0FDH,0ffh ;ma chu T
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;8 byte ff de tat 8 led end
210
PHẦN 4: