新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)C編程(四、定時(shí)器秒表數(shù)碼管顯示)

51單片機(jī)C編程(四、定時(shí)器秒表數(shù)碼管顯示)

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
這個(gè)程序?qū)崿F(xiàn)了通過(guò)定時(shí)器定時(shí)的秒表,并通過(guò)兩位的數(shù)碼管顯示

本文引用地址:http://butianyuan.cn/article/201611/322161.htm

#include
#define uchar unsigned char
#define uint unsingned int
#define LED P0

uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽(yáng)數(shù)碼管數(shù)字碼
uchar num,t,shi,ge;

//----------------子函數(shù)初始化--------------------
void init();
void timer0();
void display();
void delay(uchar);
//-----------------主函數(shù)-------------------
void main()
{
init();
while(1)
{
timer0();
display();

}
}
//-----------------定時(shí)器0初始化-------------------
void init()
{
num=t=0;
TMOD=0x01;
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
EA=1;
ET0=1;
}
//-----------------計(jì)時(shí)函數(shù)-------------------
void timer0()
{
TR0=1;//啟動(dòng)定時(shí)器0
if(TF0==1)//查詢定時(shí)器0的中斷標(biāo)志位TF0
{
TF0=0;
t++;
if(t==10)
{
t=0;
num++;
}
}
}
//-----------------顯示函數(shù)-------------------
void display()
{
shi=num/10;//計(jì)算時(shí)間的十位數(shù)與個(gè)位數(shù)
ge=num%10;

P2=0x01;//選中個(gè)位并顯示
LED=tab[ge];
delay(5);

P2=0x02;//選中十位并顯示
LED=tab[shi];
delay(5);
}
//-----------------延時(shí)函數(shù)-------------------
void delay(uchar x)
{
int i,j;
for(i=x;i>0l;i--)
for(j=255;j>0;j--);
}



評(píng)論


技術(shù)專區(qū)

關(guān)閉