单片机软件流程图(每个指令的意思,及主要功能)

#include<reg52.h>
unsigned int i=0,num=0,time=60;
unsigned char ge,shi;
unsigned int code table[10]={0x3f,0xXXX,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int);
void display();
main()
{TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
while(1)
{while(time!=5)
{ P1=0XF3;
if(num==20)
{time--;
num=0;
}
display();
}
while(time!=2)
{if(num==10)
P1=0XF7;
if(num==20)
{P1=0XF3;
num=0;
time--;
}
display();
}
while(time!=0)
{ P1=0XF5;
if(num==20)
{num=0;
time--;
}
display();
}
time=30;
while(time!=5)
{P1=0XDE;
if(num==20)
{num=0;
time--;
}
display();
}
while(time!=2)
{if(num==10)
P1=0XFE;
if(num==20)
{P1=0XDE;
num=0;
time--;
}
display();
}

while(time!=0)
{P1=0XEE;
if(num==20)
{num=0;
time--;
}
display();
}
time=60;
}
}
void display()
{ shi=time/10;
ge=time%10;
P2=0XFE;
P0=table[ge];
delay(5);
P2=0XFD;
P0=table[shi];
delay(5);
P2=0XFB;
P0=table[ge];
delay(5);
P2=0XF7;
P0=table[shi];
delay(5);
}

void delay(unsigned int z)
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void exter0() interrupt 0
{ num=0;
time=20;/*数码管计时显示*/
P1=0XF6;
While(time!=0)
{
If(num=20)
{num=0;
time--}
disply();}}
void time0() interrupt 1
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}

#include<reg52.h>//包含文件进来
unsigned int i=0,num=0,time=60;//定义整型变量, i,num,time
unsigned char ge,shi;//

unsigned int code table[10]={0x3f,0xXXX,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//用数组来装七段显示器的从0到9的数
void delay(unsigned int);//声明函数
void display();//声明函数
main()//
{TMOD=0X01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;//
TL0=(65536-50000)%256;//装初始值也就是计时器.
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//定时器0工作
EX0=1;//开外部中断
IT0=1;//跳变沿触发方式.这一段是以开中断的命令

while(1)//循环
{while(time!=5)//time!=5时在下面循环
{ P1=0XF3;//P1口赋值
if(num==20)//
{time--;//
num=0;//
}
display();//显示
}

while(time!=2)//同上
{if(num==10)//
P1=0XF7;//
if(num==20)//
{P1=0XF3;//
num=0;//
time--;//
}
display();//
}

while(time!=0)//同上
{ P1=0XF5;//
if(num==20)//
{num=0;//
time--;//
}
display();//
}
time=30;//TIME重新赋值

while(time!=5)//同上
{P1=0XDE;//
if(num==20)//
{num=0;//
time--;//
}
display();//
}
while(time!=2)//同上
{if(num==10)//
P1=0XFE;//
if(num==20)//
{P1=0XDE;//
num=0;//
time--;//
}
display();//
}

while(time!=0)//同上
{P1=0XEE;//
if(num==20)//
{num=0;//
time--;//
}
display();
}
time=60;重赋值
}
}
void display()显示函数
{ shi=time/10;把TIME的十位数赋给SHI
ge=time%10;把TIME的个位数赋给GE
P2=0XFE;
P0=table[ge];//P0口输出个位
delay(5);
P2=0XFD;
P0=table[shi];//P0口输出十位

delay(5);
P2=0XFB;
P0=table[ge];同上
delay(5);
P2=0XF7;
P0=table[shi];同上
delay(5);
}

void delay(unsigned int z)//延迟函数
{unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void exter0() interrupt 0//外部中断函数
{ num=0;
time=20;/*数码管计时显示*/
P1=0XF6;
While(time!=0)
{
If(num=20)
{num=0;
time--}
disply();}}
void time0() interrupt 1定时器0中断函数
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
其余的太简单,你应该都懂,所以就不全部都标示了.
温馨提示:答案为网友推荐,仅供参考
相似回答