51单片机的4×4键盘识别与74LS164驱动数码显示

发布者:炫酷骑士最新更新时间:2018-05-08 来源: eefocus关键字:51单片机  键盘识别  74LS164  驱动数码显示 手机看文章 扫描二维码
随时随地手机看文章

;P1口外接4×4键盘,输出使用74LS164驱动一位数码显示器。
;当按下任一键时,在数码显示器上显示键值。
;程序用汇编语言编写,用PROTEUS仿真调试的画面如下:

51单片机的4×4键盘识别与74LS164驱动数码显示 - 非著名博主 - 电子信息角落

;程序如下:

    ORG   0000H
    LJMP  START
    ORG   0030H
START:
    MOV  P1, #255
    MOV  60H, #16
MAIN:
    CALL DISPLAY
;SJMP  $
M_LOOP:
    CALL K_SCAN         ;扫描程序
    JB   ACC.4, M_LOOP
    LJMP MAIN
;---------------------------------------
DISPLAY:
    MOV  A,  60H
    MOV  DPTR, #D_TAB   ;码表首地址
    MOVC A, @A + DPTR
    CPL  A
    MOV  R2, #8
INI1:
    RRC  A
    MOV  P3.0, C        ;A中低位输出至P3.0
    CLR  P3.1           ;移位脉冲
    SETB P3.1
    DJNZ R2, INI1       ;移位8次
    RET
;-------------------------
D_TAB:                  ;段码表
    DB  03FH, 006H, 05BH, 04FH 
    DB  066H, 06DH, 07DH, 007H
    DB  07FH, 06FH, 077H, 07CH
    DB  039H, 05EH, 079H, 071H, 000H
;---------------------------------------
K_SCAN:  
    MOV  P1, #240       ;各行皆为0
    MOV  A,  P1         ;读出列
    CJNE A, #240, COW   ;有键按下转移
    SETB ACC.4          ;没有按键的标记
    RET
;-------------------------
COW:
    MOV  P1, #15        ;各列皆为0
    ADD  A, P1
    MOV  60H, A         ;保存键码
;-------------------------
    MOV  DPTR, #KEY_TAB ;键码表首地址
    MOV  R2, #0         ;从第0个开始查
K_S1:
    MOV  A, R2 
    INC  R2
    MOVC A, @A + DPTR
    CJNE A, 60H, K_S1   ;与60H内容比较,不等则继续查
    DEC  R2
    CJNE R2, #16, K_ED
    SETB ACC.4          ;没有按键的标记
    RET
;-------------------------
K_ED:                   ;有键按下
    MOV  60H, R2        ;保存按键号码
    CALL DELAY          ;消除抖动
WAIT:
    MOV  P1, #0F0H
    MOV  A, P1
    CJNE A, #0F0H, WAIT ;等待释放
    CLR  A
    RET
;-------------------------
KEY_TAB:                ;键码表
    DB  07EH, 0BEH, 0DEH, 0EEH 
    DB  07DH, 0BDH, 0DDH, 0EDH
    DB  07BH, 0BBH, 0DBH, 0EBH
    DB  077H, 0B7H, 0D7H, 0E7H
;---------------------------------------
DELAY:                  ;延时
    MOV  R5, #10
D2: MOV  R6, #2
D1: MOV  R7, #248
    DJNZ R7, $
    DJNZ R6, D1
    DJNZ R5, D2
    RET
;---------------------------------------
END


关键字:51单片机  键盘识别  74LS164  驱动数码显示 引用地址:51单片机的4×4键盘识别与74LS164驱动数码显示

上一篇:利用单片机控制频率合成器 MC145151-2 的输出频率
下一篇:兆易创新推出全新GD32E103系列Cortex®-M4 MCU

推荐阅读最新更新时间:2024-03-16 16:02

51单片机比较转移指令CJNE简介及举例
条件转移 指令 是指在满足一定条件时进行相对转移。 (1)比较转移指令 CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel 第一条指令的功能是将A中的值和立即数data比较,如果两者相等,就次序执行(执行本指令的下一条指令),如果不相等,就转移,同样地,我们能将rel理解成标号,即:CJNE A,#data,标号。这样利用这条指令,我们就能判断两数是否相等,这在很多场合是非常有用的。但有时还想得知两数比较之后哪个大,哪个小,本条指令也具有这样的功能,如果两数不相等,则CPU还会反映出哪个数大,哪个数小,这是用CY(进位位)来实现的
[单片机]
51单片机外部中断示例
void Usart_INT0_init() { TMOD = 0X21; TH1 = 0XFD; TL1 = 0XFD; SM0 = 0; SM1 = 1; REN = 1; TR1 = 1; //ES = 1;//串口中断影响外部中断0 这句话会让程序无法进入外部中断服务 TH0 = 0; TL0 = 0; ET0 = 0;//关闭定时器0 IT0 = 1;//外部中断下降沿触发*/ EX0 = 1;//打开外部中断 EA = 1; //ES = 1; } void Send_data(unsigned char dat) { SBUF = dat; while(!TI); TI =
[单片机]
51单片机定时/计数器使用方法
定时/计数器的使用方法: 1、根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD。 2、根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器TH0/TH1和TL0/TL1。 3、根据需要开放定时/计数器中断(后面需要编写中断服务程序)。 4、设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。 5、等待定时/计数器时间到,到则执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于1,则进行相应处理。 /**************************************************************************************
[单片机]
手把手教学51单片机 | 第六课——D/A,A/D转换器,运放电路
1.数模转换器 又称D/A转换器,简称DAC,英文 Digital to Analog Converter,在MP3这种数字的音频信号需要转换器驱动扬声器;显卡输出的也是数字型号,也需要转换器转换给显示屏;工业吸合电磁铁。转换器有分分辨率的,那么什么是分辨率呢? 比如我们用八位DA生成0—5V的模拟电压,二进制八位就有2^8=256等分,显然位数越多,分辨率越高,5V / 256=19.5mV,所以19.5mV就是八位数模转换器的分辨率(可以理解成精度)。单片机中常用的是DAC0832。 接下来我们看内部原理,最右边I0的电阻是2R,与左边电阻2R并联,等效为R,再与I1的R串联,等效为2R,再与左边的电阻2R并联,等效为
[单片机]
手把手教学<font color='red'>51单片机</font> | 第六课——D/A,A/D转换器,运放电路
什么是单片机_51单片机学前预备知识
  一、单片机的概念:   二、单片机的用途:   工业自动化:数据采集,测控技术;   智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等;   消费类电子产品:洗衣机、电冰箱、空调机、手机等;   凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。   三、怎么学单片机:   实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。   四、为什么选择51单片机作为单片机学习的入门:   学51单片机成本低,而且51单片机技术最成
[单片机]
51单片机最小系统的构成与绘制
一、51单片机最小系统构成 51单片机最小系统是一个最基本的硬件配置,通常由一个51单片机、晶体振荡器、电源、外部芯片(如LCD屏幕、键盘、LED等)以及必要的电路组成。其主要功能是提供一种简单的方式来开始使用和学习51单片机,使其能够进行基本的输入、输出、计算和控制其具体构成如下: 1、51单片机芯片:51单片机是一种基于哈佛结构的8位微控制器,具有强大的输入输出能力、易于编程、稳定可靠等特点。目前市面上流行的有AT89C51、AT89S51、STC89C51等。 2、晶体振荡器:晶体振荡器是提供时钟信号的重要组成部分,一般为11.0592MHz,它能够提供稳定的时钟信号,保证51单片机的正常工作。 3、电源:为51单片机最
[单片机]
<font color='red'>51单片机</font>最小系统的构成与绘制
51单片机应用之无线通讯模块NRF24L01+
本教程关于NRF24L01+的内容十分详细,对于大家的学习和调试及其有帮助 内含详细教程: 单片机源程序如下: 接下来我们写发送程序: //********************************** // NRF24L01+模块发射程序 // 用8个LED调试 // Txz001 2012.05.16 //********************************** #include reg52.h typedef unsigned char uchar; //将无符号字节类型重定义为uchar typedef unsigned int uint; //将无符号整数类型重定义为Uint
[单片机]
<font color='red'>51单片机</font>应用之无线通讯模块NRF24L01+
74ls164驱动数码管电路 74ls164应用电路
74ls164应用电路 本文采用了74LS164 这个串入并出的移位寄存器,很好地解决了2051 与L ED 的显示接口电路。 1 硬件电路 2051 余下的并行I/ O 口线不足8 根,数据的并行输出已不可能,但可以考虑串行输出方法,图1 给出串行口扩展的4 位L ED 显示接口电路。该电路只使用2051 的3 个端口,配接4 片串入并出移位寄存器74LS164 与1 片三端可调稳压器LM317T 3 结束语 本串行口扩展的LED 显示接口电路已被笔者成功地应用到以AT89C2051 单片机为核心的智能仪表中,如单片机湿度测量仪、单片机温度测量仪等。现场运行表明,LED 显示清晰稳定不闪烁,特别是在现场环境如光照强弱不同的
[单片机]
<font color='red'>74ls164</font><font color='red'>驱动</font><font color='red'>数码</font>管电路 <font color='red'>74ls164</font>应用电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved