可程式計數器陣列
P.S.[C8051F4XX系列單片機所帶有的PCA介紹]
PCA(可程式計數器陣列Programmable Counter Array)有 5 個 16 位的捕獲/比較模組與之相連,由高位元組(PCA0H)和低位元組(PCA0L)組成。在讀PCA0L 的同時自動鎖存PCA0H 的值,先讀PCA0L 暫存器將使PCA0H 的值得到保持(在讀PCA0L 的同時),直到用戶讀PCA0H 暫存器為止。讀PCA0H 或PCA0L 不影響計數器工作。PCA0MD 暫存器中的CPS2-CPS0 位用於選擇PCA 計數器/定時器的時基信號。
CPS2 CPS1 CPS0時間基準
0 0 0系統時鐘的12 分頻
0 0 1 系統時鐘的4 分頻
0 1 0 定時器0 溢出
0 1 1 ECI 負跳變(最大速率 = 系統時鐘頻率/4)
1 0 0 系統時鐘
1 0 1 外部振盪源8 分頻(與系統時鐘同步)
1.工作原理:當計數/定時器溢出時,PCA0MD中的計數器溢出標誌(CF)被置為1,並產生中斷請求(如果CF 中斷被允許)。將PCA0MD 中ECF 位設定為邏輯1 即可允許CF 標誌產生中斷請求。當CPU 轉向中斷服務程式時,CF 位不能被硬體自動清除,必須用軟體清0。(注意:要使CF 中斷得到回響,必須先總體允許PCA0 中斷。通過將EA 位(IE.7 )和EPCA0 (EIE1.3 )設定為邏輯1 來總體允許PCA0 中斷。清除PCA0MD暫存器中的CIDL 位將允許PCA 在微控制器核心處於等待方式時繼續正常工作。
位7: CF: PCA 計數器/定時器溢出標誌
當PCA0 計數器/定時器從0xFFFF 到0x0000 溢出時由硬體置位。在計數器/
定時器溢出(CF) 中斷被允許時,該位置1 將導致CPU 轉向CF 中斷服務
程式。該位不能由硬體自動清0, 必須用軟體清0
位6: CR: PCA0 計數器/定時器運行控制
該位允許禁止PCA0 計數器定時器
0: 禁止PCA0 計數器定時器
1: 允許PCA0 計數器定時器
位5: 未用讀=0b 寫=忽略
位4: CCF4 PCA0 模組4 捕捉/比較標誌
在發生一次匹配或捕捉時該位由硬體置位。當CCF 中斷被允許時,該位置1
將導致CPU 轉向CCF 中斷服務程式。該位不能由硬體自動清0 必須用軟體
清0
位3: CCF3: PCA0 模組3 捕捉/比較標誌
在發生一次匹配或捕捉時該位由硬體置位。當CCF 中斷被允許時該位置1
將導致CPU 轉向CCF 中斷服務程式。該位不能由硬體自動清0 ,必須用軟體
清0
位2: CCF2: PCA0 模組2 捕捉/比較標誌
在發生一次匹配或捕捉時該位由硬體置位。當CCF 中斷被允許時該位置1
將導致CPU 轉向CCF 中斷服務程式。該位不能由硬體自動清0 ,必須用軟體
清0
位1: CCF1: PCA0 模組1 捕捉/比較標誌
在發生一次匹配或捕捉時該位由硬體置位。當CCF 中斷被允許時該位置1
將導致CPU 轉向CCF 中斷服務程式。該位不能由硬體自動清0 ,必須用軟體
清0
位0: CCF0: PCA0 模組0 捕捉/比較標誌
在發生一次匹配或捕捉時該位由硬體置位。當CCF 中斷被允許時該位置1
將導致CPU 轉向CCF 中斷服務程式。該位不能由硬體自動清0 ,必須用軟體
清0
PCA0MD:PCA發生選擇暫存器
CIDL - - - CPS2 CPS1 CPS0 ECF 00000000
位7 位6 位5 位4 位3 位2 位1 位0 SFR地址
0xD9
位7: CIDL: PCA0 計數器/定時器等待控制
規定CPU 等待方式下的PCA0 工作方式
0: 當系統控制器處於等待方式時,PCA0 繼續正常工作
1: 當系統控制器處於等待方式時,PCA0 停止工作
位6-4 :未用讀=000b 寫=忽略
位3-1: CPS2-CPS0 PCA0 計數器/定時器脈衝選擇
位0: ECF: PCA 計數器/定時器溢出中斷允許
該位是PCA0 計數器/定時器溢出CF 中斷的禁止位
0: 禁止CF 中斷
1: 當CF(PCA0CN.7) 置位時允許PCA0 計數器/定時器溢出中斷請求
PCA0CPMn 地址 PCA0CPM0 0xDA(n=0)
PCA0CPM1 0xDB(n=1)
PCA0CPM2 0xDC(n=2)
PCA0CPM3 0xDD(n=3)
PCA0CPM4 0xDE(n=4)
位7: PWM16n: 16 位脈衝寬度調製允許
當脈衝寬度調製方式被允許時(PWMn = 1), 該位選擇16 位方式
0: 選擇8 位PWM
1: 選擇16 位PWM
位6: ECOMn: 比較器功能允許
該位允許禁止PCA0 模組n 的比較器功能
0: 禁止 1: 允許
位5: CAPPn: 正沿捕捉功能允許
該位允許禁止PCA0 模組n 的正邊沿捕捉
0: 禁止 1: 允許
位4: CAPNn 負沿捕捉功能允許
該位允許禁止PCA0 模組n 的負邊沿捕捉
0: 禁止 1: 允許
位3: MATn 匹配功能允許
該位允許/禁止PCA0 模組n 的匹配功能.如果被允許,當PCA0 計數器與一
個模組的捕捉比較暫存器匹配時,PCA0MD 暫存器中的CCFn 位置位
0 :禁止
1: 允許
位2: TOGn 電平切換功能允許
該位允許/禁止PCA0 模組n 的電平切換功能.如果被允許,當PCA0 計數器
與一個模組的捕捉/比較暫存器匹配時,CEXn 引腳的邏輯電平切換.如果
PWMn 位也被置為邏輯1, 則模組工作在頻率輸出方式
0: 禁止
1: 允許
位1: PWMn 脈寬調製方式允許
該位允許/禁止PCA0 模組的PWM 功能.如果被允許,CEXn 引腳輸出脈衝
寬度調製信號.如果PWM16n 為邏輯0, 使用8 位PWM 方式;如果PWM16n
為邏輯1, 使用16 位方式;如果TOGn 位也被置為邏輯1 ,則模組工作
在頻率輸出方式
0: 禁止
1: 允許
位0: ECCFn 捕捉比較標誌中斷允許
該位設定捕捉比較標誌CCFn 的中斷禁止
0: 禁止CCFn 中斷
1: 當CCFn 位被置1 時允許捕捉比較標誌的中斷請求
3.捕捉/比較模組的工作方式:
邊沿觸發捕捉、軟體定時器、高速輸出、頻率輸出、8位脈寬調製器以及16位脈寬調製器