STC12C5A60S2內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第1頁(yè)
STC12C5A60S2內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第2頁(yè)
STC12C5A60S2內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第3頁(yè)
STC12C5A60S2內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第4頁(yè)
STC12C5A60S2內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、bSTC12C5A60S2部ADC專換串口顯示程序已經(jīng)驗(yàn)證成功董 #include膈#includeintrins.h藏 typedefunsignedcharuchar;蒲 typedefunsignedintuint;蒂/* 設(shè)置 ADC CONTRLS制存放器 */#defineADC POWER0x80 /ADC電源限制為 0:關(guān)閉AD轉(zhuǎn)換電源1:翻開 AD轉(zhuǎn)換電源袈#defineADC_FLAG0x10/ADC轉(zhuǎn)換結(jié)束標(biāo)志位, AD轉(zhuǎn)換后自動(dòng)置 1,/由軟件清零這里作取反使用K#defineADC_START0x08 /ADC轉(zhuǎn)換啟動(dòng)限制位,設(shè)置為 1時(shí)開始 AD轉(zhuǎn)換,/轉(zhuǎn)換結(jié)束后為

2、0 #defineADRJ0X04/AUXR1存放器的ADRJ位是轉(zhuǎn)換結(jié)果存放器ADC_RES,ADC_RESW據(jù)格式調(diào)整限制位螂的低2位ADRJ為0時(shí),10位AD轉(zhuǎn)換結(jié)果的高 8位存放在 ADC_RESh彳氐2位存放在 ADC_RESL量在 ADC RESL/ADRJ為1時(shí),10位AD轉(zhuǎn)換結(jié)果的高 2位存放在 ADC_RES氐2位中,低8位存放曹#defineADC SPEEDLL0X00/540個(gè)時(shí)鐘周期轉(zhuǎn)換一次最低速蒞#defineADC SPEEDL0X20/360個(gè)時(shí)鐘周期轉(zhuǎn)換一次低速s#defineADC SPEEDH0x40180個(gè)時(shí)鐘周期轉(zhuǎn)換一次高速建#defineADC SP

3、EEDHH0x6090個(gè)時(shí)鐘周期轉(zhuǎn)換一次最高速曹ucharch=0;/模擬通道蜿 ucharcodenum=0,1,2,3,4,5,6,7,8,9;字符數(shù)組,輸出到串口顯示袂 voiddelay2ms(void)/ 誤差 0.000000000000us腿# unsignedchara,b;腿 for(b=129;b0;b-)薄 for(a=45;a0;a-);輻 voiddelay2s(void)/ 誤差-0.000000000111us莆 unsignedchara,b,c,n;w for(c=142;c0;c-)犀 for(b=168;b0;b-)量 for(a=250;a0;a-);肇

4、 for(n=2;n0;n-);蝸 _nop_();/ifKeil,requireuseintrins.h蔗 *賺串口通信局部 *s ucharwj_uun=!; 用于存放串口 1接收的字符蒞 voidbt_uart_init(void) / 單片機(jī)串口 初始化腿SCON=0X50; SM0=0SM1=1SM2=0REN=1羋 SM0=0;串口工作方式1 : 1位起始位,8位數(shù)據(jù)位,1位停止位允許串口接收艘 SM1=1;范 REN=1;允許串口接收膂/RI=1;/接收標(biāo)志位,0:正在接收1 :接收完畢(如果RI=1就一直執(zhí)行串口中斷)輯TMOD=0X20; 定時(shí)器T1工作方式2筮 TL1=0X

5、FD;羋TR1=1;啟動(dòng)定時(shí)器 T1勘 EA=1;開總中斷箍ES=1;開串行口中斷蓬蠶/*串 口 1 發(fā)送函數(shù) */聿voids1_send_char(uchardat)發(fā)送端(發(fā)送的是字符)螭SBUF=dat;將字符送入發(fā)送緩沖存放器嵋 while(!TI);/TI為發(fā)送狀態(tài)標(biāo)志位,0:發(fā)送中1:發(fā)送結(jié)束聿TI=0;/手動(dòng)清零標(biāo)志位薇蟆voids1_send_string(uchar*pt)/通過(guò)調(diào)用發(fā)送字符函數(shù)來(lái)發(fā)送字符數(shù)組裊 while(*pt!=0)連 s1_send_char(*pt+);芳 菱肄 voidADC_Init(void)輻 P1ASF=0x01;/設(shè)置P1 的0為模擬輸

6、入端口 (經(jīng)過(guò)測(cè)試這句寫不寫P1 都能模擬輸入)蟆 ADC_RES=0;/先清空兩個(gè)存放器蒞 ADC_RESL=0;肄 AUXR1&=ADRJ_; /ADRJ為0的存儲(chǔ)格式(參考技術(shù)手冊(cè))聿ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch啟 ADC 電源并且啟動(dòng) ADC著/經(jīng)過(guò)最少四個(gè)時(shí)鐘周期之后才能夠正確讀取到ADC_CONTR勺值蔓EADC=1;允許ADC中斷w *主函數(shù) *腿 voidmain()先袁 P4SW=0x70;/P4端口的4、5、6腳可作為通用I/O 口蠶bt_uart_init();/ 串口初始化祎ADC_Init();/ADC 初始

7、化 英 while(1)節(jié)肆 妨英 /*ADC*芨 voidADC_(void)interrupt5/ADC 中斷編號(hào)為 5崛蒙 uintadc_result=0;蔻 while(!(ADC_CONTR&ADC_FLAG);如果未轉(zhuǎn)換結(jié)束,等待 ADC_CONTRt?存器 ADC_FLAG置 1蠅 ADC_CONTR&=ADC_FLAG; /清零ADC轉(zhuǎn)換結(jié)束標(biāo)志位(這句可以不寫,由于下面有覆蓋)黃 if(ADC_CONTR&ADC_FLAG)荽ADC_RESL&=0x03;薄adc_result=ADC_RES*4+ADC_RESL;茯取至U10AD轉(zhuǎn)換值膀s1_send_string(通道

8、號(hào):);s1_send_char(numch);通過(guò)串 口發(fā)送通道號(hào)芍s1_send_string(轉(zhuǎn)換值:);/一共四位數(shù)董s1_send_char(numadc_result/1000);奠s1_send_char(numadc_result%1000/100);莆s1_send_char(numadc_result%100/10);肄s1_send_char(numadc_result%10);螃 if(+ch3)ch=0;/不斷切換通道號(hào) 0、1、2、3輻/再次設(shè)置 ADC_CONT超存器膈ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;肇delay2s();裂 材/*腿串口 1 中斷程序 */蟆 voidbt_se

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論