程序說明:51單片機(jī)定時(shí)器0工作于方式一,定時(shí)50ms中斷一次
鎮(zhèn)巴ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
晶振為12M
#include
void
main
{
TOMD
=
0X01;
//配置定時(shí)器0工作于方式一
TH1
=
(65536-50000)/256;
//高八位裝入初值
TL1
=
(65536-50000)%256;
//低八位裝入初值
ET0
=
1;
//開定時(shí)器0中斷
EA
=
1;
//開總中斷
TR0
=
1;
//啟動(dòng)定時(shí)器0
while(1)
{
;
}
}
void
Timer0_int()
interrupt
1
{
//重新裝初值
TH1
=
(65536-50000)/256;
//高八位裝入初值
TL1
=
(65536-50000)%256;
//低八位裝入初值
}
/***************************************************************************************************************/
上面是比較好理解的。如果實(shí)在要求簡(jiǎn)潔的話,看下面的,跟上面功能一樣
#include
void
main
{
TOMD
=
0X01;
//配置定時(shí)器0工作于方式一
TH1
=
0x3c;
//高八位裝入初值
TL1
=
0xb0;
//低八位裝入初值
IE
=
0x82;//開總中斷并開定時(shí)器0中斷
TR0
=
1;
//啟動(dòng)定時(shí)器0
while(1)
{
;
}
}
void
Timer0_int()
interrupt
1
{
//重新裝初值
TH1
=
0x3c;
//高八位裝入初值
TL1
=
0xb0;
//低八位裝入初值}
每中斷一次,程序就會(huì)執(zhí)行一次中斷程序,也就是會(huì)執(zhí)行“void t0_rpt() interrupt 1”這個(gè)程序
我把你現(xiàn)在給出的這個(gè)程序的分析和調(diào)試了一下,并且我在里面加入了一些代碼使能能夠通過串口輸出來觀察數(shù)據(jù),,一開始是進(jìn)入到xian1()中的,,就是你的顯示為0的這個(gè)函數(shù)中的,然后當(dāng)nDataToDisplay200這個(gè)條件不滿足的時(shí)候,程序就開始進(jìn)入xian()中,也就是你的顯示為9999的函數(shù)中,,,,然后又循環(huán)到一開始的狀態(tài)。
就函數(shù)已經(jīng)在你指定的地方調(diào)用了,,,,如果有問題,,就要檢查你的顯示函數(shù)和相應(yīng)硬件連接了。
使用c++編譯器,就要求中斷函數(shù)的形參用...填充。非c++編譯器就不用形參。這個(gè)不用深追究為什么,只要這樣用就可以了。