CHƯƠNG TRÌNH HIỂN THỊ CHUỖI “SPKT” TRÊN LED MA TRẬN

Một phần của tài liệu Tài liệu Các bài thực hành về vi điều khiển pdf (Trang 83 - 90)

IV. Bài tập ứng dụng:

CHƯƠNG TRÌNH HIỂN THỊ CHUỖI “SPKT” TRÊN LED MA TRẬN

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

3. 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. 4. Giải thích nguyên lý hoạt động của chương trình:

• Chương trình thực hiện công việc lấy 8 byte dữ liệu bắt đầu từ 0500H đến 0507H gởi ra điều khiển 8 cột của led ma trận nhiều lần (trong chương trình viết là 150 lần).

• Sau đó lặp lại công việc giống như trên nhưng lấy 8 byte dữ liệu bắt đầu từ 0501H đến 0508H, ở lần này ta sẽ thấy có 1 cột bên phải sáng – đó chính là mã đầu tiên của chữ S.

• Tiếp tục thực hiện cho đến khi hết dữ liệu.

• Do chương trình không phức tạp nên tác giả không viết lưu đồ, bạn hãy tự viết thử.

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. Các chương trình mẫu:

Chương trình điều khiển led ma trận hiển thị 2 màu xanh đỏ chuỗi SPKT:

;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 solanhthi equ r2 ;luu so lan hien hti maquet equ r3

bdem8byte equ r1 ;dem dem so byte cua 1 ki tu bdn equ 20h

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,#machuoi

maina: mov solanhthi,#150 mainb: mov bdem8byte,#00

mainc: mov a,bdem8byte movc a,@a+dptr mov hang,a mov cotx,r3 lcall delay mov cotx,#00h

inc bdem8byte ;tang len de lay byte ke mov a,maquet ;dich chuyen ma quet

rl a mov maquet,a cjne bdem8byte,#8,mainc djnz solanhthi,mainb inc dptr mov a,dpl cjne a,#32,maina ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau xanh

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htxanh: mov dptr,#machuoi

maini: mov solanhthi,#150 mainh: mov bdem8byte,#00

mov maquet,#00000001b ;ma quet maing: mov a,maquet

movc a,@a+dptr mov hang,a mov cotd,r3 lcall delay mov cotd,#00h

inc bdem8byte ;tang len de lay byte ke mov a,maquet ;dich chuyen ma quet

rl a mov maquet,a cjne bdem8byte,#8,maing djnz solanhthi,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

machuoi: 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 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 điều khiển led ma trận hiển thị 3 màu xanh đỏ cam chuỗi SPKT:

;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 solanhthi equ r2 ;luu so lan hien hti maquet equ r3

bdem8byte equ r1 ;dem dem so byte cua 1 ki tu bdn equ 20h

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,#machuoi

maina: mov solanhthi,#100 ;so lan lap lai mainb: mov bdem8byte,#00

mov maquet,#00000001b ;ma quet mainc: mov a,bdem8byte

movc a,@a+dptr mov hang,a mov cotx,maquet lcall delay mov cotx,#00h

inc bdem8byte ;tang len de lay byte ke mov a,maquet ;dich chuyen ma quet

rl a mov maquet,a cjne bdem8byte,#8,mainc djnz solanhthi,mainb inc dptr mov a,dpl cjne a,#32,maina ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau xanh

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htxanh: mov dptr,#machuoi

maini: mov solanhthi,#100 ;so lan lap lai mainh: mov bdem8byte,#00

mov maquet,#00000001b ;ma quet maing: mov a,bdem8byte

movc a,@a+dptr mov hang,a mov cotd,r3 lcall delay mov cotd,#00h

inc bdem8byte ;tang len de lay byte ke mov a,maquet ;dich chuyen ma quet

rl a mov maquet,a cjne bdem8byte,#8,maing djnz solanhthi,mainh inc dptr mov a,dpl cjne a,#32,maini ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;hien thi mau cam

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx htcam: mov dptr,#machuoi

mainx: mov solanhthi,#250 mainy: mov bdem8byte,#00

mov maquet,#00000001b ;ma quet mainw: mov a,bdem8byte

movc a,@a+dptr mov hang,a mov cotx,r3 mov cotd,r3 lcall delay mov cotx,#00h mov cotd,#00h

inc bdem8byte ;tang len de lay byte ke mov a,maquet ;dich chuyen ma quet

rl a mov maquet,a cjne bdem8byte,#8,mainw djnz solanhthi,mainy inc dptr mov a,dpl cjne a,#32,mainx ret delay: mov r5,#1 de: mov r6,#50

ret

org 0500h

machuoi: 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 điều khiển led ma trận hiển thị chuỗi SPKT với phần trên led xanh, phần dưới led đỏ:

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh chay chuoi SPKT tu trai sang phai 4 hang tren mau xanh 4 hang duoc ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx lap equ 100

solanhthi equ r2 ;luu so lan hien hti maquet equ r3

bdem8byte equ r1 ;dem dem so byte cua 1 ki tu 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 chpn4: mov dptr,#machuoi ;

chpn3: mov solanhthi,#lap ;thuc hien lan quet

chpn2: mov bdem8byte,#00 ;copy dia chi dau de quan li data mov maquet,#1 ;ma quet cot

chpn1: mov a,bdem8byte ;chuyen dia chi tuong toi cho A movc a,@a+dptr ;lay data dua vao A

push acc ;cat tam du lieu vao ngan xep orl a,#0fh ;set 4 bit thap len thanh muc 1 tat led mov hang,a

mov cotd,maquet lcall delay ;goi chuong trinh con delay mov cotd,#00

pop acc ;lay lai data da cat

orl a,#0f0h ;set 4 bit cao len thanh muc 1 de tat led mov hang,a

mov cotx,maquet lcall delay ;goi chuong trinh con delay

mov cotx,#00

mov a,maquet ;lay data tu port 2

rl a ;xoay a sang phai de quet cot ke mov maquet,a

inc bdem8byte ;chuan bi lay byte data ke cjne bdem8byte,#8,chpn1 ;chuan bi sang cot ke djnz solanhthi,chpn2 ;thuc hien chu ky tiep theo inc dptr

mov a,dpl cjne a,#32,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 org 0500h

machuoi: 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

V. Bài tập:

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 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.

5. Hãy viết chương trình điều khiển led ma trận có giao tiếp với bàn phím và khi chạy chương trình thì led hiển thị dấu gạch ngang, khi nhấn kí tự nào thì mã của kí tự đó xuất hiện trên led ma trận.

PHẦN 5

Một phần của tài liệu Tài liệu Các bài thực hành về vi điều khiển pdf (Trang 83 - 90)

Tải bản đầy đủ (PDF)

(132 trang)