📄 tyjianpan5.asm
字号:
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, #55h ;8---空
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, #01h ;9---
jnb ti, $ ;等待发送完毕
clr ti ;清除发送标志
setb es
;CLR 485接收状态
ret
;*****
;发送照明时间比较1,电机时间比较1
;例:180023000700220002
com_send2: nop
clr es
mov sbuf, 2bh ;1---照明开始1时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 2ah ;2---照明开始1分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 2dh ;3---照明结束1时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 2ch ;4---照明结束1分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 2fh ;5---电机开始1时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 2eh ;6---电机开始1分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 31h ;7---电机结束1时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 30h ;8---电机结束1分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, #02h ;9---
jnb ti, $ ;等待发送完毕
clr ti ;清除发送标志
setb es
;CLR 485接收状态
ret
;*****
;发送照明时间比较2,电机时间比较2
;例:180023000700220003
com_send3: nop
clr es
mov sbuf, 33h ;1---照明开始2时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 32h ;2---照明开始2分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 35h ;3---照明结束2时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 34h ;4---照明结束2分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 37h ;5---电机开始2时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 36h ;6---电机开始2分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 39h ;7---电机结束2时
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, 38h ;8---电机结束2分
jnb ti, $ ;等待发送完毕
clr ti
mov sbuf, #03h ;9---
jnb ti, $ ;等待发送完毕
clr ti ;清除发送标志
setb es
;CLR 485接收状态
ret
;*************
;查询数据命令 例:######## ######## 04
com_send4: nop
clr es
mov r1, #00h
sendloop: nop
mov sbuf, #0aah ;数据
jnb ti, $ ;等待发送完毕
clr ti
inc r1
cjne r1, #08h, sendloop
jssj: nop
mov sbuf, #04h ;9---
jnb ti, $ ;等待发送完毕
clr ti ;清除发送标志
setb es
;CLR 485接收状态
ret
;****************************************
;键盘程序
jianpan: nop
setb p3.2
setb p3.3
setb p3.4
setb p3.5
mov a, p3
ANL a, #3ch ;
cjne a, #3ch, youjian
ajmp exjp ;没有键按下,退出此程序
youjian: nop
LCALL DELEY20MS
setb p3.2
setb p3.3
setb p3.4
setb p3.5
mov a, p3
ANL a, #3ch
cjne a, #3ch, youjian2 ;延迟再读键盘
ajmp exjp ;没有键按下,退出此程序
youjian2: nop ;有键按下
LCALL DELEY20MS
mov 41h, a ;键值保存
setb p3.2
setb p3.3
setb p3.4
setb p3.5
mov a, p3
ANL a, #3ch
cjne a, #3ch, youjian2 ;等待键释放
exjp: nop
RET
;****************************************
;键值处理程序
jianzhi: nop
mov a, 41h ;键植存储器
CJNE a, #38h, jz1
inc 40h ;功能+键
clr c
mov a, 40h ;功能记数
cjne a, #0fh, exg
exg: jc exgjia
mov 40h, #00h
exgjia: nop
mov 41h, #3ch ;键值寄存器复位
;****
jz1: nop
mov a, 41h
cjne a, #04h, jz2
mov a, 40h
cjne a, #00h, jxjian
mov 40h, #01h
jxjian: dec 40h ;功能-键
nop
mov 41h, #3ch ;键值寄存器复位
;****
jz2: nop
mov a, 41h
cjne a, #0ch, jz3
lcall shijia ;时加键处理
mov 41h, #3ch ;键值寄存器复位
;****
jz3: nop
mov a, 41h
cjne a, #24h, jz4
lcall shijian ;时减键处理
mov 41h, #3ch ;键值寄存器复位
;****
jz4: nop
mov a, 41h
cjne a, #14h, jz5
lcall fenjia ;分加键处理
mov 41h, #3ch ;键值寄存器复位
;****
jz5: nop
mov a, 41h
cjne a, #34h, jz6
lcall fenjian ;分减键处理
mov 41h, #3ch ;键值寄存器复位
;****
jz6: nop
mov a, 41h
cjne a, #2ch, jz7
LJMP MAIN ;复位!!!!
mov 41h, #3ch ;键值寄存器复位
;****
jz7: nop
mov a, 41h
cjne a, #1ch, jz8
clr led2 ;点亮中间指示灯
acall bcsj ;保存数据
;**********
clr 05h ;清数据正确标志1
clr 06h ;清数据正确标志2
clr 07h ;清数据正确标志3
acall com_send1 ;发送时间,画面展示时间,超时时间
chong1: lcall DELALL ;延迟等待串口数据
lcall DELALL ;延迟等待串口数据
;lcall DELALL ;延迟等待串口数据
acall sjbj1 ;数据比较1
jnb 05h,chong1
acall com_send2 ;发送照明时间比较1,电机时间比较1
chong2: lcall DELALL ;延迟等待串口数据
lcall DELALL ;延迟等待串口数据
;lcall DELALL ;延迟等待串口数据
acall sjbj2 ;数据比较2
jnb 06h,chong2
acall com_send3 ;发送照明时间比较2,电机时间比较2
chong3: lcall DELALL ;延迟等待串口数据
lcall DELALL ;延迟等待串口数据
;lcall DELALL ;延迟等待串口数据
acall sjbj3 ;数据比较3
jnb 07h,chong3
mov 41h, #3ch ;键值寄存器复位
mov 40h, #00h ;功能记数
;****
setb led1 ;熄灭指示灯
setb led2 ;熄灭中间指示灯
setb led3 ;熄灭指示灯
jz8: nop ;退出键值处理
ret
;**************************************************
sjbj1 : nop ;数据比较1
jnb 00h,exsjbj1
clr 00h ;清数据接收标志
mov a,4eh
cjne a,#01h,exsjbj1 ;检查返回的数据包号
setb 05h ;设置数据正确标志1
exsjbj1:nop
RET
sjbj2 : nop ;数据比较2
jnb 00h,exsjbj2
clr 00h ;清数据接收标志
mov a,4eh
cjne a,#02h,exsjbj1 ;检查返回的数据包号
setb 06h ;设置数据正确标志2
exsjbj2:nop
RET
sjbj3 : nop ;数据比较3
jnb 00h,exsjbj3
clr 00h ;清数据接收标志
mov a,4eh
cjne a,#03h,exsjbj1 ;检查返回的数据包号
setb 07h ;设置数据正确标志3
exsjbj3:nop
RET
;**************************************************
;时加键处理
shijia: nop
MOV A, 40H
CJNE A, #00H, sjia_10
;手动上处理程序
;******
sjia_10:
;JNB 01H, sjia_22 ;是否为设置状态
mov a, 40h
cjne a, #01h, sjia_11
MOV A, 25H ;时间
ADD A, #01H
DA A
MOV 25H, A
;sjia_22:
ajmp sjia_21
sjia_11: MOV A, 40h
CJNE A, #02H, sjia_12
MOV A, 27H ;时间
NOP
ADD A, #01H
DA A
MOV 27H, A
ajmp sjia_21
sjia_12: MOV A, 40h
CJNE A, #03H, sjia_13
MOV A, 2bH ;时间
NOP
ADD A, #01H
DA A
MOV 2bH, A
ajmp sjia_21
sjia_13: MOV A, 40h
CJNE A, #04H, sjia_14
MOV A, 2dH ;时间
NOP
ADD A, #01H
DA A
MOV 2dH, A
ajmp sjia_21
sjia_14: MOV A, 40h
CJNE A, #05H, sjia_15
MOV A, 2fH ;时间
NOP
ADD A, #01H
DA A
MOV 2fH, A
ajmp sjia_21
sjia_15: MOV A, 40h
CJNE A, #06H, sjia_16
MOV A, 31H ;时间
NOP
ADD A, #01H
DA A
MOV 31H, A
ajmp sjia_21
sjia_16: MOV A, 40h
CJNE A, #07H, sjia_17
MOV A, 33H ;时间
NOP
ADD A, #01H
DA A
MOV 33H, A
ajmp sjia_21
sjia_17: MOV A, 40h
CJNE A, #08H, sjia_18
MOV A, 35H ;时间
NOP
ADD A, #01H
DA A
MOV 35H, A
ajmp sjia_21
sjia_18: MOV A, 40h
CJNE A, #09H, sjia_19
MOV A, 37H ;时间
NOP
ADD A, #01H
DA A
MOV 37H, A
ajmp sjia_21
sjia_19: MOV A, 40h
CJNE A, #0aH, sjia_20
MOV A, 39H ;时间
NOP
ADD A, #01H
DA A
MOV 39H, A
ajmp sjia_21
sjia_20: MOV A, 40h
CJNE A, #0bH, sjia_20_1
MOV A, 3bH ;时间
NOP
ADD A, #01H
DA A
MOV 3bH, A
ajmp sjia_21
sjia_20_1:MOV A, 40h
CJNE A, #0cH, sjia_21
MOV A, 3dH ;时间
NOP
ADD A, #01H
DA A
MOV 3dH, A
;ajmp sjia_21
sjia_21:
nop
ret
;**************************************************
;时减键处理
shijian: nop
MOV A, 40H
CJNE A, #00H, JIANX0
;手动下处理
;******
JIANX0:
;JNB 01H, JIANX12 ;是否为设置状态
MOV A, 40H
CJNE A, #01H, JIANX1
MOV R7, 25H
LCALL JIANY
MOV 25H, R7
;JIANX12:
AJMP JIANX11 ;推出
JIANX1: MOV A, 40H
CJNE A, #02H, JIANX2
MOV R7, 27H
LCALL JIANY
MOV 27H, R7
AJMP JIANX11
JIANX2: MOV A, 40H
CJNE A, #03H, JIANX3
MOV R7, 2bH
LCALL JIANY
MOV 2bH, R7
AJMP JIANX11
JIANX3: MOV A, 40H
CJNE A, #04H, JIANX4
MOV R7, 2dH
LCALL JIANY
MOV 2dH, R7
AJMP JIANX11
JIANX4: MOV A, 40H
CJNE A, #05H, JIANX5
MOV R7, 2fH
LCALL JIANY
MOV 2fH, R7
AJMP JIANX11
JIANX5: MOV A, 40H
CJNE A, #06H, JIANX6
MOV R7, 31H
LCALL JIANY
MOV 31H, R7
AJMP JIANX11
JIANX6: MOV A, 40H
CJNE A, #07H, JIANX7
MOV R7, 33H
LCALL JIANY
MOV 33H, R7
AJMP JIANX11
JIANX7: MOV A, 40H
CJNE A, #08H, JIANX8
MOV R7, 35H
LCALL JIANY
MOV 35H, R7
AJMP JIANX11
JIANX8: MOV A, 40H
CJNE A, #09H, JIANX9
MOV R7, 37H
LCALL JIANY
MOV 37H, R7
AJMP JIANX11
JIANX9: MOV A, 40H
CJNE A, #0aH, JIANX10
MOV R7, 39H
LCALL JIANY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -