📄 sonic1.asm
字号:
CSEG AT 4000H
LJMP START
CSEG AT 4003H
LJMP INTER0
CSEG AT 400BH
LJMP TIMER0
CSEG AT 4100H
START: MOV PSW, #00H
MOV TMOD, #11H ;TIMER 0,MODE 1
MOV TH0, #00H
MOV TL0, #01H
MOV R4, #0AH
SETB TR0
SETB ET0
SEND: SETB P1.0
NOP
NOP
NOP
NOP
NOP
CLR P1.0
NOP
NOP
NOP
NOP
DJNZ R4, SEND
CALL DELAY2
SETB EX0
SETB EA
; JMP SEND
; INC R4
WAIT1: JB TR0, WAIT1
JNB PSW.5, WAIT
MOV R0, #0FFH
MOV R1, #0FFH
JMP DISP
WAIT: JNB P3.2, WAIT
DISP: MOV DPTR, #0CFE9H ;
MOV A, #08H
MOVX @DPTR, A
MOV DPTR,#0CFE9H ;写显示RAM命令字
MOV A,#90H
MOVX @DPTR,A
MOV A, R1
SWAP A
ANL A, #0FH ;转换结果
ACALL TABLE ;转换为显码
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX @DPTR, A ;送显码输出
MOV A, R1
ANL A, #0FH ;转换结果
ACALL TABLE ;转换为显码
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX @DPTR,A ;送显码输出
MOV A, R0
SWAP A
ANL A, #0FH ;转换结果
ACALL TABLE ;转换为显码
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX @DPTR, A ;送显码输出
MOV A, R0
ANL A, #0FH ;转换结果
ACALL TABLE ;转换为显码
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX @DPTR,A ;送显码输出
ACALL DELAY1
LJMP START
DELAY1: MOV R7, #250
DLY1: MOV R6, #255
DLY2: NOP
NOP
NOP
NOP
DJNZ R6, DLY2
DJNZ R7, DLY1
RET
DELAY2: MOV R7, #200
DLY3: NOP
NOP
DJNZ R7, DLY3
RET
TABLE: INC A
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
INTER0: CLR TR0
CLR EX0
; CLR EA
; INC R2
; SETB PSW.5
MOV A, TL0
MOV R0, A
MOV A, TH0
MOV R1, A
INRET1: RETI
TIMER0: CLR TR0
CLR EX0
SETB PSW.5
CPL P1.1
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -