STC12C5A60S2 內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第1頁
STC12C5A60S2 內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第2頁
STC12C5A60S2 內(nèi)部ADC轉(zhuǎn)換串口顯示程序_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

內(nèi)部ADC轉(zhuǎn)換口示序已驗(yàn)成)#include<stc12c5a60s2.h>#include"intrins.h"typedefunsigneduchar;typedefunsignedintuint;/*************設(shè)ADC_CONTRL控寄存器*************/#define0x80//電控制為關(guān)AD轉(zhuǎn)電源1打AD轉(zhuǎn)電源#define0x10//ADC轉(zhuǎn)換結(jié)束標(biāo)志位轉(zhuǎn)后自動(dòng)置,//由軟件清這作取反使)#define//ADC轉(zhuǎn)啟動(dòng)控制位,設(shè)置為時(shí)始AD轉(zhuǎn),//轉(zhuǎn)換結(jié)束后為0#defineADRJ_0x04寄存器的ADRJ位是轉(zhuǎn)換結(jié)果寄存器的據(jù)格式調(diào)整控制位//為時(shí)位轉(zhuǎn)結(jié)果的高8位放在ADC_RES中,低位放在ADC_RESL的低位//為時(shí)位轉(zhuǎn)結(jié)果的高2位放在ADC_RES低位,8位放在ADC_RESL#defineADC_SPEEDLL0x00個(gè)時(shí)鐘周期轉(zhuǎn)換一最低速#define0x20//360個(gè)鐘周期轉(zhuǎn)換一(低速#defineADC_SPEEDH0x40//個(gè)時(shí)鐘周期轉(zhuǎn)換一次高速#define0x60//個(gè)鐘周期換一次(最速uchar0;模通道ucharnum[]={'0','1','2','3','4','5','6','7','8','9'};//字符數(shù)組,輸出到串口顯示voiddelay2ms(void)誤0.000000000000us{unsignedcharfor(b=129;b>0;b--)for(a=45;a>0;a--);}voiddelay2s(void)//誤差-0.000000000111us{unsignedchara,b,c,n;for(c=142;c>0;c--)for(b=168;b>0;b--)for(a=250;a>0;a--);for(n=2;n>0;n--);_nop_();//ifKeil,requireintrins.h}//************************串通信部分******************************ucharwj_uun='!';//用存放串口1接的字符voidbt_uart_init(void)//單機(jī)串口初始化{歡迎閱讀

//SCON=0X50;//SM1=1SM2=0REN=1=0;串口接收

//串工作方式11位始位8位據(jù)位1位停止位允許=1;REN1;//允串口接收//RI=1;//接收標(biāo)志位:正在接收1:接收完畢如RI=1就一直執(zhí)行串口中斷TMOD=0X20;//定器T1工作方式2TH10XFD;//9600bit/s下定時(shí)器初值TL10XFD;TR11;//啟動(dòng)定時(shí)器T1EA1;//開總中斷ES=1;開串行口中斷}/**************串口發(fā)送函數(shù)*****************/voids1_send_char(uchardat){發(fā)端發(fā)的是字)SBUF=dat;//將符送入發(fā)送緩沖寄存器while(!TI);//TI為送態(tài)標(biāo)志位:發(fā)送中:送結(jié)束TI0;//手清零標(biāo)志位}voids1_send_string(uchar*pt){//通調(diào)用發(fā)送字符函數(shù)來發(fā)送字符數(shù)組while(*pt!='\0'){s1_send_char(*pt++);}}voidADC_Init(void){//P1ASF=0x01;//設(shè)置P1口0為擬輸入端經(jīng)測試這句寫不寫口都能模擬輸)ADC_RES=0;先空兩個(gè)寄存器ADC_RESL0;&=//為的儲(chǔ)格式(參考技術(shù)手)ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;//開ADC電源并且啟動(dòng)ADC//經(jīng)最少四個(gè)時(shí)鐘周期之后才能夠正確讀取到ADC_CONTR的delay2ms();EADC1;允ADC中}//*****************主數(shù)*****************voidmain(){=0x70;//P4端口的、、腳作為通用I/O口bt_uart_init();串初始化ADC_Init();ADC初化while(1);歡迎閱讀

}}//*****************中函數(shù)*****************voidADC_(void)interrupt5//中斷編號為5{uintadc_result0;//while(!(ADC_CONTRADC_FLAG));//如未轉(zhuǎn)換結(jié)束等待

ADC_CONTR寄器ADC_FLAG位置1//ADC_CONTR&=~ADC_FLAG;清轉(zhuǎn)換結(jié)束標(biāo)志這可不寫為下面有覆蓋if(ADC_CONTR&ADC_FLAG){ADC_RESL&=0x03;adc_result=ADC_RES*4+ADC_RESL;//獲到10AD轉(zhuǎn)換值s1_send_string("通道號");s1_send_char(num[ch]);通過串口發(fā)送通道號s1_send_string("轉(zhuǎn)換值");//一共四位數(shù)s1_send_char(num[adc_result/1000]);s1_send_char(num[adc_result%1000/100]);s1_send_char(num[adc_result%100/10]);s1_send_char(num[adc_result%10]);if(++ch>3)ch0;//不切通道號01、、//再設(shè)置寄存器ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;delay2s();}}/**************串口中斷程序**********

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論