200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言键盘控制数码管显示 3*4矩阵键盘控制4位数码管显示的C程序

c语言键盘控制数码管显示 3*4矩阵键盘控制4位数码管显示的C程序

时间:2024-01-20 13:45:52

相关推荐

c语言键盘控制数码管显示 3*4矩阵键盘控制4位数码管显示的C程序

这个很简单

;********************************************************************************

;*标题:伟纳电子ME300B单片机开发系统演示程序-矩阵键盘数码管显示键值*

;*文件:WL031.asm*

;*日期:-3-20*

;*版本:1.0*

;*作者:gguoqing*

;*邮箱:*

;*网站:*

;********************************************************************************

;*描述:*

;*矩阵键盘数码管显示键值*

;**

;*矩阵键盘定义:*

;*P1.0-P1.3为列线,P1.4-P1.7为行线*

;**

;**

;********************************************************************************

;*【版权】Copyright(C)伟纳电子AllRightsReserved*

;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!*

;********************************************************************************

RELAYEQUP1.3

BEEPEQUP3.7

;------------------------------------------------------

ORG0000H

JMPMAIN

;------------------------------------------------------

MAIN:MOVSP,#60H

MOV30H,#00H

LOOP1:

CALLKEY_IN

CALLKEY_PLAER

JMPLOOP1

;-----------------------------------------------------

KEY_IN:MOVP1,#0F0H;置列线为0,行线为1

MOVA,P1

ANLA,#0F0H

MOVB,A

MOVP1,#0FH;置列线为1,行线为0

MOVA,P1

ANLA,#0FH

ORLA,B;高四位与低四位重新组合

CJNEA,#0FFH,KEY_IN1;0FFH为末按键

RET

KEY_IN1:MOVB,A

MOVDPTR,#KEYTABLE

MOVR3,#0FFH;

KEY_IN2:INCR3

MOVA,R3

MOVCA,+DPTR

CJNEA,B,KEY_IN3

MOVA,R3;找到,取顺序码

MOV30H,A

CALLBEEP_BL

RET

KEY_IN3:CJNEA,#0FFH,KEY_IN2;末完,继续查

RET;0FFH为结束码

;----------------------------------------------

;蜂鸣器响一声子程序

;----------------------------------------------

BEEP_BL:

MOVR6,#100

BL1:CALLDEX1

CPLBEEP

DJNZR6,BL1

MOVR5,#25

CALLDELAY

RET

DEX1:MOVR7,#180

DEX2:NOP

DJNZR7,DEX2

RET

DELAY:;延时R5×10MS

MOVR6,#50

DELAY1:MOVR7,#100

DJNZR7,R6,DELAY1

DJNZR5,DELAY

RET

;-----------------------------------------------------

KEYTABLE:

DB0EEH,0EDH,0EBH,0E7H,0DEH;0,1,2,3,4,顺序码

DB0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,8,9,

DB0BBH,0B7H,07EH,07DH,07BH;A,B,C,D,E,

DB077H,0FFH;F0FF为结束码

;-----------------------------------------------------

;键值显示子程序

;使用一个数码管显示

;-----------------------------------------------------

KEY_PLAER:

MOVA,30H

MOVDPTR,#TAB;取段码表地址

MOVCA,+DPTR;查显示数据对应段码

MOVP0,A;段码放入P0口

CLRP2.7;第一个数码管亮

RET

;-----------------------------------------------------

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88h,83h,0c6h,0a1h,86h,8eh

;-----------------------------------------------------

END

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。