標(biāo)題:
51單片機(jī)+74HC573驅(qū)動(dòng)數(shù)碼管實(shí)現(xiàn)秒表系統(tǒng)程序仿真設(shè)計(jì)
[打印本頁(yè)]
作者:
pinkwitty
時(shí)間:
2020-12-1 18:34
標(biāo)題:
51單片機(jī)+74HC573驅(qū)動(dòng)數(shù)碼管實(shí)現(xiàn)秒表系統(tǒng)程序仿真設(shè)計(jì)
基于51單片機(jī)的秒表系統(tǒng)設(shè)計(jì)。包含KEIL工程文件和PROTEUS仿真文件
51hei.png
(40.48 KB, 下載次數(shù): 83)
下載附件
2020-12-1 19:19 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit led=P1^6;
unsigned char j,k,c5,c4,c3,c2,c1,c0,m,n=255,a,b,c,stop;
unsigned char m1,m2,m3,m4,m5;
unsigned char pp;
unsigned char trigger=5;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(unsigned char i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
{
P0=table[a];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
P0=table[b];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
P0=table[c];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
P0=table[d];
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
P0=table[e];
dula=1;
dula=0;
P0=0xef;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xef;
wela=1;
wela=0;
P0=table[f];
dula=1;
dula=0;
P0=0xdf;
wela=1;
wela=0;
delay(5);
P0=0;
dula=1;
dula=0;
P0=0xdf;
wela=1;
wela=0;
}
void hurry()//秒聲
{
uchar i;
for(i=8;i>0;i--)
{
beep=1;
delay(5);
beep=0;
delay(5);
}
}
void baojin()//報(bào)警
{
uchar i;
for(i=100;i>0;i--)
{
beep=1;
delay(5);
beep=0;
delay(5);
}
}
void main()
{
TMOD=0x01; //模式設(shè)置,00000001,可見采用的是定時(shí)器0,工作與模式1(M1=0,M0=1)。
// TR0=1; //打開定時(shí)器
TH0=(65536-4608)/256;// 由于晶振為11.0592,故所記次數(shù)應(yīng)為4608,計(jì)時(shí)器每隔5000微秒發(fā)起一次中斷。
TL0=(65536-4608)%256;//4608的來歷,為5000*11.0592/12
ET0=1; //開定時(shí)器0中斷
EA=1; //開總中斷
while(1)
{
//stop-go on
if(key0==0)
{
delay(5);
if(key0==0)
{
while(!key0);
TR0=~TR0;
}
}
//clear
if(key1==0)
{
if(key1==0)
{
while(!key1);
c5=0;c4=0;c3=0;
c2=0;c1=0;c0=0;
m1=0;m2=0;m3=0;m4=0;m5=0;
TR0=0;led=0;
}
}
//show
display(c5,c4,c3,c2,c1,c0);
}
}
void TIME0()interrupt 1
{
uchar i;
TH0=(65535-4608)/256;
TL0=(65535-4608)%256;
i++;
if(i==20)
{
m1++;
if(m1==10)
{
m1=0;
m2++;
hurry();
}
if(m2==60)
{
m2=0;
m3++;
}
if(m3==60)
{
m3=0;
m4++;
}
if(m4==10)
{
baojin();
}
c0=m2%10;
c1=m2/10;
c2=m3%10;
c3=m3/10;
c4=m4%10;
c5=m4/10;
i=0;
}
}
復(fù)制代碼
所有資料51hei提供下載:
1_秒表系統(tǒng)√.rar
(139.5 KB, 下載次數(shù): 86)
2020-12-1 18:33 上傳
點(diǎn)擊文件名下載附件
秒表系統(tǒng)
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1