PIC16F877A定時器1實驗

2021-09-01 00:20:48 字數 736 閱讀 8840

pic16f877a微控制器的timer1是16位的,我們利用此定時器實現乙個10ms的定時,在定時中斷裡我們再判斷1s是否到了,到了之後將led燈狀態取反。

#include #define u8 unsigned char

#define u16 unsigned int

__config(0xff32);

#define led portd

char counter=0;

void timer1_init()

void main(void)

void interrupt isr(void)

}}

程式還是比較簡單的,這裡有個需要特別說明就是定時器的初始值是怎麼計算的問題:

系統時鐘是經過4分配後才給外設的,所以timer1的時鐘就是1mhz(微控制器外接4mhz晶振),

假設程式裡配置為8分頻,那麼此時timer1的時鐘

是 : 1000000/8=125000hz

所以要想實現10ms定時,可以這樣計算, 10ms就是1s的百分之一,定時器1的百分之一時間內計數值就是1250,

由於定時器是從65535變成0的時候才會產生中斷,所以我們要讓初始值變成65536-1250=64286=0xfb1e

如果你覺得我說的很囉嗦那就直接看公式吧:

PIC16F877A定時器的學習

由於實時資料的 需要用到定時器產生資料,今天晚上完成pic16f877a產生正弦波形,並將波形資料傳送到上位機!這是乙個三角波的 程式,並通過串列埠傳送到上位機 include include include include main.h include t232.h include lcd.h i...

PIC16F877A微控制器的EEPROM讀寫

編寫乙個例程來說明比較好理解,本例程的功能是將乙個0x66的字元放在0x15的eeprom中,然後在讀取,如果讀取成功就點亮led燈 include 呼叫標頭檔案,16f877a微控制器 config 0xff32 晶元配置字,看門狗關,上電延時開,掉電檢測關,低壓程式設計關,加密,4m晶體hs振盪...

pic16f877微控制器TMR1的使用筆記

一 結構 1 tmr1可以作為通用的定時器和計數器,也可以利用內建的低頻時基振盪器實現實時時鐘rtc功能 通過tmr1與ccp模組的配合使用,tmr1還可以實現輸入捕捉和輸出比較功能。tmr1是乙個16位的可讀可寫的計數暫存器,由高低兩位元組組成 tmr1h和tmr1l 16位暫存器從0000h到f...