Mình đang tìm hiểu lập trình hiển thị LED 7 đoạn dùng 74HC595. Mình lập trình cho hiển thị đếm lên 2 chũ số, nhưng khi mô phỏng gặp phải như sau:
Nếu cho thời gian quét led dài (Hàm delay): Hiển thị đúng nhưng bị nhấp nháy, cái này thì không vấn đề gì. Nhưng nếu cho thời gian quét nhỏ lại thì sẽ bị lỗi, nhưng các số 00,11,22... thì không bị lỗi. Mình gửi kèm mạch mô phỏng bên dưới.
Mình không biết sai vì do lập trình sai hay do mô phỏng không đáp ứng. Vì mình chưa kiểm tra trên mạch thực tế. Các bạn xem thử nhé.
- Mô phỏng (mình không thể đính kèm file):http://www.mediafire.com/?1ygglq4id8w3y49
Nếu cho thời gian quét led dài (Hàm delay): Hiển thị đúng nhưng bị nhấp nháy, cái này thì không vấn đề gì. Nhưng nếu cho thời gian quét nhỏ lại thì sẽ bị lỗi, nhưng các số 00,11,22... thì không bị lỗi. Mình gửi kèm mạch mô phỏng bên dưới.
Mình không biết sai vì do lập trình sai hay do mô phỏng không đáp ứng. Vì mình chưa kiểm tra trên mạch thực tế. Các bạn xem thử nhé.
- Mô phỏng (mình không thể đính kèm file):http://www.mediafire.com/?1ygglq4id8w3y49
Code:
DL BIT P3.1 SH_CP BIT P3.0 ST_CP BIT P3.3 DV DATA 21H CH DATA 22H ORG 00H LJMP MAIN ORG 1BH ;Chuong trinh ngat de 1s thi tang 1 DON VI T1ISR: DJNZ R1,OUT INC DV MOV R1,#20 OUT: SETB TR1 RETI MAIN: CLR SH_CP CLR ST_CP MOV P2,#0 MOV TMOD,#10H MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) SETB TR1 MOV IE,#88H MOV R1,#20; su dung cho ham ngat T1 MOV DV,#0 MOV CH,#0 LAM_VIEC: LCALL HIEN_THI LCALL TEST LJMP LAM_VIEC HIEN_THI: LOOP2: MOV DPTR,#BANG MOV A,DV MOVC A,@A+DPTR LCALL SERIAL MOV P2,#11111110B LCALL DELAY MOV DPTR,#BANG MOV A,CH MOVC A,@A+DPTR LCALL SERIAL MOV P2,#1111101B LCALL DELAY RET ;Ham kiem tra dem tu 00-45 TEST: MOV A,CH CJNE A,#4,KT_DV MOV A,DV CJNE A,#5,OUT2 MOV DV,#0 MOV CH,#0 KT_DV: MOV A,DV CJNE A,#10,OUT2 MOV DV,#0 INC CH OUT2: RET SERIAL: MOV R4,#7 LOOP1: CLR C RRC A MOV DL,C SETB SH_CP CLR SH_CP DJNZ R4,LOOP1 SETB ST_CP CLR ST_CP RET ;Ham delay dung de quet led hien thi DELAY: MOV 31H,#5 K: MOV 30H,#250 DJNZ 30H,$ DJNZ 31H,K RET BANG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
Comment