单片机数码管显示0到999c语言程序怎么编

 我来答
分享社会民生
高粉答主

2020-02-25 · 热爱社会生活,了解人生百态
分享社会民生
采纳数:1248 获赞数:283346

向TA提问 私信TA
展开全部

#include<reg51.h>

unsigned char xs_d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsigned int time=0,s,sz;delay(unsigned int k)
{

unsigned int i,j;

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

for(j=0;j<125;j++);

}INT_0()interrupt 0

{ delay(10);

if(INT0==0){sz++;<br> if(sz>2){sz=0;}

}
}

void T0_int()interrupt 1
{

TH0=(65535-50000)/256;//设置初值

TL0=(65535-50000)%256;

s++;
if(s>20){s=0;<br> if(sz==1)time++;<br> if(time>999){time=0;}

if(sz==0){time=0;//清零<br> }



扩展资料:

运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。

ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。

运算器有两个功能:

(1) 执行各种算术运算。

(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。



匿名用户
2013-06-21
展开全部
#include<reg51.h>
unsigned char xs_d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time=0,s,sz;delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
for(j=0;j<125;j++);
}INT_0()interrupt 0
{ delay(10);
if(INT0==0){sz++;<br> if(sz>2){sz=0;}

}
}
void T0_int()interrupt 1
{
TH0=(65535-50000)/256;//设置初值
TL0=(65535-50000)%256;

s++;
if(s>20){s=0;<br> if(sz==1)time++;<br> if(time>999){time=0;}
if(sz==0){time=0;//清零<br> }
}
}
xs_hs()
{
P2=0x02;
P0=xs_d[time/100];
delay(5);
P2=0x04;
P0=xs_d[(time/10)%10];
delay(5);
P2=0x08;
P0=xs_d[time%10];
delay(5);
P2=0x08;
}main()
{
TMOD=0x01;//定时中断0
TH0=(65535-50000)/256;//设置初值
TL0=(65535-50000)%256;
EA=1;//开全局中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器
IT0=1;
EX0=1;
while(1)
{
xs_hs();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柯南v5In
2017-07-14
知道答主
回答量:1
采纳率:0%
帮助的人:976
展开全部
#include<reg52.h>
char wei[4]={0xf7,0xfb,0xfd,0xfe};
char duan[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
int c=20;
void delay_1ms(int time)
{
int i;
while(time--)
for(i=0;i<125;i++)
{
;
}
} //ÑÓ³Ùº¯Êý
void display(int i)
{
int j=0;
do
{
P1=wei[j++];
P0=duan[i%10];
delay_1ms(1);
P1=0xff;
P0=0xff;
i=i/10;
c--;
}while(i>0);
}
void main()
{
int s=0;
while(1)
{
while(c)/********************************/
{
display(s); /***************************************/
}
s++;
if(s==999)
{
s=0;
}
c=20;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式