




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、黑龍江東方學(xué)院單片機課程設(shè)計報告課題名稱:數(shù)字溫度控制系統(tǒng)專 業(yè): 電子信息工程班 級: 08級本科1班姓 名: 張 志 惠學(xué) 號: 084121131導(dǎo) 師: 2011年04月07日1.引言隨著人們生活水平的不斷提供,單片機控制無疑是人們追求的目標(biāo)之一,他給人們帶來的方便也是不可否認(rèn)的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)字單片機技術(shù)入手,一切向著數(shù)字化控制、智能化控制方向發(fā)展。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫精確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場
2、所,或科研實驗室使用,該設(shè)計控制器使用單片機STC89C52RC,測溫傳感器使用DS18B20,用1602LCD液晶以并口傳送數(shù)據(jù),實現(xiàn)溫度顯示及其控制,同時用按鍵可設(shè)置上限和下限溫度值。2.總體設(shè)計方案21數(shù)字溫度計設(shè)計方案論證2.1.1方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),再將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以利用單片機進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)化電路,感溫電路比較麻煩。2.1.2 方案二進(jìn)而考慮到用數(shù)字溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,
3、所以可以采用一只數(shù)字溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。22方案二的總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器使用單片機STC89C52RC,測溫傳感器使用DS18B20,用1602LCD液晶以并口傳送數(shù)據(jù),實現(xiàn)溫度顯示,同時用按鍵可設(shè)置上限和下限溫度值,并儲存到24C02存儲器內(nèi),方便查詢,如超出設(shè)定范圍,蜂鳴器報警。主 控 制 器STC89C52RC1602液晶顯示DS18B20測溫24C02存儲4位獨立按鍵蜂鳴器報警MAX2
4、32燒錄圖1 總體設(shè)計方框圖3.主控制器3.1. STC89C52RC單片機管腳圖3.2.STC89C52RC單片機特點STC89C52RC單片機是宏晶科技推出的新一代超強抗干擾、高速、低功耗的單片機,指令代碼完全兼容傳統(tǒng)8051 單片機,12 時鐘/ 機器周期和6 時鐘/ 機器周期可任意選擇,最新的D 版本內(nèi)部集成MAX810 專用復(fù)位電路。(1). 增強型6 時鐘/ 機器周期,12 時鐘/ 機器周期 8051 CPU(2). 工作電壓:5.5V - 3.4V(5V 單片機) / 3.8V - 2.0V(3V 單片機)(3). 工作頻率范圍:0 - 40 MHz,相當(dāng)于普通8051 的 08
5、0MHz.實際工作頻率可達(dá)48MHz.(4). 用戶應(yīng)用程序空間 4K / 8K / 13K / 16K / 20K / 32K / 64K 字節(jié)(5). 片上集成 1280 字節(jié) / 512 字節(jié) RAM(6). 通用I/O 口(32/36 個),復(fù)位后為: P1/P2/P3/P4 是準(zhǔn)雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口),P0 口是開漏輸出,作為總線擴展用時,不用加上拉電阻,作為I/O 口用時,需加上拉電阻。(7) . I S P (在系統(tǒng)可編程)/ I A P (在應(yīng)用可編程),無需專用編程器/ 仿真器,可通過串口(P3.0/P3.1)直接下載用戶程序,8K 程序3 秒即可完
6、成一片(8). EEPROM 功能(9). 看門狗(10).內(nèi)部集成MAX810 專用復(fù)位電路(D 版本才有),外部晶體20M 以下時,可省外部復(fù)位電路3.3. 典型應(yīng)用電路4.燒錄芯片MAX2324.1.MAX232管腳圖4.2典型應(yīng)用電路5溫度傳感器5.1.DS18B20管腳圖5.2.DS18B20的主要特點(1)全數(shù)字溫度轉(zhuǎn)換及輸出。(2)先進(jìn)的單總線數(shù)據(jù)通信。(3)最高12位分辨率,精度可達(dá)±0.5攝氏度。(4)12位分辨率時的最大工作周期為750毫秒。(5)可選擇寄生工作方式。(6)檢測溫度范圍為-55+125(7)內(nèi)置EEPROM,限溫報警功能。(8)64位光刻ROM,內(nèi)
7、置產(chǎn)品序列號,方便多機掛接。(9)多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。5.3.典型應(yīng)用電路5.4.常用軟件設(shè)計/*復(fù)位ds18b20*/bit ds18b20_reset()bit checkbit=1;DQ=0;delay1(75); /延時500usDQ=1; /釋放總線,ds18b20檢測到上升沿后返回存在脈沖。delay1(8); /60us左右的等待時間,保證接收到的是存在脈沖。checkbit=DQ;delay1(40);DQ=1;return(checkbit);/*向ds18b20寫入一位*/void ds18b20_write_bit(bit wrbit)uchar i;DQ=0
8、; /拉低總線,產(chǎn)生寫時序i+;i+; /微秒延時DQ=wrbit;delay1(8); /等待ds18b20取走數(shù)據(jù)DQ=1; /釋放總線/*向ds18b20寫入一個字節(jié)的數(shù)據(jù)*/void ds18b20_write_byte(uchar wrbyte)uchar i=0;while(i+<8)ds18b20_write_bit(wrbyte&0x01);/從最低位開始寫數(shù)據(jù)wrbyte>>=1;/將數(shù)據(jù)右移一位/*從ds18b20中讀出一位數(shù)據(jù)*/bit ds18b20_read_bit()bit readbit;uchar i=0;DQ=0; /拉低總線i+;i
9、+;DQ=1;i+;i+;i+;i+;readbit=DQ;delay1(8);DQ=1;return(readbit);/*從ds18b20中讀出一個字節(jié)的數(shù)據(jù)*/uchar ds18b20_read_byte()uchar i=0,readbyte=0,bitresult=0;while(i+<8)bitresult=ds18b20_read_bit();readbyte=readbyte>>1 | bitresult<<7; return(readbyte);/*啟動溫度轉(zhuǎn)換函數(shù)*/void ds18b20_start()DQ=1;ds18b20_reset
10、();ds18b20_write_byte(0xCC); /跳過ds18b20_write_byte(0x44);/啟動溫度轉(zhuǎn)換/*讀取溫度函數(shù)*/int ds18b20_read_tem()int tem=0;ds18b20_reset();ds18b20_write_byte(0xCC);ds18b20_write_byte(0xBE); /發(fā)出讀取命令tem=ds18b20_read_byte(); /讀取溫度低八位tem|=(int)ds18b20_read_byte()<<8);/讀溫度高八位tem=(float)tem*0.625;return tem;6.1602液晶
11、顯示6.1.1602引腳圖6.2.典型應(yīng)用電路8.蜂鳴器電路設(shè)計9.獨立鍵盤電路設(shè)計10.附錄#include<reg52.h>#include<intrins.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned char typedef unsigned int UINT16;typedef unsigned char UINT8;uchar sz18="A: B: "uchar screen18=' ',' ',
12、9;S','E','T',':',' ','0','0','0','.','0',0xdf,0x43,' ',' 'uchar max='0','3','0','.','0'sbit lcd_rs=P10;sbit lcd_en=P11;sbit DQ1=P12; /18b201數(shù)據(jù)sbit DQ2=P13; /18b202數(shù)據(jù)sbi
13、t b=P14; /蜂鳴器sbit MOTOR1=P15; /風(fēng)機控制sbit MOTOR2=P16; /氣窗控制sbit MOTOR3=P17; /空調(diào)控制sbit key1=P20; /功能按鍵sbit key2=P21; /讀取按鍵sbit key3=P22; /設(shè)定增加sbit key4=P23; /設(shè)定減少/*延時函數(shù)*/void delay1(uchar n)while(n-)void delay(uint z)uchar x,y;for(x=0;x<z;z+)for(y=0;y<1;y+);void lcd_delay()uchar i;for(i=1;i<14
14、0;i+);void key_delay(uchar time) uchar i,j; for(i=0;i<time;i+) for(j=0;j<110;j+);/1602液晶函數(shù)開始/*lcd寫命令函數(shù)*/void lcd_write_cmd(uchar cmder)lcd_rs=0;P0=cmder;lcd_delay();lcd_en=1;lcd_delay();lcd_en=0;/*lcd寫數(shù)據(jù)函數(shù)*/void lcd_write_data(uchar date)lcd_rs=1; P0=date;lcd_delay();lcd_en=1;lcd_delay();lcd_e
15、n=0;/*寫字符串函數(shù)*/void lcd_write_string(uchar *lcddata)uchar strlen=0;while(lcddatastrlen!='0')lcd_write_data(lcddatastrlen);strlen+;/*lcd選定為寫字符*/void lcd_write_style(uchar add,uchar dat)lcd_write_cmd(add);lcd_write_data(dat);/1602液晶函數(shù)結(jié)束/ds18b20函數(shù)開始/*復(fù)位ds18b201*/bit ds18b201_reset()bit checkbit=
16、1;DQ1=0;delay1(75); /延時500usDQ1=1; /釋放總線,ds18b20檢測到上升沿后返回存在脈沖。delay1(8); /60us左右的等待時間,保證接收到的是存在脈沖。checkbit=DQ1;delay1(40);DQ1=1;return(checkbit);/*復(fù)位ds18b202*/bit ds18b202_reset()bit checkbit=1;DQ2=0;delay1(75); /延時500usDQ2=1; /釋放總線,ds18b20檢測到上升沿后返回存在脈沖。delay1(8); /60us左右的等待時間,保證接收到的是存在脈沖。checkbit=D
17、Q2;delay1(40);DQ2=1;return(checkbit);/*向ds18b201寫入一位*/void ds18b201_write_bit(bit wrbit)uchar i;DQ1=0; /拉低總線,產(chǎn)生寫時序i+;i+; /微秒延時DQ1=wrbit;delay1(8); /等待ds18b20取走數(shù)據(jù)DQ1=1; /釋放總線/*向ds18b202寫入一位*/void ds18b202_write_bit(bit wrbit)uchar i;DQ2=0; /拉低總線,產(chǎn)生寫時序i+;i+; /微秒延時DQ2=wrbit;delay1(8); /等待ds18b20取走數(shù)據(jù)DQ2
18、=1; /釋放總線/*向ds18b201寫入一個字節(jié)的數(shù)據(jù)*/void ds18b201_write_byte(uchar wrbyte)uchar i=0;while(i+<8)ds18b201_write_bit(wrbyte&0x01);/從最低位開始寫數(shù)據(jù)wrbyte>>=1; /將數(shù)據(jù)右移一位/*向ds18b202寫入一個字節(jié)的數(shù)據(jù)*/void ds18b202_write_byte(uchar wrbyte)uchar i=0;while(i+<8)ds18b202_write_bit(wrbyte&0x01);/從最低位開始寫數(shù)據(jù)wrbyt
19、e>>=1; /將數(shù)據(jù)右移一位/*從ds18b201中讀出一位數(shù)據(jù)*/bit ds18b201_read_bit()bit readbit;uchar i=0;DQ1=0; /拉低總線i+;i+;DQ1=1;i+;i+;i+;i+;readbit=DQ1;delay1(8);DQ1=1;return(readbit);/*從ds18b202中讀出一位數(shù)據(jù)*/bit ds18b202_read_bit()bit readbit;uchar i=0;DQ2=0; /拉低總線i+;i+;DQ2=1;i+;i+;i+;i+;readbit=DQ2;delay1(8);DQ2=1;retur
20、n(readbit);/*從ds18b201中讀出一個字節(jié)的數(shù)據(jù)*/uchar ds18b201_read_byte()uchar i=0,readbyte=0,bitresult=0;while(i+<8)bitresult=ds18b201_read_bit();readbyte=readbyte>>1 | bitresult<<7; return(readbyte);/*從ds18b202中讀出一個字節(jié)的數(shù)據(jù)*/uchar ds18b202_read_byte()uchar i=0,readbyte=0,bitresult=0;while(i+<8)b
21、itresult=ds18b202_read_bit();readbyte=readbyte>>1 | bitresult<<7; return(readbyte);/*函數(shù)為啟動DS18B201溫度轉(zhuǎn)換*/void ds18b201_start()DQ1=1;ds18b201_reset();ds18b201_write_byte(0xCC); /跳過ds18b201_write_byte(0x44); /啟動溫度轉(zhuǎn)換/*函數(shù)為啟動DS18B202溫度轉(zhuǎn)換*/void ds18b202_start()DQ2=1;ds18b202_reset();ds18b202_wr
22、ite_byte(0xCC); /跳過ds18b202_write_byte(0x44); /啟動溫度轉(zhuǎn)換/*函數(shù)為讀DS18B201取溫度*/int ds18b201_read_tem()int tem=0;ds18b201_reset();ds18b201_write_byte(0xCC);ds18b201_write_byte(0xBE); /發(fā)出讀取命令tem=ds18b201_read_byte(); /讀取溫度低八位tem|=(int)ds18b201_read_byte()<<8);/讀溫度高八位tem=(float)tem*0.625;return tem;/*函數(shù)
23、為讀DS18B202取溫度*/int ds18b202_read_tem()int tem=0;ds18b202_reset();ds18b202_write_byte(0xCC);ds18b202_write_byte(0xBE); /發(fā)出讀取命令tem=ds18b202_read_byte(); /讀取溫度低八位tem|=(int)ds18b202_read_byte()<<8);/讀溫度高八位tem=(float)tem*0.625;return tem;/*在液晶的指定位置顯示溫度數(shù)值*/void displayTem1(int temp)sz2=temp/1000+0x3
24、0;temp=temp%1000;sz3=temp/100+0x30;temp=temp%100;sz4=temp/10+0x30;sz5='.'sz6=temp%10+0x30;/*在液晶的指定位置顯示溫度數(shù)值*/void displayTem2(int temp)sz10=temp/1000+0x30;temp=temp%1000;sz11=temp/100+0x30;temp=temp%100;sz12=temp/10+0x30;sz13='.'sz14=temp%10+0x30;void lcd_sfm(uchar add,uchar shu)uchar
25、 shi,ge;shi=shu/10;ge=shu%10;lcd_write_cmd(0xc0+add);lcd_write_data(0x30+shi);lcd_write_data(0x30+ge);/*LCD初始化函數(shù)*/void init()lcd_en=0;lcd_write_cmd(0x38); /設(shè)置16*2顯示,5*6點陣,8位數(shù)據(jù)接口lcd_write_cmd(0x0c); /開顯示,不顯示光標(biāo),光標(biāo)不顯示lcd_write_cmd(0x06); /指針加一,光標(biāo)加一,寫入屏幕不移動lcd_write_cmd(0x80); /設(shè)置數(shù)據(jù)地址指針lcd_write_cmd(0x0
26、1); /數(shù)據(jù)指針清零,所有顯示清零void didi()int i;int j=10;while(j-)b=0;for(i=0;i<=10000;i+);b=1;for(i=0;i<=10000;i+); void key_jiajian(uint i)if(key3=0)delay(5);while(key3=0);screeni+;if(screeni-48=10)screeni=48;if(key4=0)delay(5);while(key4=0);screeni-;if(screeni-47=0)screeni=57;lcd_write_data(screeni);voi
27、d key()uchar i=1;uint j=0;key1=key2=key3=key4=1;while(i)if(key1=0)lcd_write_cmd(0x0f);delay(100);j+;while(key1=0); switch(j)case 1: lcd_write_cmd(0x87);key_delay(10);key_jiajian(7);lcd_write_cmd(0x87);break;case 2:lcd_write_cmd(0x88);key_delay(10);key_jiajian(8);lcd_write_cmd(0x88);break;case 3:lcd_
28、write_cmd(0x89);key_delay(10);key_jiajian(9);lcd_write_cmd(0x89);break;case 4:lcd_write_cmd(0x8b);key_delay(10);key_jiajian(11);lcd_write_cmd(0x8b);break;case 5: j=1;break;if(key2=0)while(key2=0);i=0;lcd_write_cmd(0x0c);void lcd_prin()int num;for(num=0;num<16;num+)lcd_write_cmd(0x80+num);lcd_write_data(screennum);lcd_write_cmd(0
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民主生活動會活動方案
- 梅州開業(yè)活動方案
- 植樹活動慶典活動方案
- 汀州醫(yī)院義診活動方案
- 水餃新店開業(yè)活動方案
- 植物標(biāo)本壓花活動方案
- 漢字達(dá)標(biāo)活動方案
- 樟洋公司活動方案
- 畢業(yè)十周年投票活動方案
- 臨床成人ICU患者外周動脈導(dǎo)管管理要點
- 計劃開、竣工日期和施工進(jìn)度網(wǎng)絡(luò)圖112
- 中華民族共同體概論課件專家版9第九講 混一南北和中華民族大統(tǒng)合(元朝時期)
- 肩周炎的中醫(yī)治療課件
- 骨科手術(shù)后的康復(fù)用具與輔助器具
- 小學(xué)特色課程《口風(fēng)琴課程》校本教材
- 《如何寫文獻(xiàn)綜述》課件
- 汽車美容店計劃書案例
- 信息機房火災(zāi)事故應(yīng)急處置方案
- 統(tǒng)計職業(yè)道德規(guī)范內(nèi)容和要求
- GB/T 16886.12-2023醫(yī)療器械生物學(xué)評價第12部分:樣品制備與參照材料
評論
0/150
提交評論