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