如何用单片机AT89C51控制六位数码管,可以显示出不同的六个数字(123456)急需相关Proteus仿真图和源程序

 我来答
帐号已注销
2020-01-20 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

#include<reg51.h>

#define uchar unsigned char

uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

uchar number=0;

void t0isr() interrupt 1

{

TH0=0xf4;

TL0=0x48;

switch(number)

{

case 0:P2=0x01;P0=distab[1];break;

case 1:P2=0x02;P0=distab[2];break;

case 2:P2=0x04;P0=distab[3];break;

case 3:P2=0x08;P0=distab[4];break;

case 4:P2=0x10;P0=distab[5];break;

case 5:P2=0x20;P0=distab[6];break;

default:break;

temp=now_time[2]/16*10+now_time[2]%16;

temp++;

if(temp>=24)

temp=0;

now_time[2]=temp/10*16+temp%10;

write_data_ds1302(0x84,now_time[2]);

}

while(!key2);

}

}

wei=1;

d[2]=0;

for(r=0;r<50;r++)

disp();

while(key1 )

{ disp();

if(key2==0)

{

disp();

if(key2==0)

{

temp=now_time[1]/16*10+now_time[1]%16;

temp++;

if(temp>=60)

temp=0;

now_time[1]=temp/10*16+temp%10;

write_data_ds1302(0x82,now_time[1]);

}

while(!key2);

}

}

wei=0;

d[1]=0;

for(r=0;r<50;r++)

disp();

while(key1 )

{

disp();

if(key2==0)

{

now_time[0]=0;

write_data_ds1302(0x80,now_time[0]);

}

} TR1=0;

d[0]=0;

for(r=0;r<30;r++)

disp();

}

扩展资料:

(1)单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。

(2)单片机有着较高的集成度,可靠性比较强,即使单片机处于长时间的工作也不会存在故障问题。

(3) 单片机在应用时低电压、低能耗,是人们在日常生活中的首要选择, 为生产与研发提供便利。

(4)单片机对数据的处理能力和运算能力较强,可以在各种环境中应用,且有着较强的控制能力。

参考资料来源:百度百科-单片机

修者世界
推荐于2017-05-18 · TA获得超过5851个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:808万
展开全部

#include<reg51.h>

#define uchar unsigned char

uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

uchar number=0;

void t0isr() interrupt 1

{

TH0=0xf4;

TL0=0x48;

switch(number)

{

case 0:P2=0x01;P0=distab[1];break;

case 1:P2=0x02;P0=distab[2];break;

case 2:P2=0x04;P0=distab[3];break;

case 3:P2=0x08;P0=distab[4];break;

case 4:P2=0x10;P0=distab[5];break;

case 5:P2=0x20;P0=distab[6];break;

default:break;

}

number++;

if(number>5)number=0;

}

main()

{

TMOD = 0x01;

number = 0;

TH0=0xf4;

TL0=0x48;

TR0=1;

ET0=1;

EA=1;

while(1);

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-23
展开全部
我有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式