久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stc15單片機AD轉換設計并進行串口通信源程序
[打印本頁]
作者:
lcx187
時間:
2019-1-2 22:34
標題:
stc15單片機AD轉換設計并進行串口通信源程序
基于stc15系列單片機 AD轉換設計并進行串口通信源程序
單片機源程序如下:
#include<STC15.h>
#include<intrins.h>
#define BYTE unsigned char
#define WORD unsigned int
#define ADC_POWER 0x80 //ADC電源控制位
#define ADC_FLAG 0x10 //ADC完成標志
#define ADC_START 0x08 //ADC起始控制位
#define ADC_SPEEDLL 0x00 //540個時鐘
#define ADC_SPEEDL 0x20 //360個時鐘
#define ADC_SPEEDH 0x40 //180個時鐘
#define ADC_SPEEDHH 0x60 //90個時鐘
void delay(WORD i); //數碼管延時函數
void lintADC(); //ADC特殊功能寄存器初始化
BYTE GetADCResult(BYTE ch) ; //ADC結果返回函數
void InitUart(); //串口初始化
void SendData(BYTE dat); //串口發送
void Time(); //定時器初始化
float num;
bit p=1,p1=1;
WORD a0,a1,a2,a3,a4,a5,a6,a7,j=0,i,k=0,sum=0,n=0,RESULT,RESULT1;
BYTE code AA[]={0x80,0xE5,0x28,0x24,0x45,0x82}; //0.~4.字形碼
BYTE code BB[]={0x82,0xE7,0x2A,0x26,0x47,0x16,0x12,0xA7,0x02,0x06}; //0~9字形碼
BYTE code CC[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //0~9 ASCII碼
/*~~~~~~~~~~~~~~~主函數~~~~~~~~~~~~~~~*/
void main()
{
lintADC(); //ADC特殊功能寄存器初始化
InitUart(); //串口初始化
//P3=0xff;
Time(); //定時器初始化
while(1)
{
if(n==100)
{
GetADCResult(7);}
switch(j)
{
case 1: // 判斷j是否為1
{
P37=0;
P2=AA[a0];
}break;
case 2: // 判斷j是否為2
{
P2=0xff;
P37=1;
} break;
case 3: // 判斷j是否為3
{
P36=0;
P2=BB[a1];
} break;
case 4: // 判斷j是否為4
{ P2=0xff;
P36=1;
} break;
case 5: // 判斷j是否為5
{
P35=0;
P2=BB[a2];
/* if(SBUF==2)
{ if(0<i&&i<1000)
{
GetADCResult(7);
if(SBUF==1|SBUF==2)
{
a4=CC[a0];
a5=CC[a1];
a6=CC[a2];
a7=CC[a3];
SendData(a4);
SendData(0x2e);
SendData(a5);
SendData(a6);
SendData(a7);
SendData(0x20);
}
}
} */
} break;
case 6: // 判斷j是否為6
{ P2=0xff;
P35=1;
} break;
case 7: // 判斷j是否為7
{
P34=0;
P2=BB[a3];
} break;
case 8: // 判斷j是否為8
{ P2=0xff;
P34=1;
} break;
case 10: // 判斷j是否為10
{/* if(0<i&&i<1000)
{
// GetADCResult(7); //返回通道1 ADC結果
if(SBUF==1|SBUF==2)
{
a4=CC[a0]; //發送電壓值
a5=CC[a1];
a6=CC[a2];
a7=CC[a3];
SendData(a4);
SendData(0x2e);
SendData(a5);
SendData(a6);
SendData(a7);
SendData(0x20);
}
} */
} break;
}
}
}
void lintADC()
{
P1ASF=0xff; //選擇P1口作為AD轉換口
ADC_RES=0;
ADC_RESL=0;
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
delay(10);
}
BYTE GetADCResult(BYTE ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //等待4個NOP
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉換完成
ADC_CONTR &= ~ADC_FLAG; //Close ADC
RESULT=ADC_RES;
RESULT=RESULT<<2;
RESULT1=ADC_RESL;
RESULT=(RESULT|RESULT1);
return RESULT; //返回ADC結果
}
void delay(unsigned int i)
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}
void SendData(BYTE dat)
{ SBUF = dat; //發送當前數據
while (!TI); //等待前一個數據發送完成
TI = 0; //清除發送標志
}
void InitUart()
{
AUXR=(AUXR|0x11); //定時器2作為串口波特率發生器
T2H=0xFF; //波特率為115200
T2L=0xFE;
SCON = 0x50;
}
void Time()
{
AUXR=AUXR&0x3f;
TMOD=0x00; //定時器T0,T1選擇方式0
TH0=0xFC; //定時器T0定時1ms
TL0=0x66;
EA=1;
ET0=1;
TR0=1;
}
timer2()interrupt 1
{ n++;
j++;
i++;
if(i==2000)
i=0;
if(j==11)
j=0;
if(n==101)
n=0;
num=RESULT/1024.0*5; //計算電壓值
a0=(int)num;
a1=(int)(num*10);
a1=a1%10;
a2=(int)(num*100);
a2=a2%10;
a3=(int)(num*1000);
a3=a3%10;
}
復制代碼
所有資料51hei提供下載:
AD轉換.zip
(8.72 KB, 下載次數: 42)
2019-1-2 22:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
sdsslh
時間:
2019-6-20 16:49
謝謝樓主的分享。。。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久99精品久久久久久青青日本
|
草草在线观看
|
羞羞视频在线观看
|
亚洲成人国产精品
|
国产日韩一区二区三区
|
欧美日韩毛片
|
99精品亚洲国产精品久久不卡
|
91国产精品
|
不卡的av在线
|
天天宗合网
|
日本一区二区三区精品视频
|
91福利在线导航
|
久久精品国产亚洲夜色av网站
|
国产 亚洲 网红 主播
|
国产欧美在线一区
|
第一区在线观看免费国语入口
|
日韩在线一区二区三区
|
日本午夜精品一区二区三区
|
99精品国产一区二区三区
|
在线国产一区二区
|
国产福利一区二区
|
国产一区91精品张津瑜
|
日韩精品久久久久久
|
国产高清一区
|
五月天综合网
|
91久久精品一区二区二区
|
欧美男男videos
|
国产免费看
|
欧美性成人
|
99精品欧美一区二区三区
|
一区二区在线免费观看
|
中文字幕一区二区视频
|
黄视频网址
|
干干干操操操
|
国内精品久久久久
|
日韩视频在线免费观看
|
国产精品一区二区av
|
老子午夜影院
|
久久久久久免费毛片精品
|
日韩中文字幕视频
|
男女羞羞视频大全
|