PIC16C64單片機(jī)外部功能特點(diǎn)
一、捕抓/比較/脈寬調(diào)制模塊 ??
PICI6C64單片機(jī)的RC2/C CPI腳具有捕抓/比較/PWM輸出的功能,對(duì)應(yīng)于內(nèi)部的捕抓/比較/PWM模塊,簡(jiǎn)稱CCPI模塊。該模塊內(nèi)有一16位寄存器。(CCPR1)可由軟件設(shè)置而作為捕抓寄存器,比較寄存器或PWM輸出寄存器。由圖工中的CCP1控制寄存器(CCP1CON)來(lái)選擇模式。??
(一)捕抓功能 ??
RC2/CCP 1腳作為捕抓功能時(shí),應(yīng)置為輸入態(tài)。當(dāng)有脈沖事件在CCP1腳上發(fā)生時(shí),CCPR1即捕抓記錄下此時(shí)TMR1(計(jì)數(shù)器1)的值,井產(chǎn)生捕抓發(fā)生中斷請(qǐng)求.
例程1. BSF TRISC,2 ;CCP1腳置為輸入 ???
?MOVLW,XXXX0101;選CCP1為捕抓模式, ????????????
每個(gè)上升沿有效 ????
MOVWF CCP1CON ;設(shè)置CCPP1控制寄存器
捕抓功能可用以計(jì)算外部脈沖寬度(頻率)等。
0000:CCP1模式功能關(guān)閉(復(fù)位).
0100:捕抓模式,CCP1腳每個(gè)下降沿捕抓.
0101:捕抓模式,CCP1腳每個(gè)上升沿捕抓。
0110:捕抓模式,CCP1腳每4個(gè)上升沿捕抓。
0111:捕抓模式,CCP1腳每16個(gè)上升沿捕抓。
1000:比較模式,符合時(shí)CCP1腳置1。
1001:比較模式,符合時(shí)CCP1腳清0。
1010:比較模式,符合時(shí)CCCP1腳不變, 產(chǎn)生中斷請(qǐng)求。
1011:比較模式:觸發(fā)特殊事件發(fā)生。
11XX:PWM輸出模式
(二)比較功能 RC2/CCP1腳此時(shí)應(yīng)置為輸出態(tài)。在比較模式下,CCPR1寄存器不停地和TMR1寄存器比較,當(dāng)兩者的值相等(匹配)時(shí),可使RC2/CCP1腳出現(xiàn)下列情況。
(1)拉為高電平
(2)拉為低電平
(3)保持不變。
同時(shí)還會(huì)產(chǎn)生比較中斷請(qǐng)求。
例程2. BCF TRISC,2 ;CCP1腳置為輸出????
MOVLW XXXX1000;選CCP1為比較模式 ????????????
匹配時(shí)CCP1腳置高電平 ????
MOVWF CCP1CON ;設(shè)置OCPI控制寄存器 比較功能常用來(lái)定時(shí)驅(qū)動(dòng)某種部件。
此時(shí)RC2/CCP1腳應(yīng)置為輸出態(tài),在PWM模式下,用戶將8位頻寬比(Duty Cycle)置人CCPR1的低8位字節(jié)CCPR1L,而高8位CCPR1H作為PWM寄存器。PWM產(chǎn)生的過(guò)程如圖之所示:
PWM周期=[(PR2)十1」×4Tosc ×(TMR2預(yù)分頻值)
PWM Dwty Cycle=DC1×Tosc×(TMR2預(yù)分頻值)
其中DC1=CCPR1L和CCPR1CON(5:4)組成的10位值,所以PWM輸出分辨率最高可達(dá)10位。 PWM頻率和分辨率的關(guān)系(20 MHz振蕩下、見表1.
表1 PWM頻率和分辨率關(guān)系表
二、同步串行口(SSP) ??
PICI6C64單片機(jī)具有同步串行口簡(jiǎn)稱SSP,可用于與其他外圍裝置或微控制器通訊。外圍裝置可以是EEPROM、移位寄存器、顯示驅(qū)動(dòng)器,A/D轉(zhuǎn)換器等。SSP模塊可以由用戶選擇兩種工作方式
(1)串行外部接口(SPI)
(2)I2C接口
(一)串行外部按口(SPI)方式 SPI方式可讓8位數(shù)據(jù)同步傳輸和接收,用3個(gè)腳完成其通訊功能:
(1)串行數(shù)據(jù)出(SDO)
(2)串行數(shù)據(jù)人(SDI)
(3)串行時(shí)鐘(SCK)
PICI6C64有一個(gè)SSP拉制寄存器SSP CON,用戶可用軟件對(duì)其進(jìn)行設(shè)置,選擇自己需要的工作方式。另一個(gè)SSP狀態(tài)寄存器SSPSTAT則記錄了SSP的各種工作狀態(tài)。??
通過(guò)設(shè)置SSPCON(5:0)位,就可使SPI 工作在下列方式。
(1)主控方式(SCK作時(shí)鐘輸出)
(2)從屬方式(SCK作時(shí)鐘輸入)
(3)時(shí)鐘極性(SCK上升/下降沿傳輸數(shù)據(jù)) 圖3給出兩個(gè)微處理器相連的典型例子.
主控器(微處理器1)通過(guò)SCK信號(hào)來(lái)開始傳輸數(shù)據(jù)。數(shù)據(jù)通過(guò)移位寄存器在各自的時(shí)鐘邊沿傳送,并在下個(gè)邊沿被鎖存。兩個(gè)處理器以相同的時(shí)鐘極性進(jìn) 行串行通訊,兩個(gè)處理器即可同時(shí)發(fā)送與接收數(shù)據(jù)。(二)I2C方式 ??
SSP在I2C模式下可完成所有從控器(Slave)的功能,并提供硬件支持主控制(Master)的軟件實(shí)現(xiàn)。兩個(gè)腳用于數(shù)據(jù)傳輸:RC3/SCK/SCL(時(shí)鐘)和RC4/ SD1/SDA(數(shù)據(jù)),PICI6C64單片機(jī)的I2C串行通訊支持7位和10位尋址,可完成標(biāo)準(zhǔn)和快速方式的數(shù)據(jù)傳輸。
用戶通過(guò)設(shè)置SSPCON(3:O)可使I2C操作工作在如下幾種方式:
(1)I2C從控器模式(7位地址)。
(2)I2C從控器模式(10位地址)。
(3)I2C從控器模式(7位地址)并支持主控模式,
(4)I2C從控器模式(10位地址)并支持主控模式。
(5)I2C主控器模式,從控方式不用。 ??
SSPSTAT寄存器指出數(shù)據(jù)傳輸?shù)臓顟B(tài),包括STABT和STOP位的檢測(cè),區(qū)別地址和數(shù)據(jù),判別下一字節(jié)是否10位的地址及數(shù)據(jù)傳送的方向。??