请教大神,我想使用按键控制数码管显示不同的内容,为啥实现不了呢

m0_37814612 m0_37814612 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
教大神,我想使用按键控制数码管显示不同的内容,为啥实现不了呢,同一个按键,按一次显示温度、按一次显示时间,如此循环。按键加了延时后,按下去后数码管会变黑也切换不了。感觉按键处理这块有问题,求帮我分析下。


u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值
u8 DisData[8];
u8 DisplayData[8];
u8 Data[8];



u8 keypro() //按键处理函数
{
u8 i,flag=0,t=0;
if(k1==0)
{
if(k1==0)
{
for(i=0;i<2;i++)
{
delay2s();
flag++;
if(flag==2)flag=0;
}
}
//while(!k1);
}
switch(flag)
{
case (0):t=0;break;
case (1):t=1;break;
}
return t;

}


void dyna() \\数码管显示函数
{
unsigned int i;
for(i=0;i<8;i++)
{
switch(i)
{
case (0):SA=0;SB=0;SC=0;break;
case (1):SA=1;SB=0;SC=0;break;
case (2):SA=0;SB=1;SC=0;break;
case (3):SA=1;SB=1;SC=0;break;
case (4):SA=0;SB=0;SC=1;break;
case (5):SA=1;SB=0;SC=1;break;
case (6):SA=0;SB=1;SC=1;break;
case (7):SA=1;SB=1;SC=1;break;
}
switch(keypro())
{
case 1:Data[i]=DisplayData[i];break;
case 0:Data[i]=DisData[i];break;
}
GPIO_DIG=Data[i];
delay(20);
GPIO_DIG=0x00;//消隐
}
}
...全文

相关推荐

按键控制数码管实现显示数值加减

基于普中51单片机开发板,运用定时器/计数器0。按键控制数码管,实现60秒计时,数值加减清零。

KEEP-YANG

数码管时钟显示按键控制 fpga实现

目录原理实现 原理 数码管原理 并且该数码管是共阳极,所以段选低电平有效,片选低电平有效 段选共用8个引脚 实现 思路: 分三个模块实现: 1)按键消抖 :按键消抖 2)计数器模块:产生需要的时钟信号数据 3)数码管驱动:将输入的数据转换为段选、片选信号 1)按键消抖: 这里按键数量用参数代替,增加可重用性 用同步打拍方式检测下降沿 用计数器自检测到下降沿开始计数20ms 输出信号为计数器计数完成后输入取反的值 module key_debounce #(parameter KEY_W = 3,TIME_2

不认得学霸

51单片机(二十六)—— 独立按键数码管显示

在这片文章中,我们对独立按键的使用进行进一步研究,用数码管来显示按键的状态。这个实验的主要代码如下所示。 main() { for(n=0;n&lt;8;n++) //给showdata数组赋初值 showdata[n]=0; KEY1=1; KEY2=1; KEY3=1; KEY4=1; KEY5=1; ...

大帅marshal

【51单片机】独立按键实现LED数码管点亮

本篇文章通过51单片机控制LED数码管的显示,使用独立按键增加数值、减小数值和重置数值。

柳枝物联网好学

51单片机通过DS1302进行时钟显示,并在数码管显示时间,可以按键设置时间实现闹铃。

51单片机通过DS1302进行时钟显示,并在数码管显示时间,可以按键设置时间实现闹铃。

迷离的眼神
评论 7
收藏 已收藏
分享
返回顶部
m0_37814612
单片机/工控 27,522 成员 28,796 内容