程序說(shuō)明:51單片機(jī)定時(shí)器0工作于方式一,定時(shí)50ms中斷一次
鎮(zhèn)巴ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(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;
//開(kāi)定時(shí)器0中斷
EA
=
1;
//開(kāi)總中斷
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;//開(kāi)總中斷并開(kāi)定時(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)試了一下,并且我在里面加入了一些代碼使能能夠通過(guò)串口輸出來(lái)觀察數(shù)據(jù),,一開(kāi)始是進(jìn)入到xian1()中的,,就是你的顯示為0的這個(gè)函數(shù)中的,然后當(dāng)nDataToDisplay200這個(gè)條件不滿足的時(shí)候,程序就開(kāi)始進(jìn)入xian()中,也就是你的顯示為9999的函數(shù)中,,,,然后又循環(huán)到一開(kāi)始的狀態(tài)。
就函數(shù)已經(jīng)在你指定的地方調(diào)用了,,,,如果有問(wèn)題,,就要檢查你的顯示函數(shù)和相應(yīng)硬件連接了。
使用c++編譯器,就要求中斷函數(shù)的形參用...填充。非c++編譯器就不用形參。這個(gè)不用深追究為什么,只要這樣用就可以了。
網(wǎng)頁(yè)標(biāo)題:定時(shí)器中斷函數(shù)c語(yǔ)言 定時(shí)器中斷編程方法
網(wǎng)站鏈接:http://vcdvsql.cn/article44/hiooee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、網(wǎng)站策劃、外貿(mào)建站、網(wǎng)站維護(hù)、網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)