Mục đích yêu cầu: làm quen với cách viết chương trình đếm và sau khi thực hành xong sinh viên cĩ thể viết các chương trình đếm với số đếm tùy ý.. Trình tự thực hiện: 1... Kết nối mạch t
Trang 1Chương 5: CHƯƠNG TRÌNH ĐẾM TỪ 00 ĐẾN 60 HIỂN THỊ TRÊN 2 LED
I Mục đích yêu cầu: làm quen với cách viết chương trình đếm và
sau khi thực hành xong sinh viên cĩ thể viết các chương trình đếm với số đếm tùy ý
II Trình tự thực hiện:
1 Giải thuật:
Giải mã BCD của giây sang 7 đoạn
Delay và hiển thị
Đ
S
Khởi tạo giây =00
Giây = 60 Tăng giây lên 1 đơn vị
end Begin
Trang 22 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
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 xxxxxxxxxxxxxxxxxxxxxxx
;chuong trinh dem len tu 00 den 60 hien thi tren 2 led cua 8 led quet
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
den so '9'
ma7doan: db
0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
mov tmod,#01h ;timer0: mod 1 - dem 16 bit
lcall delay_hthi ;goi chtr con delay co hien thi
Trang 3add a,#1 ;tang giay len 1
cjne giay,#60h,main1 ;ss giay voi 60
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
; chuong trinh con giai ma
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
movc a,@a+dptr;lay ma 7 doan
mov a,giay
thap
movc a,@a+dptr;lay ma 7 doan hang chuc mov 26h,a
ret
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
;chuong trinh delay co goi chuong trinh hien thi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
delay_hthi:mov 7fh,#10h
mov th0,#00 mov tl0,#00 setb tr0
Trang 4clr tf0
jnb tf0,del1 djnz 7fh,del2 ret
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
;chuong trinh con hien thi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
mov r0,#27h
mov p2,a lcall delay1 mov p2,#0ffh dec r0
cjne r0,#25h,ht1 ret
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx
;chuong trinh con delay1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx
ret end
Trang 55 Thực hiện các bước giống như các bài chuẩn cho đến khi mạch đếm đúng từ 00 đến 59
III Câu hỏi và bài tập ứng dụng:
1 Tại sao phải chèn chương trình con hiển thị vào chương trình con delay? Hãy thử bỏ lệnh gọi chương trình con hiển thị trong chương trình con delay và cho nó vào chương trình chính sau lệnh gọi chương trình con delay rồi cho biết kết quả như thế nào?
2 Hãy viết chương trình đếm lên từ 00 đến 99 thì làm như thế nào?
3 Hãy viết chương trình đếm xuống từ 60 về 00 thì làm như thế nào?