|
本文概要介紹了EM78P458單片機的主要性能特點,并給出了該單片機的A/D轉(zhuǎn)換器、脈寬調(diào)制器(PWM)和比較器的用法。
EM78P458是臺灣義隆公司最新推出的一款高性能OTP單片機,除了具有其它EM78系列單片機的特點外,還增加了8路8位A/D轉(zhuǎn)換器,2路脈寬調(diào)制器(PWM)和一個比較器,可以廣泛應(yīng)用在智能儀表、自動控制、家用電器等領(lǐng)域。下面主要介紹該單片機的特點以及A/D轉(zhuǎn)換器、脈寬調(diào)制器和比較器的結(jié)構(gòu)與用法。
1. EM78P458主要特點 EM78P458具有如下特點: ● 8路8位A/D轉(zhuǎn)換器,其中2路可選擇5級放大增益; ●2路脈寬調(diào)制輸出,10位分辨率,可用作D/A轉(zhuǎn)換器; ●1 個比較器,可產(chǎn)生中斷,外接反饋電阻可構(gòu)成運放; ●8級硬件堆棧,方便程序調(diào)用; ●6個中斷源: 定時/計數(shù)器溢出中斷; I/O口輸入電平變化中斷(從SLEEP方式喚醒時); 外部中斷; A/D轉(zhuǎn)換完成中斷; 比較器中斷(結(jié)果為高);PWM中斷; ● 4096×13bit片內(nèi)ROM,96×8bit RAM; ●工作電壓:2.2~6.0V,工作頻率:DC~16MHz; ● 功耗低:5V/4MHz 1.5mA;3V/32kHz 15 μA;SLEEP 1μA; ● 8 個I/O口輸入電平變化產(chǎn)生中斷喚醒SLEEP; ●I/O口可編程為上拉、下拉和集電極開路; ●16個雙向I/O口,20引腳; ●速度快:99%為單指令周期,每條指令周期為2個時鐘周期; ●電源上電檢測器,檢測電壓為2.0±0.15V; ●8位定時/計數(shù)器,可8位預(yù)分頻; ●片內(nèi)看門狗計數(shù)器,可8位預(yù)分頻; ●57條精簡指令,易學(xué)易用。
2. 引腳介紹 EM78P458的引腳排列如圖1所示,功能如下:  OSCI、OSCO:分別為振蕩輸入、輸出端,可外接標準晶振、陶瓷振蕩或RC振蕩; P50~P57:雙向I/O口,P50可以編程為外部中斷輸入,P51、P52可編程為PWM1 和 PWM2,P53可以作為A/D轉(zhuǎn)換器的參考電壓端,P54兼作外部計數(shù)脈沖輸入(TCC),P55、P56 和P57分別作為比較器的負輸入、正輸入和輸出; P60~P67:雙向I/O口,可作為8路模擬信號輸入。
3. A/D轉(zhuǎn)換器與A/D轉(zhuǎn)換 EM78P458的A/D轉(zhuǎn)換器包括一個8位模擬開關(guān),3個控制寄存器(ADCONR9,AD-CMP-CON/UICA0,GCON/IOC90),一個A/D結(jié)果寄存器(ADDATA/RA)。A/D轉(zhuǎn)換器的原理框圖如圖2所示。  EM78P458的A/D轉(zhuǎn)換采用逐次逼近式,轉(zhuǎn)換結(jié)果保存在ADDATA,模擬信號的輸入通道通過ADCON的位0,1和2來選擇。 3.1 A/D轉(zhuǎn)換器I/O口設(shè)置與控制寄存器 GCON寄存器各位如下 : 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | OP2E | OP1E | G42 | G41 | G40 | G12 | G11 | G10 |
OP2E:使能運放OP2,并把輸入接到P64。當為0時關(guān)閉運放;為1時使能運放。 OP1E:使能運放OP1,并把輸入接到P60。當為0時關(guān)閉運放;為1時使能運放。 G42~G40:選擇OP2增益; 000~101 分別對應(yīng)增益為1~32; G12~G10:選擇OP1增益; 000~101 分別對應(yīng)增益為1~32。 3.2 A/D轉(zhuǎn)換控制寄存器ADCON/R9 ADCON/R9寄存器各位如下 : BIT | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | SYMBOL | - | - | IOCS | ADRUN | ADPD | ADIS2 | ADIS1 | ADIS0 | 初始值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ADRUN:A/D轉(zhuǎn)換開始位;當為1時,A/D轉(zhuǎn)換開始,由軟件置位;為0時,A/D轉(zhuǎn)換結(jié)束,硬件自動清零。 ADPD:在睡眠方式進行A/D轉(zhuǎn)換;當為1時,A/D轉(zhuǎn)換正在進行;為0時,關(guān)閉參考電阻進入睡眠方式。 ADIS2~ADIS0:A/D轉(zhuǎn)換通道選擇,000~111分別對應(yīng)AN1~AN8,只有在ADPD和 ADRUN為0時才可以改變通道。 3.3 定義P6口為模擬輸入或數(shù)字I/O口寄存器 AD-CMP-CON/IOCA 0各位功能如下 : 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | VREFS | CE | COE | IMS2 | IMS1 | IMS0 | CKR1 | CKR0 |
VREFS:A/D轉(zhuǎn)換參考電壓選擇;當為0時, A/D轉(zhuǎn)換參考電壓選擇VDD;為1時, A/D轉(zhuǎn)換參考電源接到P53/Vref。 CE:比較器控制位;當為0時,關(guān)閉比較器;為1時,使用比較器。 COE:比較器輸出選擇;當為定義的I/O為 0時,比較器用作運放(CE=1);為1時,用作比較器(CE=1)。 
IMS2~IMS1,選擇模擬、數(shù)字I/O口,選擇方式如下: CKR1,CKR0:A/D轉(zhuǎn)換周期選擇; 00=1:4 (缺省值) 01=1:16 10=1:64 11=內(nèi)部RC振蕩周期
3.4 A/D轉(zhuǎn)換步驟 (1) 通過設(shè)置AD-CMP-CON寄存器的IMS2~IMS0位來設(shè)置模擬輸入口及參考電壓; (2) 設(shè)置ADCON0: a) 選擇A/D輸入通道(ADIS2~ADIS0); b) 選擇放大器放大比例(GCON寄存器); c) 定義A/D轉(zhuǎn)換時鐘(CKR1、CKR0); d) 置ADPD位為1開始采樣; (3) 關(guān)中斷; (4)置ADRUN位為1開始轉(zhuǎn)換; (5) 等待A/D轉(zhuǎn)換中斷(標志); (6)讀A/D轉(zhuǎn)換結(jié)果(ADDATA); (7) 清A/D轉(zhuǎn)換中斷標志,本次A/D轉(zhuǎn)換結(jié)束。 下面舉例說明A/D轉(zhuǎn)換的過程: 。欢x通用寄存器 R0 EQU 0 STATUS EQU 3 P5 EQU 5 P6 EQU 6 RF EQU 0X0F 。欢x控制寄存器 IOC50 EQU 0X05 IOC60 EQU 0X06 CINT EQU 0X0F ;定義A/D控制寄存器 ADDATA EQU 0X0A ADCONR EQU 0X ADCONC EQU 0X0A GCON EQU 0X ;位定義 ADRUN EQU 0X04 ADPD EQU 0X03
ORG 0 JMP INITIAL ORG 0X08 (用戶程序) CLR RF ;清A/D轉(zhuǎn)換完成中斷標志 BS ADCONR,ADRUN ;開始下一次轉(zhuǎn)換 RETI INITIAL: MOV A,@0BXXXX1XXX IOW CINT ;使能A/D轉(zhuǎn)換中斷 MOV A,@0XXX CONTW ;關(guān)中斷 MOV A,@0X00 IOW ADCONC ;參考電壓選VDD,P60輸入,時鐘Fosc/4 ENADC: MOV A,@0BXXXXXXX1 IOW P6 ;定義P60為輸入,其它I/O口待定 MOV A,@0B01000111 IOW GCON ;使能OP1(運放),增益32 BS ADCONR,ADPD ;關(guān)SLEEP ENI ;關(guān)中斷 BS ADCONR,ADRUN ;開始轉(zhuǎn)換 POLLING: JBC ADCONR,ADRUN JMP POLLING ;等待轉(zhuǎn)換完成,如開中斷則不需要等待 (用戶程序)
4. 脈寬調(diào)制輸出(PWM) EM78P458含有2路脈寬調(diào)制輸出,每一路輸出都可以達到10位分辨率。
4.1 PWM 周期(PRD1和PRD2) 脈寬調(diào)制的周期通過改寫PRDX寄存器得到,當計數(shù)器TMRX等于PRDX時,將會發(fā)生如下動作: TMRX 清零; PWMX引腳被置為1; 脈寬調(diào)制的周期通過DT1/DT2送到DTL1/DTL2。 計算PWM周期的公式如下: T=(PRDX+1)×4×(1/Fosc)×(TMRX 預(yù)分頻值)
4.2 占空比 占空比的設(shè)置改寫DTX寄存器得到,下面給出計算占空比的公式: P=DTX×(1/Fosc)×(TMRX 預(yù)分頻值)
4.3 編程PWM 的步驟 (1)寫入PWM周期到PRDX; (2)寫入PWM占空比到DTX; (3)如果需要,使能PWM中斷; (4)設(shè)置PWM1/PWM2引腳為輸出; 使能PWMX和TMRX,并設(shè)置TMRX的預(yù)分頻比。
5. 比較器及其用法 EM78P458有一個比較器,可以用作喚醒SLEEP中的單片機。(圖3所示)。
 使用比較器時應(yīng)注意以下事項: ● 外部參考電壓必須在VDD和VSS之間,既可以接在CIN+,也可以接在CIN-。 ●比較器的輸出結(jié)果保存在R3寄存器的CMPOUT位,可通過設(shè)置AD-CMPCON的COE位為1,使P57為輸出; ●比較器上只要聯(lián)接適當?shù)姆答侂娮杓纯勺鳛檫\放來用; ● 使用比較器中斷必須使能INTE和CMPIE,不論比較器輸出方式如何,比較器中斷都會發(fā)生。 比較器中斷標志只能用軟件清零; ● 比較器喚醒睡眠中的單片機: 如果使能比較器,則在睡眠方式下比較器也工作; 比較器反轉(zhuǎn),會將單片機從睡眠喚醒; 如果不用此功能,進入SLEEP前應(yīng)將比較器關(guān)閉。 由于篇幅有限,本文僅對上述內(nèi)容作簡要闡述,有關(guān)EM78P458的其它內(nèi)容如睡眠、中斷、看門狗、復(fù)位、睡眠喚醒及電源上電檢測器等,請參閱相關(guān)資料。
|