一、結構
1、tmr1可以作為通用的定時器和計數器,也可以利用內建的低頻時基振盪器實現實時時鐘rtc功能;通過tmr1與ccp模組的配合使用,tmr1還可以實現輸入捕捉和輸出比較功能。
tmr1是乙個16位的可讀可寫的計數暫存器,由高低兩位元組組成(tmr1h和tmr1l)16位暫存器從0000h到ffffh加1計數,然後回到0000h。在從ffffh到0000h的過程中,置位中斷標誌位tmr1。
tmr1帶有乙個3位的可程式設計預分頻器和乙個低功耗低頻時基振盪器。
二、特點
1、由16位的時鐘訊號上公升沿觸發的累加計數暫存器對 tmr1h,tmr1l;
2、tmr1h和tmr1l是在ram中統一編址的暫存器對,位址為0eh和0fh,可用軟體的方式讀/寫tmr1暫存器對的內容;
3、乙個可選用的3位可程式設計的預分頻器;
4、累加計數的訊號源可以選擇內部系統時鐘、外部觸發訊號或自帶時基振盪器訊號;
5、既可工作於定時器模式,又可以工作於計數器模式,還可以用作實時時鐘rtc;
6、在計數溢位時,相應的溢位中斷標誌自動置位,並可產生溢位中斷。
三、相關暫存器
1、中斷控制暫存器 intcon
2、第一外設中斷標誌暫存器 pir1
3、第一外設中斷使能暫存器 pie1
4、計數暫存器 tmr1h和tmr1l
5、控制暫存器 t1con
四、工作方式
tmr1兩種工作方式:定時器方式和計數器方式,其中計數器方式又分為同步計數器方式和非同步計數器方式。
tmr1的時鐘訊號或者觸發訊號共有3種獲取方式:
1、有內部系統時鐘4分頻後獲取,即取自指令週期
2、從rc0/t1oso/t1cki和rc1/t1osi/ccp2引腳獲取
3、振盪器產生
五、使用定時器tmr1注意事項
1、當對暫存器tmr1h和tmr1l進行初始化時,預分頻器將會自動清零
2、在暫存器對tmr1h和tmr1l進行寫操作時,可以使預分頻器清零。當tmr1處於執行狀態時,對於暫存器tmr1h和tmr
1l值進行的寫操作,可能會寫入不希望的值
3、tmr1工作於非同步計數器方式時,不能作為ccp模組的輸入捕捉或輸出比較的時間基準。
4、在上電復位(por)或者其他復位時,tmr1h和tmr1l的內容保持原有數值,不會復位到0000h
5、在上電復位或掉電復位時,控制暫存器t1con的內容將回到00h,並關閉tmr1,且預分頻器的分頻比設定為預設值
1:1。在所有的其他復位時,均不會影響t1con暫存器的值。
6、如果在復位時需要將tmr1h和tmr1l的內容回到00h,可以用程式實現,即先將tmr1關閉,然後分別將暫存器tmr1h和tmr1l清零
六、使用方式
1使用預分頻器void
main()223
}24}25
}2627void interrupt timer1() //
中斷函式不需要呼叫
28
1void
main()223
}24}25
}2627void interrupt timer1() //
中斷函式不需要呼叫
28
PIC16F877A微控制器的EEPROM讀寫
編寫乙個例程來說明比較好理解,本例程的功能是將乙個0x66的字元放在0x15的eeprom中,然後在讀取,如果讀取成功就點亮led燈 include 呼叫標頭檔案,16f877a微控制器 config 0xff32 晶元配置字,看門狗關,上電延時開,掉電檢測關,低壓程式設計關,加密,4m晶體hs振盪...
PIC16F877矩陣鍵盤的識別
關於矩陣鍵盤的識別方法在51矩陣鍵盤識別中已經說過,現在要說的是pic微控制器與51微控制器的區別,主要是pic微控制器的口子的輸入輸出需要trisn暫存器設定,具體如下 掃瞄法 include define uchar unsigned char define uint unsigned int ...
PIC微控制器之定時器(TMR1)
之前我們講解了tmr0定時器,現在我們來講解16位定時器tmr1,tmr1和tmr0最大的差別就是tmr1是16位定時器。所以tmr1兩個八位暫存器 tmrh 和trmrl組成.許多有關定時器的基礎知識我就不在贅述了可以看tmr0的文章。我單刀直入講例項了。例項講解 如果我們想隔0.5s輸出個高電平...