本系統(tǒng)由單片機(jī)開發(fā)板AT89C51、集成溫度傳感器、連續(xù)漸進(jìn)式A/D轉(zhuǎn)換器ADC0804、運(yùn)放LM324等元器件組成,采用 Protues 軟件進(jìn)行模擬電路仿真,完成模擬信號調(diào)理,通過51 單片機(jī)(內(nèi)置 ADC)采集溫度信號,最后通過數(shù)碼管顯示溫度數(shù)值。
在基本要求實(shí)驗(yàn)中,采用的技術(shù)指標(biāo)是①溫度測試范圍:0℃~110℃② 溫度測試精度:±2℃③ 溫度測試分辨率:0.2℃④ 溫度顯示方式:4 位數(shù)碼管顯示,第 1 位數(shù)碼管顯示符號(零下溫度顯示“—”號,零上及低于100℃不顯示)第 2 位數(shù)碼管顯示溫度的十位數(shù)值,第 3 位數(shù)碼管顯示溫度的個位數(shù)值及小數(shù)點(diǎn),第 4 位數(shù)碼管顯示溫度測量值的小數(shù)點(diǎn)后第一位數(shù)值。
在提高實(shí)驗(yàn)中,采用了以下技術(shù)指標(biāo)① 溫度控制數(shù)值可在 40℃~70℃之間設(shè)置② 溫度控制精度:±1℃③ 研究合適的溫度控制算法。
② 溫度測試精度:±2℃
③ 溫度測試分辨率:0.2℃
④ 溫度顯示方式:4 位數(shù)碼管顯示,第1位數(shù)碼管顯示符號(零下溫度顯示“—”號,零上及低于100℃不顯示),第2位數(shù)碼管顯示溫度的十位數(shù)值,第3位數(shù)碼管顯示溫度的個位數(shù)值及小數(shù)點(diǎn),第4位數(shù)碼管顯示溫度測量值的小數(shù)點(diǎn)后第一位數(shù)值。
2 、提高要求
(1)功能要求
① 實(shí)現(xiàn)溫度自動控制功能,具有溫度檢測和溫度控制兩種工作狀態(tài),并可手動切換工作狀態(tài);
②對象溫度控制:可通過單片機(jī)控制加熱器進(jìn)行溫度自動調(diào)節(jié),并可設(shè)置和顯示溫度恒定數(shù)值,控制對象為大功率電阻;
(2)技術(shù)指標(biāo)
① 溫度控制數(shù)值可在 40℃~70℃之間設(shè)置
② 溫度控制精度:±1℃
③ 研究合適的溫度控制算法。
1.2 設(shè)計(jì)要求
1.根據(jù)設(shè)計(jì)任務(wù)設(shè)計(jì)幾種實(shí)現(xiàn)方案,經(jīng)比較從中優(yōu)選確定一種實(shí)現(xiàn)方案。
2.說明所選電路的組成及工作原理,并繪出原理框圖。
3.設(shè)計(jì)各單元電路,計(jì)算元器件參數(shù)并選擇元器件類別型號。
4.畫出實(shí)際電路圖,并用 Protues 軟件進(jìn)行電路仿真。
5.列出元器件清單。
6.組裝并調(diào)試方案電路,記錄調(diào)試步驟及結(jié)果。
7.設(shè)計(jì)單片機(jī)程序,完成數(shù)據(jù)采集、處理和顯示。
8.對電路功能及技術(shù)指標(biāo)進(jìn)行測試,記錄測試數(shù)據(jù)。
1.3 限定條件
1.模擬電路電源:+5V
2.單片機(jī)開發(fā)軟件:Keil UV3 v8.02
3.電路仿真軟件:Proteus
4.主要器件:
(1)溫度傳感器:LM35
(2)運(yùn)放:LM324
(3)單片機(jī)模塊:AT89C51單片機(jī)模塊
5.除單片機(jī)模塊外,其它電路在一塊萬用板上焊接好并調(diào)試正常,通過杜邦頭跳線與單片機(jī)模塊連接。傳感器通過杜邦頭跳線與電路板連接,集成電路使用插座實(shí)現(xiàn)引腳連接。
2.2 溫度測量與溫度傳感器
溫度測量方法可分為接觸式和非接觸式兩類,接觸式的測溫方法是基于物體的熱交換現(xiàn)象。選定某一測溫器,與被測物體相接觸,進(jìn)行充分的熱交換,待兩者溫度一致時,測溫器輸出的大小即反映被測溫度的高低。接觸式測溫的優(yōu)點(diǎn)是簡單、可靠、測量精度高;缺點(diǎn)是測溫時有較大的滯后,對運(yùn)動物體測溫較困難,測溫器易影響被測對象的溫度場分布,測溫上限受到測溫器件材料性質(zhì)的限制,故所測溫度不能太高。
溫度傳感器是把溫度轉(zhuǎn)換為電量的測溫器。常用的溫度傳感器有:金屬熱電阻和半導(dǎo)體熱敏電阻、熱電偶、PN 結(jié)型傳感器和集成溫度傳感器、石英晶體溫度傳感器、渦流式溫度傳感器、電容式溫度傳感器等。
采用集成溫度傳感器測量溫度,具有省電、體積小、線性好、成本低等優(yōu)點(diǎn),而且能滿足一般測溫工作(-50℃~+150℃)的需要,本設(shè)計(jì)使用集成溫度傳感器,型號為 LM35。
傳感器使用說明見附件 1:《LM35 數(shù)據(jù)手冊》。
2.3 模擬信號調(diào)理
1.調(diào)零與調(diào)滿度
半導(dǎo)體溫度傳感器有一個共同的特點(diǎn),即其輸出電壓或電流與絕對溫度成正比或線性關(guān)系。因?yàn)槌S玫臏貥?biāo)為攝氏溫度,而且為便于測量,希望在 0℃(傳感器插入冰水中)時,測溫電路輸出顯示為 0,在100℃(傳感器插入沸水中)時,測溫電路輸出顯示為 100。因此,半導(dǎo)體測溫電路中需要設(shè)計(jì)調(diào)零電路和調(diào)滿度(也稱調(diào)靈敏度)電路。
2.放大與電平平移
模擬傳感器輸出的信號通常為非標(biāo)準(zhǔn)雙極性或單極性小信號,為實(shí)現(xiàn)數(shù)據(jù)采集,需適應(yīng) A/D 轉(zhuǎn)換器輸入電平要求,因此要對模擬信號進(jìn)行放大和電平平移。
2.4 模擬信號 A/D 轉(zhuǎn)換
模擬信號需經(jīng) A/D 轉(zhuǎn)換后,才能被采集到單片機(jī)中,完成后續(xù)的處理。
2.5 數(shù)碼管顯示
4 位數(shù)碼管顯示,電路設(shè)計(jì)參考硬件資料。
2. 電路調(diào)試過程 ① 通過實(shí)驗(yàn)所給的信息和所學(xué)可以畫出模擬實(shí)驗(yàn)電路圖 ②通過實(shí)驗(yàn)給的例程,實(shí)驗(yàn)要求以及所學(xué)的程序語言來完成實(shí)驗(yàn)程序,使其使程序無錯誤,并讓電路圖能夠正常的運(yùn)行。 ③將程序編譯運(yùn)行后產(chǎn)生的hex文件導(dǎo)入proteus的程序中,打開電路開關(guān),調(diào)節(jié)溫度感應(yīng)器的旋鈕,并觀察數(shù)碼管的示數(shù),讓這兩個示數(shù)的誤差在±1℃之間。 5.2 實(shí)驗(yàn)調(diào)試過程 若實(shí)驗(yàn)中溫度感應(yīng)器和數(shù)碼管的示數(shù)之差過大,就可以通過調(diào)節(jié)電路圖中的電阻阻值和電容值來調(diào)整實(shí)驗(yàn)電路圖,使其滿足實(shí)驗(yàn)要求。同時也可以調(diào)節(jié)實(shí)驗(yàn)程序來調(diào)節(jié)實(shí)驗(yàn)電路圖,最后讓其滿足實(shí)驗(yàn)要求。 5.3 測量誤差分析 溫度感應(yīng)器和數(shù)碼管之差誤差過大,有以下原因: 1. 在模擬信號A/D轉(zhuǎn)換過程中,對電阻阻值設(shè)計(jì)不合理,也就會導(dǎo)致示數(shù)誤差過大。 2. 在ADC0804芯片的設(shè)計(jì)里,連接的電阻的電容的示數(shù)發(fā)生改變也就會導(dǎo)致示數(shù)存在誤差過大。 3. 設(shè)計(jì)的程序代碼中存在這失誤,也就會導(dǎo)致誤差過大。
結(jié)束語
在本次綜合電子實(shí)驗(yàn)中,我獨(dú)立的完成了整個基本功能實(shí)驗(yàn),這提高了我的實(shí)驗(yàn)動手能力,讓我對這門有了深刻的了解,這次實(shí)驗(yàn)使我了解和掌握電子設(shè)計(jì)的方法和步驟,能夠綜合所學(xué)的理論知識提出設(shè)計(jì)方案并加以論證,并掌握系統(tǒng)方案的設(shè)計(jì)方法。能培養(yǎng)我獨(dú)立分析問題、解決問題的能力。同時掌握了傳感器檢測、模擬信號調(diào)理、數(shù)據(jù)采集等技術(shù)的設(shè)計(jì)和實(shí)驗(yàn)方法。能夠掌握單片機(jī)系統(tǒng)的軟硬件工作原理及設(shè)計(jì)、調(diào)試方法, 我也學(xué)習(xí)了如何使用電子設(shè)計(jì)、仿真軟件進(jìn)行電路輔助設(shè)計(jì),并正確繪制電路圖,學(xué)習(xí)電路的實(shí)驗(yàn)調(diào)試和測試方法,提高實(shí)踐能力。
在這次實(shí)驗(yàn)中,我也發(fā)現(xiàn)了自己的不足,自己缺少動手能力,對電路基礎(chǔ)知識理解不深刻,總是犯一些低級失誤,我也非常感謝老師和同學(xué)們對我的指導(dǎo),讓我對整個實(shí)驗(yàn)有了深刻的了解,讓我完成了實(shí)驗(yàn)。
這次基本實(shí)驗(yàn)的不足是電路元器件的精確度和靈敏度較弱,使其在實(shí)驗(yàn)測試過程中出現(xiàn)了較大誤差,動手能力較弱。也希望自己在接下來的學(xué)習(xí)生活中有和更大的進(jìn)步。
基本實(shí)驗(yàn)電路圖
表2. 軟件模塊清單 
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit wr=P3^6;
- sbit rd=P3^7;
- sbit cs=P3^5;
- uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共陰數(shù)碼管碼表
- uchar s,g,f,l,x;//數(shù)碼管顯示變量
- float A;
- uint K;
- void delay(uint);
- void adc();
- void adc()
- {
- //啟動ADC0804采樣//
- cs=0;wr=0;rd=1;
- delay(50);
- cs=1;wr=1;rd=1; //WR由低到高時,AD開始轉(zhuǎn)換
- delay(100);
- //讀AD數(shù)值//
- cs=0;wr=1;rd=0;//讀取轉(zhuǎn)換數(shù)據(jù)結(jié)果
- delay(50);
- A=P1;//P1的新數(shù)據(jù)賦值給adval,用于數(shù)碼管顯示的s g f的分離
- A=A*144/256;
- K=P1*144/256;
- cs=1;wr=1;rd=1;//停止AD讀取
- }
- void main()
- {
- uint s,g,f,l,x;
- while(1)
- {
- adc();
-
- s=K/10;
- l=s/10;
- x=s%10;
- g=K%10;
- f=(A-K)*10;
- P2=0XFE; //11111110 選中十位數(shù)碼管
- P0=tab[l]; //顯示
- delay(50);
- P2=0XFD; //11111110 選中十位數(shù)碼管
- P0=tab[x]; //顯示
- delay(50);
- P2=0XFB; //11111101 選中個位數(shù)碼管
- P0=tab[g]+0x80; //顯示
- delay(50);
-
- P2=0XF7;//11111011 選中小數(shù)點(diǎn)后數(shù)碼管
- P0=tab[f]; //顯示
- delay(50);
- }
- }
- void delay(uint m)//延時子程序,約500個機(jī)器周期
- {
- while(m--);}
復(fù)制代碼
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
|