单片机89c52完美的秒表程序
不用定时器主程序简单易懂
主程序如下后附演示图
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define tempdata P0
sbit dula=P2^6;
sbit wela=P2^7;
uchar k,miao,t,n;
uchar code tabdu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code tabwe[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xianshi()
{
for(n=0;n<60;n++) //分钟
{
for(t=0;t<60;t++) //秒
{
for(miao=0 ;miao<100;miao++) //秒/100
{
tempdata=tabwe[0];
wela=1;wela=0;
tempdata=tabdu[n/10];
dula=1;dula=0;
delay(k);
tempdata=tabwe[1];
wela=1;wela=0;
tempdata=tabdu[n%10];
dula=1;dula=0;
delay(k);
tempdata=tabwe[2];
wela=1;wela=0;
tempdata=0x40;
dula=1;dula=0;
delay(k);
tempdata=tabwe[3];
wela=1;wela=0;
tempdata=tabdu[t/10];
dula=1;dula=0;
delay(k);
tempdata=tabwe[4];
wela=1;wela=0;
tempdata=tabdu[t%10];
dula=1;dula=0;
delay(k);
tempdata=tabwe[5];
wela=1;wela=0;
tempdata=0x40;
dula=1;dula=0;
delay(k);
tempdata=tabwe[6];
wela=1;wela=0;
tempdata=tabdu[miao/10];
dula=1;dula=0;
delay(k);
tempdata=tabwe[7];
wela=1;wela=0;
tempdata=tabdu[miao%10];
dula=1;dula=0;
delay(k);
}
}
}
}
void main()
{
k=1;
while(1)
{
xianshi();
}
}
秒表程序
|