Tải bản đầy đủ (.pdf) (10 trang)

viết chương trình điều khiển 8 led sáng dồn, chương 10 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (155.03 KB, 10 trang )

Chương 10: CHƯƠNG TRÌNH CHẠY
CHỮ “-HA- NOI-” TRÊN 8 LED TỪ
PHẢI SANG TRÁI
I. Mục đích yêu cầu: biết cách viết chương trình xử lý chuỗi di
chuyển từ trái sang phải hoặc từ phải sang trái.
II. Trình tự thực hiện:
1. K
ết nối mạch theo trình tự :
- Dùng bus dây kết nối port 0 đến pinhd điều khiển các
đoạn a,b,c,d,e,f,g,dp v
à kết nối port 2 đến pinhd điều
khiển quét hàng.
- G
ắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul
nạp của hệ thống 2.
2. Khởi động phần mềm, mở File mới và đặt tên file.
3. Vi
ết chương trình với tên file vừa đặt :
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
;chuong trinh hien thi chu "-HA-NOI-" chay tu phai sang trai
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
org 0000h ;bat dau chuong trinh
mainc: mov dptr,#0500h
mainb: mov r4,#255 ;so lan lap lai hien thi chuoi
main: mov r2,#11111110b ;luu ma quet
mov r3,#00
setb c
maina: mov a,r3
movc a,@a+dptr;lay ma chu


mov p0,a
mov p2,r2
lcall delay
mov p2,#0FFh ;tat het de chong lem
inc r3 ;xu ly led ke
mov a,r2 ;xoay ma quet
rlc a
mov r2,a
jc maina
djnz r4,main
inc dptr
mov a,dpl
cjne a,#10h,mainb ;so sanh dia chi ket thuc
vung data
ljmp mainc ;quay lai lam lai tu dau
delay: mov r6,#01h
de2: mov r7,#050h
djnz r7,$
djnz r6,de2
ret
delaytat: mov r6,#0h
de2a: mov r7,#0h
djnz r7,$
djnz r6,de2a
ret
org 508h
machu: db 0bfh,089h,088h,0bfh,0c8h,0c0h,0f9h,0bfh
end
4. Th
ực hiện các bước giống như bài chuẩn và xem kết quả

có hiển thị đúng yêu cầu hay không và hiệu chỉnh lại cho
đúng.
III. Câu hỏi và bài tập ứng dụng:
1. Hãy viết chương trình chạy theo chiều ngược lại.
2. Hãy kết hợp 2 chương trình lại thành 1 chương trình chạy
từ phải sang trái và từ trái sang phải.
3. Khi muốn hiển thị thêm nhiều dữ liệu nữa thì ta phải điều
chỉnh chương trình như thế nào? Và điều chỉnh dữ liệu ra
sao?
4. Khi vùng d
ữ liệu lớn hơn làm thay đổi cả dph ví dụ như
0500H đến 0600 th
ì chương trình được thay đổi như thế
nào?
BÀI SỐ 2-9: CHƯƠNG TRÌNH ĐIỀU KHIỂN BÀN PHÍM
VÀ HI
ỂN THỊ MÃ CỦA PHÍM NHẤN TRÊN LED 7 ĐOẠN
I. Mục đích u cầu: biết cách viết chương trình điều khiển qt
phím, tạo mã phím và hiển thị mã phím. Khi chạy chương trình
này thì trên led s
ẽ có dấu chấm sáng và khi nhấn phím nào thì mã
c
ủa phím đó sáng trên led.
II. Trình tự thực hiện:
1. Giải thuật:
Mã phím = 00
DCBA = 1111
Đ
Cột = 1
Quét = 1110

Đọc trạng thái hàng DCBA
S
Begin
Xoay DCBA qua Carry
2. Kết nối mạch theo trình tự :
- Dùng bus dây kết nối port 0 đến pinhd điều khiển các
đoạn a,b,c,d,e,f,g,dp v
à kết nối port 2 đến pinhd điều
khiển quét hàng.
-
Dùng port 1 chưa qua IC đệm kết nối với pindn của bàn
phím.
- G
ắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul
nạp của hệ thống 2.
3. Khởi động phần mềm, mở File mới và đặt tên file.
4. Vi
ết chương trình với tên file vừa đặt :
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
;chuong trinh quet phim dung he thong 1 ma phim hien thi tren
1led
;dung port 1 chua qua IC dem ket noi voi pinhd cua ban fim
;dung port0 va port 2 ket noi dieu khien led 7 doan
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
org 0000h
mov sp,#60h
mov dptr,#0500h
mov p2,#0feh ;xuat ma quet cho 1 led sang

mov p0,#7fh
main: lcall keypres ;goi chtr con quet phim
cjne a,#0ffh,main1
sjmp main
main1: lcall gma_hthi ;goi chtr con giai ma hien thi
sjmp main
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
;Chuong trinh con giai ma fim nhan va hien thi ra 1 led 7 doan
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
gma_hthi: movc a,@a+dptr
mov p0,a
ret
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
;Chuong trinh con quet phim va chong doi phim
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
keypres: mov r3,#10 ;nhap so dem 10 lan
keypres1 : lcall KEY ;Neu co phim an thi co c=1
jc pn1 ;kiem tra tiep neu c = 1
ret ;Neu khong co phim nhan thi co
c=0
pn1: djnz r3,keypres1 ;Quay ve lap lai chong nay
push acc ;Cat noi dung ma phim trong A
keypres2: mov r3,#10 ;Nhap so dem 10 lan cho
nha phim
keypres3: lcall key ;Co phim nhan hay khong
jc keypres2 ;Co thi kiem tra lai

djnz r3,keypres3 ;Khong thi lap lai 50 lan va
dam bao
pop acc ;Khoi phuc lai gia tri cho A
ret ;ket thuc mot chuong trinh con
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
;Chuong trinh con quet phim
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx
key: mov r7,#0feh ;bat dau voi cot so 0(feh)
mov r6,#4 ;Su dung r6 lam bo dem
mov r5,#00
key1: mov p1,r7 ;xuat ma quet ra cot
mov a,p1 ;Doc lai port1 de xu ly tiep theo
anl a,#0f0h ;xoa 4 bit thap la hang
cjne a,#0f0h,key2 ;co nhan fim thi nhay
mov a,r7
rl a ;xoay de chuyen den cot ke tiep
mov r7,a
mov a,r5 ;chuyen ma fim sang cot ke
add a,#4
mov r5,a
djnz r6,key1 ;Neu nhu sau moi lan 1 cot ma
khong
clr c ;clr c neu nhu khong co phim
duoc an
mov a,#0ffh ;thoat voi ma trong a = FFh
ret
key2: swap a
key4: rrc a ;xoay sang phai tim bit 0

jnc key3 ;nhay neu (c)=0
inc r5 ;tang ma fim len cot ke
sjmp key4 ;tiep tuc cho den khi duoc (C)=0
key3: mov a,r5
setb c
ret
;khai bao du lieu ma phim
org 500h
mafim: db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h
db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh
end
5. Thực hiện các bước giống như bài chuẩn và xem kết quả
có hiển thị đúng yêu cầu hay không và hiệu chỉnh lại cho
đúng.
III. Bài tập ứng dụng:
1. Hãy viết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8
led và khi nh
ấn 1 phím số 1 thì chuỗi đó dịch chuyển sang
trái.
2. Hãy vi
ết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8
led và khi nh
ấn 1 phím số 1 thì chuỗi đó dịch chuyển sang
trái. Nhấn phím số 2 thì chuỗi dịch chuyển sang phải.
3. Hãy viết chương trình hiển thị chuỗi ‘-HA- NOI- ‘ trên 8
led và khi nh
ấn 1 phím số 1 thì tắt chuỗi nếu nhấn lại thì
sáng chu
ỗi trở lại.


×