一个按键控制数码管的开和关_求单个开关按键控制数码管显示(动态)1234的程序,或者帮我改下下面这段数码管的代码程序...

本文档描述了一个使用C语言编程的问题,该问题涉及一个按键控制的4位共阳数码管动态显示。当按键被按下时,数码管应依次显示1234,再次按下则全屏熄灭。然而,实际运行中数码管在全灭状态会显示4,并且1234显示时存在闪烁现象。问题可能出在数码管的扫描控制和按键检测上。
摘要由CSDN通过智能技术生成

按键按一下,数码管显示(动态)1234,按键再按一下,数码管显示全灭。开关按键接P3.2,数码管段选P0,位选P2,共阳数码管4位//我的问题在于全灭的时候它会显示4,还有个4在上面,而且显...

按键按一下,数码管显示(动态)1234,按键再按一下,数码管显示全灭。开关按键接P3.2,数码管段选P0,位选P2,共阳数码管4位

//我的问题在于全灭的时候它会显示4,还有个4在上面,而且显示1234还有点一闪一闪的

//程序如下:

#include

#define uchar unsigned char

#define uint unsigned int

sbit led0=P2^7;

sbit k1=P3^2;

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90};

void delay10ms(uchar a)

{

uchar b,c;

for(c=1;c>0;c--)

for(b=38;b>0;b--)

for(a=130;a>0;a--);

}

void main(void)

{

uint flag=0;

uint i=0;

uint temp;

led0=temp;

while(1)

{

if(k1==0x00)

{

delay10ms(1);

if(k1==0x00)

{

P1=0xff;

flag=!flag;

}

while(k1==0);

}

if(flag==1)

{

temp=0x80;

for(i=0;i<4;i++)

{

P0=tab[i];

P2=~temp;

delay10ms(10);

temp=temp>>1;

}

}

}

}

展开

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值