外部接口功能及應(yīng)用詳解_第1頁
外部接口功能及應(yīng)用詳解_第2頁
外部接口功能及應(yīng)用詳解_第3頁
外部接口功能及應(yīng)用詳解_第4頁
外部接口功能及應(yīng)用詳解_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

外部接口功能及應(yīng)用詳解演示文稿現(xiàn)在是1頁\一共有88頁\編輯于星期六優(yōu)選外部接口功能及應(yīng)用現(xiàn)在是2頁\一共有88頁\編輯于星期六絕大多數(shù)I/O引腳具有復(fù)用功能,除具備常規(guī)的雙向輸入/輸出功能以外,還有各自第二、第三功能的特殊作用如果某個I/O端口承擔相應(yīng)功能模塊的輸入/輸出或數(shù)據(jù)通信接口,就不再擔任通用I/O端口的功能

4.1I/O端口現(xiàn)在是3頁\一共有88頁\編輯于星期六每個端口都對應(yīng)3個在RAM中統(tǒng)一編址的寄存器:端口數(shù)據(jù)寄存器PORTx

PORTA、PORTB、PORTC、PORTD、PORTE端口方向控制寄存器TRISx1輸入0輸出端口輸出數(shù)據(jù)鎖存器LATx從I/O端口輸出數(shù)據(jù),就是通過PORT端口寄存器將數(shù)據(jù)寫入數(shù)據(jù)鎖存器現(xiàn)在是4頁\一共有88頁\編輯于星期六說明:對端口進行讀寫操作的含義端口寄存器讀出的是相應(yīng)I/O引腳的電平狀態(tài)寫端口寄存器則是寫入其輸出數(shù)據(jù)鎖存器所有寫I/O端口的操作都是“讀入-修改-寫入”操作現(xiàn)在是5頁\一共有88頁\編輯于星期六1、RA端口是一個6位寬雙向I/O端口在基本I/O功能的基礎(chǔ)上,復(fù)合了A/D轉(zhuǎn)換器的模擬量輸入功能、A/D轉(zhuǎn)換器所需的外接參考電壓輸入功能、TMR0的外部時鐘輸入功能、MSSP的從動選擇信號輸入功能等現(xiàn)在是6頁\一共有88頁\編輯于星期六現(xiàn)在是7頁\一共有88頁\編輯于星期六

RA對應(yīng)3個寄存器PORTA端口A數(shù)據(jù)寄存器LATA端口A輸出數(shù)據(jù)鎖存器TRISA端口A方向控制寄存器1輸入0輸出現(xiàn)在是8頁\一共有88頁\編輯于星期六

RA應(yīng)用實例Main(){PORTA=0;清空輸出鎖存器并初始化LATA=0;清空輸出鎖存器TRISA=0XCF;設(shè)置輸出和輸入

PORTA=0X55;輸出數(shù)據(jù)while(1){};其他代碼}

現(xiàn)在是9頁\一共有88頁\編輯于星期六2、RB端口8位雙向I/O除用作基本I/O之外,每個引腳內(nèi)部都有一個可編程弱上拉電路。

若想讓弱上拉電路發(fā)揮作用,則必須在端口引腳方向設(shè)定為輸入的情況下,將/RBPU設(shè)置為0現(xiàn)在是10頁\一共有88頁\編輯于星期六2、RB端口高4位RB7-4引腳具有電平變化中斷功能,RB2-0具有外部中斷輸入功能RB5-7可用作串行編程的控制時鐘和數(shù)據(jù)引腳,RB2和RB3可用作CAN發(fā)送/接收引腳現(xiàn)在是11頁\一共有88頁\編輯于星期六

RB應(yīng)用實例Main(){PORTB=0;清空輸出鎖存器并初始化LATB=0;清空輸出鎖存器TRISB=0XCF;設(shè)置輸出和輸入

PORTB=0X55;輸出數(shù)據(jù)while(1){};其他代碼}

現(xiàn)在是12頁\一共有88頁\編輯于星期六3、RC端口也是一個8位雙向I/O端口,除了具有普通數(shù)字I/O功能外,絕大部分的片內(nèi)外圍模塊都復(fù)用到該端口上來。CCP1、TMR1、MSSP、USART每條引腳內(nèi)部都設(shè)置了一個施密特觸發(fā)輸入緩沖器,對輸入波形起整形作用。現(xiàn)在是13頁\一共有88頁\編輯于星期六

4、RD端口只有448和458芯片有此端口8位雙向I/O端口,除了用作基本的數(shù)字I/O口外,RD還被復(fù)用為并行從動端口的數(shù)據(jù)輸入/輸出線。RD端口還可復(fù)用為CCP和ECCP模塊PIC單片機原理及應(yīng)用現(xiàn)在是14頁\一共有88頁\編輯于星期六5、RE端口僅PIC18F448/458芯片有只有3條引腳的雙向I/O端口,除了基本的數(shù)字I/O口應(yīng)用外,RE端口可以被復(fù)用為并行從動端口的控制線和模數(shù)轉(zhuǎn)換器的模擬信號輸入端

現(xiàn)在是15頁\一共有88頁\編輯于星期六微芯公司生產(chǎn)的PIC系列各款產(chǎn)品片內(nèi)全部配備有定時/計數(shù)器模塊。PIC18CXXX、PIC18FXXX都配置了4個定時/計數(shù)器模塊。

4.2定時器/計數(shù)器現(xiàn)在是16頁\一共有88頁\編輯于星期六如果計數(shù)脈沖源自于單片機的內(nèi)部指令周期,就稱之為定時器;若計數(shù)脈沖來自于外部引腳的輸入信號,則被稱之為計數(shù)器。4.2定時器/計數(shù)器現(xiàn)在是17頁\一共有88頁\編輯于星期六各定時/計數(shù)器模塊功能及配置情況定時/計數(shù)器模塊位寬分頻器普通功能特別功能TMR08或16預(yù)分頻器定時/計數(shù)通用目的TMR116預(yù)分頻器定時/計數(shù)捕捉/輸出比較TMR28預(yù)/后分頻定時器脈寬調(diào)制TMR316預(yù)分頻器定時/計數(shù)捕捉/輸出比較現(xiàn)在是18頁\一共有88頁\編輯于星期六

1、定時/計數(shù)器模塊TMR0定時/計數(shù)器TMR0是所有PIC單片機都具備的一個標準定時器資源,可以作為一般功能的定時使用;同時由于它有一個專用的外部觸發(fā)信號輸入端(T0CKI),也可用于一般功能的計數(shù)方式。現(xiàn)在是19頁\一共有88頁\編輯于星期六

TMR0具有以下特性:是一個8/16位寬的定時/計數(shù)器定時寄存器的當前計數(shù)值可讀/寫附帶一個8位可編程的預(yù)分頻器可以選擇內(nèi)部或外部時鐘源具有溢出中斷功能可選擇外部時鐘信號的觸發(fā)方式PIC單片機原理及應(yīng)用現(xiàn)在是20頁\一共有88頁\編輯于星期六

2、定時/計數(shù)器TMR1在中、高檔PIC系列單片機中,還專門設(shè)計了一個具有較高性能的16位定時/計數(shù)器TMR1模塊。它在性能上有效突破了TMR0的局限。通過TMR1模塊,可以很容易構(gòu)成實時時鐘、變頻輸出,以及實現(xiàn)信號捕捉、比較和頻率檢測等功能。PIC單片機原理及應(yīng)用現(xiàn)在是21頁\一共有88頁\編輯于星期六

TMR1的功能1)作為通用的定時/計數(shù)器2)利用內(nèi)置的低頻時基振蕩器,可實現(xiàn)實時時鐘RTC(RealTimeClock)輸出等功能,并可在系統(tǒng)休眠模式下照常實現(xiàn)計數(shù)工作。3)能夠與CCP模塊配合使用,實現(xiàn)輸入信號邊沿的捕捉和輸出信號的比較功能,在頻率檢測和脈沖寬度測量中得到廣泛應(yīng)用?,F(xiàn)在是22頁\一共有88頁\編輯于星期六

TMR1的特性1)核心是一個16位寬的循環(huán)累加寄存器對TMR1H:TMR1L,采用時鐘信號上升沿觸發(fā)的計數(shù)方式。2)可用軟件方式直接讀出或?qū)懭隩MR1寄存器對的內(nèi)容。3)帶有一個可編程預(yù)分頻器,可形成4種分頻比(1:1,1:2,1:4,1:8),可達到定時/計數(shù)的擴展效果。PIC單片機原理及應(yīng)用現(xiàn)在是23頁\一共有88頁\編輯于星期六

TMR1的特性4)用于累加計數(shù)的信號源可選擇內(nèi)部系統(tǒng)時鐘、外部觸發(fā)信號或自帶時基振蕩器信號。5)既可工作于定時模式,又可工作于計數(shù)模式,還可以用作實時時鐘RTC。6)具有溢出中斷功能現(xiàn)在是24頁\一共有88頁\編輯于星期六

TMR1的控制寄存器T1CON位76543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONTMR1CS:時鐘源選擇位1選擇外部時鐘源,計數(shù)0選擇內(nèi)部時鐘源,定時TMR1ON:TMR1使能控制位現(xiàn)在是25頁\一共有88頁\編輯于星期六

TMR1的控制寄存器T1CON位76543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONRD16:16位讀寫使能位(TMR1H:TMR1L):16讀寫0:2個8位讀寫T1SYNC:外部輸入時鐘同步控制1:不同步0:同步現(xiàn)在是26頁\一共有88頁\編輯于星期六

TMR1的控制寄存器T1CON位76543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONT1CKPS1-T1CKPS1:前分頻選擇位11:1:8

10:1:401:1:2

00:1:1TMR1ON:TMR1使能控制位現(xiàn)在是27頁\一共有88頁\編輯于星期六

TMR1使用實例:利用定時器TMER1產(chǎn)生50HZ的方波,晶振4MHZ思路:方波周期T=1/50=20ms;定時10ms取反一次;1:8前分頻;指令周期=1us;計數(shù)初值=65536-t/(1usxp)=FB1E;

現(xiàn)在是28頁\一共有88頁\編輯于星期六

TMR1使用實例:#include<pic18.h>Main(){TRISC=0;設(shè)置輸出PORTC=0;TICON=0X30;前分頻1:8,2次8為讀寫TMR1H=0XFB;TMR1L=0X1E;

TMR1IE=0;

TMR1ON=1;

啟動

現(xiàn)在是29頁\一共有88頁\編輯于星期六

TMR1使用實例:while(1){if(TMR1IF==1){TMR1IF=0;if(PORTC==0)PORTC=1;elsePORTC=0;取反TMR1H=0XFB;TMR1L=0X1E;}}}現(xiàn)在是30頁\一共有88頁\編輯于星期六

TMR1使用實例:利用TMER1對外部脈沖計數(shù),晶振4MHZ思路:采用中斷方式;初始值設(shè)置為:TMR1H=0XFFTMR1L=0XFF

現(xiàn)在是31頁\一共有88頁\編輯于星期六

TMR1使用實例:#include<pic18.h>Unsignedcharcount=0;Display(unsignedcharcount);Viodinitial();InterruptHI_ISR();現(xiàn)在是32頁\一共有88頁\編輯于星期六

TMR1使用實例:Voidinitial(){TRISC=1;設(shè)置輸入,對外部引腳計數(shù)PORTC=0;TICON=0X0A;前分頻1:1,2次8位讀寫,計數(shù)方式。TMR1H=0XFF;TMR1L=0XFF;TMR1IE=1;使能TMR1IF=0;

現(xiàn)在是33頁\一共有88頁\編輯于星期六

TMR1使用實例:IPEN=1;開優(yōu)先級TMR11P=1;定時器設(shè)置為高優(yōu)先級GIEH=1;使能高優(yōu)先級GIEL=1;}

現(xiàn)在是34頁\一共有88頁\編輯于星期六

TMR1使用實例:InterruptHI_ISR(){GIEH=0;if(TMR1IE==1&&TMR1IF==1){TMR1IF=0;count++;計數(shù)TMR1H=0XFF;TMR1L=0XFF;}GIEH=1;}現(xiàn)在是35頁\一共有88頁\編輯于星期六

TMR1使用實例:Main(){initial();TMR1ON=1;

啟動

While(1){

Display(count);顯示…….}}現(xiàn)在是36頁\一共有88頁\編輯于星期六

4.3捕捉/比較/PWM(CCP)模塊CCP是英文單詞Capture、Compare和PWM的縮寫。在PIC單片機中,CCP模塊可以任意配置為這三種功能之一。在PIC18F4X8中,同時配置了CCP/ECCP模塊。它們各自都有獨立的16位特殊功能寄存器CCPR1/ECCPR1?,F(xiàn)在是37頁\一共有88頁\編輯于星期六1、CCP模塊基本功能(1)輸入捕捉:是指CCP模塊可捕捉外部輸入時序脈沖的上升沿或下降沿,從而產(chǎn)生相應(yīng)的捕捉中斷,適用于測量引腳輸入的周期性方波信號的周期、頻率和占空比等?,F(xiàn)在是38頁\一共有88頁\編輯于星期六1、CCP模塊基本功能(2)輸出比較:主要是依據(jù)標準時序信號的計數(shù)比較從引腳上輸出不同寬度的矩形正脈沖、負脈沖和延時啟動信號等。現(xiàn)在是39頁\一共有88頁\編輯于星期六1、CCP模塊基本功能(3)PWM功能:能夠從引腳上輸出脈沖寬度隨時可調(diào)的PWM信號,來實現(xiàn)直流電機的變頻調(diào)速、D/A轉(zhuǎn)換和步進電機的步進控制等?,F(xiàn)在是40頁\一共有88頁\編輯于星期六2、CCP模塊寄存器介紹一個是CCP模塊16位可讀/寫寄存器CCPR1H:CCPR1L主要用于存放數(shù)據(jù)參考信息或計數(shù)比較信息;另一個是CCP模塊控制寄存器CCP1CON,用于設(shè)置CCP模塊的工作方式。現(xiàn)在是41頁\一共有88頁\編輯于星期六寄存器CCPR1H:CCPR1L,它在3種工作方式下承擔的功能:16位捕捉寄存器/16位比較寄存器,也能通過主/從寄存器的設(shè)置定義占空比可變的脈寬調(diào)制信號輸出。不管CCP模塊工作于哪一種模式,都需要用到CCPR1H:CCPR1L寄存器對。因此,任何時候只能有一種模式。

2、CCP模塊寄存器介紹PIC單片機原理及應(yīng)用現(xiàn)在是42頁\一共有88頁\編輯于星期六DC1B1:DC1B0PWM占空因數(shù)寄存器的低2位,高8位通過CCPR1L設(shè)置。引入低2位補充數(shù)據(jù),其目的是為了提高PWM脈寬調(diào)制的精度。該2位定義僅適用于PWM方式,在捕捉和比較方式中未使用。CCP1CON寄存器現(xiàn)在是43頁\一共有88頁\編輯于星期六CCP1M3:CCP1M0模式選擇位0000關(guān)閉功能0001保留0010比較模式,若匹配輸出翻轉(zhuǎn)0011捕獲模式,CAN總線數(shù)據(jù)接收觸發(fā)0100捕獲模式,下降沿觸發(fā)0101捕獲模式,上升沿觸發(fā)0110捕獲模式,四個上升沿觸發(fā)0111捕獲模式,十六個上升沿觸發(fā)CCP1CON寄存器現(xiàn)在是44頁\一共有88頁\編輯于星期六CCP1M3:CCP1M0模式選擇位1000比較模式,CCP1置高1001比較模式,CCP1置低1001比較模式,CCP1電平不變1001比較模式,CCPIF置1,計數(shù)器復(fù)位到0,并啟動一次A/D轉(zhuǎn)換。11XXPWM模式CCP1CON寄存器現(xiàn)在是45頁\一共有88頁\編輯于星期六3、捕捉方式PIC單片機的輸入捕捉功能,就是對外部接口引腳CCP1上輸入的脈沖信號上升沿或下降沿進行實時捕捉檢測。具體:當引腳輸入信號發(fā)生沿跳變時,CCP的捕捉功能就立即把當時的TMR1/TMR3定時器的16位計數(shù)值記錄到寄存器CCPR1H:CCPR1L?,F(xiàn)在是46頁\一共有88頁\編輯于星期六

工作原理當CCP工作于輸入捕捉模式,下列事件出現(xiàn)時,TMR1/TMR3中的16位計數(shù)值將會立即被復(fù)制到CCPR1H:CCPR1L寄存器對中。出現(xiàn)一個脈沖下降沿出現(xiàn)一個脈沖上升沿連續(xù)出現(xiàn)4個脈沖上升沿連續(xù)出現(xiàn)16個脈沖上升沿現(xiàn)在是47頁\一共有88頁\編輯于星期六捕捉類型將由CCP1M3:CCP1M0控制。當捕捉到一次事件時,CCP1IF標志將被自動置1,可產(chǎn)生中斷,但必須用軟件清0。如果前一次捕捉的CCPR1H:CCPR1L時間值還沒有被讀取又發(fā)生了一次捕捉,則原先保存其中的時間值將被覆蓋而丟失。工作原理現(xiàn)在是48頁\一共有88頁\編輯于星期六為配合CCP模塊實現(xiàn)輸入捕捉功能,TMR1/TMR3必須工作于定時器模式。另外,一次事件的捕捉并不會使TMR1的當前計數(shù)值復(fù)位歸0。因此,TMR1還可以作為普通的定時器使用。在其計數(shù)溢出歸0時依舊可以產(chǎn)生TMR1IF中斷標志。

工作原理現(xiàn)在是49頁\一共有88頁\編輯于星期六操作過程:1)CCP引腳設(shè)定在捕捉模式下,RC2/CCP1引腳必須由相應(yīng)的方向控制寄存器TRISC<2>設(shè)定為輸入方式。現(xiàn)在是50頁\一共有88頁\編輯于星期六2)TMR1/TMR3工作方式設(shè)定

必須配置為定時/同步計數(shù)方式,在T3CON寄存器中選擇與CCP模塊一起工作的定時器:

T3ECCP1:T3CCP11x選擇TMR301選擇TMR3為ECCP服務(wù)00選擇TMR1

操作過程:現(xiàn)在是51頁\一共有88頁\編輯于星期六3)改變不同的捕捉模式運行過程中動態(tài)改變輸入捕捉模式時,在改變捕捉事件前,應(yīng)該將CCP1IE清0,以免響應(yīng)不需要的中斷。設(shè)定好新的捕捉事件后,將CCP1IF清0復(fù)位后再恢復(fù)使能中斷。操作過程:現(xiàn)在是52頁\一共有88頁\編輯于星期六方波信號周期的測量#include<pic18.h>Unsignedcharcpl=0;Unsignedcharcph=0;Unsignedcharflag=0;應(yīng)用實例:現(xiàn)在是53頁\一共有88頁\編輯于星期六main(){flag=0;While(1){if(flag==0){TMR1H=0;TMR1L=0;PEIE=1;GIE=1;TRISC=0X04;設(shè)置CCP1為輸入T3ECCP1=0;T3CCP1=0;

選擇定時器1T1CON=0;1:1分頻

主函數(shù):現(xiàn)在是54頁\一共有88頁\編輯于星期六CCP1CON=0X04;捕獲方式上升沿觸發(fā)CCP1IE=0;CCP1IF=0;While(CCP1IF==0);Flag=1;捕獲到第一個上升沿TMR1ON=1;開始定時CCP1IF=0;CCP1IE=1;}}}主函數(shù):現(xiàn)在是55頁\一共有88頁\編輯于星期六VoidinterruptHI_ISR()中斷函數(shù){if(CCP1IF==1){cpl=CCPR1L;cph=CCPR1H;CCPR1CON=0;關(guān)閉捕獲TMR1ON=0;關(guān)閉定時器1flag=0;display(cpl,cph);顯示子程序

CCP1IF=0;}}應(yīng)用實例:現(xiàn)在是56頁\一共有88頁\編輯于星期六4、比較工作方式預(yù)置的特定值與TMR1/TMR3計數(shù)器的計數(shù)值進行比較,當兩者數(shù)值一致時將給出匹配信號,觸發(fā)CCP中斷標志位。一般在CCP中斷后可及時調(diào)整CCP引腳的輸出電平。如果實現(xiàn)CCP的連續(xù)比較,將能夠從引腳上輸出不同寬度的矩形脈沖信號、不同的周期頻率脈沖以及非周期信號等。PIC單片機原理及應(yīng)用現(xiàn)在是57頁\一共有88頁\編輯于星期六

工作原理

當CCP1模塊工作在比較方式時:系統(tǒng)將CCP1寄存器中的設(shè)定值CCPRIH:CCPRIL與16位TMR1/TMR3寄存器中的計數(shù)值進行實時比較。如果16位比較器檢測二者數(shù)值相等,將給出匹配信號?,F(xiàn)在是58頁\一共有88頁\編輯于星期六匹配輸出4種情況:引腳電平變高用于驅(qū)動外接電路引腳電平變低用于驅(qū)動外接電路引腳電平維持原狀內(nèi)部產(chǎn)生軟件中斷引腳電平翻轉(zhuǎn)引腳電平維持原狀啟動A/D究竟是讓哪種情況發(fā)生,由寄存器CCP1CON的低4位設(shè)定。

工作原理PIC單片機原理及應(yīng)用現(xiàn)在是59頁\一共有88頁\編輯于星期六在比較模式下,CCP1引腳應(yīng)該設(shè)定為輸出,才能在比較相符時從對應(yīng)引腳上輸出特定的電平。

當一次比較匹配發(fā)生后,都會由硬件自動將中斷標志位CCP1IF置1,表示產(chǎn)生了一次CCP1比較器中斷。

CPU響應(yīng)中斷后,CCP1IF位必須用軟件清0。

工作原理PIC單片機原理及應(yīng)用現(xiàn)在是60頁\一共有88頁\編輯于星期六利用比較輸出的功能,產(chǎn)生一方波信號。說明:配置為引腳電平翻轉(zhuǎn),半個方波信號周期翻轉(zhuǎn)一次,預(yù)置的比較值為半個方波周期。

比較輸出應(yīng)用實例PIC單片機原理及應(yīng)用現(xiàn)在是61頁\一共有88頁\編輯于星期六輸出方波信號:#include<pic18.h>Unsignedcharcpl=xx;Unsignedcharcph=xx;設(shè)置比較值應(yīng)用實例:現(xiàn)在是62頁\一共有88頁\編輯于星期六main(){T3ECCP1=0;T3CCP1=0;

選擇定時器1TMR1H=0;TMR1L=0;TRISC=0X00;設(shè)置CCP1為輸出

T1CON=0;1:1分頻

PEIE=1;GIE=1;主函數(shù):現(xiàn)在是63頁\一共有88頁\編輯于星期六CCP1L=cpl;CCP1H=cph;設(shè)置比較值CCP1CON=0X02;比較模式,匹配輸出翻轉(zhuǎn)CCP1IE=1;CCP1IF=0;TMR1IE=0;TMR1ON=1;開始定時While(1);其他代碼}主函數(shù):現(xiàn)在是64頁\一共有88頁\編輯于星期六VoidinterruptHI_ISR()中斷函數(shù){GIE=0;if(CCP1IF==1){TIMER1L=0;TMER1H=0;CCP1IF=0;}GIE=1;}應(yīng)用實例:現(xiàn)在是65頁\一共有88頁\編輯于星期六5、PWM工作方式在CCP模塊中,功能最強大、應(yīng)用最廣泛。PWM——PulseWidthModulation功能可以很方便地從CCP引腳上獲得脈沖寬度隨時可調(diào)的PWM信號。直流電機調(diào)速、簡易DAC、步進電機的變頻控制等現(xiàn)在是66頁\一共有88頁\編輯于星期六

脈寬調(diào)制模式的工作原理CCP為PWM模式時,CCP1引腳可以輸出占空比10位分辨率可調(diào)的方波。所謂占空比是指在一個周期內(nèi)高電平的寬度。必須由TMR2配合實現(xiàn),在這里PR2寄存器負責控制方波的周期,占空比的調(diào)整則主要通過CCPR1H:L寄存器實現(xiàn)?,F(xiàn)在是67頁\一共有88頁\編輯于星期六

分析:PWM模式下TMR2在計數(shù)過程中將同步進行兩次比較:TMR2和CCPR1H比較一致將使CCP1引腳輸出低電平0;TMR2和PR2比較一致將使CCP1引腳輸出高電平1。PRPR2CCPR1H現(xiàn)在是68頁\一共有88頁\編輯于星期六

PWM周期PWM的周期由PR2寄存器決定,TMR2和PR2的比較只是8位的,故此PWM周期調(diào)整的分辨率只有8位PWM波形的周期計算公式:PWM周期=(PR2+1)×4×Tosc×TMR2預(yù)分頻現(xiàn)在是69頁\一共有88頁\編輯于星期六例如:以4MHz振蕩頻率工作的單片機需要產(chǎn)生38KHz的方波,取TMR2的預(yù)分頻為1:1,則有:26.3μs=(PR2+1)×4×0.25μs×1可得PR2=25,此時輸出方波頻率誤差為1.2%現(xiàn)在是70頁\一共有88頁\編輯于星期六

PWM占空比PWM占空比的設(shè)定通過對寄存器CCPR1L和CCP1CON<5:4>總共10位數(shù)據(jù)寫入得到。其中CCPR1L為高8位(DC1B<9:2>),CCP1CON<5:4>為低2位(DC1B<1:0>)。在很多應(yīng)用中,如果只需8位分辨率的占空比調(diào)制,則只需簡單地設(shè)定CCPR1L寄存器,CCP1CON<5:4>兩位固定為00即可?,F(xiàn)在是71頁\一共有88頁\編輯于星期六

PWM占空比如果以10位分辨率計算,PWM占空比時間的計算公式為:PWM占空比=CCPR1L:CCP1CON<5:4>×Tosc×TMR2預(yù)分頻程序在運行過程中可以修改占空比,但修改后并不立即起作用;必須等到當前PWM周期結(jié)束,才會將10位的占空比值裝入CCPR1H寄存器?,F(xiàn)在是72頁\一共有88頁\編輯于星期六例1在某單片機應(yīng)用中,要在RC2/CCP1引腳輸出頻率為4100Hz的PWM信號,系統(tǒng)時鐘為4MHz,TMR2的預(yù)分頻比是1:1,脈寬占空比為20%PWM周期=(PR2+1)×4Tosc×TMR2分頻比代入數(shù)據(jù)得:PR2=244-1=243=0F3HPWM脈寬=PWM周期×1/5=244μs/5=48.8μs20%現(xiàn)在是73頁\一共有88頁\編輯于星期六脈寬寄存器CCPR1L的定義數(shù)值應(yīng)為48.8μs,只能取48或49,從某種意義上說后者更接近48.8μs。但如果考慮低2位補充位,情況就不一樣了。因為系統(tǒng)時鐘周期為0.25μs,可以調(diào)整的數(shù)值為48.25、48.5和48.75μs,所以取48.75為脈寬數(shù)值,顯然更接近真正的PWM脈寬。20%現(xiàn)在是74頁\一共有88頁\編輯于星期六

PWM工作模式設(shè)定設(shè)定PR2寄存器,決定PWM方波的周期設(shè)定DC1B<9:0>,決定PWM輸出的高電平占空比將方向控制寄存器TRISC<2>清0,以設(shè)定CCP1引腳為輸出狀態(tài)設(shè)定TMR2的預(yù)分頻系數(shù)并通過設(shè)定T2CON寄存器啟動TMR2工作配置CCP1模塊使其進入PWM工作模式PIC單片機原理及應(yīng)用現(xiàn)在是75頁\一共有88頁\編輯于星期六

PWM實例:

在某單片機應(yīng)用中,要在RC2/CCP1引腳輸出頻率為4KHz的PWM信號,系統(tǒng)時鐘為4MHz,TMR2的預(yù)分頻比是1:1,脈寬占空比為50%

分析:

PWM周期=(PR2+1)×4Tosc×TMR2分頻比

得:PR2=249;

CCPR1L=PR2/2;

現(xiàn)在是76頁\一共有88頁\編輯于星期六main(){TMR2=0;八位PEIE=0;關(guān)外部中斷

PR2=249;設(shè)置周期CCPR1L=PR2/2;設(shè)置占空比TRISC=0X00;設(shè)置CCP1為輸出

CCP1IE=0;T2CON=0;1:1分頻

PWM實例:現(xiàn)在是77頁\一共有88頁\編輯于星期六CCP1CON=0X2C;設(shè)置為PWM方式TMR2ON=1;開始定時While(1){if(CCP1IF==1)CCP1IF=0;其他代碼;}}主函數(shù):現(xiàn)在是78頁\一共有88頁\編輯于星期六

4.4A/D轉(zhuǎn)換器A/D轉(zhuǎn)換模塊:PIC18F2X8單片機提供5個輸入通道PIC18F2X8單片機提供8個輸入通道。片上A/D轉(zhuǎn)換模塊可以將輸入的模擬信號轉(zhuǎn)換成相應(yīng)的10位數(shù)字信號。

其包含ADRESH和ADRESL寄存器。現(xiàn)在是79頁\一共有88頁\編輯于星期六

A/D轉(zhuǎn)換模塊包含4個寄存器:ADRESH寄存器(A/D結(jié)果高位寄存器);ADRESL寄存器(A/D結(jié)果低位寄存器);ADCON0寄存器(A/D控制寄存器0);ADCON1寄存器(A/D控制寄存器1);現(xiàn)在是80頁\一共有88頁\編輯于星期六

1.ADCON0寄存器

ADXS1:ADCS0:A/D轉(zhuǎn)換時鐘選擇位與ADCON1的ADCS2結(jié)合,來選擇AD轉(zhuǎn)換的時鐘。如:000fosc/2

001fosc/8

100

溫馨提示

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

評論

0/150

提交評論