宏晶科技STC15F系列單片機(jī)_第1頁
宏晶科技STC15F系列單片機(jī)_第2頁
宏晶科技STC15F系列單片機(jī)_第3頁
宏晶科技STC15F系列單片機(jī)_第4頁
宏晶科技STC15F系列單片機(jī)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、o 1 C micro宏晶科技宏晶科技STC15F系列單片機(jī)用RC充放電實(shí)現(xiàn)檢測(cè)外部電壓日期:2012-2-24版本:V1.0對(duì)于沒有ADC的MCU,而又要測(cè)量外部的一個(gè)電壓時(shí),使用 RC充放電的方式是比較容易實(shí)現(xiàn)并且低成本的方法。STC15F系列是1T的MCU,其10 口有OPEN-DRAIN模式,此模式可以很容易用一個(gè)I0 口配合一個(gè)定時(shí)器實(shí)現(xiàn)RC充放電來測(cè)量外部未知電壓。如果沒有空余的定時(shí)器,也可以使用指令循環(huán)的方式實(shí)現(xiàn)。本例使用定時(shí)器。本范例使用P3.2( INTO )來做RC測(cè)量,電路和波形示意圖如下:技術(shù)支持:(863頁共11頁傳真:86-755-8294

2、4243電話:86-755-82948412官方網(wǎng)站:www.STCMCU.comP3 2-1TRO = 1充電P32-OTRO = 0P3.2-0P3.2 = 1TRO = O TKO= 1 放電克電操作流程:1、初始化程序?qū)3.2設(shè)置成OPEN-DRAIN模式,并將P3.2輸出0給電容放電。INTO設(shè)置成上升沿中斷。Timer 0設(shè)置成16位自動(dòng)重裝定時(shí)器模 式,時(shí)鐘源為12T,允許中斷。2、測(cè)量時(shí),先清Timer 0的TH0、TLO,然后將P3.2輸出1開始對(duì)電容充電,接著設(shè)置TR0 = 1來啟動(dòng)Timer 0,然后在INT0中斷里設(shè)置TR0 = 0來停止計(jì)數(shù),并將P3.2輸出0對(duì)電容

3、放電。讀出TH0、TL0的值就是RC充電時(shí)間由于MCU工作在5V時(shí),IO 口讀到“1”的門限電壓大約為2V,所以要 求輸入的電壓高于2V,本例的測(cè)試數(shù)據(jù)從412.4V,測(cè)試結(jié)果參考后面的附 錄1。假設(shè)輸入電壓為Ux,IO 口門限電壓為2V,則RC充電時(shí)間為:T =- R * C * In ( 1 -2 / Ux )按圖示參數(shù),當(dāng)輸入為10V時(shí),RC時(shí)間大約為446uS,附錄1中實(shí)測(cè)為447uS。第2頁共11頁技術(shù)支持:(86傳真:86-755-82944243 電話:86-755-82948412官方網(wǎng)站:www.STCMCU.com由于RC時(shí)間跟R和C有關(guān),而R的溫

4、漂一般較小,但普通電容的溫漂較大,所以要使用溫漂小并且漏電也小的電容。由充電公式或曲線圖可知,Ux和RC值的關(guān)系是非線性的,所以實(shí)際項(xiàng)目使用時(shí),要根據(jù)自己的實(shí)際電路做一些標(biāo)定,這樣可以得到比較準(zhǔn)確的值。本方法適用于對(duì)測(cè)量精度要求不是很高的場(chǎng)合。附錄1測(cè)量結(jié)果和曲線輸入電壓(V)Timer 0讀數(shù)時(shí)間 uS(18.432MHZ)4210013674.2196612804.4184612024.6174011334.8164610725156010165.214879685.414169225.613548825.8129784461245811STC micro宏晶科技6.211967796.4

5、11507496.611107236.81070697710336737.210006517.49686307.69386117.891059288845768.28605608.48365448.68145308.879351697725039.27544919.47364799.67184679.870245710686447技術(shù)支持:(865頁共11頁傳真:86-755-82944243電話:86-755-82948412官方網(wǎng)站:www.STCMCU.com10.267143710.465642710.664241810.86294101161640111.2

6、60439311.459238511.658137811.85703711256036512.255035812.4540352STC micro宏晶科技附錄2: C語言程序I* - STC MCU International Limited*/* - STC 1T Series MCU RC Demo*II* - Mobile: (86II* - Fax: 86-755-82944243*II* - Tel: 86-755-82948412*II* Web: www.STCMCU.com*II* If you want to use the program or t

7、he program refereneed in the *II* article, please specify in which data and procedures from STC *II*II*功能描述:使用STC15F系列C版本做的RC測(cè)量電壓的例子.*I技術(shù)支持:(86 6 頁共 11 頁傳真:86-755-82944243電話:86-755-82948412官方網(wǎng)站:www.STCMCU.com#i nclude reg51.h#define MAIN_Fosc22118400L 定義主時(shí)鐘#defi ne uchar un sig ned char

8、#defi ne uintun sig ned intsfr AUXR = 0x8e; /Auxiliary registersfr P3M1 = 0xB1;P3M1.N,P3M0.N=00-Sta ndard,01-push-pullsfr P3M0 = 0xB2;/=10-pure in put, 11-open drainsbitsbitP_TXD1 = P3A1;/定義模擬串口發(fā)送腳,打印信息用P_RC = P3A2; /RC portuchar SampleC nt;發(fā)送結(jié)果的采樣間隔計(jì)數(shù)uchar Lin eC nt;每行顯示結(jié)果計(jì)數(shù)bit bit uintB_Over;超時(shí)標(biāo)志B

9、_ADC_OK;檢測(cè)完成標(biāo)志adc;/RC 做的 ADC 值void void void voidRC_start(void);Tx1Se nd(uchar dat);In itTimer(void); delay_ms( un sig ned char ms);/void main (void) InitTimer();初始化 TimerP3M1 |=1 2;P3M0 |=1 = 100) 1秒鐘發(fā)一個(gè)結(jié)果給串口SampleC nt = 0;Tx1Se nd(adc / 10000 + 0);/send to PC from the UARTTx1Se nd(adc % 10000 / 10

10、00 + 0);TxISend(adc % 1000 / 100 + 0);Tx1Se nd(adc % 100 / 10 + 0);Tx1Se nd(adc % 10 + 0);Tx1Se nd();Tx1Se nd();if(+L in eC nt = 10)/10 個(gè)結(jié)果后換行Li neCn t = 0;Tx1Sen d(0x0d); /send CRTx1Sen d(0x0a);/= / 函數(shù):void delay_ms(unsigned char ms)/描述:延時(shí)函數(shù)。一/參數(shù):ms要延時(shí)的ms數(shù)./ 返回:none./ 版本:VER1.0/ 日期:2010-12-15/備注:/=

11、 void delay_ms( un sig ned char ms) _un sig ned int i;doi = MAIN_Fosc / 14000L; 仃 while(-i) ;13T per loopwhile(-ms);RC啟動(dòng)函數(shù)void RC_start(void)TH0 = 0;TL0 = 0;B_Over = 0;P_RC = 1;TR0 = 1;/使用Timer 0計(jì)時(shí)/clear Timer 0/Clear Over flag/RC chargeen able Timer 0IE0 = 0;/Clear INT0 flagEX0 = 1;/INT0 En ableIT0

12、 = 0; /INT0上升,下降沿中斷/* INT0中斷函*/void INT0_i nt (void) in terrupt 0/ _if(INT0 & !B_Over)上升沿中斷,無超時(shí)TR0 = 0;P_RC = 0; adc = TH0;adc = (adc 8) + TL0;B_ADC_OK = 1;/deable Timer 0 /decharge/read the RC time標(biāo)志ADC結(jié)束Timer初始化函數(shù)void In itTimer(void)TMOD = 0; /for STC15Fxxx 系列 Timer0 as 16bit reload timer.TH0 = 0

13、;技術(shù)支持:(86 9 頁共 11 頁傳真:86-755-82944243電話:86-755-82948412官方網(wǎng)站:www.STCMCU.comTLO = 0;ETO = 1;/允許 TimerO 中斷TRO = 0;EA = 1;/允許總中斷中斷函數(shù)/* TimerOvoid timerO (void) in terrupt 1 TRO = 0;/超量程關(guān)閉B_Over = 1; /標(biāo)志超量程 _模擬串口相關(guān)函數(shù)/位時(shí)間函數(shù)/*void BitTime(void)uint i;i = (MAIN_Fosc / 100) * 104)/ 13OOOOL - 1;/ 根據(jù)主時(shí)鐘來計(jì)算位時(shí)間while(-i);模擬串口發(fā)送void Tx1Send(uchar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論