當前位置:首頁 » 編程語言 » 單片機定時器c語言

單片機定時器c語言

發布時間: 2023-04-13 06:01:33

① 求單片機定時器簡單程序(c語言)詳解。不勝感激~

用定時器0中斷做流水燈,程序如下:#include<reg52.h>#include<intrins.h> //包含_crol_()循環左移函數
unsigned char temp,count;void init() //初始化函數{ TMOD=0x01;//設置定時器0為工作方式1 TH0=(65536-50000)/256;//裝初值,高8位 TL0=(65536-50000)%256;//裝初值,低8位 EA=1;//開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 temp=0xfe; count=0;//記數值清0}void main(){ init(); while(1){ P1=temp;}}void timer0() interrupt 1 using 1 //定時器0中斷函數{ TH0=(65536-50000)/256;//重裝初值,同上 TL0=(65536-50000)%256; count++;//計數值加1 if(count==10)//500ms{ count=0;//計數值清0 temp=_crol_(temp,1);循環左移一位}

② 51單片機定時中斷C語言的寫法步驟,可追加分數

程序說明:51單片機定時器0工作於方式一,定時50ms中斷一次
晶振為12M
#include

void
main
{
TOMD
=
0X01;
//配置定時器0工作於方式一
TH1
=
(65536-50000)/256;
//高八位裝入初值
TL1
=
(65536-50000)%256;
//低八位裝入初值
ET0
=
1;
//開定時器0中斷
EA
=
1;
//開總中斷
TR0
=
1;
//啟動定時器0
while(1)
{

}
}
void
Timer0_int()
interrupt
1
{
//重新裝初值
TH1
=
(65536-50000)/256;
//高八位裝入初值
TL1
=
(65536-50000)%256;
//低八位裝入初值
}
/***************************************************************************************************************/
上面是比較好理解的。如果實在要求簡潔的話,看下面的,跟上面功能一樣
#include

void
main
{
TOMD
=
0X01;
//配置定時器0工作於方式一
TH1
=
0x3c;
//高八位裝入初值
TL1
=
0xb0;
//低八位裝入初值
IE
=
0x82;//開總中斷並開定時器0中斷
TR0
=
1;
//啟動定時器0
while(1)
{

}
}
void
Timer0_int()
interrupt
1
{
//重新裝初值
TH1
=
0x3c;
//高八位裝入初值
TL1
=
0xb0;
//低八位裝入初值}

③ 單片機c語言里怎麼用2個定時器

是51單片機嗎?
如果是51單片機,你可以使用tmod設置兩個定時器,然後使用tr0、tr1分別啟動兩個定時器。pt0置為「1」,就可以中斷定時器1的服務函數,相反,如果pt1置為「1」就可以中斷定時器0的服務函數。
如果不設置pt的值,默認為「0」,這樣的話,t0和t1誰也不能中斷誰。

④ 單片機C語言定時器如何調用

單片機中通過中斷的方式來調用定時器。


具體的調用方式可以參考通過如下程序:

程序功能:利用定時器進行定時,實現每秒中led閃爍一次

#include<reg52.h>
sbitled=P0^0;
unsignedintnum;
voidmain(void)
{
TMOD=0x00;//工作方式0
TH0=(8192-5000)/32;//12M晶振下定時5ms
TL0=(8192-5000)%32;
EA=1; //開總中斷
ET0=1; //開定時器中斷
TR0=1; //啟動定時器
while(1)
{
if(num==200) //定時1秒鍾到
{
num=0; //計數器清零
led=~led; //led燈取反,實現1秒閃爍一次
}
}
}

voidtimer()interrupt1//定時器1工作與方式0
{
TH0=(8192-5000)/32;//重裝初值
TL0=(8192-5000)%32;
num++; //計數器加1

}

⑤ 單片機C語言用定時器1工作方式1怎麼寫

#include<reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uinti,num;
voidmain()
{
i=0;
num=0;
TMOD=0x10;//設置定時器1為工作方式1【查看TMOD每一位的含義,你就知道怎麼設置了】
EA=1;//開總中斷
ET1=1;//開定時器1中斷
TR1=1;//啟動定時器0
TH0=(65536-50000)/256;//定時器0計數初值高位
TL0=(65536-50000)%256;//定時器0計數初值低位
P2=0xFE;
P0=0xc0;
while(1)
{
if(i==10)
{
P2=0xff;
}
if(i==20)
{
i=0;
P2=0xfe;
num++;
if(num==10)num=0;
P0=table[num];
}
}
}
voidtime()interrupt1
{
TH0=(65536-50000)/256;//計數初值重載
TL0=(65536-50000)%256;
i++;
}

⑥ 利用51單片機定時器編寫一個C語言程序,實現一個發光二極體定時亮、滅,要求亮一秒、滅一秒交替閃爍不

利用51單片機定時器編寫一個C語言程序,實現一個發光二極體定時亮、滅,

要求亮一秒、滅一秒交替閃爍不止。最好有硬體電路雹猜簡圖

電路源敏型與程序如下:

晶振頻拿孝率,採用 12MHz。

定時器 0,定時 8ms。

中斷 125 次,即為一秒。令 IO 介面取反即可。

熱點內容
如何給word文件加密碼 發布:2024-11-02 06:21:10 瀏覽:717
台達模擬量編程 發布:2024-11-02 06:19:41 瀏覽:410
23456解壓 發布:2024-11-02 06:19:40 瀏覽:183
我的世界伺服器個人創造在哪裡 發布:2024-11-02 06:10:36 瀏覽:638
增霸卡的密碼是多少 發布:2024-11-02 06:06:18 瀏覽:813
傳奇天下第一完整腳本 發布:2024-11-02 06:04:03 瀏覽:586
javago性能 發布:2024-11-02 05:51:47 瀏覽:862
國內ip代理伺服器設置方式 發布:2024-11-02 05:42:42 瀏覽:842
線刷包文件夾 發布:2024-11-02 05:35:35 瀏覽:626
銀行家演算法的安全性演算法 發布:2024-11-02 05:20:15 瀏覽:598