当前位置:首页 > 芯闻号 > 充电吧
[导读]4×4 的键盘,在单片机系统中,是很常见的。一般都是占用一个单片机的 8 位接口。对于这种输入设备,通常是由单片机来识别某行某列的按键是否按下,还需要延时消抖等等。做而论道以前写过不少这方面的博文。为

4×4 的键盘,在单片机系统中,是很常见的。一般都是占用一个单片机的 8 位接口。


对于这种输入设备,通常是由单片机来识别某行某列的按键是否按下,还需要延时消抖等等。做而论道以前写过不少这方面的博文。


为了节省单片机的 IO 接口,也可以使用外接芯片来驱动 4×4 的键盘。


MM74C922,就是一块较好的 4×4 的键盘编码芯片。


它能够自己独立地进行键盘检测、消抖,以 8421 码给出键值。


它还能给出按键是否按下的标志,其数据线还具有三态输出的功能,便于进行总线连接。


总之,这块芯片功能很全面。


美中不足的是:它是以输出 1 来代表有键按下。如果用来向 51 单片机申请中断,还需要加上一个反相器。


下图就是利用 MM74C922 驱动的 4×4 键盘的电路图。



图中使用了六位共阳数码管,位选的驱动,加了反相器 7404,制作实际的电路时,应该使用 8550。


百度知道上面有一个问题,要求把每次的按键,依次的显示在各个数码管上,并不是以前常见的移位显示。


仿照题目的要求,做而论道编写了如下的程序:

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

D_BUF  EQU  30H    ;30H~35H 为显示缓冲区

;

    ORG   0000H

    MOV   R1, #D_BUF

M_LOOP:

    CALL  DISP

    JNB   P2.6, M_LOOP  ;没有按键就转移

    CALL  READKEY

    MOV   @R1, A    ;存入键值

    INC   R1

    CJNE  R1, #D_BUF + 6, M_LOOP

    SJMP  0000H

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

READKEY:

    MOV   P0, #255      ;关闭显示, 准备读键

    CLR   P2.7          ;/OE=0

    NOP

    MOV   A, P0

    SETB  P2.7

    ANL   A, #15

    PUSH  ACC

R_LOOP:

    CALL  DISP

    JB    P2.6, R_LOOP  ;等待释放

    POP   ACC

RET

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

DISP:  ;共阳数码管, P0:段, P2:位(有反相)

    MOV   R2, #254  ;位选, 低电平有效

    MOV   R0, #D_BUF

    MOV   A, @R0

    ADD   A, #(TAB - $ - 3)

    MOVC  A, @A + PC

    MOV   P2, #255

    MOV   P0, A

    MOV   P2, R2

    DJNZ  R7, $     ;显示1024T

    DJNZ  R7, $

    MOV   A, R2

    RL    A

    MOV   R2, A

    INC   R0

    CJNE  R0, #D_BUF + 6, $ - 19 ;显示6位

    MOV   P2, #255

RET                 ;占用时间约为6.1ms

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

TAB: ;共阳段码

    DB  0C0H, 0F9H, 0A4H, 0B0H, 099H, 092H, 082H, 0F8H;0~7

    DB  080H, 090H, 088H, 083H, 0C6H, 0A1H, 086H, 08EH;8~F

END

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


本程序,可以驱动 MM74C922,正确读出键值,依次显示在数码管上。


按照做而论道设计的电路,这块芯片仅仅单独占用了单片机的两条 IO 口线,就实现了 16 个按键的驱动,确实是非常节省资源。


本电路、程序,用 PROTEUS 仿真成功了,暂时还没有进行硬件实验。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭