版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、多點溫度檢測系統(tǒng)實驗(設(shè)計性實驗)一、實驗?zāi)康耐ㄟ^仿真搭建和實物搭建相結(jié)合,完成多點溫度檢測單片機系統(tǒng)設(shè)計。二、實驗內(nèi)容1、方案一:用8279芯片為鍵盤和數(shù)碼顯示控制芯片,完成靈活的設(shè)置與顯示設(shè)計,建立基本的串行口(MAX232接口),普通的I/0口,A/D轉(zhuǎn)換口功能,采樣多個點,并按鍵顯示不同的通道采樣數(shù)據(jù)。方案二:以8255或8155芯片為鍵盤顯示控制芯片,建立基本的串行口(MAX232樓口),普通的I/0日,VD轉(zhuǎn)換轉(zhuǎn)換口功能,采樣多個點,并按鍵顯示不同的通道采樣數(shù)據(jù)。2、用Proteus仿真軟件搭建仿真硬件電路圖。驗證編制軟件。3、用prote199s布原理圖、建PCB板圖。4、實物器
2、件焊接搭建。三、硬件設(shè)計硬件元件參考清單單片機AT89C51瓷片電容CAP30PF晶振CRYSTAL12MHz電解電容CAP-ELEC電阻RES按鈕BUTTON發(fā)光數(shù)碼管LED插針8*2開關(guān)SWTTCH排陽RESPACK-88*2排座單排20*1插針DS18B208255芯片熱敏電阻74LS138芯片74LS37374LS245DAC0809232芯片以DS18B20為傳感器、AT89C51單片機為控制核心組成多點溫度測試系統(tǒng)。四、實驗程序以及系統(tǒng)框圖系統(tǒng)框圖(二)實驗程序:#include<REG51.H>#include<intrins.h>#include<
3、math.h>#defineuintunsignedint#defineucharunsignedcharuchartemp_value;ucharTempBuffer7;voidshow_time();uchartemp_value1;ucharTempBuffer17;charxiaoshu=0;charxiaoshu1=0;voidshow_time1();/溫度值/液晶顯木程序/溫度值"*1602液晶顯示部分子程序*/chardone,count,temp,flag,up_flag,down_flag;/PortDefinitionssbitLcdRs=P2A0;sbi
4、tLcdRw=P2A1;sbitLcdEn=P2A2;sfrDBPort=0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口sbitDQ=P1A7;/溫度傳送數(shù)據(jù)IO口sbitDQ1=P1A6;/內(nèi)部等待函數(shù)unsignedcharLCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=0;returnDBPort;)0/Command1/Data/清屏0x02/光標(biāo)返回原點/向LCD寫入命令或數(shù)據(jù)#defineLCD_COMMAND#defineLCD_DATA#defineLCD_CLEAR_
5、SCREENX01#defineLCD_HOMINGvoidLCD_Write(bitstyle,unsignedcharinput)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();LcdEn=1;_nop_();LcdEn=0;_nop_();LCD_Wait();)/設(shè)置顯示模式#defineLCD_SHOW0x04/業(yè)小開#defineLCD_HIDE0x00/顯示關(guān)#defineLCD_CURSOR0x02/業(yè)已初、#defineLCD_NO_CURSOR0x00/無光標(biāo)#defineLCD_FLASH0x01/光標(biāo)閃動
6、#defineLCD_NO_FLASH0x00光標(biāo)不閃動voidLCD_SetDisplay(unsignedcharDisplayMode)LCD_Write(LCD_COMMAND,0x08|DisplayMode);)/設(shè)置輸入模式#defineLCD_AC_UP#defineLCD_AC_DOWN0x020x00/default#defineLCD_MOVE0x01/回面可平移#defineLCD_NO_MOVE0x00/defaultvoidLCD_SetInput(unsignedcharInputMode)LCD_Write(LCD_COMMAND,0x04|InputMode)
7、;)初始化LCDvoidLCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38);/8位數(shù)據(jù)端口,2行顯示,5*7點陣LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);開啟顯示,無光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)/清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC遞增,畫面不動/液晶字符輸入的位置voidGotoXY(unsignedcharx,unsignedchary)if(y=0)LC
8、D_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);將字符輸出到液晶顯示voidPrint(unsignedchar*str)while(*str!=''0')LCD_Write(LCD_DATA,*str);str+;/*ds18b20子程序*/*ds18b20延遲子函數(shù)(晶振12MHz)*/voiddelay_18B20(unsignedinti)while(i-);/*ds18b20初始化函數(shù)*/voidInit_DS18B20(void)unsignedcharx=0;DQ
9、=1;/DQ復(fù)位delay_18B20(8);稍做延時DQ=0;/單片機將DQ拉低delay_18B20(80);/精確延時大于480usDQ=1;拉高總線delay_18B20(14);x=DQ;稍做延時后如果x=0則初始化成功x=1則初始化失敗delay_18B20(20);/*ds18b20讀一個字節(jié)*/unsignedcharReadOneChar(void)uchari=0;uchardat=0;for(i=8;i>0;i-)DQ=0;/給脈沖信號dat>>=1;DQ=1;/給脈沖信號if(DQ)dat|=0x80;delay_18B20(4);)return(da
10、t);/*ds18b20寫一個字節(jié)*/voidWriteOneChar(uchardat)unsignedchari=0;for(i=8;i>0;i-)DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;)/*讀取ds18b20當(dāng)前溫度*/voidReadTemp(void)unsignedchara=0;unsignedcharb=0;chart;longtt;Init_DS18B20();WriteOneChar(0xCC);/跳過讀序號列號的操作WriteOneChar(0x44);/啟動溫度轉(zhuǎn)換delay_18B20(10
11、0);/thismessageisweryimportantInit_DS18B20();WriteOneChar(0xCC);/跳過讀序號列號的操作前兩個就是溫度WriteOneChar(0xBE);/讀取溫度寄存器等(共可讀9個寄存器)/讀取溫度值低位/讀取溫度值高位delay_18B20(100);a=ReadOneChar();b=ReadOneChar();temp_value=b<<4;temp_value+=(a&0xf0)>>4;t=a&0x0f;tt=t*625;xiaoshu=tt/1000;)voidtemp_to_str()/溫度
12、數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示TempBuffer0=temp_value/10+'0'/十位TempBuffer1=temp_value%10+'0'/個位TempBuffer2='.'TempBuffer3=xiaoshu+'0'TempBuffer4=0xdf;TempBuffer5='C'TempBuffer16='0'voidDelay1ms(unsignedintcount)unsignedinti,j;for(i=0;i<count;i+)for(j=0;j<120;j+);voi
13、dshow_time()/液晶顯木程序ReadTemp();temp_to_str();GotoXY(0,0);Print("NO.1");GotoXY(0,1);Print("TEMP:");GotoXY(6,1);Print(TempBuffer);Delay1ms(400);/開啟溫度采集程序/溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符/液晶字符顯示位置/顯示溫度/掃描延時/*ds18b20子程序*/*ds18b20/*ds18b20voidInit_DS18B201(void)unsignedcharx=0;DQ1=1;delay_18B20(8);DQ1=0;de
14、lay_18B20(80);DQ1=1;delay_18B20(14);x=DQ1;delay_18B20(20);/*ds18b20延遲子函數(shù)(晶振12MHz)*/初始化函數(shù)*/DQ復(fù)位稍做延時單片機將DQ拉低/精確延時大于480us/拉高總線稍做延時后如果x=0則初始化成功x=1則初始化失敗讀一個字節(jié)*/unsignedcharReadOneChar1(void)uchari=0;uchardat=0;for(i=8;i>0;i-)DQ1=0;/給脈沖信號dat>>=1;DQ1=1;給脈沖信號if(DQ1)dat|=0x80;delay_18B20(4);)return(
15、dat);/*ds18b201寫一個字節(jié)*/voidWriteOneChar1(uchardat)unsignedchari=0;for(i=8;i>0;i-)DQ1=0;DQ1=dat&0x01;delay_18B20(5);DQ1=1;dat>>=1;)/*讀取ds18b201當(dāng)前溫度*/跳過讀序號列號的操作/啟動溫度轉(zhuǎn)換/thismessageisveryimportant/跳過讀序號列號的操作讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度/讀取溫度值低位/讀取溫度值高位voidReadTemp1(void)unsignedchara=0;unsignedc
16、harb=0;unsignedchart=0;longtt;Init_DS18B201();WriteOneChar1(0xCC);WriteOneChar1(0x44);delay_18B20(100);Init_DS18B201();WriteOneChar1(0xCC);WriteOneChar1(0xBE);delay_18B20(100);a=ReadOneChar1();b=ReadOneChar1();temp_value1=b<<4;temp_value1+=(a&0xf0)>>4;t=a&0x0f;tt=t*625;xiaoshu1=t
17、t/1000;)voidtemp_to_str1()/溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示TempBuffer10=temp_value1/10+'0'十位TempBuffer11=temp_value1%10+'0'/個位TempBuffer12='.'TempBuffer13=xiaoshu1+'0'TempBuffer14=0xdf;TempBuffer15='C'TempBuffer16='0'voidshow_time1()/液晶顯木程序ReadTemp1();temp_to_str1();Goto
18、XY(0,0);Print("NO.2");GotoXY(0,1);Print("TEMP:");GotoXY(6,1);Print(TempBuffer1);Delay1ms(400);main()LCD_Initial();Init_DS18B20();Init_DS18B201();GotoXY(1,0);Print("HELLO");GotoXY(1,1);/溫度符號/開啟溫度采集程序/溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符/液晶字符顯示位置/顯示溫度/掃描延時/液晶初始化/DS18B20初始化Print("LET'SDOI
19、T");/("designbywy!");ReadTemp();ReadTemp1();Delay1ms(2000);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);while(1)show_time();/液晶顯示數(shù)據(jù)/flag=0;Delay1ms(2000);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);show_time1();/flag=0;Delay1ms(2000);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);五、電路圖R=>1172-H631607040315陳希0皿IXirRyT:hi>Turtrjum:r3-3MJ»Lran而rnY£或黑一二r二二33z六、實驗結(jié)果與分析1、Keil代碼運行狀況:油'r'tJf-.Tii,1日也biF匕S
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度借款人抵押反擔(dān)保合同簽字確認(rèn)書范本解讀3篇
- 辦公環(huán)境的智能化與創(chuàng)新教育的發(fā)展
- 2024-2025學(xué)年貴州省黔西南布依族苗族自治州安龍縣數(shù)學(xué)三年級第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 2024年桶裝水生產(chǎn)商與酒店直供合同3篇
- 初中化學(xué)實驗教學(xué)與科技創(chuàng)新能力的培養(yǎng)
- 醫(yī)療輔助家居產(chǎn)品的設(shè)計創(chuàng)新
- 2025中國郵政集團公司常熟市分公司招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國聯(lián)通湖南分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國華電集團限公司校招+社招高頻重點提升(共500題)附帶答案詳解
- 2025下半年福建莆田事業(yè)單位招聘331人歷年高頻重點提升(共500題)附帶答案詳解
- “牢固樹立法紀(jì)意識,強化責(zé)任擔(dān)當(dāng)”心得體會(2篇)
- 列車車門故障應(yīng)急處理方案
- 2024年02月天津市口腔醫(yī)院派遣制人員招考聘用40人筆試歷年(2016-2023年)真題薈萃帶答案解析
- 評判創(chuàng)業(yè)計劃書
- 北京市西城區(qū)2023-2024學(xué)年部編版七年級上學(xué)期期末歷史試卷
- 廣東省博物館
- 徐州市2023-2024學(xué)年九年級上學(xué)期期末道德與法治試卷(含答案解析)
- 農(nóng)業(yè)信息化實現(xiàn)農(nóng)業(yè)現(xiàn)代化的數(shù)字化轉(zhuǎn)型
- 《義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022年版)》
- 學(xué)校食堂廚房規(guī)范化操作程序
- 醫(yī)保飛檢工作方案
評論
0/150
提交評論