国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 定時器/計數器的應用實例

定時器/計數器的應用實例

關鍵字:定時器 計數器 應用實例 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:46

在實時系統(tǒng)中,定時通常使用定時器,這與軟件循環(huán)的定時完全不同。雖然兩者都是依賴系統(tǒng)時鐘,但是在定時器計數時,其它指令可以繼續(xù)進行,但軟件定時時不允許其它任何事件發(fā)生。

對許多連續(xù)計數和持續(xù)時間操作,最好使用16位定時/計數器。當計數器翻轉后,它會繼續(xù)計數。若在計數開始或定時時間間隔開始讀出計數器的值,在計數或時間間隔結束時從讀出值中減去開始時的讀出值,則所得計數數值為其間的計數或持續(xù)的時間間隔。假設定時器用于V-F(電壓到頻率)轉換器信號的周期測量。若當邏輯1到來時計數值為3754,下一個邏輯1到達時是4586,則V-F轉換器的周期是832個機器周期。使用12MHz晶振為832μs(1.202kHz),使用11.0592MHz晶振,計數值近似903μs(1.071kHz)。當計數值有翻轉時,只要計數值以16位無符號整數對待就無算術問題。

例1 設單片機的fosc=12MHz,要求在P1.0腳上輸出周期為2ms的方波。

解 周期為2ms的方波要求定時間隔1ms,每次時間到P1.0取反。

定時器計數率=fosc/12。機器周期=12/fosc=1μs

每個機器周期定時器加1,1ms=1000μs

需計數次數=1000/(12/fosc)=1000/1=1000

由于計數器向上計數,所以為得到1000個計數之后的定時器溢出,必須給定時器置初值-1000。

(1)用定時器0的方式1編程,采用查詢方式,程序名為time32.c

程序代碼如下:

#i nclude

sbit P1_0 = P1^0;

void main(void)

{

TMOD = 0x01; // 定時器0方式1

TR0 = 1; // 啟動T/C0

for(;;)

{

TH0 = -(1000/256); // 裝載計數初值

TL0 = -(1000%256);

do {} while(!TF0); // 查詢等待TF0置位

P1_0 = !P1_0; // 定時時間到,P1.0反相

TF0 = 0; // 軟件清TF0

}

}

上面的程序,羅畝已經在Keil uVision中測試成功,但在拷貝時可能因Html代碼原因而加入其它字符,所以在拷貝上面的程序時,要注意檢查在編輯器中的情況。

擴展閱讀:單片機計數器與定時器

編輯:admin  最后修改時間:2018-05-18

聯系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4