您的位置 首页 新能源

根据51单片机完成数码管显现的proteus仿真规划

基于51单片机实现数码管显示的proteus仿真设计-具体说,显示个位和小数点后三位数码管的显示一定要注意消隐的问题,每次显示数字之前要先关一次数码管。否则会出现显示混乱。

这个51单片机的proteus仿真完成无符号浮点数的显现。

详细说,显现个位和小数点后三位数码管的显现必定要注意消隐的问题,每次显现数字之前要先关一次数码管。不然会呈现显现紊乱。

仿真电路图如下:

根据51单片机完成数码管显现的proteus仿真规划

C程序如下:

#include

#include

sbit duan=P3^0;

sbit wei=P3^1;

unsigned char code table[] = {

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delay(void)

{

unsigned char i,j;

for(i=0;i《10;i++)

for(j=0;j《110;j++);

}

void show6led(float num)

{

unsigned char i;

i=num;

duan=1;

P2=table[i]+0x80; //显现个位和小数点

duan=0;

P2=0xff; //先封闭led

wei=1;

P2=0xfb; //段选3

wei=0;

delay();

P2=0xff;

P3=0xff;//这两句非常重要,主要是清屏消隐

num=num-i;

num=num*10;

i=num;

duan=1;

P2=table[i];

duan=0;

P2=0xff;

wei=1;

P2=0xf7; //段选4,非常位

wei=0;

delay();

P2=0xff;

P3=0xff;

num=num-i;

num=num*10;

i=num;

duan=1;

P2=table[i];

duan=0;

P2=0xff;

wei=1;

P2=0xef; //段选5,百分位

wei=0;

delay();

P2=0xff;

P3=0xff;

num=num-i;

num=num*10;

i=num;

duan=1;

P2=table[i];

duan=0;

P2=0xff;

wei=1;

P2=0xdf; //段选6,千分位

wei=0;

delay();

P2=0xff;

P3=0xff;

}

main()

{

float number;

number=3.718;

while(1)

{

show6led(number);

}

}
来历;21ic

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部