单片机数码管显示0到999c语言程序怎么编
#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
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();
}
}
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;
}
}