单片机汇编CH452键盘显示程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CH451_DCLK BIT P1.7 ;串行数据时钟,上升沿激活
CH451_DIN BIT P1.6 ;串行数据输出,接CH451 的数据输入
CH451_LOAD BIT P1.5 ;串行命令加载,上升沿激活
CH451_DOUT BIT P1.4 ;INT0,键盘中断和键值数据输入,接CH451 的数据输出
CH451_KEY DATA 7FH
SUM DATA 7EH
A1 DATA 7CH
A2 DATA 7BH
A3 DATA 7AH
A4 DATA 79H
b1 DATA 78H
b2 DATA 77H
b3 DATA 76H
b4 DATA 75H
;**************************************************************************
; R452 367 1
ORG 0000H
START:
MOV A1,#00H
MOV A2,#00H
MOV A3,#00H
MOV A4,#00H
MOV b1,#65H
MOV b2,#65H
MOV b3,#65H
ACALL CH451_INIT ;调用初始化程序
MOV R5,#02H ;将要显示的数放入R5中
MOV R4,#00H ;将要在第几位上显示放在R4中,最右边是0位KEYSHOW:
ACALL SCAN1
//ACALL CHANGE
SJMP KEYSHOW
SJMP $
;**************************************************************************** ;BCD 数字显示程序
;**************************************************************************** /*NUM:
CLR A
ADD A,NL
CJNE A,#01,hun1
CJNE A,#02,hun2
DA A
ORL A1,A
ORL A2,A
CLR A
ADD A,NH
;CJNE A,#01,hun1
;CJNE A,#02,hun2
DA A
ORL A3,A
ORL A4,A
hun1:
MOV A,NH
ADD A,#01H
MOV NH,A
CLR A
ADD A,NL
RET
hun2:
MOV A,NH
ADD A,#02H
MOV NH,A
CLR A
ADD A,NL
RET
RET */
k1:
MOV R5,#01H
MOV R4,#05H
ACALL CHANGE
MOV R5,#02H
MOV R4,#04H
ACALL CHANGE
MOV R5,#03H
MOV R4,#02H
ACALL CHANGE
MOV R5,#04H
MOV R4,#00H
ACALL CHANGE
MOV R5,#05H
MOV R4,#01H
ACALL CHANGE
MOV R5,#06H
MOV R4,#03H
ACALL CHANGE
RET
k2:
MOV R5,#02H
MOV R4,#05H
ACALL CHANGE
MOV R5,#03H
MOV R4,#04H
ACALL CHANGE
MOV R5,#04H
MOV R4,#02H
ACALL CHANGE
MOV R5,#05H
MOV R4,#00H
ACALL CHANGE
MOV R5,#06H
MOV R4,#01H
ACALL CHANGE
MOV R5,#07H
MOV R4,#03H
ACALL CHANGE
RET
k3:
MOV R5,#03H
MOV R4,#05H
ACALL CHANGE
MOV R5,#04H
MOV R4,#04H
ACALL CHANGE
MOV R5,#05H
MOV R4,#02H
ACALL CHANGE
MOV R5,#06H
MOV R4,#00H
ACALL CHANGE
MOV R5,#07H
MOV R4,#01H
ACALL CHANGE
MOV R5,#08H
MOV R4,#03H
ACALL CHANGE
RET
k4:
MOV R5,#04H
MOV R4,#05H
ACALL CHANGE
MOV R5,#05H
MOV R4,#04H
ACALL CHANGE
MOV R5,#06H
MOV R4,#02H
ACALL CHANGE
MOV R5,#07H
MOV R4,#00H
ACALL CHANGE
MOV R5,#08H
MOV R4,#01H
ACALL CHANGE
MOV R5,#09H
MOV R4,#03H
ACALL CHANGE
RET
;**************************************************************************** ;子程序调用
;**************************************************************************** ; 初始化子程序
CH451_INIT:
CLR CH451_DIN ;先低后高,输出上升沿通知CH451 选择4 线串行接口SETB CH451_DCLK ;置为默认的高电平
SETB CH451_DIN
SETB CH451_LOAD
SETB CH451_DOUT ;置为输入
CLR IT0 ;置外部信号为低电平触发
SETB PX0 ;置高优先级或者低优先级
CLR IE0 ;清中断标志
SETB EX0 ;允许键盘中断
MOV B,#04H ;设置为键盘与显示开
MOV A,#03H
ACALL CH451_WRITE
RET
;**************************************************************************** ;数码管显示程序
;**************************************************************************** ;转换程序,在R4位显示R5值
CHANGE:
MOV A,R5
ACALL TTA ;对应M2t1板的数码管转换
MOV R2,A
MOV A,R4