PIC單片機(jī)原理及應(yīng)用(第三版)(下)_第1頁(yè)
PIC單片機(jī)原理及應(yīng)用(第三版)(下)_第2頁(yè)
PIC單片機(jī)原理及應(yīng)用(第三版)(下)_第3頁(yè)
PIC單片機(jī)原理及應(yīng)用(第三版)(下)_第4頁(yè)
PIC單片機(jī)原理及應(yīng)用(第三版)(下)_第5頁(yè)
已閱讀5頁(yè),還剩131頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PIC單片機(jī)原理及應(yīng)用(第三版)下主編:李榮正1第0章鍵盤和顯示鍵盤和顯示是單片機(jī)控制系統(tǒng)非常重要的人機(jī)交互界面。

20.1八段數(shù)碼顯示1、八段數(shù)碼顯示器的編碼數(shù)值編碼數(shù)值編碼106H67DH25BH707H34FH87FH466H96FH56DH03FH2、編碼查表程序33、多位數(shù)字動(dòng)態(tài)顯示多位數(shù)字動(dòng)態(tài)顯示涉及數(shù)據(jù)的傳送和顯示位的控制。位控制顯示數(shù)據(jù)〔編碼〕停留時(shí)間〔確保視覺需要〕44、多位數(shù)字靜態(tài)顯示多位數(shù)字靜態(tài)顯示涉及數(shù)據(jù)顯示位數(shù)據(jù)的鎖存控制,一般采用兩種方案實(shí)現(xiàn)。多位74LS164移位存放器采用74LS224和74LS373數(shù)據(jù)鎖存50.2獨(dú)立鍵盤和矩陣鍵盤1、獨(dú)立鍵盤

62、矩陣鍵盤

7第9章串行通信模塊

串行擴(kuò)展通信接口是單片機(jī)與其它計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)交換的重要渠道,F(xiàn)877單片機(jī)主要配置有2種形式的串行通信模塊:主控同步串行通信MSSP〔MasterSynchronousSerialPort〕通用同步/異步收發(fā)器USART〔UniversalSynchronous/AsynchronousReceiverTransmitter〕。

8

MSSP模塊主要應(yīng)用于系統(tǒng)內(nèi)部近距離的串行通信擴(kuò)展,如SPI、I2C模式。USART模塊主要應(yīng)用于系統(tǒng)之間的遠(yuǎn)距離串行通信,在外圍接口電路及計(jì)算機(jī)通信中應(yīng)用相當(dāng)廣泛。

9

9.1SPI串行通信模塊

SPI〔SerialPeripheralInterface〕是一種單片機(jī)外設(shè)芯片同步串行擴(kuò)展接口,由摩托羅拉公司推出。采用SPI接口外圍器件的特點(diǎn)是引腳性價(jià)比高等優(yōu)點(diǎn),因而在市場(chǎng)上得到了廣泛的應(yīng)用。109.1.1SPI模式下相關(guān)存放器在SPI模式下,有關(guān)的存放器共有10個(gè),其中無編址的只有一個(gè)SSPSR。這10個(gè)存放器中有6個(gè)存放器是與其它模塊共用的。另外有4個(gè)存放器與MSSP模塊相關(guān),它們是與I2C模式共用的。111.SSPBUF〔收/發(fā)數(shù)據(jù)緩沖器〕122.SSPSTAT〔同步串口狀態(tài)存放器〕13Bit0/BF:緩沖器滿標(biāo)志位,被動(dòng)參數(shù)。僅僅用于SPI接收狀態(tài)下:0:緩沖器空;1:緩沖器滿。Bit6/CKE:SPI時(shí)鐘沿選擇和I2C總線輸入電平選擇位。在CKP=0,靜態(tài)電平為低時(shí):0:SCK的下降沿發(fā)送數(shù)據(jù);1:SCK的上升沿發(fā)送數(shù)據(jù)。在CKP=1,靜態(tài)電平為高時(shí):0:SCK的上升沿發(fā)送數(shù)據(jù);1:SCK的下降沿發(fā)送數(shù)據(jù)。14Bit7/SMP:SPI采樣控制位兼I2C總線轉(zhuǎn)換率控制位。在SPI主控方式下:0:在輸出數(shù)據(jù)的中間采樣輸入數(shù)據(jù);1:在輸出數(shù)據(jù)的末尾采樣輸入數(shù)據(jù)。注意:在SPI從動(dòng)方式下,SMP位必須置位。153.SSPCON〔同步串口控制存放器〕16同步串行口MSSP方式選擇位

17Bit4/CPK:時(shí)鐘極性選擇位。0:表示空閑時(shí)時(shí)鐘停留在低電平;1:表示空閑時(shí)時(shí)鐘停留在高電平。Bit5/SSPEN:同步串口MSSP使能位。在SPI模式下時(shí),有關(guān)引腳必須正確的設(shè)定為輸入或輸出狀態(tài)。0:關(guān)閉串行端口功能,且設(shè)定SCK、SOD、SDI和SS為普通數(shù)字I/O腳;1:允許串行端口工作,且設(shè)定SCK、SOD、SDI和SS為SPI接口專用。18Bit6/SSPOV:接收溢出標(biāo)志位,被動(dòng)參數(shù)。0:未發(fā)生接收溢出;1:發(fā)生接收溢出。注意:所指的接收溢出是緩沖器SSPBUF中數(shù)據(jù)還未取出時(shí),移位存放器SSPSR中又收到新的數(shù)據(jù),原SSPSR中的數(shù)據(jù)喪失。19Bit7/WCOL:寫操作沖突檢測(cè)位,被動(dòng)參數(shù)。在SPI從動(dòng)方式下:0:未發(fā)生沖突;1:發(fā)生沖突。注意:當(dāng)WCOL=1,正在發(fā)送前一個(gè)數(shù)據(jù)時(shí),又有新數(shù)據(jù)寫入SSPBUF,必須用軟件予以清零。

204.SSPSR移位存放器直接從端口引腳接收或發(fā)送數(shù)據(jù),將已經(jīng)成功接收到的數(shù)據(jù)送到緩沖器SSPBUF中,或者從緩沖器SSPBUF讀取將發(fā)送的數(shù)據(jù)。219.1.2SPI模式工作原理

要發(fā)送的數(shù)據(jù)通過數(shù)據(jù)總線送入發(fā)送緩沖器,然后自動(dòng)傳送到移位存放器中;移位存放器接收到數(shù)據(jù)自動(dòng)傳送到接收緩沖器,然后由程序讀取收到的數(shù)據(jù);移位存放器有移入和移出兩個(gè)端口,分別與收和發(fā)兩條通信線路連接,負(fù)責(zé)收發(fā)數(shù)據(jù)。22SPI模式電路的根本結(jié)構(gòu)23SPI工作原理示意圖

24【例題】如圖9-5為8位數(shù)碼顯示和16個(gè)鍵盤電路,利用F877的SPI同步串行功能實(shí)現(xiàn)數(shù)碼管數(shù)據(jù)串行傳送,并通過8個(gè)74LS164組成的移位電路,到達(dá)數(shù)碼數(shù)據(jù)的靜態(tài)顯示。而16個(gè)鍵盤組成矩陣電路,采用RD口上下四復(fù)合選通。請(qǐng)編寫相應(yīng)的應(yīng)用程序,要求:在系統(tǒng)復(fù)位后8位數(shù)碼管全暗,接著1、2、3…7分別從數(shù)碼管的最高位到最低位依次點(diǎn)亮,最后直接進(jìn)入系統(tǒng)的監(jiān)控狀態(tài),以在最高位出現(xiàn)“-”為標(biāo)志。

25【例題】在電路原理圖9-5根底上,對(duì)其電路結(jié)構(gòu)稍作調(diào)整,以便外擴(kuò)展一個(gè)靜態(tài)128KEPROM數(shù)據(jù)存儲(chǔ)器。利用RC3、RC4、RC5引腳組成一個(gè)SPI同步串行方式,通過164移位產(chǎn)生17位尋址功能,實(shí)現(xiàn)對(duì)HM628128的并行數(shù)據(jù)傳送〔RD端口〕。編程要求:首先將256個(gè)數(shù)據(jù)00H-FFH存入EPROM單元0000H-00FFH中,然后再將這些單元中的數(shù)據(jù)逐個(gè)取出,送往數(shù)碼顯示區(qū)的最后兩位顯示數(shù)據(jù)內(nèi)容,每個(gè)數(shù)顯示停留1秒種。26第7章定時(shí)器/計(jì)數(shù)器定時(shí)器/計(jì)數(shù)器模塊是大局部單片機(jī)都內(nèi)置的一項(xiàng)重要功能,定時(shí)器/計(jì)數(shù)器的正常工作一般表現(xiàn)為計(jì)數(shù)累計(jì)功能,通常是由時(shí)鐘脈沖來驅(qū)動(dòng)。定時(shí)器/計(jì)數(shù)器模塊一般適用于以下3種不同的應(yīng)用場(chǎng)合:27從單片機(jī)I/O引腳上向外部電路輸出一系列符合一定時(shí)序標(biāo)準(zhǔn)的方波信號(hào)。從單片機(jī)I/O引腳上,檢測(cè)外部電路輸入的一系列方波信號(hào)的脈寬、周期或頻率,以便單片機(jī)接收外部電路的輸入信號(hào)或通信信號(hào)。單片機(jī)對(duì)其端口引腳上輸入的由外部事件產(chǎn)生的觸發(fā)信號(hào)進(jìn)行準(zhǔn)確地計(jì)數(shù),依據(jù)計(jì)數(shù)結(jié)果來控制完成相應(yīng)的動(dòng)作。28

單片機(jī)配置3個(gè)定時(shí)器/計(jì)數(shù)器模塊:CCP:輸入捕捉、輸出比較和PWM脈沖寬度調(diào)制功能低頻時(shí)基振蕩器:32768Hz29三者的共同點(diǎn):它們的核心局部都是一個(gè)由時(shí)鐘信號(hào)觸發(fā),按遞增方式累加工作的循環(huán)計(jì)數(shù)器;從預(yù)先設(shè)定的某一初始值開始累計(jì),在累計(jì)到計(jì)數(shù)器產(chǎn)生溢出,并且同時(shí)會(huì)建立一個(gè)相應(yīng)的溢出中斷標(biāo)志。307.2定時(shí)器/計(jì)數(shù)器TMR1 定時(shí)器/計(jì)數(shù)器TMR1是一個(gè)16位的計(jì)數(shù)存放器,帶有一個(gè)3位的可編程預(yù)分頻器和一個(gè)內(nèi)置的低功耗低頻時(shí)基振蕩器。31TMR1的用途:TMR1可作通用的定時(shí)器和計(jì)數(shù)器;利用內(nèi)置的低頻時(shí)基振蕩器,可實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘RTC功能TMR1與CCP模塊配合使用,可實(shí)現(xiàn)輸入捕捉和輸出比較功能。32定時(shí)器/計(jì)數(shù)器TMR1的特性:一個(gè)16位的由時(shí)鐘信號(hào)上升沿觸發(fā)的累加計(jì)數(shù)寄器對(duì)TMR1L:TMR1H;TMR1L和TMR1H是在RAM中統(tǒng)一編址的存放器對(duì),地址為0EH和0FH,可用軟件方式讀/寫TMR1存放器對(duì)的內(nèi)容;一個(gè)可選用的3位可編程預(yù)分頻器;累加計(jì)數(shù)的信號(hào)源可選擇內(nèi)部系統(tǒng)時(shí)鐘、外部觸發(fā)信號(hào)或自帶時(shí)基振蕩器信號(hào);33定時(shí)器/計(jì)數(shù)器TMR1的特性:

既可工作于定時(shí)器模式又可工作于計(jì)數(shù)器模式,還可用作實(shí)時(shí)時(shí)鐘RTC;在計(jì)數(shù)器溢出時(shí),相應(yīng)的溢出中斷標(biāo)志自動(dòng)置位,并可產(chǎn)生溢出中斷。

34TMR1模塊相關(guān)的存放器中斷控制存放器INTCONTMR1控制存放器T1CON第一外設(shè)中斷屏蔽存放器PIE1高字節(jié)低字節(jié)TMR1H:TMR1L35TMR1控制存放器T1CON36Bit0/TMR1ON:TMR1使能控制位(而TMR0不能被關(guān)閉的),主動(dòng)參數(shù)。0:關(guān)閉TMR1,使TMR1退出活動(dòng)狀態(tài),以節(jié)省能耗;1:啟用TMR1,使TMR1進(jìn)入活動(dòng)狀態(tài)。Bit1/TMR1CS:時(shí)鐘源選擇位,主動(dòng)參數(shù)。0:選擇內(nèi)部時(shí)鐘源(fosc/4=Tcyc指令周期);1:選擇外部時(shí)鐘源,即時(shí)鐘信號(hào)來源于外部引腳或者自帶振蕩器。37Bit2/T1SYNC:TMR1外部輸入時(shí)鐘與系統(tǒng)時(shí)鐘同步控制位,主動(dòng)參數(shù)。當(dāng)TMR1工作于計(jì)數(shù)器方式(TMR1CS=1時(shí)):0:TMR1外部輸入時(shí)鐘與系統(tǒng)時(shí)鐘保持同步;1:TMR1外部輸入時(shí)鐘與系統(tǒng)時(shí)鐘不保持同步;當(dāng)TMR1工作于定時(shí)器方式(TMR1CS=0時(shí)):該位不起作用。Bit3/T1OSCEN:TMR1自帶振蕩器使能位,主動(dòng)參數(shù)。0:禁上TMR1振蕩器起振,使非門的輸出端呈高阻態(tài);1:允許TMR1振蕩器起振。38分頻器的分頻比選擇位,主動(dòng)參數(shù)。39定時(shí)器/計(jì)數(shù)器TMR1模塊的電路結(jié)構(gòu)

40TMR1與系統(tǒng)時(shí)鐘的協(xié)調(diào)關(guān)系417.3定時(shí)器TMR2

TMR2是一個(gè)8位定時(shí)器,帶一個(gè)可編程預(yù)分頻器和一個(gè)可編程后分頻器,一個(gè)可編程8位周期存放器PR2。42主要用途

TMR2是存放計(jì)數(shù)值的存放器,只能工作于定時(shí)器模式;可以為主同步串行端口MSSP模塊(SPI模式),提供波特率時(shí)鐘;TMR2還可以與CCP模塊配合使用,提供脈寬調(diào)制PWM功能的時(shí)基信號(hào)。43

定時(shí)器TMR2的特性

TMR2在RAM空間內(nèi)統(tǒng)一編址,地址為011H;可用軟件方式直接讀/寫TMR2的內(nèi)容;可編程的2位預(yù)分頻器,有1:1、1:4、1:16,3種分頻比;可編程的4位后分頻器,有16種分頻比;帶有一個(gè)8位周期存放器PR2,這個(gè)存放器的值由用戶填入;44

定時(shí)器TMR2的特性

只能由內(nèi)部系統(tǒng)時(shí)鐘來觸發(fā)定時(shí)器的增量,因此只工作于定時(shí)器模式;具有溢出次數(shù)經(jīng)過分頻的溢出中斷功能;不管哪種復(fù)位,都會(huì)將TMR2清零。注意,TMR0和TMR1存放器的內(nèi)容不受復(fù)位的影響;可以被軟件關(guān)閉。45定時(shí)器TMR2模塊相關(guān)的存放器中斷控制存放器INTCON第一外設(shè)中斷屏蔽存放器PIE1第一外設(shè)中斷標(biāo)志存放器PIR1TMR2工作存放器TMR2TMR2控制存放器T2COMTMR2周期存放器PR246控制存放器T2CON47預(yù)分頻器分頻比選擇位,主動(dòng)參數(shù)

Bit2/TMR20N:TMR2使能控制位,主動(dòng)參數(shù)。0:關(guān)閉TMR2,可以降低功耗;1:啟用TMR2。48

TMR2后分頻器分頻比選擇位,主參49定時(shí)器TMR2模塊的電路結(jié)構(gòu)

50第10章CCP捕捉/比較/脈寬調(diào)制配置了2個(gè)捕捉/比較/脈寬調(diào)制模塊CCP1、CCP2(Capture/Compare/PWM)。它們各自都有獨(dú)立的16位存放器CCPR1和CCPR2,兩個(gè)模塊結(jié)構(gòu)、功能、操作方法根本一樣,它們的區(qū)別僅在于各自有獨(dú)立的外部引腳,以及各自的特殊事件觸發(fā)器。它們的功能實(shí)現(xiàn),往往與定時(shí)器TMR1、TMR2復(fù)合使用。5110.1CCP模塊功能介紹

CCP模塊可工作在3種模式下:捕捉方式、比較方式和脈寬調(diào)制方式。CCP模塊的捕捉功能:可捕捉外部輸入脈沖的上升沿或下降沿,產(chǎn)生相應(yīng)的中斷,適用于測(cè)量引腳輸入的周期性方波信號(hào)的周期、頻率、占空比等,也適用于測(cè)量引腳輸入的非周期性矩形脈沖信號(hào)的寬度、到達(dá)時(shí)刻或消失時(shí)刻等參數(shù);52比較功能:用于從引腳上輸出不同寬度的矩形正脈沖、負(fù)脈沖、延時(shí)啟動(dòng)信號(hào)等;脈寬調(diào)制功能:適合于從引腳上輸出脈沖寬度隨時(shí)可調(diào)的PWM信號(hào)來實(shí)現(xiàn)直流電機(jī)的調(diào)速、D/A轉(zhuǎn)換、步進(jìn)電機(jī)的步進(jìn)控制等。53

CCP模塊與定時(shí)器模塊的搭配

54CCP模塊存放器介紹〔CCP1為例〕CCP1控制存放器:CCP1CONCCP1模塊存放器:CCPR1H:CCPR1LPIR1、PIE1、TRISC、TMR1H:TMR1L

55CCP1控制存放器:CCP1CON56Bit3-Bit0/CCP1M3-CCP1M0:CCP1工作方式選擇位,主動(dòng)參數(shù)。00xx:關(guān)閉捕捉/比較/脈寬調(diào)制模塊〔即CCP1復(fù)位〕;01xx:捕捉工作方式;10xx:比較工作方式;11xx:脈寬調(diào)制PWM工作方式。57Bit5-Bit4/CCP1X-CCP1Y:PWM工作循環(huán)周期的最低2位,數(shù)據(jù)參數(shù)。作為其輸出信號(hào)脈寬的低2位,高8位在CCPR1L中。 捕捉方式:未用。比較方式:未用。58

10.2捕捉功能

PIC單片機(jī)的輸入捕捉功能,就是對(duì)外部從引腳CCP上輸入的脈沖上升沿或下降沿進(jìn)行捕捉檢測(cè)。

59

10.2.1捕捉方式工作原理

6010.2.2捕捉方式相關(guān)的存放器CCP控制存放器CCP1CON專用CCP存放器CCP1H:CCP1L外設(shè)中斷標(biāo)志存放器:PIR1〔CCP1IF〕外設(shè)中斷允許存放器:PIE1〔CCP1IE〕TMR1計(jì)數(shù)存放器上下字節(jié)TMR1H:TMR1L專用CCP端口定義:TRISC〔Bit2〕61CCP控制存放器CCP1CONBit3-Bit0/CCP1M3-CCP1M0:01xx:捕捉工作方式設(shè)置,主動(dòng)參數(shù)。

0100:捕捉每個(gè)脈沖下降沿;0101:捕捉每個(gè)脈沖上升沿;0110:捕捉每4個(gè)脈沖上降沿;0111:捕捉每16個(gè)脈沖上降沿。

62

10.2.3CCP1模塊捕捉方式的設(shè)定

CCP1模塊構(gòu)成輸入信號(hào)的捕捉功能,需要對(duì)相應(yīng)的控制位進(jìn)行設(shè)置,即所謂CCP1模塊捕捉方式的初始化。

63

CCP1引腳的設(shè)定

CCP1和RC2合用一個(gè)引腳RC2/CCP1,在CCP1的捕捉方式下,RC2引腳必須由TRISC的Bit2設(shè)定為輸入方式。但如該引腳設(shè)置為輸出方式時(shí),那么每次對(duì)該端口的寫操作都會(huì)被作為一次捕捉事件處理。64

TMR1工作方式的設(shè)定

當(dāng)CCP1工作于捕捉模式時(shí),必須和TMR1搭配。同時(shí)TMR1必須設(shè)定為定時(shí)器工作方式或者同步計(jì)數(shù)器方式。計(jì)數(shù)初值一般以0開始。但如TMR1設(shè)置為異步計(jì)數(shù)器方式時(shí),那么CCP1不能工作在捕捉模式下。65預(yù)分頻器設(shè)定

必須通過CCP1CON的CCP1M3-CCP1M0的設(shè)置,選擇一種觸發(fā)事件。而利用TMR1的預(yù)分頻比例進(jìn)行設(shè)置。1:1、1:4、1:16、1:16共三種。66中斷及響應(yīng)

每當(dāng)CCP1捕捉到一事件發(fā)生時(shí),將CCP1IF置位,產(chǎn)生一次中斷。在改變CCP捕捉方式時(shí),可能產(chǎn)生一次錯(cuò)誤的捕捉中斷,所以,在改變捕捉方式之前,必須去除中斷使能位CCP1IE來屏蔽CCP1中斷請(qǐng)求,并且在捕捉模式改變之后,將中斷標(biāo)志位CCP1IF清零,以防止引起CPU的錯(cuò)誤響應(yīng)。67

應(yīng)用實(shí)例

檢測(cè)脈沖的寬度簡(jiǎn)單頻率計(jì)的設(shè)計(jì)

6810.3比較功能CCP模塊第2個(gè)功能是比較方式輸出,用于從引腳上輸出不同寬度的矩形脈沖信號(hào)、不同的周期頻率脈沖以及非周期頻率信號(hào)等69比較方式工作原理7010.3.2比較方式相關(guān)存放器CCP控制存放器CCP1CON專用CCP存放器CCP1H:CCP1L外設(shè)中斷標(biāo)志存放器:PIR1〔CCP1IF〕外設(shè)中斷允許存放器:PIE1〔CCP1IE〕TMR1計(jì)數(shù)存放器上下字節(jié)TMR1H:TMR1L專用CCP端口定義:TRISC〔Bit2〕71CCP控制存放器CCP1CONBit3-Bit0/CCP1M3-CCP1M0:比較方式下的功能定義。1000:如果CCPR1與TMR1相等,RC2/CCP引腳為高電平,同時(shí)CCP1IF置位;1001:如果CCPR1與TMR1相等,RC2/CCP引腳為低電平,同時(shí)CCP1IF置位;1010:如果CCPR1與TMR1相等,產(chǎn)生軟中斷〔CCP1IF置位,CCP1引腳不受影響〕;1011:特殊事件觸發(fā)〔CCP1IF置位,CCP1將TMR1復(fù)位,CCP2將TMR1復(fù)位,并且啟動(dòng)A/D模數(shù)轉(zhuǎn)換電路〕。7210.3.3CCP1比較方式設(shè)定CCP1模塊構(gòu)成輸出比較功能,需要對(duì)相應(yīng)的控制位進(jìn)行設(shè)置,即所謂CCP1模塊比較工作方式的初始化。73

CCP引腳設(shè)定

在比較工作方式下,用戶必須通過把TRISC的bit2位清零,把RC2/CCP1引腳設(shè)置成輸出狀態(tài)。如果對(duì)CCP1CON存放器清零,將迫使RC2/CCP1引腳輸出低電平。74

TMR1方式設(shè)定

當(dāng)CCP1工作在比較方式時(shí),TMR1必須設(shè)置在定時(shí)方式或同步計(jì)數(shù)方式下,TMR1初值一般為0。而當(dāng)TMR1工作在異步計(jì)數(shù)方式下時(shí),CCP1無法工作在比較工作方式。75

軟件中斷方式

中選擇軟件中斷方式,即CCP1CON的CCP1M3-CCP1M0為1010時(shí),CCP1引腳上的電平不受影響,只把CCP1IF置位,產(chǎn)生CCP中斷〔當(dāng)該中斷使能時(shí)〕。76

特殊事件觸發(fā)方式

在特殊事件觸發(fā)方式下,即CCP1CON的CCP1M3-CCP1M0為1011時(shí),將產(chǎn)生一個(gè)內(nèi)部硬件觸發(fā)信號(hào),它可以用于啟動(dòng)一個(gè)特殊操作。CCP1的特殊事件觸發(fā)輸出將對(duì)TMR1存放器進(jìn)行復(fù)位,使得CCPR1存放器可以作為TMR1的16位可編程周期存放器。CCP2的特殊事件觸發(fā)輸出也將對(duì)TMR1存放器進(jìn)行復(fù)位,并且啟動(dòng)A/D數(shù)模轉(zhuǎn)換。CCP1、CCP2模塊的特殊事件觸發(fā)輸出不會(huì)將中斷標(biāo)志位TMR1IF置位。77

應(yīng)用實(shí)例

輸出脈沖信號(hào)改變信號(hào)頻率

7810.4脈寬調(diào)制功能

CCP模塊第3個(gè)功能PWM脈寬調(diào)制,它的應(yīng)用非常廣泛,可以從CCP引腳上輸出不同占空比寬度的矩形脈沖信號(hào),并可有效改變信號(hào)的輸出頻率。PWM脈寬調(diào)制信號(hào),一般用于特殊器件的啟動(dòng)觸發(fā)脈沖。

79

脈寬調(diào)制方式工作原理

當(dāng)CCP1工作在脈寬調(diào)制PWM〔PulseWidthModulation〕方式下,RC2/CCP1引腳上可能輸出分辨率高達(dá)10位,脈沖寬度隨時(shí)可調(diào)的脈寬調(diào)制波形。必須將RC2/CCP1引腳設(shè)置為輸出狀態(tài)。對(duì)CCP1CON存放器清0將迫使PWM輸出引腳RC2/CCP1輸出低電平,這并非是正常的PWM輸出的數(shù)據(jù)。80脈寬調(diào)制方式原理圖81脈寬調(diào)制方式原理圖82

PWM輸出信號(hào)周期

PWM輸出信號(hào)周期可通過向TMR2的周期存放器PR2寫入來設(shè)定,計(jì)算公式如下:PWM周期=4Tosc×〔〔PR2〕+1〕×〔TMR2預(yù)分頻值〕其中,Tosc為系統(tǒng)時(shí)鐘周期;4×Tosc為指令周期;TMR2預(yù)分頻值可以為1、4或16。PWM信號(hào)的頻率定義為PWM周期的倒數(shù)。83

PWM輸出時(shí)序圖

PWM周期周期PWM脈寬TMR2=PR2TMR2=PR2TMR2=10bitCCPR1L84PWM輸出信號(hào)的脈寬

通過寫入脈寬存放器,即CCPR1L存放器及CCP1CON控制存放器的bit5~bit4位可以得到PWM的高電平時(shí)間設(shè)定值,分辨率可達(dá)10位。其中,由8位的CPPR1L的值作為10位中的高8位,由控制存放器CCP1CON中的Bit5-Bit4兩位作為10位中的低2位組成。因此,計(jì)算PWM高電平〔脈寬〕的公式如下:PWM高電平〔脈寬〕=CCPR1L:CCP1CON〔Bit5-Bit4〕×Tosc×〔TMR2預(yù)分頻值〕CCPR1L:CCP1CON(Bit5-Bit4)為10位脈寬存放器、TMR2預(yù)分頻值,可取1、4或16。8510.4.2脈寬調(diào)制方式相關(guān)存放器CCP控制存放器CCP1CON專用CCP存放器CCP1H:CCP1L外設(shè)中斷標(biāo)志存放器:PIR1〔CCP1IF〕外設(shè)中斷允許存放器:PIE1〔CCP1IE〕計(jì)時(shí)存放器:TMR2專用CCP端口定義:TRISC〔Bit2〕定時(shí)周期存放器:PR2TMR2控制存放器:T2CON86CCP控制存放器CCP1CONBit3-Bit0/CCP1M3-CCP1M0:脈寬調(diào)制功能設(shè)置,主動(dòng)參數(shù)。11XX:脈寬調(diào)制方式,低2位不起作用。Bit5-Bit4/CCP1X-CCP1Y:CCP1脈寬存放器的低2位,高8位在CCPR1L中,數(shù)據(jù)參數(shù)。87

PWM操作設(shè)置

定PWM周期,向PR2存放器寫入PWM周期值;定PWM高電平〔脈寬〕值,向CCPR1L和控制存放器CCP1CON中的Bit5-Bit4兩位寫入PWM高電平〔脈寬〕值;定CCP1引腳為輸出狀態(tài),通過對(duì)TRISC的bit2位清零;設(shè)置TMR2的預(yù)分頻值,并通過向T2CON寫入以使TMR2使能;設(shè)定CCP模塊為PWM操作,向CCP1CON低4位寫入設(shè)定值。889.3USART串行通信模塊

PIC系列芯片中,片內(nèi)除了含有同步串行口SSP〔SPI,I2C〕外,還有一個(gè)串行通信接口SCI。這是一個(gè)通用同步/異步收發(fā)器,簡(jiǎn)稱USART,它是計(jì)算機(jī)最常用的通信接口之一。USART可工作于如下三種方式:全雙工異步方式;半雙工同步主控方式;半雙工同步從動(dòng)方式。899.3.1與USART模塊相關(guān)的存放器1.發(fā)送狀態(tài)兼控制存放器:TXSTA2.接收狀態(tài)兼控制存放器:RCSTA3.USART發(fā)送緩沖存放器:TXREG4.USART接收緩沖存放器:RCREG5.PIE存放器6.PIR存放器901.發(fā)送狀態(tài)兼控制存放器TXSTA91Bit0/TX9D:發(fā)送數(shù)據(jù)的第9位〔9位數(shù)據(jù)幀結(jié)構(gòu)〕。0:不發(fā)送9位數(shù)據(jù);1:發(fā)送9位數(shù)據(jù)幀。Bit1/TRMT:發(fā)送移位存放器〔TSR〕“空”標(biāo)志位。0:發(fā)送移位存放器滿;1:發(fā)送移位存放器空。92Bit2/BRGH:高波特率選擇位。異步模式下:0:低速;1:高速。同步方式下,未用。Bit4/SYNC:USART同步/異步模式選擇位。0:選擇異步模式〔USAT〕;1:選擇同步模式〔USRT〕。93Bit5/TXEN:發(fā)送使能位。0:關(guān)閉發(fā)送功能;1:使能發(fā)送功能。Bit6/TX9:發(fā)送數(shù)據(jù)長(zhǎng)度選擇位。8位數(shù)據(jù)加1位校驗(yàn)或標(biāo)識(shí)位。0:8位數(shù)據(jù)位發(fā)送;1:9位數(shù)據(jù)發(fā)送。94Bit7/CSRC:時(shí)鐘源選擇位。同步模式下:0:選擇被控〔附屬〕模式〔時(shí)鐘來自外部輸入信號(hào)〕;1:選擇主控模式〔時(shí)鐘來自內(nèi)部波特率發(fā)生器〕。異步模式下,未用。952.接收狀態(tài)兼控制存放器RCSTA96Bit0/RX9D:所接收數(shù)據(jù)的第9位,可作校驗(yàn)位或標(biāo)識(shí)位等。Bit1/OERR:溢出標(biāo)志位。0:未發(fā)生溢出錯(cuò)誤;1:發(fā)生了溢出錯(cuò)誤。Bit2/FERR:幀格式錯(cuò)誤標(biāo)志位,被動(dòng)參數(shù)。0:無幀格式錯(cuò)誤;1:有幀格式錯(cuò)誤。97Bit3/ADDEN:地址匹配檢測(cè)使能位;接收數(shù)據(jù)選擇9位時(shí),該位才起作用。0:取消地址匹配檢測(cè)功能;1:?jiǎn)⒂玫刂菲ヅ錂z測(cè)功能。Bit4/CREN:連續(xù)接收使能位。異步模式下:0:禁止連續(xù)接收功能;1:使能連續(xù)接收功能。同步模式下:0:關(guān)閉連續(xù)接收;1:使能連續(xù)接收,直到該未被清0為止。優(yōu)于SREN位。

98Bit5/SREN:?jiǎn)巫止?jié)接收使能位。同步方式下:0:禁止單字節(jié)接收功能;1:使能單字節(jié)接收功能。異步方式下未用,并且在同步附屬接收方式下該位也無用。接收完成后該位即被清零。Bit6/RX9:接收數(shù)據(jù)長(zhǎng)度選擇位。0:選擇接收8位數(shù)據(jù);1:選擇接收9位數(shù)據(jù)。Bit7/SPEN:串行端口使能位。0:禁止串行端口工作;1:允許串行端口工作。此時(shí),RC7和RC6作為USART的接收發(fā)送引腳。993.TXREG,USART發(fā)送緩沖存放器

每次發(fā)送的數(shù)據(jù)都是通過寫入該緩沖器來實(shí)現(xiàn)的。

1004.RCREG,USART接收緩沖存放器每次接收到的數(shù)據(jù)都可從該緩沖器讀取出來的。

1015.SPBRG波特率存放器SPBRG存放器的設(shè)定值〔0-255〕與波特率成反比關(guān)系。在同步方式下,波特率僅由該存放器來決定;而在異步方式下,那么由BRGH位〔TXSTA存放器的bit2〕和該存放器共同確定。1029.3.2USART波特率發(fā)生器

USART模塊帶有一個(gè)波特率發(fā)生器BRG〔baudrategenerator〕,用以產(chǎn)生串行傳送所需的時(shí)鐘,它支持USART的同步方式和異步方式。在異步方式下,BRGH位用來控制波特率。在同步方式下,BRGH位不起作用。103波特率發(fā)生器的邏輯結(jié)構(gòu)如圖9-24。其核心實(shí)際是一個(gè)遞減的8位二進(jìn)制計(jì)數(shù)器,其計(jì)數(shù)初始值是由存放器SPBRG裝入,在每次遞減計(jì)數(shù)器到達(dá)00H之后的下一個(gè)計(jì)數(shù)脈沖到來時(shí)進(jìn)行裝入。系統(tǒng)時(shí)鐘經(jīng)過6位分頻器后作為傳遞計(jì)數(shù)器的計(jì)數(shù)脈沖,其分頻比可以由BRGH位和SYNC位設(shè)定為1:4、1:16、或1:64。104波特率時(shí)鐘發(fā)生器示意圖

105其波特率計(jì)算方式如下:1.同步方式波特率=fosc/[4〔N+1〕]N=fosc/〔4×波特率〕-1注意,N為SPBRG存放器的初始值;BRGH必須設(shè)置為0,BRGH為1無用。2.異步方式BRGH=0時(shí):波特率=fosc/[64〔N+1〕]N=fosc/〔64×波特率〕-1 BRGH=1時(shí):波特率=fosc/[16〔N+1〕]N=fosc/〔16×波特率〕-1106【例題】在某應(yīng)用系統(tǒng)中,采用4800波特進(jìn)行異步通信。假設(shè)單片機(jī)時(shí)鐘頻率為fosc=20MHZ,低速方式〔BRGH=0〕。107

9.3.3USART的異步模式

USART在異步模式下采用的數(shù)據(jù)格式為l位起始位、8位或9位數(shù)據(jù)位和1位停止位,無奇偶校驗(yàn)碼位〔硬件不支持〕,常用的數(shù)據(jù)為8位。片內(nèi)提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時(shí)鐘信號(hào)產(chǎn)生標(biāo)準(zhǔn)的波特率頻率。1081、USART異步發(fā)送模式

USART發(fā)送器主要是由發(fā)送移位存放器(TSR)、發(fā)送緩沖器TXREG構(gòu)成。USART異步發(fā)送過程如下:要發(fā)送的數(shù)據(jù)送入TXREG中,存放器TXREG中的數(shù)據(jù)就被裝入TSR。一旦把TXREG中的數(shù)據(jù)送入TSR,就將中斷標(biāo)志位TXIF置位。TXIF置位后,不能用軟件去除,只有在下一個(gè)要發(fā)送的數(shù)據(jù)送入TXREG后TXIF才能復(fù)位。109USART異步發(fā)送其結(jié)構(gòu)示意圖

1102、USART異步接收模式

主要是由接收移位存放器RSR和接收存放器RCREG構(gòu)成,串行信號(hào)從RC7/RX/DT引腳接收,送入移位存放器RSR。一旦收到停止位,RSR就將收到的8位數(shù)據(jù)裝載到RCREG中。同時(shí),RCIF置1,表示收到一個(gè)數(shù)據(jù),當(dāng)RCREG被讀出時(shí)RCIF被清零。111

特別注意以下幾點(diǎn):

如RSR將數(shù)據(jù)裝載到RCREG時(shí),RCREG內(nèi)已有1個(gè)數(shù)據(jù),那么產(chǎn)生數(shù)據(jù)傳送溢出錯(cuò)誤。OERR置位。RSR中數(shù)據(jù)將不能裝入RCREG;OERR置位后,RSR不會(huì)接收新的數(shù)據(jù)。只有將OERR清0后才能接收新數(shù)據(jù)。OERR清零的方法是將CREN清零再置位;如收到停止位為0,那么FERR置位;

1123、帶地址檢測(cè)的9位異步接收方式

主要由RSR移位存放器,RCREG存放器即波特率發(fā)生器BRG組成。工作過程如下:從RC7/RX31引腳輸入數(shù)據(jù),在波特率時(shí)鐘作用下,一位一位移入RSR存放器,一旦收到停止位,就將收到的第9位數(shù)據(jù)分別裝入RCREG和RX9D中,并置RCIF=1。再讀取RCREG中的數(shù)據(jù)時(shí),自動(dòng)將RCIF清零。113USART帶地址檢測(cè)9位異步接收結(jié)構(gòu)圖

114

9.3.4USART同步模式

USART的同步模式是指進(jìn)行通信雙方之間,除了有數(shù)據(jù)傳輸線以外,還有一條時(shí)鐘專用線。起著同步發(fā)送/接收的作用。在同步方式下,數(shù)據(jù)格式可以使用8位或9位。由于有專用的時(shí)鐘線同步,所以在串行字符中不再需要起始位和停止位。在同步方式下只能工作在半雙工方式下。

1151、USART同步主控發(fā)送模式

USART同步主控發(fā)送方式與異步發(fā)送方式根本相同,USART發(fā)送器的結(jié)構(gòu)示意圖如圖9-27。發(fā)送器的核心是串行發(fā)送移位存放器(TSR)和發(fā)送存放器TXREG。用戶將要發(fā)送的數(shù)據(jù)裝入TXREG,一旦TSR中空就會(huì)從TXREG中讀出要發(fā)送數(shù)據(jù)裝入TSR。同時(shí),TXIF被置位。一旦TXIF置位后只有當(dāng)有新的數(shù)據(jù)寫入TXREG后,才能使TXIF清零。當(dāng)TSR為空時(shí)TRMT置位,所以通過TRMT可查詢TSR是否為空。1162、USART同步主控接收模式

要使用RSART工作在同步主控接收模式時(shí),首先選擇同步方式,然后把SREN位或CREN位置位,即可進(jìn)入同步主控接收狀態(tài),DT數(shù)據(jù)線上的信號(hào)在時(shí)鐘的下降沿被采樣。如果SREN=1,僅接收一個(gè)字節(jié)。如果CREN=1,那么可連續(xù)地接收數(shù)據(jù),直到CREN被清零為止。如果SREN和CREN都被置位,那么CREN狀態(tài)優(yōu)先于SREN狀態(tài),進(jìn)行連續(xù)接收。1173、USART同步從動(dòng)發(fā)送模式

USART的同步從動(dòng)方式和同步主控方式的區(qū)別就是其時(shí)鐘信號(hào)CK由外部提供,也就是由對(duì)方提供,因此就是本機(jī)在睡眠狀態(tài)下仍可進(jìn)行通信。

1184、USART同步從動(dòng)接收模式

同步從動(dòng)接收和同步主控接收的操作根本上是一樣的,只是當(dāng)CPU處于休眠方式下有所區(qū)別。另外,在從動(dòng)接收方式下,沒有用到SREN位。119第11章A/D轉(zhuǎn)換器

一般單片機(jī)在自動(dòng)控制、自動(dòng)測(cè)量、自動(dòng)監(jiān)控系統(tǒng)與各種被控制、測(cè)量對(duì)象發(fā)生關(guān)系時(shí),需設(shè)置模擬接口模塊。模擬接口的作用是將連續(xù)不斷的模擬量轉(zhuǎn)換為一系列不連續(xù)的、離散的數(shù)字量。這種模擬接口稱之為模擬/數(shù)字轉(zhuǎn)換器,簡(jiǎn)稱為A/D轉(zhuǎn)換器〔ADC〕。主要討論F877單片機(jī)內(nèi)嵌的10位A/D轉(zhuǎn)換器。12011.1A/D轉(zhuǎn)換原理

ADC的種類繁多,工作原理各異,但逐次逼近型ADC是應(yīng)用較多的類型之一,主要原因?yàn)檗D(zhuǎn)換速度快、精度高。在F877單片機(jī)中集成的就是這種ADC。逐次逼近型ADC是由采樣保持電路、電壓比較器、逐次逼近存放器、數(shù)/模轉(zhuǎn)換器DAC和鎖存器等局部組成。121逐次逼近型ADC結(jié)構(gòu)圖

122逐次逼近存放器的最高位D7置“1”,如果ua>ui,說明逼近存放器所生成的數(shù)字量太大,應(yīng)將逼近存放器里的最高位去掉,改置次高位D6為“1”;如果ua<ui,說明所生成的數(shù)字量還不夠大,應(yīng)保存該位為“1”,此外還需把下一次高位D5置“1”,……,依此方法逐位比較下去,直至確定最低位D0是“0”還是“1”。12311.2A/D轉(zhuǎn)換器主要技術(shù)指標(biāo)

A/D轉(zhuǎn)換器有三個(gè)主要的技術(shù)指標(biāo):轉(zhuǎn)換時(shí)間〔轉(zhuǎn)換速率〕、分辨率和轉(zhuǎn)換精度。1241.轉(zhuǎn)換時(shí)間和轉(zhuǎn)換速率

轉(zhuǎn)換時(shí)間是A/D完成一次轉(zhuǎn)換所需要的時(shí)間,轉(zhuǎn)換時(shí)間的倒數(shù)即為轉(zhuǎn)換速率。

2.分辨率3.轉(zhuǎn)換精度

A/D轉(zhuǎn)換器的轉(zhuǎn)換精度定義為一個(gè)實(shí)際A/D轉(zhuǎn)換器在量化值上的差值??捎媒^對(duì)誤差或相對(duì)誤差表示。

A/D轉(zhuǎn)換器的量化精度稱為分辨率,習(xí)慣上用輸出二進(jìn)制位數(shù)或BCD碼表示。例如AD574模數(shù)轉(zhuǎn)換器,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論