📄 1按键.asm
字号:
CS BIT P3.7
WULC BIT P3.2 ;物料(1)
UEBZ BIT P3.3 ;设备(2)
VILD BIT P3.5 ;质量(3)
TIWZ BIT P3.4 ;提位(4)
FASS BIT P1.4
;30H存放识别码(58H)31H,存放地址,(1为1号,)32H存放问题,1-4
ORG 0000H
AJMP MAIN
ORG 0023H
LJMP TRAX
ORG 0040H
MAIN:MOV SP,#60H
clr P1.7
CLR A
MOV R0,#5FH
CLRROM:MOV @R0,A
DJNZ R0,CLRROM
MOV TMOD,#21H ;定时器0工作在方式1,基数为10ms
MOV TH0,#0D8H ;3CH ;
MOV TL0,#090H ;0B0H ;;"0F0"
MOV TH1,#0F3H ;工作在方式一,且SMOD=1时,此时的波特率为4800。
MOV TL1,#0F3H
MOV SCON,#0F0H ;工作方式3,多级通讯格式,SM2 置1只允许接受地址信息
;SM2为“1”时多级通信方式,RB2为地址/数据标志位。
;SM为“0”接受的为数据
MOV PCON,#80H
CLR EA
SETB ES
SETB ET0
SETB TR0
CLR ET1
SETB TR1
CLR RI
CLR RI
SETB EA ;开CPU中断
CLR FASS
MOV 30H,#58H
MOV 32H,#60 ;按键的序号
; MOV P3,#0F0H
; MOV P1,#0ffH
AA:LCALL ANJM
LCALL DOG
;SETB P1.7
;LCALL DEL1S
;CLR P1.7
;LCALL DEL1S
AJMP AA
;=========================================
;串口中断
TRAX: CLR EA
CLR ES
CLR RI
PUSH PSW
PUSH DPH
PUSH DPL
PUSH A
; ACALL JXUUJU ;接收顺序号
TRAX0: POP A
POP DPL
POP DPH
POP PSW
SETB ES
SETB EA
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;按键检测;
ANJM: LCALL DOG
SETB WULC
JB WULC,AN2
LCALL DEL100MS
JB WULC,AN2
MOV A,40H
CJNE A,#00H,AN02
MOV 31H,#01
LCALL DOG
LCALL FSUU
CLR P1.1
LCALL BEEP
LCALL DEL1S
MOV 40H,#01H
AJMP AN2
AN02:SETB P1.1
LCALL BEEP
LCALL DEL1S
MOV 40H,#0
AN2:LCALL DOG
SETB UEBZ
JB UEBZ,AN3
LCALL DEL100MS
JB UEBZ,AN3
MOV A,41H
CJNE A,#00H,AN03
MOV 31H,#02
CLR P1.2
LCALL FSUU
LCALL BEEP
LCALL DEL1S
MOV 41H,#01
AJMP AN3
AN03:SETB P1.2
LCALL BEEP
LCALL DEL1S
MOV 41H,#0
AN3:LCALL DOG
SETB VILD
JB VILD,AN4
LCALL DEL100MS
JB VILD,AN4
MOV A,42H
CJNE A,#00H,AN04
MOV 31H,#03
CLR P1.5
LCALL FSUU
LCALL BEEP
LCALL DEL1S
MOV 42H,#01
AJMP AN4
AN04:SETB P1.5
LCALL BEEP
LCALL DEL1S
MOV 42H,#0
AN4:LCALL DOG
SETB TIWZ
JB TIWZ,ANR
LCALL DEL100MS
JB TIWZ,ANR
MOV A,43H
CJNE A,#00H,AN05
MOV 31H,#04
CLR P1.6
LCALL FSUU
LCALL BEEP
LCALL DEL1S
MOV 43H,#01H
AJMP ANR
AN05:SETB P1.6
LCALL BEEP
LCALL DEL1S
MOV 43H,#0
ANR:RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FSUU: CLR EA
SETB FASS
MOV R1,#30H
FS1: MOV A,@R1
MOV SBUF,A
JNB TI,$
CLR TI
INC R1
MOV A,R1
NOP
NOP
NOP
CJNE A,#33H,FS1
SETB EA
CLR FASS
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;******延时100MS********
;^^^误差:相差177微秒^^^
DEL100MS: MOV R5,#0FEH
DL100MS0: MOV R6,#04EH
DL100MS1: MOV R7,#01H
DJNZ R7,$
DJNZ R6,DL100MS1
DJNZ R5,DL100MS0
RET
BEEP: LCALL DOG
SETB P1.7
LCALL DEL500MS
CLR P1.7
LCALL DOG
; LCALL DEL100MS
; SETB P1.7
; LCALL DEL100MS
; CLR P1.7
RET
;******延时500MS********
;^^^误差:相差889微秒^^^
DEL500MS: MOV R5,#0FEH
DL500MS0: MOV R6,#090H
DL500MS1: MOV R7,#03H
DJNZ R7,$
DJNZ R6,DL500MS1
DJNZ R5,DL500MS0
RET
DOG: SETB CS ;复位看门狗定时器
NOP
CLR CS
NOP
SETB CS
RET
;******延时1S********
;^^^误差:相差1779微秒^^^
DEL1S: MOV R5,#0FEH
DL1S0: MOV R6,#0E7H
DL1S1: MOV R7,#07H
DJNZ R7,$
DJNZ R6,DL1S1
DJNZ R5,DL1S0
LCALL DOG
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -