80C51 定時 計數器工作方式1

2021-10-21 01:54:31 字數 1081 閱讀 7486

demo:查詢法實現發光二極體led燈閃爍 (50ms閃一次和1s的流水燈)

控制暫存器 :

tcon的低4位用於控制外部中斷;高4位用於控制定時/計數器的啟動和中斷申請。

原理

定時計數器本質上是個加1的加法器,每經過乙個機器週期都會加1,通過設定初值 th0 tl0,然後一直自增到溢位,用tf0判斷溢位。

①設定tmod的 m0=1 m1=0 c/t=0 gate=0 下面低位全為0 , 這樣tmod =0x01;這樣就設定好了工作方式1 ,16位的定時計數器

②然後th0 tl0 分別為高四位和低四位,賦予乙個初值,這個初值就是延時多長的意思,比如要延時50ms,則65536-50000=15536,再把15536用除以和取餘的方法算得高四位和低四位賦予th0 和tl0,相當於桶底事先裝了15536的水,然後過了50000後,就是過了50ms後,達到65536溢位。

③然後再開啟tr0=1,這樣定時器就開始工作了。

④當計數器達到50ms時,tf0會置1,此時可以用 tf0==1 ?查詢是否達到50ms

貼上**

void

timer0_iint()

void

timer0_dingshi()

}

記得看注釋!當然也可以軟體寫個軟體定時1s

貼上**

unsigned

char timercnt;

unsigned

char temp=

0xfe

;void

timer0_dingshi1s()

}}

最後貼上在main函式裡的呼叫!

void

main()

}

51微控制器的定時 計數器

實現led燈閃爍,如下 include 51微控制器標頭檔案 sbit led p0 0 定義特殊暫存器p0.0 注意 sbit 必須小寫 p 大寫!void main 在上面的程式中,使用for迴圈來實現延時功能,很簡單,但是存在問題 延時時間不準確 嚴重浪費cpu資源 所以我們要使用微控制器的定...

微控制器學習 定時 計數器(1)

1.什麼是定時 計數器?51微控制器中的定時器同時可以用作計數器,所以在此稱為定時 計數器,即它有實現這兩種功能的能力。定時 計數器的核心部件是乙個加法 也有減法 計數器,其本質是對脈衝進行計數。只是計數脈衝 不同 如果計數脈衝來自系統時鐘,則為定時方式,計數器的輸入脈衝是由晶振12分頻獲得 此時為...

51微控制器的中斷與定時計數器嘗試

這是我的第一篇有關51微控制器的部落格,主要記錄我的學習歷程與中間遇到的問題,如有錯漏請指出。在我理解裡面中斷與定時計數器是這樣的 中斷是通過檢查p3.2 int0 與p3.3 int1 兩個引腳來觸發的 計數器是通過檢查p3.4 t0 與p3.5 t1 兩個引腳的狀態,要達到一定的次數 一般是記脈...