取键值MC51单片机子程序实例

2017-10-13 10:02:32编辑:什么鱼 关键字:取键值  MC51  单片机

;取键值程序 

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


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

;入口:无   出口:A 

    ORG 0190H

WAT_KB: MOV R0,#3FH


WAT_0:  ACALL   DISP_0  ;刷新显示器


    ACALL   T_KB


    JZ  WAT_0   ;无键,循环


    ACALL   KEY_LD  ;延时消抖,刷新显示 

    JZ  WAT_0   ;无键,循环

KB_VUL: CLR A


    CPL A


    MOV DPTR,#PORT_B 

    MOVX    @DPTR,A ;关显示


    MOV R2,#0FEH 

    MOV R4,#0


KB_1:   MOV DPTR,#PORT_A 

    MOV A,R2

    MOVX    @DPTR,A ;扫描键盘


    INC DPTR


    INC DPTR

    MOVX    A,@DPTR ;读键盘 

    CPL A


    ANL A,#0FH  ;屏蔽无效位 

    JNZ KB_2    ;有键,转键分析


    INC R4 

    MOV A,R2


    JNB ACC.7,WAT_0 ;无键,返回


    RL  A


    MOV R2,A 

    SJMP    KB_1    ;无键,扫描下一行

KB_2:   RRC A

    JC  KB_3    ;有键,转取键值

    XCH A,R4    ;取下一行


    ADD A,#8


    XCH A,R4 

    SJMP    KB_2    ;无键,循环 

KB_3:   MOV R2,#21 

KB_4:   ACALL   DISP_0

    ACALL   T_KB 

    JZ  KB_5    ;刷新显示,等键释放 

    DJNZ    R2,KB_4


KB_5:   MOV DPTR,#KEY_TB


    MOV A,R4 

    MOVC    A,@A+DPTR   ;取键值 

    RET


KEY_LD: ACALL   DISP_0


    ACALL   DISP_0


    ACALL   T_KB


    RET


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

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


    DB  04H,05H,06H,0BH ;4,5,6,B


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


    DB  01H,02H,03H,0CH ;1,2,3,C


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


    DB  00H,0FH,0EH,0DH ;0,F,E,D

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


关键字:取键值  MC51  单片机

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2017101335079.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:80C51与液晶显示模块LCM
下一篇:闪烁显示等待键入MCS51单片机子程序举例

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

矩阵键盘的编程方法——读取键值

矩阵键盘的使用在单品机的学习当中十分广泛,可是对于许多新手,包括本人有时也是搞不明白,昨天晚上和今天早上的思考和同行们的讨论,终于有了点头绪,所以想记录下读取键盘的思路。在单片机的学习版中,矩阵键盘通常如下图设计: 下面就以按下S16键来讲解其思路:首先:P3的高位P3.4~P3.7输出为0,低位P3.0~P3.3输出为1;即P3=0x0F,当按下S16键后(有消抖动过程),P3.3的值为0,则P3的值更新为0x07;其次:P3的高位P3.4~P3.7输出为1,低位P3.0~P3.3输出为0;即P3=0xF0,当按下S16键后(有消抖动过程),P3.4的值为0,则P3的值更新为0xE0;最后将两个值相加得P3=0xE7;&
发表于 2016-12-31 10:53:35
矩阵键盘的编程方法——读取键值

利用单片机控制频率合成器 MC145151-2 的输出频率

一、MC145151-2 是锁相式频率合成器集成芯片,它有 N13~N0  14 个引脚,用于控制输出频率。其中N13、N11已经接地,N12悬空。从 MC145151-2 的 PDF 文件中,找到关于控制频率的部分,截图如下:按照插图,可以看出,N10~N0 对输出频率的控制关系如下:011 1000 1000 : 输出 5000 KHz011 1000 1001 : 输出 5001 KHz011 1000 1010 : 输出 5002 KHz………………………………………………………………………………101 0111 1100 : 输出 5500 KHz分析可知,最小:0x0388,最大:0x057C。二、现在
发表于 2018-05-08 21:29:32
利用单片机控制频率合成器 MC145151-2 的输出频率

电机驱动着世界运转

上投入大量资源和精力,它需要调整外部组件或者所使用电机的行为模式,甚至得找到一个案例来研究样本,通常在完成最终设计之前需要进行多次迭代。如今,已经有更方便的做法,可以大幅简化电机驱动设计。以下将先介绍一款安森美半导体的电机驱动器,以及其电机驱动模组解决方案。  首先,我们想要先介绍安森美半导体的电机驱动器LV8548MC,它可以作为双通道H桥直流电机驱动器或单通道步进驱动器,占用空间小,外部组件数量最少。它支持4V至16V的单电源供电,并兼容3.3V和5V控制输入。LV8548MC采用高达1A直流驱动电流,支持正向/反向、制动、续流,并且具有RDSON 《1Ω(典型值),低待机电流(《1uA)和在150°C(最小值)时热关断功能
发表于 2018-04-28 21:08:33
电机驱动着世界运转

80C196MC波形发生器的SPWM波形产生原理和软件设计要点

  这些集成电路有HFE4752、SLE4520、MA8X8/SA8X8、SAXXXX等。其中多数要与单片机连接才能完成SPWM控制功能,对于要求较高的逆变系统来说仍然不够简捷。INTEL公司推出的16位单片机8XC196MC片内集成了三相SPWM波形发生器WFG(Wave Form Generator,以下简称WFG)[1],为逆变控制电路的全数字化设计提供了强有力的硬件支持,它的软件指令丰富,与其它196XX单片机基本兼容。本文重点介绍80C196MC中WFG的工作原理及软件的设计要点。  1 WFG工作原理  有四种控制方式可选择:方式0~方式3。方式0、方式1为中心对准方式,即把SPWM脉冲安排在开关周期的中心点上,这与
发表于 2018-04-11 20:19:20
80C196MC波形发生器的SPWM波形产生原理和软件设计要点

80C196MC片内波形发生器在逆变电路中的应用

将 80C196MC单片机的片内波形发生器(WFG)和智能功率模块(IPM)应用于逆变电路的实现方案。    2 片内波形发生器    片内波形发生器WFG(Wave Form Generator)是intel80C196MC/MD单片机所独有的特点,它简化了产生同步脉宽调制波形所需的控制软件和外部硬件。    Intel 80C196MC/MD单片机中的波形发生器有3个同步的PWM模块(图1中只画出一个),每个模块包括一个相位比较寄存器WG-COMP、一个无信号(DEAD TIME)时间发生器和一对可编程输出。在重装寄存器WG-RELOAD、双向计数器WG-COUNT
发表于 2018-04-06 13:29:13

基于仪表电机驱动芯片MC33991的车速表设计

。有脉冲输入时,三极管导通,调理电路输出跳变到低电平。    2.1.2 MC33991接口电路    微控制器MC68HC908GR16与MC33991利用串行外设接口SPI通信。微控制器、MC33991和仪表用步进电机的接口电路如图2所示。表1 MC33991内部寄存器图1 速度传感器信号调理电路图 图2 MC33991与MCU接口电路图    MC68HC908GR16的SPI时钟引脚SPSCK、主机数据输入从机输出引脚MISO、主机数据输出从机输入引脚MOSI和I /O引脚PTC5, 分别接MC33991的SCLK、SO、SI、CS引脚, RSTB引脚
发表于 2018-03-25 09:47:42
基于仪表电机驱动芯片MC33991的车速表设计

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。