Đây là bài tập lớn của nhóm mình.Làm đồng hồ thể thao hiện thị giây,%giây và lưu lại được 5 kết quả.
Mình đã viết được phần hiển thị giây và %giây,nhưng mình vẫn chưa lưu được 5 kết quả.Mong các bạn giúp mình với
Đây là phần mình đã viết bằng ASM:
ORG 00H
LJMP MAIN
ORG 003H
LJMP NGAT0
ORG 0BH
LJMP NGAT_TIME
ORG 04AH
MAIN: MOV 40H ,#0
MOV 41H ,#0
MOV 39H,#01111111B
MOV R0,#0
MOV IE,#10001111B
MOV TMOD,#11H
MOV TL0,#LOW(-170)
MOV TH0,#HIGH(-170)
SETB TR0
LOOP_HIEN_THI:
LCALL HIENTHI
SJMP LOOP_HIEN_THI
HIENTHI:
MOV DPTR,#TABLE
MOV A,42H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.0
LCALL DELAY
CLR P1.0
MOV A,43H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.1
LCALL DELAY
CLR P1.1
MOV A,44H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.2
LCALL DELAY
CLR P1.2
MOV A,45H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.3
LCALL DELAY
CLR P1.3
RET
NGAT0:
INC 41H
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
MOV A,41H
CJNE A,#60,THOAT_NGAT0
MOV 41H,#0
THOAT_NGAT0:
RETI
NGAT_TIME:
INC R0
MOV TL0,#LOW(-170)
MOV TH0,#HIGH(-170)
SETB TR0
CJNE R0,#100,THOAT_NGAT_TIME
MOV R0,#0
INC 40H
MOV A,40H
CJNE A,#100,THOAT_NGAT_TIME
MOV 40H,#0
INC 41H
MOV A,41H
CJNE A,#60,THOAT_NGAT_TIME
MOV 41H,#0
THOAT_NGAT_TIME:
MOV A,40H
MOV B,#10
DIV AB ; PHAN NGUYEN LA A, PHAN DU LA B
MOV 43H,A ;LAY HANG CHUC
MOV 42H,B ;LAY HANG DON VI
MOV A,41H
MOV B,#10
DIV AB
MOV 45H,A
MOV 44H,B
RETI
DELAY:
MOV R7,#200
DJNZ R7,$
RET
TABLE:
DB 00000011b,10011111b,00100101b,00001101b,10011001b
DB 01001001b,01000001b,00011111b,00000001b,00001001b
END
Mình đã viết được phần hiển thị giây và %giây,nhưng mình vẫn chưa lưu được 5 kết quả.Mong các bạn giúp mình với
Đây là phần mình đã viết bằng ASM:
ORG 00H
LJMP MAIN
ORG 003H
LJMP NGAT0
ORG 0BH
LJMP NGAT_TIME
ORG 04AH
MAIN: MOV 40H ,#0
MOV 41H ,#0
MOV 39H,#01111111B
MOV R0,#0
MOV IE,#10001111B
MOV TMOD,#11H
MOV TL0,#LOW(-170)
MOV TH0,#HIGH(-170)
SETB TR0
LOOP_HIEN_THI:
LCALL HIENTHI
SJMP LOOP_HIEN_THI
HIENTHI:
MOV DPTR,#TABLE
MOV A,42H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.0
LCALL DELAY
CLR P1.0
MOV A,43H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.1
LCALL DELAY
CLR P1.1
MOV A,44H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.2
LCALL DELAY
CLR P1.2
MOV A,45H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.3
LCALL DELAY
CLR P1.3
RET
NGAT0:
INC 41H
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
LCALL HIENTHI
MOV A,41H
CJNE A,#60,THOAT_NGAT0
MOV 41H,#0
THOAT_NGAT0:
RETI
NGAT_TIME:
INC R0
MOV TL0,#LOW(-170)
MOV TH0,#HIGH(-170)
SETB TR0
CJNE R0,#100,THOAT_NGAT_TIME
MOV R0,#0
INC 40H
MOV A,40H
CJNE A,#100,THOAT_NGAT_TIME
MOV 40H,#0
INC 41H
MOV A,41H
CJNE A,#60,THOAT_NGAT_TIME
MOV 41H,#0
THOAT_NGAT_TIME:
MOV A,40H
MOV B,#10
DIV AB ; PHAN NGUYEN LA A, PHAN DU LA B
MOV 43H,A ;LAY HANG CHUC
MOV 42H,B ;LAY HANG DON VI
MOV A,41H
MOV B,#10
DIV AB
MOV 45H,A
MOV 44H,B
RETI
DELAY:
MOV R7,#200
DJNZ R7,$
RET
TABLE:
DB 00000011b,10011111b,00100101b,00001101b,10011001b
DB 01001001b,01000001b,00011111b,00000001b,00001001b
END
Comment