欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC12C54系列單片機頭文件
[打印本頁]
作者:
xiaos
時間:
2015-4-3 01:17
標題:
STC12C54系列單片機頭文件
#include"STC12C5410AD.H" //STC12C54系列單片機頭文件
#define uchar unsigned char
#define uint unsigned int
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
void AD_Init()
{
P1M0=0x0f;//0000 1111 設置P1口低4位為開漏模式,用來AD采集
P1M1=0x0f;//0000 1111
ADC_CONTR=0xe0;//1110 0000 開啟AD轉換器電源,設置最高轉換速度
delayms(100);
}
int GetAD(unsigned char channel) //channel為要取的通道號(0~7)
{
unsigned char AD_finished=0;
int result;
ADC_CONTR|=channel; //選擇AD通道號
ADC_CONTR|=0x08; //啟動AD轉換
while(AD_finished==0) //等待AD轉換結束
{
AD_finished=(ADC_CONTR&0x10);//查詢ADC_FLAG位是否置1
}
result=ADC_DATA*4+ADC_LOW2;//讀走AD轉換結果,由于ADC_DATA中存儲12位中的
//高8位,當要轉換成10進制時,需將ADC_DATA中的數左移2位,即相當于*4
ADC_CONTR&=0xf7; //清除轉換結束標志
return (result); //返回結果給函數
}
float Ad_Av(uchar channel) //求100次采集電壓的平均值
{
float Val_Av=0;
uchar num;
for(num=100;num>0;num--)
{
Val_Av+=GetAD(channel);//100次采集求和
}
Val_Av/=100.0; //求平均值
Val_Av=Val_Av*5.0/1024; //單片機電源為5V,求的真實電壓值
return (Val_Av); //返回給函數
}
void main()
{
float ad1,ad2,ad3,ad4;
AD_Init();
ad1=Ad_Av(1);
ad2=Ad_Av(2);
ad3=Ad_Av(3);
ad4=Ad_Av(4);
while(1);
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1