51手記之STC





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

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

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

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

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

由于所有的PCA模塊共用同一個PCA定時器,所以它們的輸出頻率相同,各個模塊的輸出占空比是獨立變化的,當CL的值小于(EPCnL,CCAPnL)時輸出為低,否則輸出高。PWM的輸出頻率=PCA時鐘頻率/256。
8.A/D轉換
有8路10位高精度ADC,速度均可達到100KHZ;8路電壓輸入型A/D,可做溫度檢測,電池電壓檢測,按鍵掃描,頻譜檢測。
需作為A/D使用的口需先將其設置為開漏輸出或僅為輸入模式,
A/D轉換由寄存器ADC_CONTR控制,轉換結果存放在ADC_DATA(高8位)和ADC_LOW2(低2位)
9.EEPROM使用
片上集成有數據FLASH區,可通過IAP方式對其進行讀寫和擦除操作。
相關寄存器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)寫操作
評論