此次設(shè)計(jì)是利用stm32開發(fā)板設(shè)計(jì)的。數(shù)據(jù)采集系統(tǒng)是模擬域與數(shù)字域之間必不可少的紐帶,它的存在具有著非常重要的作用。本文介紹的重點(diǎn)是數(shù)據(jù)采集系統(tǒng),而該系統(tǒng)硬件部分的重心在于單片機(jī)芯片。數(shù)據(jù)采集與通信控制采用了模塊化的設(shè)計(jì),數(shù)據(jù)采集與通信控制采用了單片機(jī)STM32來實(shí)現(xiàn),硬件部分是以單片機(jī)為核心,還包括A/D模數(shù)轉(zhuǎn)換模塊,顯示模塊。該系統(tǒng)從機(jī)負(fù)責(zé)數(shù)據(jù)采集并應(yīng)答主機(jī)的命令。輸入數(shù)據(jù)是由模擬信號(hào)產(chǎn)生器產(chǎn)生,實(shí)現(xiàn)對(duì)采集到的數(shù)據(jù)進(jìn)行模擬量到數(shù)字量的轉(zhuǎn)換,并用TFTLCD來顯示所采集的結(jié)果。軟件部分應(yīng)用C語(yǔ)言編寫控制軟件,對(duì)數(shù)據(jù)采集系統(tǒng)、模數(shù)轉(zhuǎn)換系統(tǒng)、數(shù)據(jù)顯示、數(shù)據(jù)通信等程序進(jìn)行了設(shè)計(jì)。 2 總體方案設(shè)計(jì) 多路巡回?cái)?shù)據(jù)采集儀設(shè)計(jì)需要將模擬量轉(zhuǎn)換為數(shù)字量,而 A/D是將模擬量轉(zhuǎn)換為數(shù)字量的器件,STM32單片機(jī)是該系統(tǒng)的基本的微處理系統(tǒng),它完成數(shù)據(jù)讀取、處理及邏輯控制、數(shù)據(jù)傳輸、數(shù)據(jù)轉(zhuǎn)換等一系列的任務(wù),然后通過控制液晶屏顯示。 數(shù)據(jù)采集系統(tǒng)不僅需要硬件設(shè)置,還需要軟件的相應(yīng)配置才能調(diào)試好硬件,使系統(tǒng)正常工作。硬件電路的調(diào)試與硬件設(shè)計(jì)和軟件配置息息相關(guān)。系統(tǒng)的硬件包括STM32核心板、液晶屏顯示、數(shù)據(jù)采集電路等。

圖1 系統(tǒng)框圖
此多路巡回?cái)?shù)據(jù)采集儀的設(shè)計(jì)采用的是紅外傳感器,煙霧傳感器,利用二個(gè)模塊分別檢測(cè)外圍環(huán)境的變化,通過最后采集的數(shù)據(jù)來反映不同環(huán)境下的數(shù)據(jù)的不同。 3 硬件設(shè)計(jì) 3.1 各個(gè)模塊的實(shí)現(xiàn) 3.1.1 紅外對(duì)管傳感器 TCRT5000傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強(qiáng)度不夠大時(shí),紅外接收管一直處于關(guān)斷狀態(tài),此時(shí)模塊的輸出端為高電平,指示二極管一直處于熄滅狀態(tài);被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來且強(qiáng)度足夠大,紅外接收管飽和,此時(shí)模塊的輸出端為低電平,指示二極管被點(diǎn)亮。模擬輸出AO當(dāng)發(fā)射管的紅外信號(hào)經(jīng)反射被接收管接收后,接收管的電阻會(huì)發(fā)生變化,在電路上一般以電壓的變化形式體現(xiàn)出來,而經(jīng)過ADC轉(zhuǎn)換或LM324等電路整形后得到處理后的輸出結(jié)果。電阻的變化起取于接收管所接收的紅外信號(hào)強(qiáng)度,常表現(xiàn)在反射面的顏色(反射率)、形狀和反射面接收管的距離等方面。 
圖3.1.1 紅外對(duì)管傳感器原理圖 3.1.2 煙霧傳感器 MQ-2型煙霧傳感器屬于二氧化錫半導(dǎo)體氣敏材料,屬于表面離子式N型半導(dǎo)體。處于200~300攝氏度時(shí),二氧化錫吸附空氣中的氧,形成氧的負(fù)離子吸附,使半導(dǎo)體中的電子密度減少,從而使其電阻值增加。當(dāng)與煙霧接觸時(shí),如果晶粒間界處的勢(shì)壘收到煙霧的調(diào)至而變化,就會(huì)引起表面導(dǎo)電率的變化。利用這一點(diǎn)就可以獲得這種煙霧存在的信息,煙霧的濃度越大,導(dǎo)電率越大,輸出電阻越低,則輸出的模擬信號(hào)就越大。  圖3.1.2 煙霧傳感器原理圖
 3.2 顯示部分 本次設(shè)計(jì)采用的為TFT型液晶屏,TFT型的液晶顯示器較為復(fù)雜,主要的構(gòu)成包括了熒光管、導(dǎo)光板、偏光板、濾光板、玻璃基板、配向膜、液晶材料、薄模式晶體管等等。首先液晶顯示器必須先利用背光源,也就是熒光燈管投射出光源,這些光源會(huì)先經(jīng)過一個(gè)偏光板然后再經(jīng)過液晶,這時(shí)液晶分子的排列方式進(jìn)而改變穿透液晶的光線角度。然后這些光線接下來還必須經(jīng)過前方的彩色的濾光膜與另一塊偏光板。因此我們只要改變刺激液晶的電壓值就可以控制最后出現(xiàn)的光線強(qiáng)度與色彩,并進(jìn)而能在液晶面板上變化出有不同深淺的顏色組合了。 本次設(shè)計(jì)還有一個(gè)就是設(shè)置屏幕的背景圖,采用的是320*240的分辨率進(jìn)行圖片采樣,利用圖片轉(zhuǎn)化軟件對(duì)選中的圖片進(jìn)行采點(diǎn),然后轉(zhuǎn)化成16進(jìn)制的數(shù)字,然后放到庫(kù)里面,需要用的時(shí)候直接調(diào)用就可以了。
圖3.2 利用Img2Lcd軟件進(jìn)行代碼生成 4 軟件設(shè)計(jì) 4.1 整體設(shè)計(jì)框圖 本軟件系統(tǒng)是基于STM32的庫(kù)函數(shù)下進(jìn)行的編程。需要對(duì)庫(kù)函數(shù)進(jìn)行調(diào)用并對(duì)相應(yīng)的函數(shù)進(jìn)行初始化。然后對(duì)采集的模擬信號(hào)進(jìn)行轉(zhuǎn)換,通過對(duì)波特率的調(diào)整,對(duì)信號(hào)進(jìn)行實(shí)時(shí)檢測(cè),然后通過均值濾波,控制液晶顯示屏顯示最終得到的結(jié)果。 其具體架構(gòu)如圖:
(a)主程序流程圖
4.2 ADC采樣 4.2.1 ADC原理 由于STM32自帶ADC模塊,所以只需要對(duì)其進(jìn)行配置就可使用。12位ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達(dá)18個(gè)通道,可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。 模擬看門狗特性允許應(yīng)用程序檢測(cè)輸入電壓是否超出用戶定義的高/低閥值。 ADC的輸入時(shí)鐘不得超過14MHz,它是由PCLK2經(jīng)分頻產(chǎn)生。 本次設(shè)計(jì)采用了四路AD采樣ADC1-GPIOA1,ADC2-GPIOA2,ADC3-GPIOA3,ADC4-GPIOA4;利用四組不同的傳感器對(duì)環(huán)境的檢測(cè),當(dāng)達(dá)到對(duì)應(yīng)的閾值時(shí),控制相對(duì)應(yīng)的器件。 
圖4.2.5 ADC的時(shí)序圖 5系統(tǒng)調(diào)試 首先,將電路連接好如圖正常工作,adc1為4095, 然后將紅外傳感器遮住,adc1變小為177
圖5.2調(diào)試 調(diào)試完成,正常工作。 6總結(jié) STM32芯片具有非常強(qiáng)大的功能,還有非常全面的庫(kù)函數(shù),應(yīng)用起來非常方便。此次設(shè)計(jì)在最開始的時(shí)候我們遇到了很多的問題,不知道如何使用ADC采集但是后來通過小組的努力共同查閱資料和向?qū)嶒?yàn)室的同學(xué)請(qǐng)教對(duì)ADC有了一定的了解,順利的完成了課設(shè)。在過程中也遇到了許多的問題,比如在使用開發(fā)板時(shí)接線的時(shí)候要細(xì)心,不能夠接錯(cuò)線,在程序編寫的時(shí)候要查閱很多資料和借鑒資料,遇到問題要善于查閱資料找解決辦法等等。不過最終一一克服困難順利完成設(shè)計(jì),實(shí)現(xiàn)了多路巡回?cái)?shù)據(jù)采集設(shè)計(jì)。通過本次的設(shè)計(jì)對(duì)32有了更深刻的理解,提高了我們同學(xué)之間的團(tuán)隊(duì)合作能力與實(shí)踐能力。
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "ds18b20.h"
- #include "image2lcd.h"
- #include "adc.h"
-
- extern const u8 gImage_image1[];//圖片數(shù)據(jù)(包含信息頭),存儲(chǔ)在image1.c里面.
- int main(void)
- {
- u8 t=0;
-
- u16 adcx1,adcx2;
- float temp;
-
- HEADCOLOR *imginfo;
- short temperature;
- delay_init(); //延時(shí)函數(shù)初始化
- uart_init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init();
- Adc_Init(); //ADC初始化
- LCD_Fill(0,0,470,350,WHITE);
- srand(imginfo->h*imginfo->w);
- image_display(0,0,(u8*)gImage_image1);//在指定地址顯示圖片
-
-
- while(DS18B20_Init()) //DS18B20初始化
- {
- LCD_ShowString(60,190,200,16,16,"DS18B20 Error");
- delay_ms(200);
- LCD_ShowString(60,210,200,16,16,"Temp: . C");
- }
-
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- LCD_ShowString(60,190,200,16,16,"DS18B20 OK");
- LCD_ShowString(60,210,200,16,16,"Temp: . C");
-
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- LCD_ShowString(60,230,200,16,16,"ADC1:");//傾倒
- LCD_ShowString(60,270,200,16,16,"ADC2:");//紅外
-
- POINT_COLOR=RED;//設(shè)置字體為紅色
- LCD_ShowString(120,250,48,16,16,"0.000V");
- LCD_ShowString(120,290,48,16,16,"0.000V");
-
- while(1)
- {
-
- adcx1=Get_Adc_Average(ADC_Channel_1,10);//ADC1煙霧傳感器 adcx2=Get_Adc_Average(ADC_Channel_2,10);//ADC2紅外傳感器
-
- POINT_COLOR=RED;//設(shè)置字體為紅色
- LCD_ShowxNum(120,230,adcx1,4,16,0);//顯示ADC的值
- LCD_ShowxNum(120,270,adcx2,4,16,0);//顯示ADC的值
-
- //第一個(gè)ADC轉(zhuǎn)換為電壓值
- temp=(float)adcx1*(3.3/4096);
- adcx1=temp;
- LCD_ShowxNum(120,250,adcx1,1,16,0);//顯示電壓值
-
- //第二個(gè)ADC轉(zhuǎn)換為電壓值
- temp=(float)adcx2*(3.3/4096);
- adcx2=temp;
- LCD_ShowxNum(120,290,adcx2,1,16,0);//顯示電壓值
-
-
-
- if(t%10==0)//每100ms讀取一次
- {
- temperature=DS18B20_Get_Temp();
- if(temperature<0)
- {
- LCD_ShowChar(60+40,210,'-',16,0); //顯示負(fù)號(hào)
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }
- else
- LCD_ShowChar(60+40,210,' ',16,0); //去掉負(fù)號(hào)
- LCD_ShowNum(60+40+8,210,temperature/10,2,16); //顯示正數(shù)部分
- LCD_ShowNum(60+40+32,210,temperature%10,1,16); //顯示小數(shù)部分
- }
- delay_ms(10);
- t++;
- }
- }
復(fù)制代碼
全部資料51hei下載地址:
源程序.7z
(280.16 KB, 下載次數(shù): 31)
2020-2-24 14:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
文檔.doc
(286.5 KB, 下載次數(shù): 25)
2020-2-24 14:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|