版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 一、設(shè)計目的</b></p><p> 設(shè)計一個計算機溫度巡回檢測程序控制系統(tǒng),可以對糧倉的溫度進(jìn)行多點巡回檢測。通過設(shè)計,掌握數(shù)據(jù)采集系統(tǒng)的工作原理、掌握計算機控制系統(tǒng)的設(shè)計原理、設(shè)計步驟,進(jìn)一步提高綜合運用知識的能力。</p><p><b> 二、設(shè)計內(nèi)容和要求</b></p><p&g
2、t; (1)選擇傳感器,設(shè)計接口電路,對八點的溫度進(jìn)行巡回檢測,要求溫度測量范圍是0~50℃,精度±1℃。</p><p> (2)編寫控制程序,在屏幕上顯示八點溫度的實測值。</p><p> (3)寫出設(shè)計說明書。</p><p><b> 三、系統(tǒng)設(shè)計方案</b></p><p> 該系統(tǒng)由硬
3、件和軟件兩大塊組成,硬件部分分為:1、控制芯片,是該系統(tǒng)的核心;2、檢測環(huán)節(jié),即溫度傳感器,用于采集環(huán)境溫度;3、顯示部分,用于顯示當(dāng)前環(huán)境溫度;4、分時采集部分,用于對八點溫度進(jìn)行分時采集。軟件部分分為三塊:1、數(shù)據(jù)處理;2、液晶顯示;3、分時尋采集控制。</p><p><b> 下面是具體方案:</b></p><p><b> 1、硬件部分<
4、;/b></p><p> 1.1控制芯片:選用常用的89c52可滿足需要。</p><p> 1.2溫度檢測環(huán)節(jié):</p><p> 方案一、使用熱敏電阻通過matlab對溫度和電阻之間的非線性關(guān)系進(jìn)行數(shù)據(jù)擬合得到相應(yīng)關(guān)系式。但熱敏電阻器是敏感元件的一類,按照溫度系數(shù)不同分為正溫度系數(shù)熱敏電阻器(PTC)和負(fù)溫度系數(shù)熱敏電阻器(NTC)。熱敏電阻器的典
5、型特點是對溫度敏感,不同的溫度下表現(xiàn)出不同的電阻值。正溫度系數(shù)熱敏電阻器(PTC)在溫度越高時電阻值越大,負(fù)溫度系數(shù)熱敏電阻器(NTC)在溫度越高時電阻值越低,它們同屬于半導(dǎo)體器件。其最大的缺點就在于:阻值與溫度的關(guān)系非線性嚴(yán)重。不易通過程序進(jìn)行精確控制,誤差較大;</p><p> 方案二、使用DS18B20溫度傳感器。該芯片具有獨特的單線借口方式,它與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B
6、20的雙向通信,測溫范圍-55℃~+125℃,精度為0.5±℃而且在使用中不需要任何外圍元件,接線簡單。</p><p> 綜合以上分析上,選用DS18B20溫度傳感器,將其I/O口與單片機的I/O口相接,在單片機中寫入處理程序即可。</p><p><b> 顯示部分</b></p><p> 方案一、用數(shù)碼管顯示溫度,程序簡
7、單,缺點是只能顯示數(shù)字,不能顯示字母,功能局限性太大;</p><p> 方案二、用1602LCD,既可顯示字母也可顯示數(shù)字,操縱靈活多變,可滿足本課題需要;</p><p><b> 綜上、選用方案二。</b></p><p><b> 分時采集部分</b></p><p> 方案一、CD
8、4051單8通道數(shù)字控制模擬電子開關(guān),有三個二進(jìn)控制輸入端A、B、C</p><p> 和INH輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。當(dāng)INH輸入端=“1”時,所有的通道截止。三位二進(jìn)制信號選通8通道中的一通道,可連接該輸入端至輸出。</p><p> 方案二、繼電器+3/8譯碼器,通過譯碼器的三個地址段選通8個繼電器中的任意一個,但接線復(fù)雜,成本高;</p><
9、p> 綜合以上分析,選擇方案一。</p><p><b> 2、軟件部分</b></p><p> #include<reg52.h></p><p> #include<stdio.h></p><p> #define uchar unsigned char</p>
10、<p> #define uint unsigned int</p><p> sbit ds=P2^3;//溫度傳感器18B20I/O口</p><p> sbit inh=P2^4;//譯碼器使能端</p><p> sbit A=P1^0;//3/8譯碼器地址選擇端</p><p> sbit B=P1^1;&l
11、t;/p><p> sbit C=P1^2;</p><p> sbit lcd_en=P2^6;//液晶LCD使能端</p><p> sbit lcd_rs=P2^4;//液晶LCD數(shù)據(jù)/命令選擇端</p><p> sbit lcd_wr=P2^5;//讀寫選擇端</p><p> uchar data t
12、able_temp[12];//存放顯示的字符和溫度</p><p> uchar num;</p><p> uint temp;</p><p> uchar i,j,k,l;</p><p> float f_temp;</p><p> sbit led0=P1^0;</p><p
13、> void delay1()//延時函數(shù)</p><p><b> {</b></p><p> uchar i,j;</p><p> for(j=5;j>0;j--)</p><p> for(i=125;i>0;i--);</p><p><b>
14、}</b></p><p> void delay(uint z)//帶參數(shù)的延時</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> f
15、or(y=110;y>0;y--);</p><p><b> }</b></p><p> void dsreset(void)//對18B20進(jìn)行初始化</p><p><b> {</b></p><p><b> uint i;</b></p>
16、<p><b> ds=0;</b></p><p><b> i=103;</b></p><p> while(i>0)</p><p><b> i--;</b></p><p><b> ds=1;</b></p
17、><p><b> i=4;</b></p><p> while(i>0)</p><p><b> i--;</b></p><p><b> }</b></p><p> bit tempreadbit(void)//讀一位溫度
18、</p><p><b> {</b></p><p><b> uint i;</b></p><p><b> bit dat;</b></p><p><b> ds=0;i++;</b></p><p> ds=1
19、;i++;i++;</p><p><b> dat=ds;</b></p><p> i=8;while(i>0)i--;</p><p> return(dat);</p><p><b> }</b></p><p> uchar tempread(vo
20、id)//讀8位溫度即一個字節(jié)的溫度</p><p><b> {</b></p><p> uchar i,j,dat;</p><p><b> dat=0;</b></p><p> for(i=1;i<=8;i++)</p><p><b>
21、 {</b></p><p> j=tempreadbit();</p><p> dat=(j<<7)|(dat>>1);</p><p><b> }</b></p><p> return(dat);</p><p><b> }<
22、;/b></p><p> void tempwritebyte(uchar dat)//寫指令函數(shù)</p><p><b> {</b></p><p><b> uint i;</b></p><p><b> uchar j;</b></p>
23、<p> bit testb;</p><p> for(j=1;j<=8;j++)</p><p><b> {</b></p><p> testb=dat&0x01;</p><p> dat=dat>>1;</p><p><b>
24、 if(testb)</b></p><p><b> {</b></p><p><b> ds=0;</b></p><p><b> i++;i++;</b></p><p><b> ds=1;</b></p>&
25、lt;p> i=8;while(i>0)i--;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> ds=0;</b></p>
26、<p> i=8;while(i>0)i--;</p><p><b> ds=1;</b></p><p><b> i++;i++;</b></p><p><b> }</b></p><p><b> }</b><
27、;/p><p><b> }</b></p><p> void tempchange(void)//數(shù)值轉(zhuǎn)換</p><p><b> {</b></p><p> dsreset();</p><p><b> delay(1);</b><
28、;/p><p> tempwritebyte(0xcc); //跳過rom地址選擇</p><p> tempwritebyte(0x44); //啟動溫度轉(zhuǎn)換,將數(shù)據(jù)存入ram</p><p><b> }</b></p><p> uint get_temp()//將寄存器中的溫度數(shù)據(jù)轉(zhuǎn)換初來</p>
29、<p><b> {</b></p><p> uchar a,b;</p><p> dsreset();</p><p><b> delay(1);</b></p><p> tempwritebyte(0xcc);</p><p> temp
30、writebyte(0xbe);//讀ram的溫度數(shù)據(jù)</p><p> a=tempread();//讀第八位</p><p> b=tempread();//讀高八位</p><p><b> temp=b;</b></p><p><b> temp<<=8;</b><
31、;/p><p> temp=temp|a;//得到16位溫度數(shù)據(jù)</p><p> f_temp=temp*0.0625;//得到溫度</p><p> temp=f_temp*10+0.5;//四舍五入</p><p> return temp;</p><p><b> }</b><
32、;/p><p> void init_com(void)//初始化</p><p><b> {</b></p><p> TMOD=0x20;//模式二</p><p> PCON=0x00;//正常工作狀態(tài)&正常波特率</p><p> SCON=0x50;//異步收發(fā)(8位)&
33、lt;/p><p> TH1=0xFd;//波特率9600</p><p><b> TL1=0xFd;</b></p><p> TR1=1;//定時器一運行控制打開</p><p> lcd_wr=0;//寫數(shù)據(jù)</p><p><b> inh=0;</b><
34、;/p><p><b> }</b></p><p> void write_com(uchar com)//液晶寫指令函數(shù)</p><p><b> {</b></p><p><b> lcd_rs=0;</b></p><p><b>
35、; P0=com;</b></p><p><b> delay1();</b></p><p><b> lcd_en=1;</b></p><p><b> delay1();</b></p><p><b> lcd_en=0;</b
36、></p><p><b> }</b></p><p> void write_data(uchar date)//液晶寫數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p><b> lcd_rs=1;</b></p><p>
37、;<b> P0=date;</b></p><p><b> delay1();</b></p><p><b> lcd_en=1;</b></p><p><b> delay1();</b></p><p><b> lcd_e
38、n=0;</b></p><p><b> }</b></p><p> void dis_temp(uint t)//液晶顯示函數(shù)</p><p><b> {</b></p><p><b> i=t/1000;</b></p><p
39、> j=t%1000/100;</p><p> k=t%100/10;</p><p><b> l=t%10;</b></p><p> table_temp[0]='W';</p><p> table_temp[1]='E';</p><p&
40、gt; table_temp[2]='N';</p><p> table_temp[3]='D';</p><p> table_temp[4]='U';</p><p> table_temp[5]=':';</p><p> table_temp[6]=i
41、;</p><p> table_temp[7]=j;</p><p> table_temp[8]=k;</p><p> table_temp[9]='.';</p><p> table_temp[10]=l;</p><p> table_temp[11]='C';
42、</p><p><b> lcd_en=0;</b></p><p> write_com(0x38);</p><p> write_com(0x0c);</p><p> write_com(0x06);</p><p> write_com(0x01);</p>&
43、lt;p> write_com(0x80);</p><p> for(num=0;num<12;num++)</p><p><b> {</b></p><p> if(num==8||num==6||num==7||num==10)</p><p> write_data(table_temp
44、[num]+0x30);</p><p><b> else</b></p><p> write_data(table_temp[num]);</p><p><b> }</b></p><p><b> }</b></p><p> v
45、oid main()</p><p><b> {</b></p><p><b> uint t;</b></p><p> uint dr=0x07;</p><p> uchar i,j;</p><p> init_com();</p><
46、;p><b> while(1)</b></p><p><b> {</b></p><p><b> j=0;</b></p><p> while(j<dr)//八路巡回檢測</p><p><b> {</b></p&g
47、t;<p><b> P1=j++;</b></p><p> tempchange();</p><p> for(i=10;i>0;i--)</p><p><b> {</b></p><p> t=get_temp();//數(shù)據(jù)轉(zhuǎn)換</p><
48、;p> dis_temp(t);//顯示</p><p> delay(10);//</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
49、}</b></p><p><b> 四、原理圖</b></p><p><b> 五、PCB圖</b></p><p><b> 結(jié)論</b></p><p> 通過軟硬件設(shè)計,用STC89C52為核心來控制整個系統(tǒng),實現(xiàn)了溫度正負(fù)號,三位整數(shù)和一位小數(shù)的
50、顯示,了解了液晶,溫度傳感器的使用規(guī)律。本次選用的DS18B20芯片測溫范圍 -55℃~+125℃,精度為±0.5度達(dá)到了系統(tǒng)的基本要求,但由于硬件條件的限制,僅用一路溫度傳感器進(jìn)行信號采集,八路巡回檢測僅從原理上進(jìn)行了闡述,另外顯示等基本功能還不夠強大,如89c51的頻率還不夠快,肉眼可清楚看見刷屏,系統(tǒng)還有待改進(jìn)。</p><p><b> 參考文獻(xiàn)</b></p>
51、;<p> 1 李朝青.單片機原理及接口技術(shù).北京航空航天大學(xué)出版社.2006.12</p><p> 2 郭天祥.新概念51單片機c語言教程.北京:電子工業(yè)出版社.2009.1</p><p> 4 趙山林.c程序設(shè)計.北京:人民郵電出版社,2004.8</p><p> 5 張艷兵,王忠慶,鮮浩.計算機控制技術(shù).北京:國防工業(yè)出版社.200
52、6.8</p><p> 6 畢滿清.模擬電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2008.6</p><p><b> 致謝</b></p><p> 通過這次課程設(shè)計,我深切的認(rèn)識到自己不足的一面,我一定要在以后好好彌補。這次課程設(shè)計加深了我對計算機控制技術(shù)的了解,感謝老師給了我們這次機會,同時也感謝同學(xué)的幫助和任課老師在課堂上精辟的講解
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機溫度控制系統(tǒng)課程設(shè)計
- 計算機溫度控制系統(tǒng)課程設(shè)計
- 計算機控制課程設(shè)計--啤酒發(fā)酵計算機溫度控制系統(tǒng)設(shè)計
- 溫度控制系統(tǒng)計算機控制課程設(shè)計
- 計算機輔助課程設(shè)計說明書
- 溫度控制系統(tǒng)設(shè)計-計算機控制技術(shù)課程設(shè)計
- 溫度控制系統(tǒng)設(shè)計——計算機控制技術(shù)課程設(shè)計
- 計算機溫度控制課程設(shè)計
- 計算機控制課程設(shè)計---電加熱爐計算機溫度控制系統(tǒng)設(shè)計
- 計算機控制技術(shù)課程設(shè)計-溫度控制系統(tǒng)設(shè)計
- 課程設(shè)計---電加熱爐計算機溫度控制系統(tǒng)
- 計算機控制課程設(shè)計(電阻爐溫度控制系統(tǒng))
- 計算機控制課程設(shè)計(溫度控制系統(tǒng)的設(shè)計與實現(xiàn))
- 計算機控制課程設(shè)計(電阻爐溫度控制系統(tǒng))
- 計算機組成原理課程設(shè)計說明書
- 計算機控制課程設(shè)計溫度控制系統(tǒng)的設(shè)計與實現(xiàn)
- 計算機控制課程設(shè)計---水位控制系統(tǒng)
- 計算機控制系統(tǒng)課程設(shè)計報告
- 計算機控制課程設(shè)計--電阻爐溫度控制系統(tǒng)的設(shè)計
- 計算機組成原理課程設(shè)計--微程序控制器的設(shè)計
評論
0/150
提交評論