📄 ph2.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTRET
ORG 000BH
LJMP TIMRET
ORG 0013H
LJMP OUTINT1 ; 外部中断1,遥控接收用
ORG 0030H
MAIN: MOV P1,#0FFH
SETB P3.7 ; 关灯
LCALL YS1S
MOV A,#90H ; 1001 0000
LCALL WRMT88
; MOV A,#90H
; LCALL WRMT88
MOV A,#98H ; 1001 1000
LCALL WRMT88 ; CRA
MOV A,#90H
LCALL WRMT88 ; 1001 0000 CRB
MOV A,#94H ;94
LCALL WRMT88 ; 1001 1100
REV: LCALL RDMT88
JNB ACC.2,REV
LCALL RDMT8A
CLR P3.7
LCALL YS80MS ; 160MS
SETB P3.7
ANL A,#0FH
CJNE A,#0BH,REV ; *
HUIL: MOV R3,#00 ; 3S内
TTR: MOV R2,#0FFH
BUS: LCALL RDMT88
JNB ACC.2,REVWAB
LJMP GOON ; 有键按下
REVWAB: DJNZ R2,BUS
DJNZ R3,TTR
LJMP REV ; 重来
REVGG: CJNE A,#0BH,REV ; 这里先按8 *的情况,只要按*8即可,刚才另个还有用
LJMP TTR ; 再从0BH *开始
GOON: LCALL RDMT8A
CLR P3.7
LCALL YS80MS
SETB P3.7
ANL A,#0FH
CJNE A,#0BH,REVGG ; *
TT: CLR P3.7
MOV R3,#3
PPT: MOV R2,#20
PPQT: MOV B,#20
JXYS: LCALL YS808
CPL P3.5 ; 绿灯亮,SPK响SPK
DJNZ B,JXYS
DJNZ R2,PPQT
SETB P3.5
LCALL YS260MS
LCALL YS260MS
DJNZ R3,PPT
SETB P3.7
LJMP REV
WRMT88: CLR P1.7 ; CLK 0 ; CLK RW CS RS0
CLR p1.5 ; CS 0
SETB P1.4 ; RS0 1
CLR P1.6 ; RW 0
MOV P1,A ; 1001 ; 0 0 0 1 写控制寄存器
SETB p1.7 ; clk 1
NOP
CLR P1.7 ; CLK 0
SETB P1.6 ; RW 1
CLR P1.4 ; RS 0
SETB P1.5 ; CS 1
RET
RDMT88: MOV A,#0FFH
MOV P1,A
NOP
CLR P1.7 ; CLK ; CLK RW CS RS0
CLR p1.5 ; CS
SETB P1.4 ; RS0
SETB P1.6 ; RW ; 0 0 0 1 写控制寄存器
SETB p1.7 ; clk
MOV A,P1
NOP
CLR P1.7 ; CLK
NOP
CLR P1.6 ; RW
CLR P1.4 ; RS
SETB P1.5 ; CS
RET
RDMT8A: MOV A,#0FFH
MOV P1,A
NOP
CLR P1.7 ; CLK ; CLK RW CS RS0
CLR p1.5 ; CS
CLR P1.4 ; RS0
SETB P1.6 ; RW ; 0 1 0 0 写控制寄存器
SETB p1.7 ; clk
MOV A,P1
NOP
CLR P1.7 ; CLK
NOP
CLR P1.6 ; RW
SETB P1.4 ; RS
SETB P1.5 ; CS
RET
; CLR IE1 ; 中断标志
; SETB EA
; SETB IT1 ; 下降沿
; SETB EX1 ; EX1允许 , 遥控解码程序
LJMP $
OUTINT1: CLR EA ; 遥控引起的中断,PT2213用户遥控
SETB P3.7
ZJEXIT: CLR IE1
SETB EA
RETI
YS808: MOV R7,#06H ; FOR 12.00M HZ FOR - PT2213
YS1: MOV R6,#50H
YS2: DJNZ R6,YS2
DJNZ R7,YS1
RET
YS10MS: MOV R6,#22 ; 11.291MS
YSYS0: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,YSYS0
RET
YS80MS: MOV R6,#9CH
YS80A: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,YS80A
RET
YS130MS: MOV R6,#0FDH
YSYS1: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,YSYS1
RET
YS260MS: MOV R5,#2
YS26A: LCALL YS130MS
DJNZ R5,YS26A
RET
YS1S: MOV R5,#07H
YS1SA: LCALL YS130MS
DJNZ R5,YS1SA
RET
YS2S: MOV R5,#14
YS1SB: LCALL YS130MS
DJNZ R5,YS1SB
RET
INTRET: NOP ; 软件冗余防跑飞
RETI
TIMRET: NOP
RETI
LJMP MAIN ; 软件冗余防跑飞
ORG 03F0H
LJMP MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -