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 兩個引腳的狀態,要達到一定的次數 一般是記脈...