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

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

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 (158.69 KB, 6 trang )

Chng 4: IU KHIN LED 7
ON
CC CHNG TRèNH IU KHIN LED 7 ON SNG
I. Mc ớch yờu cu: bit c cỏch tỡm mó iu khin led 7 on
, bit nguyờn lý iu khin led theo phng phỏp quột v cỏch vit
chng tr
ỡnh iu khin led 7 on. Sinh viờn phi hiu rng 1 yờu
c
u iu khin cú th thc hin bng nhiu chng trỡnh khỏc
nhau.
II. Trỡnh t thc hin:
1. Gii thut:
2. Kt ni mch theo trỡnh t :
Beg
in
Gụỷi maừ hieồn thũ ra
led 1
Gụỷi maừ queựt choùn led
End
Gụỷi maừ hieồn thũ ra
led 2
Gụỷi maừ queựt choùn led
Gụỷi maừ hieồn thũ ra
led 8
Gụỷi maừ queựt choùn led
- 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
mov p2,#11111110b ; cho phep D1 sang
mov p0,#10010000b ; ma cua so 9
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
b11: mov p2,#11111110b ; cho phep D1 sang
mov p0,#11000000b ; ma cua so 0
lcall delay
mov p2,#11111101b ; cho phep D2 sang
mov p0,#11111001b ; ma cua so 1
lcall delay
mov p2,#11111011b ; cho phep D3 sang
mov p0,#10100100b ; ma cua so 2
lcall delay
mov p2,#11110111b ; cho phep D4 sang
mov p0,#10110000b ; ma cua so 3
lcall delay
mov p2,#11101111b ; cho phep D5 sang

mov p0,#10011001b ; ma cua so 4
lcall delay
mov p2,#11011111b ; cho phep D6 sang
mov p0,#10010010b ; ma cua so 5
lcall delay
mov p2,#10111111b ; cho phep D7 sang
mov p0,#10000010b ; ma cua so 6
lcall delay
mov p2,#01111111b ; cho phep D8 sang
mov p0,#11111000b ; ma cua so 7
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.
Chú ý: 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

;chuong trinh thu 8 led sang tu so 0 den so 7 nhung duoc viet theo
kieu khac
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
org 0000h ;bat dau chuong trinh
mov dph,#0500h
b213: mov r4,#08h ;bien dem 8 lan goi
mov r2,#00h ;quan ly addr byte thap
mov r3,#20h
b212: mov a,r2 ;dptr luu dia chi vung nho ma 7
doan
movc a,@a+dptr;lay ma 7 doan
mov p0,a
mov a,r3 ;dptr luu dia chi vung nho ma quet
movc a,@a+dptr;lay ma quet
mov p2,a
lcall delay
mov p2,#0ffh ;tat het de chong lem
inc r2
inc r3
djnz r4,b212
sjmp b213 ;quay lai lam lai tu dau
delay: mov r5,#1
del3 :mov r7,#01h
del2 :mov r6,#0ffh
del1 :djnz r6,del1
djnz r7,del2
djnz r5,del3
ret
org 500h

ma7d: db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h
org 520h
maquet:db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh
end

×