版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一、設(shè)計(jì)目的</b></p><p> 設(shè)計(jì)一個(gè)計(jì)算機(jī)溫度巡回檢測(cè)程序控制系統(tǒng),可以對(duì)糧倉(cāng)的溫度進(jìn)行多點(diǎn)巡回檢測(cè)。通過(guò)設(shè)計(jì),掌握數(shù)據(jù)采集系統(tǒng)的工作原理、掌握計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)原理、設(shè)計(jì)步驟,進(jìn)一步提高綜合運(yùn)用知識(shí)的能力。</p><p><b> 二、設(shè)計(jì)內(nèi)容和要求</b></p><p&g
2、t; (1)選擇傳感器,設(shè)計(jì)接口電路,對(duì)八點(diǎn)的溫度進(jìn)行巡回檢測(cè),要求溫度測(cè)量范圍是0~50℃,精度±1℃。</p><p> (2)編寫(xiě)控制程序,在屏幕上顯示八點(diǎn)溫度的實(shí)測(cè)值。</p><p> (3)寫(xiě)出設(shè)計(jì)說(shuō)明書(shū)。</p><p><b> 三、系統(tǒng)設(shè)計(jì)方案</b></p><p> 該系統(tǒng)由硬
3、件和軟件兩大塊組成,硬件部分分為:1、控制芯片,是該系統(tǒng)的核心;2、檢測(cè)環(huán)節(jié),即溫度傳感器,用于采集環(huán)境溫度;3、顯示部分,用于顯示當(dāng)前環(huán)境溫度;4、分時(shí)采集部分,用于對(duì)八點(diǎn)溫度進(jìn)行分時(shí)采集。軟件部分分為三塊:1、數(shù)據(jù)處理;2、液晶顯示;3、分時(shí)尋采集控制。</p><p><b> 下面是具體方案:</b></p><p><b> 1、硬件部分<
4、;/b></p><p> 1.1控制芯片:選用常用的89c52可滿足需要。</p><p> 1.2溫度檢測(cè)環(huán)節(jié):</p><p> 方案一、使用熱敏電阻通過(guò)matlab對(duì)溫度和電阻之間的非線性關(guān)系進(jìn)行數(shù)據(jù)擬合得到相應(yīng)關(guān)系式。但熱敏電阻器是敏感元件的一類(lèi),按照溫度系數(shù)不同分為正溫度系數(shù)熱敏電阻器(PTC)和負(fù)溫度系數(shù)熱敏電阻器(NTC)。熱敏電阻器的典
5、型特點(diǎn)是對(duì)溫度敏感,不同的溫度下表現(xiàn)出不同的電阻值。正溫度系數(shù)熱敏電阻器(PTC)在溫度越高時(shí)電阻值越大,負(fù)溫度系數(shù)熱敏電阻器(NTC)在溫度越高時(shí)電阻值越低,它們同屬于半導(dǎo)體器件。其最大的缺點(diǎn)就在于:阻值與溫度的關(guān)系非線性嚴(yán)重。不易通過(guò)程序進(jìn)行精確控制,誤差較大;</p><p> 方案二、使用DS18B20溫度傳感器。該芯片具有獨(dú)特的單線借口方式,它與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B
6、20的雙向通信,測(cè)溫范圍-55℃~+125℃,精度為0.5±℃而且在使用中不需要任何外圍元件,接線簡(jiǎn)單。</p><p> 綜合以上分析上,選用DS18B20溫度傳感器,將其I/O口與單片機(jī)的I/O口相接,在單片機(jī)中寫(xiě)入處理程序即可。</p><p><b> 顯示部分</b></p><p> 方案一、用數(shù)碼管顯示溫度,程序簡(jiǎn)
7、單,缺點(diǎn)是只能顯示數(shù)字,不能顯示字母,功能局限性太大;</p><p> 方案二、用1602LCD,既可顯示字母也可顯示數(shù)字,操縱靈活多變,可滿足本課題需要;</p><p><b> 綜上、選用方案二。</b></p><p><b> 分時(shí)采集部分</b></p><p> 方案一、CD
8、4051單8通道數(shù)字控制模擬電子開(kāi)關(guān),有三個(gè)二進(jìn)控制輸入端A、B、C</p><p> 和INH輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。當(dāng)INH輸入端=“1”時(shí),所有的通道截止。三位二進(jìn)制信號(hào)選通8通道中的一通道,可連接該輸入端至輸出。</p><p> 方案二、繼電器+3/8譯碼器,通過(guò)譯碼器的三個(gè)地址段選通8個(gè)繼電器中的任意一個(gè),但接線復(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;//讀寫(xiě)選擇端</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í)函數(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ù)的延時(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)//對(duì)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位溫度即一個(gè)字節(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)//寫(xiě)指令函數(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); //跳過(guò)rom地址選擇</p><p> tempwritebyte(0x44); //啟動(dòng)溫度轉(zhuǎn)換,將數(shù)據(jù)存入ram</p><p><b> }</b></p><p> uint get_temp()//將寄存器中的溫度數(shù)據(jù)轉(zhuǎn)換初來(lái)</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;//定時(shí)器一運(yùn)行控制打開(kāi)</p><p> lcd_wr=0;//寫(xiě)數(shù)據(jù)</p><p><b> inh=0;</b><
34、;/p><p><b> }</b></p><p> void write_com(uchar com)//液晶寫(xiě)指令函數(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)//液晶寫(xiě)數(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)//八路巡回檢測(cè)</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> 通過(guò)軟硬件設(shè)計(jì),用STC89C52為核心來(lái)控制整個(gè)系統(tǒng),實(shí)現(xiàn)了溫度正負(fù)號(hào),三位整數(shù)和一位小數(shù)的
50、顯示,了解了液晶,溫度傳感器的使用規(guī)律。本次選用的DS18B20芯片測(cè)溫范圍 -55℃~+125℃,精度為±0.5度達(dá)到了系統(tǒng)的基本要求,但由于硬件條件的限制,僅用一路溫度傳感器進(jìn)行信號(hào)采集,八路巡回檢測(cè)僅從原理上進(jìn)行了闡述,另外顯示等基本功能還不夠強(qiáng)大,如89c51的頻率還不夠快,肉眼可清楚看見(jiàn)刷屏,系統(tǒng)還有待改進(jìn)。</p><p><b> 參考文獻(xiàn)</b></p>
51、;<p> 1 李朝青.單片機(jī)原理及接口技術(shù).北京航空航天大學(xué)出版社.2006.12</p><p> 2 郭天祥.新概念51單片機(jī)c語(yǔ)言教程.北京:電子工業(yè)出版社.2009.1</p><p> 4 趙山林.c程序設(shè)計(jì).北京:人民郵電出版社,2004.8</p><p> 5 張艷兵,王忠慶,鮮浩.計(jì)算機(jī)控制技術(shù).北京:國(guó)防工業(yè)出版社.200
52、6.8</p><p> 6 畢滿清.模擬電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2008.6</p><p><b> 致謝</b></p><p> 通過(guò)這次課程設(shè)計(jì),我深切的認(rèn)識(shí)到自己不足的一面,我一定要在以后好好彌補(bǔ)。這次課程設(shè)計(jì)加深了我對(duì)計(jì)算機(jī)控制技術(shù)的了解,感謝老師給了我們這次機(jī)會(huì),同時(shí)也感謝同學(xué)的幫助和任課老師在課堂上精辟的講解
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)溫度控制系統(tǒng)課程設(shè)計(jì)
- 計(jì)算機(jī)溫度控制系統(tǒng)課程設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)--啤酒發(fā)酵計(jì)算機(jī)溫度控制系統(tǒng)設(shè)計(jì)
- 溫度控制系統(tǒng)計(jì)算機(jī)控制課程設(shè)計(jì)
- 計(jì)算機(jī)輔助課程設(shè)計(jì)說(shuō)明書(shū)
- 溫度控制系統(tǒng)設(shè)計(jì)-計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 溫度控制系統(tǒng)設(shè)計(jì)——計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 計(jì)算機(jī)溫度控制課程設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)---電加熱爐計(jì)算機(jī)溫度控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)-溫度控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---電加熱爐計(jì)算機(jī)溫度控制系統(tǒng)
- 計(jì)算機(jī)控制課程設(shè)計(jì)(電阻爐溫度控制系統(tǒng))
- 計(jì)算機(jī)控制課程設(shè)計(jì)(溫度控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn))
- 計(jì)算機(jī)控制課程設(shè)計(jì)(電阻爐溫度控制系統(tǒng))
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)說(shuō)明書(shū)
- 計(jì)算機(jī)控制課程設(shè)計(jì)溫度控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)控制課程設(shè)計(jì)---水位控制系統(tǒng)
- 計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)控制課程設(shè)計(jì)--電阻爐溫度控制系統(tǒng)的設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)--微程序控制器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論