您的位置 首页 开关

C51二位数码管显现程序设计

defineuintunsignedintdefineucharunsignedcharsbitk1=P2^0;sbitk2=P2^1;uintcodetable[]={0X00,0X80,0X10,

#define uint unsigned int
#define uchar unsigned char
sbit k1=P2^0;
sbit k2=P2^1;
uint code table[]={0X00,0X80,0X10,0X90,0X20,0XA0,0X30,0XB0,0X40,0XC0};
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a–)
{
for(b=z;b>0;b–);
}
}
void main()
{
int c=99,t,shi,ge;
for(t=99;t>0;t–)
{
shi=c/10;
ge=c;
k1=0,k2=1;
P1=table[shi];
delay(300);
P1=0XFF;

k2=0,k1=1;
P1=table[ge];
delay(200);
P1=0XFF;
k1=0,k2=0;
c–;
if(c==0)
c=99;

}
}

答复:

必定不一起的啊 由于你是显现为十再显现个的

其实所谓的一起显现便是循环扫描 时刻距离短了 天然看着便是一起了

你要做的便是在显现延时的一起显现一下十位 再显现一下个位 而不是显现完一个再显现另一个

最好的做法是放在中止中 这样能保证显现作用

bit flag;

int shi ,ge;

这三个为外部变量在延时的过程中调用这个函数 应该就OK了

void showled()

{

if (flag==0)

{

P1=table[shi];k2=1,k1=0;

}

else

{

P1=table[ge];k2=0,k1=1;

}

flag=~flag;

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/257526.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部