单片机汇编CH452键盘显示程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档