静态动态显示数码管以及按钮判定(按钮防抖)

问题
单片机AT89C51的P2口外接一4×4矩阵键盘,P1口外接两位LED数码管。编写键盘扫
描程序和显示程序。实现功能如下:按下某按键时,数码管上显示该键对应的键值0
~15。如果连续第二次按下该键,则数码管显示的数值为该键值加3

在单片机系统中,LED数码管的显示程序根据实际需要分为静态显示和动态显示两种方式。
所谓静态显示,是当数码管显示某个字符时,公共端接固定电平,相应段的发光二极管恒定地导通或截止,直到显示另一个字符为止。 采用数码管静态显示方式,单片机显示程序比较简单,数码管显示亮度稳定。但因为每一个数码管都需要一个8位的端口来控制,占用资源较多,一般适用于显示位数较少的场合。
当单片机系统显示的数据位数较多时,通常采用动态显示方式。
所谓动态显示方式,是将所有数码管的段选线并联在一起,由一个8位I/O口控制。而公共端分别由不同的I/O线控制,通过程序实现各位的分时选通。在多位LED显示时,动态显示方式能够简化电路,降低成本 。
在这里插入图片描述
位选端决定每个数码管的显示,通过人眼难以察觉的显示先后,来实现同时显示。
在这里插入图片描述

#include<reg52.h>
unsigned int i,j;
unsigned char buf[2],n=-1,m=0xff;
unsigned char code discodey[12]={
   
   0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(){
   
   		 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值