51手記之STC





PCA、RXD、T1、T0輸出腳可通過(guò)寄存器WAKE_CLK0配置為外部中斷使用。
5.定時(shí)器
有2個(gè)16位專(zhuān)用定時(shí)器T0、T1;PCA也可用作定時(shí)器使用;還有一個(gè)看門(mén)狗定時(shí)器;
定時(shí)器0和定時(shí)器1完全兼容傳統8051;定時(shí)器計數時(shí)鐘源可選擇為系統時(shí)鐘的1/12或系統時(shí)鐘,通過(guò)AUXR.T0x12和AUXR.T1x12設置(為0時(shí)同傳統51,為1時(shí)不分頻)。
看門(mén)狗由寄存器WDT_CONTR控制,置位WDT_CONTR.CLR_WDT看門(mén)狗將重新計數。
看門(mén)狗溢出時(shí)間=(12*分頻值*32768)/系統時(shí)鐘
6.串行口
2個(gè)全雙工串行口,功能同標準51;
串口2使用獨立波特率發(fā)生器,串口1可選擇使用定時(shí)器1或獨立波特率發(fā)生器(AUXR.S1BRS為0時(shí)使用定時(shí)器1,為1時(shí)共用獨立波特率發(fā)生器);獨立波特率發(fā)生器的計數時(shí)鐘源為系統時(shí)鐘的1/12或系統時(shí)鐘(AUXR.BRTx12為0時(shí)使用系統時(shí)鐘的1/12,為1時(shí)使用系統時(shí)鐘);兩個(gè)串口都使用獨立波特率發(fā)生器時(shí),它們的波特率相同。
獨立波特率發(fā)生器復位后是關(guān)閉的,需通過(guò)AUXR.BRTR=1使能。它有一個(gè)8位獨立波特率計數器BRT。
串行口2波特率計算公式:模式0波特率=系統時(shí)鐘/12或系統時(shí)鐘/2(AUXR.UART_M0x6為0時(shí)同標準51)
模式1,3波特率=f/(256-BRT),f為波特率發(fā)生器計數器時(shí)鐘源頻率
模式2波特率=2S2SMOD*系統時(shí)鐘/64
7.PCA(可編程計數器陣列)
含有一個(gè)獨立的16位定時(shí)器,2/4個(gè)16位捕獲/比較模塊與之相連,每個(gè)模塊可編程工作在4種工作模式:上升/下降沿捕獲、軟件定時(shí)器、高速輸出、可調制脈沖輸出。
PCA定時(shí)器的時(shí)鐘源由CMOD設置,由PCA控制寄存器CCON控制。

每個(gè)PCA模塊的工作模式由寄存器CCAPMn來(lái)設置:
1)捕獲模式
CCAPMn=0x20或0x10或0x30,

對模塊外部CEXn輸入的跳變進(jìn)行采樣,當采樣到有效跳變時(shí),PCA硬件就將PCA計數陣列CH,CL的值裝載到模塊的捕獲寄存器CCAPnH,CCAPnL中。
2)軟件定時(shí)器模式
CCAPMn=0X48,

3)高速輸出模式
CCAPMn=0X4C,

4)脈寬調節(PWM)模式
CCAPMn=0x42,

由于所有的PCA模塊共用同一個(gè)PCA定時(shí)器,所以它們的輸出頻率相同,各個(gè)模塊的輸出占空比是獨立變化的,當CL的值小于(EPCnL,CCAPnL)時(shí)輸出為低,否則輸出高。PWM的輸出頻率=PCA時(shí)鐘頻率/256。
8.A/D轉換
有8路10位高精度ADC,速度均可達到100KHZ;8路電壓輸入型A/D,可做溫度檢測,電池電壓檢測,按鍵掃描,頻譜檢測。
需作為A/D使用的口需先將其設置為開(kāi)漏輸出或僅為輸入模式,
A/D轉換由寄存器ADC_CONTR控制,轉換結果存放在A(yíng)DC_DATA(高8位)和ADC_LOW2(低2位)
9.EEPROM使用
片上集成有數據FLASH區,可通過(guò)IAP方式對其進(jìn)行讀寫(xiě)和擦除操作。
相關(guān)寄存器IAP_CONTR,IAP_CMD、IAP_TRIG、IAP_DATA、IAP_ADDRH、IAP_ADDRL
1)擦除操作IAP_CMD=0x03;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
IAP_ADDRL=addrl;
IAP_CONTR=0X81;
IAP_CMD=READ;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
*rdata=IAP_DATA;
3)寫(xiě)操作
評論