日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] STC12C5A60S2 C語(yǔ)言示例程序(ADC查詢方式)#include"reg51.h"#include"intrins.h"#defineFOSC18432000L#defineBAUD9600typedefunsignedcharBYTE;typedefunsignedintWORD;/*DeclareSFRassociatedwiththeA

STC12C5A60S2 C語(yǔ)言示例程序(ADC查詢方式)

#include"reg51.h"
#include"intrins.h"

#defineFOSC18432000L
#defineBAUD9600

typedefunsignedcharBYTE;
typedefunsignedintWORD;

/*DeclareSFRassociatedwiththeADC*/
sfrADC_CONTR=0xBC;//ADCcontrolregister
sfrADC_RES=0xBD;//ADChigh8-bitresultregister
sfrADC_LOW2=0xBE;//ADClow2-bitresultregister
sfrP1ASF=0x9D;//P1secondaryfunctioncontrolregister

/*DefineADCoperationconstforADC_CONTR*/
#defineADC_POWER0x80//ADCpowercontrolbit
#defineADC_FLAG0x10//ADCcompleteflag
#defineADC_START0x08//ADCstartcontrolbit
#defineADC_SPEEDLL0x00//420cLOCks
#defineADC_SPEEDL0x20//280clocks
#defineADC_SPEEDH0x40//140clocks
#defineADC_SPEEDHH0x60//70clocks

voidInitUART();
voidInitADC();
voidSendData(BYTEdat);
BYTEGetADCResult(BYTEch);
voidDelay(WORDn);
voidShowResult(BYTEch);

voidmain()
{
InitUart();//InitUART,usetoshowADCresult
InitADC();//InitADCsfr
while(1)
{
ShowResult(0);//ShowChannel0
ShowResult(1);//ShowChannel1
ShowResult(2);//ShowChannel2
ShowResult(3);//ShowChannel3
ShowResult(4);//ShowChannel4
ShowResult(5);//ShowChannel5
ShowResult(6);//ShowChannel6
ShowResult(7);//ShowChannel7
}
}

/*----------------------------
SendADCresulttoUART
----------------------------*/
voidShowResult(BYTEch)
{
SendData(ch);//ShowChannelNO.
SendData(GetADCResult(ch));//ShowADChigh8-bitresult

//ifyouwantshow10-bitresult,uncommentnextline
//SendData(ADC_LOW2);//ShowADClow2-bitresult
}

/*----------------------------
GetADCresult
----------------------------*/
BYTEGetADCResult(BYTEch)
{
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;
_nop_();//Mustwaitbeforeinquiry
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&ADC_FLAG));//Waitcompleteflag
ADC_CONTR&=~ADC_FLAG;//CloseADC

returnADC_RES;//ReturnADCresult
}

/*----------------------------
InitialUART
----------------------------*/
voidInitUart()
{
SCON=0x5a;//8bitdata,noparitybit
TMOD=0x20;//T1as8-bitautoreload
TH1=TL1=-(FOSC/12/32/BAUD);//SetUartbaudrate
TR1=1;//T1startrunning
}

/*----------------------------
InitialADCsfr
----------------------------*/
voidInitADC()
{
P1ASF=0xff;//Open8channelsADCfunction
ADC_RES=0;//Clearpreviousresult
ADC_CONTR=ADC_POWER|ADC_SPEEDLL;
Delay(2);//ADCpower-onanddelay
}

/*----------------------------
SendonebytedatatoPC
Input:dat(UARTdata)
Output:-
----------------------------*/
voidSendData(BYTEdat)
{
while(!TI);//Waitforthepreviousdataissent
TI=0;//ClearTIflag
SBUF=dat;//Sendcurrentdata
}

/*----------------------------
SOFtwaredelayfunction
----------------------------*/
voidDelay(WORDn)
{
WORDx;

while(n--)
{
x=5000;
while(x--);
}
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉