久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC12C5A60S2單片機(jī)煙霧報(bào)警系統(tǒng)的設(shè)計(jì)
[打印本頁]
作者:
liu4195381
時(shí)間:
2020-4-14 19:34
標(biāo)題:
STC12C5A60S2單片機(jī)煙霧報(bào)警系統(tǒng)的設(shè)計(jì)
這是前幾天做的一個(gè)基于51單片機(jī)的一個(gè)煙霧報(bào)警系統(tǒng),采用有ADC功能的STC12C5A60S2單片機(jī),通過MQ-2煙霧模塊檢測,溫度傳感器DS18B20檢測溫度,通過LCD12864實(shí)時(shí)顯示濃度和溫度,可以調(diào)節(jié)濃度值,并且有聲光報(bào)警功能。附件中是原理圖以及ADC采集電壓源碼。
單片機(jī)源程序如下:
//****************************************STC12C5A60S2 AD轉(zhuǎn)換***********************************************//
#include <reg60.h>
#include <intrins.h> //包含_nop_()函數(shù)定義的頭文件
#include <stdio.h>
//------------------------------------------------------------------------------
void AD_init();
void serial_init();
void delay(unsigned int a);
float AD_work(unsigned char channel);
unsigned int AD_get(unsigned char channel);
//------------------------------------------------------------------------------
void main()
{
AD_init(); //A/D轉(zhuǎn)換初始化
serial_init(); //串口初始化
while(1)
{
// unsigned char i;
// for(i=0;i<8;i++) //循環(huán)發(fā)送P1.0-P1.7的轉(zhuǎn)換數(shù)值
// {
// TI=1; //使用printf函數(shù)前須先將發(fā)送標(biāo)志位TI置1
// printf("The P1.%bd voltage is %f\n",i,AD_work(i));
// TI=0;
// delay(1000); //延時(shí)約1s
// }
TI=1; //使用printf函數(shù)前須先將發(fā)送標(biāo)志位TI置1
printf("The P1.%bd voltage is %f\n",7,AD_work(7));
TI=0;
delay(1000); //延時(shí)約1s
}
}
//------------------------------------------------------------------------------
unsigned int AD_get(unsigned char channel)
{
ADC_CONTR=0x88|channel; //開啟AD轉(zhuǎn)換1000 1000 即POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0
_nop_(); _nop_(); _nop_(); _nop_();//要經(jīng)過4個(gè)CPU時(shí)鐘的延時(shí),其值才能夠保證被設(shè)置進(jìn)ADC_CONTR 寄存器
while(!(ADC_CONTR&0x10)); //等待轉(zhuǎn)換完成
ADC_CONTR&=0xe7; //關(guān)閉AD轉(zhuǎn)換,ADC_FLAG位由軟件清0
return(ADC_RES*4+ADC_RESL); //返回AD轉(zhuǎn)換完成的10位數(shù)據(jù)(16進(jìn)制)
}
//------------------------------------------------------------------------------
float AD_work(unsigned char channel)
{
float AD_val; //定義處理后的數(shù)值A(chǔ)D_val為浮點(diǎn)數(shù)
unsigned char i;
for(i=0;i<100;i++)
AD_val+=AD_get(channel); //轉(zhuǎn)換100次求平均值(提高精度)
AD_val/=100;
AD_val=(AD_val*5)/1024; //AD的參考電壓是單片機(jī)上的5v,所以乘5即為實(shí)際電壓值
return AD_val;
}
//------------------------------------------------------------------------------
void delay(unsigned int a) //延時(shí)約1ms
{
unsigned int i;
while (--a!=0)
for(i=600;i>0;i--); //1T單片機(jī)i=600,若是12T單片機(jī)i=125
}
//------------------------------------------------------------------------------
void serial_init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd; //設(shè)置9600波特率
SCON=0x50; //串口方式1,允許接收
TR1=1;
}
//------------------------------------------------------------------------------
void AD_init()
{
P1ASF=0xcf; //P1口全部作為模擬功能AD使用
ADC_RES=0; //清零轉(zhuǎn)換結(jié)果寄存器高8位
ADC_RESL=0; //清零轉(zhuǎn)換結(jié)果寄存器低2位
ADC_CONTR=0x80;//開啟AD電源
delay(2); //等待1ms,讓AD電源穩(wěn)定
}
/*程序編寫:落葉
2010.11.03*/
復(fù)制代碼
所有資料51hei提供下載:
BS.pdf
(366.43 KB, 下載次數(shù): 38)
2020-4-14 19:29 上傳
點(diǎn)擊文件名下載附件
原理圖
下載積分: 黑幣 -5
ADC源碼.rar
(37.21 KB, 下載次數(shù): 34)
2020-4-14 19:31 上傳
點(diǎn)擊文件名下載附件
STC12C5A60S2ADC采集電壓源碼
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一区二区在线播放视频
|
jizz视频
|
99视频在线播放
|
久久在线看
|
亚洲最大成人综合
|
亚洲精品一区中文字幕
|
韩国毛片一区二区三区
|
亚洲男人的天堂网站
|
a在线视频
|
中文字幕高清av
|
欧美一区二区三区免费电影
|
www亚洲精品
|
国产98色在线 | 日韩
|
一区二区三区视频在线观看
|
午夜影视免费片在线观看
|
日韩一区二区三区av
|
天天操天天天干
|
久久一二区
|
中文字幕高清
|
亚洲精品日本
|
精品视频一区二区
|
日韩欧美国产一区二区
|
久久精品久久久久久
|
日本不卡在线视频
|
亚洲一区二区三区在线视频
|
日韩精品在线看
|
亚洲天堂影院
|
九九综合
|
国产精品精品视频
|
91久久国产
|
国产高清在线
|
欧美黄色一区
|
中文字幕av一区
|
日本一区二区三区四区
|
成人精品免费视频
|
欧美色性
|
www.99久久.com
|
精品国产乱码久久久久久闺蜜
|
欧美精品一区二区三区在线
|
麻豆视频国产在线观看
|
日韩欧美中文字幕在线观看
|