5152单片机第12课:按键和数码管显示实例
开机显示0,按键2,数码管加1显示, 按键3,数码管减1显示。
#include <reg51.h>
code unsigned char sz []={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void delay();
sbit P10=P1^0;
sbit sw0=P3^5;
sbit sw1=P3^6;
void main ()
{
char mun=0;
P10=0;
P0=sz[0];
while(1)
{
if (sw0==0)
{
delay();
if (sw0==0)
{
do
{
while (sw0==0);
delay();
}
while (sw0==0);
mun--;
if (mun<0) mun=0x09;
P0=sz [mun];
}
}
if (sw1==0)
{
delay();
if(sw1==0)
{
do
{
while(sw1==0);
delay();
}
while (sw1==0);
mun++;
if (mun>0x09) mun=0;
P0=sz [mun];
}
}
}
}
void delay()
{
unsigned int i;
i=10000;
while(i--);
}
单片机入门-C51语言实现矩阵键盘按键检测和数码管显示
单片机入门-C51语言实现矩阵键盘按键检测和数码管显示视频教程:
视频加载中...
按键是一种常开型按钮开关,平时键的二个触点处于断开状态,按下键时它们才闭合。按键控制电路就是用来实时监视按键,当有键接下时,电路监控中的输入引脚电平发生变化,检测到这种变化后,控制电路进行按键扫描,定位按键的位置,并把相关的按键信息反馈回上一层应用中。
单片机系统在需要按键较多的场合中普遍使用这种行列式非编码键盘,或者叫矩阵键盘。矩阵按键相当于 4 组每组各 4 个独立按键,一共是 16 个按键。在使用这类键盘时主要解决以下几个问题:
①键的识别。有很多种方法,一般采用逐行扫描和逐列扫描的方式,得到行号和列号,根据键号=列号+4*行号,得到键值。
②键的抖动。按键通常有按下、松手、长按这几个状态,需要支持按下检测、松手检测、长按、连击的功能,并且需要对按键进行去抖滤波,这些方法相对复杂,一般采用延时的方法比较简单。
代码如下:
相关问答
单片机 控制两段 数码管 , 按键 长按时只有后面那段亮,求指导啊?之前用ucosii,利用信息邮箱,把键扫描做成一个任务,把数码管显示做成另一个任务,利用信息邮箱发送给数码管显示任务,然后接受到键扫描信息后,数码管做相应调...
关于 单片机 独立 按键 切换 数码管显示 不同数字?都是逐个点亮,只不过流水灯间隔时间慢一点,数码管间隔时间快一点,当后者间隔时间小于0.1s时(实际上最好小于0.01s),由于视觉暂留效应,人类就觉察不到数码...
单片机 键盘 显示 实验报告怎么解决?这个问题的最大关键不在显示,而是在输入,你输入必须要设置输入缓存区,和输入保存的区域,还有显示的缓存区,当你的输入小于4位的时候,将输入保存里的数据转...
mcu如何通过引脚判断是否发生 按键 事件?限流电阻。单片机IO引脚的负载能力是非常有限的,可以参考具体型号单片机的手册。如果不加这个电阻,按键闭合时3.3V直通PA0引脚,轻则增加了不必要的功耗,重...
单片机 的 按键 开关抖动的产生原因,抖动的特点和如何消除抖动 ...开关按钮,但信号的传导并不是单纯的由1断开/闭合时会有抖动,信号如图示会在HIGH和LOW之间抖动。这种抖动对人来说是感觉不到的,但对单片机来说,则是...
单片机 的 按键 开关抖动的产生原因,抖动的特点和如何消除抖动 ...件延时去抖(其实是一种忽略)和硬件去抖软件判断:开关闭合——延时——是否还是闭合?——如果是就判定打开,软件解决可以降低成本,但是有时...——...
按钮点灯程序,按一下按钮灯亮(一直亮),再按一下灭,51 单片机 ...对于51单片机的按钮点灯程序设计,你可以用P0口接LED并配置成输入模式。每当有外部中断触发(比如按键),进入中断服务子程序后点亮灯;返回主循环后检测该状态...
单片机 编程中为何按钮按下是0?-ZOL问答这就是高电平还是低电平按键有效了。你看这一种按键接法:按键没按下时,一直为0(因为一直接地),按键按下后,VCC与地和电阻构成通路,cpu_reset这个点的电位就被...
51 单片机 怎么检测一个9013三极管是否为导通状态?我只会 单片机 控制三极管开关?已NPN三极管为例,可以在基极串上一个电阻,如果三极管未导通则为低电平,导通为高电平。这个时候把单片机的IO口接在电阻的一侧,用个if语句判断IO口的状态,点...
单片机 仿真软件中如何设置 数码管 与24C04?这个题目看着东西多,实际上没有太大的难度。需要知道单片机如何控制数码管显示即可,其他题目中更多的是一些业务逻辑,你需要设置一个交互逻辑即可,比如通过按...