一、定時器 / 計數(shù)器簡介
設(shè)置等待時間,到達等待時間之后執(zhí)行指定的硬件操作。
定時器最基本的功能就是定時,比如說定時發(fā)送串口數(shù)據(jù),定時采集 AD 數(shù)據(jù),如果將定時器和 IO 結(jié)合起來就可以實現(xiàn)非常豐富的功能,可以測量輸入信號的脈沖寬度,可以產(chǎn)生 PWM 方波,定時器產(chǎn)生 PWM 控制電機狀態(tài)是工業(yè)控制的普通。
二、定時器 / 計數(shù)器相關(guān)寄存器介紹
1、計數(shù)寄存器 TH 和 HL
T/C 是 16 位的,計數(shù)寄存器由 TH 高 8 位和 TL 低 8 位構(gòu)成。
對應(yīng) T/C0 為 TH0 和 TL0, 對應(yīng) T/C1 為 TH1 和 TL1,定時器 / 計數(shù)器的初始值通過 TH0/TL0 和 TH1/TL1 設(shè)置。
2、定時器 / 計數(shù)器控制寄存器 TCON
3、T/C 的方式控制寄存器 TMOD
	
三、定時器的計數(shù)初始值計算
四、中斷源及中斷信號
五、參考代碼
/******************************************************
	
	功能描述:LED 會循環(huán)點亮 1 秒,熄滅 1 秒。
	
	使用單片機內(nèi)部定時器可實現(xiàn)準(zhǔn)確延時  
	
	******************************************************/
	
	#include "reg52.h"
	
	// 此文件中定義了單片機的一些特殊功能寄存器
	
	typedef unsigned int u16; // 對數(shù)據(jù)類型進行聲明定義
	
	typedef unsigned char u8;
	
	sbit led=P2^0;   // 定義 P20 口是 led
	
	void Timer0Init()
	
	{
	
	 TMOD|=0X01; // 選擇為定時器 0 模式,工作方式 1(16 位),僅用 TR0 打開啟動
	
	 TH0=0XFC;  // 給定時器賦初值,定時 1ms 高 8 位
	
	 TL0=0X18;  // 低 8 位(可用軟件計算,公司參考上面)
	
	 ET0=1;   // 允許定時器 0 中斷
	
	 EA=1;    // 打開總中斷
	
	 TR0=1;   // 打開定時器 0,啟動 T/C0 運行
	
	}
	
	
	void main()
	
	{
	
	 Timer0Init();
	
	 while(1);
	
	}
void Timer0() interrupt 1 //1 是中斷號
	
	{
	
	 static u16 i;
	
	 TH0=0XFC;  // 計數(shù)器寄存高 8 位重新載入
	
	 TL0=0X18;  // 計數(shù)器寄存低 8 位重新載入
	
	 i++;
	
	 if(i==1000)
	
	 {
	
	  i=0;
	
	  led=~led;
	
	 }
	
	}
	
	審核編輯 黃昊宇
- 
                                寄存器
                                +關(guān)注
關(guān)注
31文章
5521瀏覽量
128510 
發(fā)布評論請先 登錄
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計32:寄存器功能驗證與分析2
    
?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南
    
TPIC6595 8位功率移位寄存器技術(shù)文檔摘要
    
?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)
    
使用寄存器點亮LED燈
    
第四章 什么是寄存器
    
74HC594-Q100;74HCT594-Q100帶輸出寄存器的8位移位寄存器規(guī)格書
    
24l01寄存器列表指南免費下載
STC15系列常用寄存器匯總免費下載
XILINX FPGA CLB單元之移位寄存器
    
          
        
        
各類寄存器的計算以及中斷
                
 
    
           
            
            
                
            
評論