Cách 2:là cách thường dùng nhất dùng 4 port xuất số BCD đến IC Led 7 (74xx) và 4 port để điều khiển cho led 7 thứ x hiển thị
nói chung thế này: cách đơn giản nhất cho phương pháp quét Led mình mạo muội nói như sau:
1.Phần cứng: 4 chân P1.0 ->P1.3 dành cho tín hiệu vào 7447. 4 chân còn lại của PORT P1.4 ->P1.7 dùng để điều khiển sáng của từng digit của Led 7 thanh. Led dùng cho IC giải mã 7447 chắc các bạn cũng biết là loại gì roài đúng không?Led bạn dùng là Led 7 thanh 4 digit hay là 4 Led 7 thanh đơn ghép lại (ghép chung bus)
2.Phần mềm: Mình làm trên Reads51.theo thứ tự như sau:
đầu tiên: giải mã
1. hiển thị hàng nghìn
2. delay
3. hiển thị hàng trăm
4. delay
5. hiển thị hàng chục
6. delay
7. hiển thị hàng đơn vị
8. delay
chúng ta cho vào trong 1 vòng lặp (sjmp hoặc ljmp)
nếu muốn đếm tiến hay lùi thì cho vào trong 1 vòng lặp nữa và tăng hay giảm biến đúng không ???
dưới đây mình có 1 ví dụ đếm lùi cho Led 7 thanh 2 digit post cho các bạn tham khảo.
Code:
#include "sfr51.inc"
ORG 00H
LJMP MAIN
tg equ 24
ORG 30H
MAIN:
mov SP,#5fh
mov P1,#00h
lap:
mov 17h,#tg
dec 17h
sjmp lap
; cac chuong trinh con ho tro.
; chuong trinh con giai ma hex sang ma bcd & su dung 7447 de giai ma cho LED 7 thanh
hextobcd:
mov A,17h ; giaima so
mov B,#10
div AB
mov 26h,A
mov 27h,B
ret
; chuong trinh con hien thi LED 7 thanh
hienthi: ; mat 10 micro s
mov P1,27h ; hang don vi cho LED 1
setb P1.4
lcall tre1ms
clr P1.4
mov P1,26h ; hang chuc cho LED 1
setb P1.5
lcall tre1ms
clr P1.5
ret
; chuong trinh delay 1s
delay:
mov R1,#100
delay1: mov R2,#100
delay2: mov R3,#100
lcall hienthi
delay3: djnz R3,delay3
djnz R2,delay2
djnz R1,delay1
ret
; chuong trinh delay 1ms
tre1ms:
mov R4, #10
tre: djnz R4, tre
ret
END

Comment