⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tyjianpan5.asm

📁 通用键盘显示程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	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 + -