访问电脑版页面

导航:老古开发网手机版51单片机

MC51单片机取键值程序分享

导读:
关键字:
MC51单片机,

取键值程序

功能:等待键入,并刷新显示,并返回键值放A

占用:PSW,A,DPTR,R0,R2,R3,R4,R6,R7

入口:无出口:A

ORG0190H

WAT_KB:MOVR0,#3FH

WAT_0:ACALLDISP_0;刷新显示器

ACALLT_KB

JZWAT_0;无键,循环

ACALLKEY_LD;延时消抖,刷新显示

JZWAT_0;无键,循环

KB_VUL:CLRA


MC51单片机取键值程序分享

CPLA

MOVDPTR,#PORT_B

MOVX@DPTR,A;关显示

MOVR2,#0FEH

MOVR4,#0

KB_1:MOVDPTR,#PORT_A

MOVA,R2

MOVX@DPTR,A;扫描键盘

INCDPTR

INCDPTR

MOVXA,@DPTR;读键盘

CPLA

ANLA,#0FH;屏蔽无效位

JNZKB_2;有键,转键分析

INCR4

MOVA,R2

JNBACC.7,WAT_0;无键,返回

RLA

MOVR2,A

SJMPKB_1;无键,扫描下一行

KB_2:RRCA

JCKB_3;有键,转取键值

XCHA,R4;取下一行

ADDA,#8

XCHA,R4

SJMPKB_2;无键,循环

KB_3:MOVR2,#21

KB_4:ACALLDISP_0

ACALLT_KB

JZKB_5;刷新显示,等键释放

DJNZR2,KB_4

KB_5:MOVDPTR,#KEY_TB

MOVA,R4

MOVCA,@A+DPTR;取键值

RET

KEY_LD:ACALLDISP_0

ACALLDISP_0

ACALLT_KB

RET

KEY_TB:DB07H,08H,09H,0AH;7,8,9,A

DB1CH,1DH,1EH,11H;FFIS/FUNC,FFNO/USER,FILL/MODE,空

DB04H,05H,06H,0BH;4,5,6,B

DB1AH,1BH,1FH,10H;COMP/DEC,MOVE/HEX,OFST/HIST,MON

DB01H,02H,03H,0CH;1,2,3,C

DB18H,19H,14H,15H;BP/BTOP,BT/BENT,EXEC,SCAL

DB00H,0FH,0EH,0DH;0,F,E,D

DB16H,17H,12H,13H;NEXT/+,LAST/-,TRAC,STEP

来源:未知   作者:工程师周亮  2018/11/15 16:39:00
栏目: [ 51单片机]

相关阅读

学C51的基础 11《 枚 举(enum) 》作者[cmh]©

16X2字符型液晶显示模块的驱动

C51怎样在绝对地址定义变量呢?  

AT89S52的中文简介

pdata型变量是如何分页的,如果我想把pdata型变量定义到eram的>256字节的高地址,怎样用P2口输入地址

有关单片机ALE引脚的问题

c51单片机实用通信协议

51内核8位单片机MAX7651的开发环境

学C51的基础 8 《 控制流程语句 》 作者[cmh]©

数字温度传感器DS18B20的原理与应用

51单片机与PC机通信的设计

51单片机常见的7种时钟电路介绍

51单片机自然优先级与中断服务入口地址的设置

volatile的作用是什么 作者[hudaidai]©

AT89C51单片机与74LS164动态显示接口

51单片机实现显示器显示日历与时钟和温度的设计

学C51的基础4 《 变 量 》 作者[cmh]©

学C51的基础5《 运算符 》 作者[cmh]©

linux环境下如何开发51单片机 基于codeblocks和SDCC

如何利用MCS-51单片机对周期波频率进行测量