Đề bài như sau: Cho mạch giao tiếp giữa 8051 và 4 led 7 đoạn theo phương pháp quét như hình dưới. Viết chương trình con hiển thị 4 số BCD không nén (unpacked BCD) có mã lưu trong 4 ô nhớ 33H, 32H, 31H và 30H lên 4 led tương ứng (led1, led2, led3 và led4).
Hướng dẫn: Để đóng chuyển mạch cho led, cấp mức logic 0 ở phía cực B của transistor tương ứng (đóng vai trò như một chuyển mạch điện tử). Sau đó phải tạo trễ một khoảng thời gian để led đáp ứng sáng.
Tìm mãi ko thấy lỗi sai nè

Còn đây là file mô phỏng và hex: http://ifile.it/2qu6ijs
Hướng dẫn: Để đóng chuyển mạch cho led, cấp mức logic 0 ở phía cực B của transistor tương ứng (đóng vai trò như một chuyển mạch điện tử). Sau đó phải tạo trễ một khoảng thời gian để led đáp ứng sáng.
Tìm mãi ko thấy lỗi sai nè


Code:
INCLUDE 89C51.MC ORG 0 ; HIEN THI RA LED TU DU LIEU THANH GHI 30H, 31H, 32H, 33H MOV 30H,#1 MOV 31H,#2 MOV 32H,#3 MOV 33H,#4 ; XUAT LED, NHAY VO HAN LOOP: ACALL OUTLED SJMP LOOP OUTLED: MOV A,30H SWAP A ORL A,#0FH MOV P1,A CLR P1.0 ACALL DELAY MOV A,31H SWAP A ORL A,#0FH MOV P1,A CLR P1.1 ACALL DELAY MOV A,32H SWAP A ORL A,#0FH MOV P1,A CLR P1.2 ACALL DELAY MOV A,33H SWAP A ORL A,#0FH MOV P1,A CLR P1.3 ACALL DELAY RET DELAY: MOV R7,#200 DJNZ R7,$ RET END
Nhưng mà sao test thử thì nó ko chạy theo ý mình nhỉ. Nó ko có hiện từng số lần lượt lên. Và mọi người xem giùm: sao em quy định 



Comment