Chương 4: ĐIỀU KHIỂN LED 7 ĐOẠN CÁC CHƯƠNG TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SÁNG I.. Mục đích yêu cầu: biết được cách tìm mã điều khiển led 7 đoạn , biết nguyên lý điều khiển led theo phươn
Trang 1Chương 4: ĐIỀU KHIỂN LED 7
ĐOẠN CÁC CHƯƠNG TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SÁNG
I Mục đích yêu cầu: biết được cách tìm mã điều khiển led 7 đoạn
, biết nguyên lý điều khiển led theo phương pháp quét và cách viết chương trình điều khiển led 7 đoạn Sinh viên phải hiểu rằng 1 yêu cầu điều khiển cĩ thể thực hiện bằng nhiều chương trình khác nhau
II Trình tự thực hiện:
1 Giải thuật:
2 Kết nối mạch theo trình tự :
Begin
Gởi mã hiển thị ra led 1
Gởi mã quét chọn led
End
Gởi mã hiển thị ra led 2
Gởi mã quét chọn led
Gởi mã hiển thị ra led 8
Gởi mã quét chọn led
Trang 2- 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 Vd: bai2_1
4 Viết chương trình với tên file vừa đặt :
Ví dụ 1:
; chuong trinh thu led D1 sang so 9
org 0000h
sjmp $
end
Chương trình trên chỉ có tác dụng thử cho một led sáng Để
có thể sáng 8 led từ số 0 đến số 7 ta hãy viết chương trình sau:
Ví dụ 2:
; chuong trinh thu 8 led sang tu so 0 den so 7
org 0000h
lcall delay
lcall delay
Trang 3lcall delay
lcall delay
lcall delay
lcall delay
lcall delay
lcall delay
sjmp b11
delay: mov r5,#1
del3: mov r7,#01h
del2 : mov r6,#0ffh
del1 : djnz r6,del1
djnz r7,del2
djnz r5,del3
ret
5 Thực hiện các bước giống như bài chuẩn
Trang 4Chú ý: Nếu khi chạy mà kết quả hiển thị không đúng thì hãy xem
lại chương trình, nếu chương trình hoàn toàn đúng thì hãy xem kết nối 2 port điều khiển với led có đúng [ trên bo mạch có ghi tên và thứ tự các pinhhd
III Bài tập ứng dụng:
1 Ở ví dụ 1, muốn sáng số 2 ở led D3 thì phải thay đổi gì trong chương trình?
2 Trong trường hợp nào thì nhiều led sáng cùng một lúc và cùng một dữ liệu?
3 Ở ví dụ 2, hãy cho biết led sáng như thế nào:
a Từng led sáng các led còn lại tắt
b Tất cả các led sáng
4 Hãy thử trên máy, khi thay đổi thời gian delay:
a Muốn thời gian delay lớn nhất thì thông số đó là bao nhiêu?
b Muốn thời gian delay nhỏ nhất thì thông số đó là bao nhiêu?
c Trong từng trường hợp hãy cho biết cường độ sáng của led có thay đổi hay không và cho biết trong trường hợp nào thì led sáng rõ?
d Hãy tìm thông số cho chương trình delay là bao nhiêu để 8 led sáng đều và rõ nhất
IV Bài tập mẫu:
Ở ví dụ 2, để sáng cùng 1 lúc 8 led ta sử dụng phương pháp quét led tức là tại một thời điểm chỉ có 1 led sáng và khi giảm thời gian delay vừa với thời gian lưu ảnh của mắt Lúc này, chúng ta sẽ thấy 8 led sáng cùng một lúc Bài tập mẫu sau giống ví dụ 2 nhưng được viết theo kiểu khác:
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
Trang 5;chuong trinh thu 8 led sang tu so 0 den so 7 nhung duoc viet theo kieu khac
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
mov dph,#0500h
mov r3,#20h
doan
movc a,@a+dptr;lay ma 7 doan mov p0,a
movc a,@a+dptr;lay ma quet mov p2,a
lcall delay
inc r2 inc r3 djnz r4,b212
del3 :mov r7,#01h
del2 :mov r6,#0ffh
Trang 6del1 :djnz r6,del1
djnz r7,del2 djnz r5,del3 ret
org 500h
org 520h maquet:db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh
end