導航:首頁 > 操作系統 > 51單片機定時器應用

51單片機定時器應用

發布時間:2023-05-20 14:42:38

⑴ 51單片機定時器的使用

51單片機定時器的GATE=1時,用外部INT0啟動定時器,當INT0=0時,
定時器T1會停止計數,這個時候讀取T1的值是可以計算出高電平的寬度的。

⑵ c51單片機的定時器計數器怎麼用

//用定時器T0查詢方式P0口8位控制LED閃爍
#include // 包含52單片機寄存器定義的頭文件
#define uchar unsigned char
#define uint unsigned int
/**************************************************************
函數功能:主函數
**************************************************************/
void main(void)
{

TMOD=0x01; //使用定時器T0的模式1
TH0=(65536-50000)/256; //定時器T0的高8位賦初值
TL0=(65536-50000)%256; //定時器T0的高8位賦初值
TR0=1; //啟動定時器T0
TF0=0; //溢出標志位 先清零
P0=0xff; //關閉LED燈
while(1)//無限循環等待查詢
{
while(TF0==1)
{
TF0=0;
P0=~P0;
TH0=(65536-50000)/256; //定時器T0的高8位賦初值否則會從0開始計數
TL0=(65536-50000)%256; //定時器T0的高8位賦初值
}
}
}

⑶ 51單片機的定時器用作定時方式是

51單片機的定時器用作緩廳定時方式是一個時鍾周期加1。根據查詢相關公開信息顯示,51單片機的定時器用作定時方式是由內部時鍾頻率定時,一個時鍾周期加1。51單片機是對兼容英特爾8051指令系統的單片機的統稱,51單片機廣泛應用於家用電器、汽車激慶、工業測控、通信設備中,因為51單片機的指令系統、內部擾鉛隱結構相對簡單,所以國內許多高校用其進行單片機入門教學。

⑷ 51單片機匯編語言定時器的使用(中斷方式)

(1)
COUNT_INTEQU30H
LEDVALUEEQU31H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#10H;定時器T1為工作方式1,產生50ms定時
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#3CH
MOVTL1,#0B0H
;========================
INCCOUNT_INT
MOVA,COUNT_INT;每50ms加1,
CJNEA,#2,Timer1Interrupt_EXIT;100ms
MOVCOUNT_INT,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END
(2)
COUNT_INT_LEQU30H
COUNT_INT_HEQU31H
LEDVALUEEQU32H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT_L,#0
MOVCOUNT_INT_H,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#20H;定時器T1為工作方式2,產生250us定時
MOVTH1,#00H
MOVTL1,#06H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#00H
MOVTL1,#06H
;========================
INCCOUNT_INT_L
MOVA,COUNT_INT_L;每250us加1,
CJNEA,#40,Timer1Interrupt_EXIT;250US*40=10ms
MOVCOUNT_INT_L,#0
INCCOUNT_INT_H
MOVA,COUNT_INT_H;每10Ms加1,
CJNEA,#10,Timer1Interrupt_EXIT;10ms*10=100MS
MOVCOUNT_INT_H,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END

閱讀全文

與51單片機定時器應用相關的資料

熱點內容
c編譯器是系統軟體嗎 瀏覽:692
獲取伺服器內網地址 瀏覽:534
新手媽媽如何帶新生兒APP 瀏覽:155
java日程管理 瀏覽:374
高清視頻鏈接加密 瀏覽:405
新買的阿里雲伺服器怎麼配置 瀏覽:610
在線編譯器為什麼刷新還在 瀏覽:209
雲伺服器系統盤可以裝資料庫 瀏覽:904
php繪制圖形 瀏覽:585
支付伺服器異常怎麼辦 瀏覽:74
java撥號 瀏覽:864
er5200如何設置虛擬伺服器 瀏覽:569
網路中心伺服器叫什麼 瀏覽:456
isplay單片機下載器 瀏覽:480
怎麼查看伺服器地址和埠 瀏覽:184
加密朋克ai 瀏覽:155
新雲伺服器怎樣添加d盤 瀏覽:669
php查看對象 瀏覽:75
程序員女孩跳舞視頻 瀏覽:554
linux默認java 瀏覽:426