📄 遥控小车发射电路.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP w_ZD
ORG 001BH
LJMP DS_ZD
ORG 0030H
MAIN: MOV P1,#0FFH
MOV P3,#OFFH
CLR P3.5
MOV SP,#70H
MOV IE,#00H
MOV IP,#00000100B
MOV TMOD,#20H
? MOV TH1,#0F3H
? MOV TL0,#0F3H
SETB EX1 ;允许外部中断
SETB IT1
SETB EA
MAIN1: LCALL JP
ORL PCON,#01H
LJMP MAIN1
WZD: CLR EX1 ;外部中断
ANL PCON ,#00H
RETI
DS_ZD: CPL P3.5 ;定时中断
RETI
JP: MOV P1,#0FFH
CLR P3.7
JNB P3.3,JP1
RET
JP1:NOP
NOP
NOP
NOP
NOP
NOP
MOV A,P1
CPL A
MOV DPTR,#TAB
MOV A,@A+DPTR
CJNE A,#0FFH,JP
SEND: MOV R1,A ;发射的个数
SEND0: MOV R0#0FAH ;250次
AJMP SEND2
SEND1: MOV R0,#53H
SEND2: SETB ET1
SETB TR1 ;开定时允许
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP ;SETB到DJNZ 的执行时间要12个机器周期 =12US
DJNZ R0,SEND2 ;R0此时是0FA 12*250=3000US
MOV R0,#64H
SENDOUT:CLR TR1 ;关定时允许
CLR ET1
CLR P3.5
NOP
NOP
NOP
NOP
NOP
NOP
NOP ;MOV到DJNZ 的执行时间要12个机器周期 =12US
DJNZ R0,SENDOUT ;R0此时是64 12*64=1000US
DJNZ R1,SEND1
; CLR P3.0
; LCALL DELAY500MS
; SETB P3.0
RET
DELAY5MS: MOV R7,#45 ;延时5MS
DELAY5MS1: MOV R6,#54
DELAY5MS2: DJNZ R6,DELAY5MS2
KJNZ R7,DELAY5MS1
RET
delay10ms:mov r4,#90 ;延时10MS
delay10ms1:mov r3,#54
delay10ms2:djnz r3,delay10ms2
DJNZ R4,DELAY10MS1
NOP
NOP
NOP
NOP
NOP
RET
DELAY500MS:MOV R5,#50H
DELAY500MS1:LCALL DELAY10MS
DJNZ R5,DELAY500MS1
RET
TAB:DB 0FFH,01H,02H,0FFH,03H,0FFH,0FFH,0FFH,04H ;查发的个数
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,05H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -