久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM8S光敏測量帶AD值電壓值和擋位的源程序
[打印本頁]
作者:
叫我紅領巾
時間:
2018-7-20 00:03
標題:
STM8S光敏測量帶AD值電壓值和擋位的源程序
硬件電路為光敏電阻串聯一個20K的分壓電阻 接1602液晶顯示 采用STM8S208MB芯片 內部AIN13通道 可顯示采集到的AD值、轉換后的電壓值以及擋位
STM8S單片機源程序:
/*光敏測量 接20K分壓電阻 可顯示讀取到的AD值 轉換后的電壓值及擋位 AIN13端口PF5*/
/*注意:LCD R/W引腳需要硬件接地 若要軟件接地則GPIO初始化內定義*/
#include"iostm8s208mb.h"
#define uchar unsigned char
#define uint unsigned int
#define ushort unsigned short
uchar tab1[]="=ADC2 GUANGMIN="; //初始化后顯示畫面
uchar tab2[]="= . V =";
static uint AD_temp[10]={0,0,0,0,0,0,0,0,0,0}; //建立數組用于存放采集的AD的10個數值
static uint AD_val=0; //全局變量 ADC單次采樣數據
static uint voltage=0; //實際測得的電壓值
#define LCD_EN PF_ODR_ODR4 //LCD使能端
#define LCD_RS PF_ODR_ODR0 //LCD寫端口
#define LCD_DATA PB_ODR //LCD數據端
void delay(uint z) //約1ms延時
{
uint i,j;
while (z--)
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
}
}
void GPIO_init(void)
{
PF_DDR_DDR4=1; //LCD使能端初始化
PF_CR1_C14=1;
PF_CR2_C24=1;
PF_DDR_DDR0=1; //LCD寫端口初始化
PF_CR1_C10=1;
PF_CR2_C20=1;
PB_DDR=0xff; //LCD數據端初始化
PB_CR1=0xff;
PB_CR2=0xff;
}
void write_com(uchar com) //LCD寫命令 參考時序圖
{
LCD_RS=0;
LCD_DATA=com;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void write_data(uchar data) //LCD寫數據 參考時序圖
{
LCD_RS=1;
LCD_DATA=data;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void LCD_init(void) //LCD初始化
{
LCD_EN=0;
write_com(0x38); //設置16*2顯示,5*7點陣,8位數據接口
write_com(0x0c); //設置開顯示,不顯示光標
write_com(0x06); //寫一個字符后地址指針加1
write_com(0x01); //顯示清0,數據指針清0
}
void LCD_watch(uchar add,uchar data) //LCD顯示計數函數
{
write_com(0x80+0x40+add);
write_data(0x30+data); //0x30表示字符表內0-9數字的八位為0011 0000
}
void LCD_DIS2(void) //LCD初始化結束后顯示內容
{
uchar num;
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(tab1[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_data(tab2[num]);
delay(5);
}
}
void ADC_init(void) //ADC13初始化函數
{
ADC_CSR=0x0d; //禁止中斷使能 選擇AIN13通道
ADC_CR1=0x02; //Fmaster2分頻 連續轉換模式
ADC_CR2=0x08; //禁止外部觸發 右對齊方式
PF_DDR_DDR5=0; //PF5設置為無中斷懸浮輸入
PF_CR1_C15=0;
PF_CR2_C25=0;
ADC_TDRH=0xff; //禁止施密特觸發功能
ADC_TDRL=0xff;
// ADC_CR1|=0x01; //使能喚醒ADC
}
void ADC_GET(void) //ADC轉換函數
{
uchar num=0; //num為采集次數
ADC_CR1|=0x01; //使能喚醒ADC
ADC_CR1|=0x01; //啟動ADC轉換
while(num<10) //采集10次結果
{
while((ADC_CSR&0x80)==0); //判斷EOC位是否為1 等待轉換結束
ADC_CSR&=0x7f; //結束后EOC位由軟件清零
AD_temp[num]=(uint)ADC_DRL; //先賦值低位
AD_temp[num]|=(uint)ADC_DRH<<8; //高位左移8位后與低位拼合
num++;
}
ADC_CR1&=0xfe; //關閉ADC轉換
}
void AVG_AD_temp(void) //平均值濾波函數
{
uchar i,j;
uint temp; //定義暫存變量暫存數值
for(i=10;i>=1;i--)
{
for(j=0;j<(i-1);j++)
{
if(AD_temp[j]>AD_temp[j+1])
{
temp=AD_temp[j];
AD_temp[j]=AD_temp[j+1];
AD_temp[j+1]=temp;
}
}
}
for(i=2;i<=7;i++) //將采集到的10個值取中間6個進行累加求平均
{
AD_val+=AD_temp[i];
}
AD_val=(uint)AD_val/6;
}
void main(void)
{
uchar qian,bai,shi,ge,qian1,bai1,shi1,ge1,shi2,ge2;
GPIO_init();
ADC_init();
LCD_init();
LCD_DIS2();
while(1)
{
ADC_GET();
AVG_AD_temp();
// delay(50);
/*這里顯示的是AIN13讀取到的AD實際值*/
qian=AD_val/1000; //千位
bai=AD_val%1000/100; //百位
shi=AD_val%100/10; //十位
ge=AD_val%10; //個位
LCD_watch(1,qian);
LCD_watch(2,bai);
LCD_watch(3,shi);
LCD_watch(4,ge);
/*這里顯示的是擋位(0-99對應0-1023) 電壓基準來自Vref+*/
shi2=(uint)(AD_val*0.09766)/10; //十位
ge2=(uint)(AD_val/0.09766)%10; //個位
LCD_watch(13,shi2);
LCD_watch(14,ge2);
voltage=(uint)(AD_val*5.087890625); //獲取的AD值乘以基準值 由于乘積為浮點型所以再次轉換為整形
AD_val=0; //AD值清零
/*這里顯示的是AD轉換后的電壓值 電壓基準來自Vref+ 此處和VDD連接 即+5V*/
qian1=voltage/1000; //千位
bai1=voltage%1000/100; //百位
shi1=voltage%100/10; //十位
ge1=voltage%10; //個位
LCD_watch(6,qian1);
LCD_watch(8,bai1);
LCD_watch(9,shi1);
LCD_watch(10,ge1);
}
}
復制代碼
所有資料51hei提供下載:
光敏測量帶AD值電壓值和擋位.rar
(272.37 KB, 下載次數: 24)
2018-7-20 00:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
叫我紅領巾
時間:
2018-7-20 00:04
稍加改動可移植到8S103/105等單片機上
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕精品在线观看
|
91爱爱爱
|
国产免费成人
|
九九热这里只有
|
日韩视频在线播放
|
日韩一级免费视频
|
天天爽夜夜爽夜夜爽
|
又黄又爽又色视频
|
日韩精品一区二区在线
|
国产午夜激情
|
伊人久久综合
|
操出白浆视频
|
精品久久久一区二区
|
91福利网
|
亚洲永久免费视频
|
精品一区二区三区免费毛片
|
日本久久视频
|
a级成人毛片
|
av一区二区三区四区
|
不卡日本
|
欧美另类视频
|
在线黄网
|
欧美精品黄色
|
www午夜
|
国产精品免费一区
|
女人高潮特级毛片
|
成人深夜福利视频
|
中文字幕亚洲视频
|
国产精品成人网
|
黄色录像免费看
|
成人毛片在线播放
|
欧美日韩毛片
|
一级a毛片
|
成人在线免费视频
|
99久久精品国产毛片
|
亚洲va韩国va欧美va精品
|
成人爽a毛片一区二区免费 亚洲午夜在线观看
|
午夜综合网
|
日韩网站免费观看
|
国产一区二区欧美
|
国产免费一级
|