




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.山東理工大學(xué)計算機(jī)學(xué)院課程設(shè)計單片機(jī)系統(tǒng)設(shè)計指導(dǎo)教師李業(yè)德韓慧班級計科1104姓學(xué)名號二 一四年 十一月日;.課程設(shè)計任務(wù)書及成績評定課題名稱 溫度測試系統(tǒng)設(shè)計 I 、題目的目的和要求:利用溫度傳感器和MSP430單片機(jī)設(shè)計一個溫度測試系 統(tǒng),將測試結(jié)果 (十進(jìn)制)在LED 上顯示出來,并定義一個保持按鍵,當(dāng)按下該鍵時,將當(dāng)前測試值保持不變(按鍵不動作時為正常測量顯示 )。溫度顯示格式為: XXX 。II 、設(shè)計進(jìn)度及完成情況日期內(nèi)容11.10選取題目,進(jìn)行資料搜集和系統(tǒng)分析工作11.14進(jìn)行單獨程序設(shè)計以及完成單獨接口電路11.16將全部程序綜合并進(jìn)行整體程序調(diào)試和連接整體接口電路11.1
2、8書寫課程設(shè)計報告并寫下相關(guān)問題總結(jié)11.20進(jìn)行課程設(shè)計答辯,并打印上交III 、主要參考文獻(xiàn)及資料MSP430系列16位低功耗單片機(jī)原理及應(yīng)用DS18B20溫度傳感器的使用智能儀器原理及應(yīng)用學(xué)科部主任李業(yè)德、成績評定:設(shè)計成績:(教師填寫)指導(dǎo)老師:(簽字)二年月日.目錄I、題目的目的和要求:2II 、設(shè)計進(jìn)度及完成情況2III 、主要參考文獻(xiàn)及資料3、成績評定:3目錄4本次課程設(shè)計的目的和意義5設(shè)計題目6系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo)7總體設(shè)計方案、工作和組成原理8系統(tǒng)設(shè)計11設(shè)計總結(jié)26作品的使用或操作說明27設(shè)計圖紙或圖表28本次課程設(shè)計的目的和意義課程設(shè)計是讓我熟練掌握了
3、課本上的一些理論知識,課程設(shè)計也是一個學(xué)習(xí)新知識、鞏固加深所學(xué)課本理論知識的過程,它培養(yǎng)了我們綜合運用知識的能力,獨立思考和解決問題的能力。加深我們對單片機(jī)原理與應(yīng)用課程的理解設(shè)計題目溫度測試系統(tǒng)設(shè)計:利用溫度傳感器 DS18B20和 MSP430 單片機(jī)設(shè)計一個溫度測試系統(tǒng), 將測試結(jié)果 (十進(jìn)制) 在 LED 上顯示出來,并定義一個保持按鍵,當(dāng)按下該鍵時,將當(dāng)前測試值保持不變 (按鍵不動作時為正常測量顯示 )。溫度顯示格式為: XXX 。系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo)系統(tǒng)的主要功能是單片機(jī)實時從溫度傳感器讀取溫度數(shù)據(jù)信息,并在數(shù)碼管顯示, 同時掃描是否有保持按鍵按下,如果按下則不
4、再繼續(xù)從溫度傳感器讀取溫度數(shù)據(jù)信息,保持溫度值不變。作用是可以實時讀取環(huán)境中的溫度信息,供用戶查看,同時當(dāng)用戶需要觀察某溫度時, 可以按下按鍵保持溫度不變。主要技術(shù)指標(biāo):1. 基本范圍0-99 2. 精度誤差小于0.5 3. LED 數(shù)碼直讀顯示4. 掃描按鍵保持?jǐn)?shù)值.總體設(shè)計方案、工作和組成原理數(shù)字溫度計設(shè)計方案論證方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。方案二進(jìn)而考慮到用溫度傳感器
5、,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到, 所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出, 采用方案二, 電路比較簡單, 軟件設(shè)計也比較簡單,故采用了方案二。主控制器單片機(jī)采用 MSP430單片機(jī),處理能力強,功耗低,實現(xiàn)該功能僅需一個按鍵,管顯示,以及 DS18B20溫度傳感器。8 位數(shù)碼顯示電路:顯示電路采用8 位共陰 LED 數(shù)碼管,從P4 口輸出段碼。圖一總體設(shè)計框圖溫度傳感器:DS18B20 溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳
6、統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912 位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點如下:獨特的單線接口僅需要一個端口引腳進(jìn)行通信;多個 DS18B20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5 ;零待機(jī)功耗;溫度以 9 或 12 位數(shù)字;用戶可定義報警設(shè)置;報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20 內(nèi)部結(jié)構(gòu)框圖如圖2 所示。 64 位 ROM的結(jié)構(gòu)開始8 位是產(chǎn)品類型的編號,接著
7、是每個器件的惟一的序號,共有48 位,最后8 位是前面56 位的 CRC檢驗碼,這也是多個DS18B20可以采用一線進(jìn)行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。DS18B20 溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8 字節(jié)的存儲器, 結(jié)構(gòu)如圖3 所示。頭 2 個字節(jié)包含測得的溫度信息,第 3 和第 4 字節(jié)和的拷貝,是易失的,每次上電復(fù)位時被刷新。第5 個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。 DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。 低 5
8、位一直為1,是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1 和 R0 決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。溫度傳感器連接如下圖所示,DQ引腳與單片機(jī)的P5.3 相連:系統(tǒng)設(shè)計接口電路設(shè)計,程序設(shè)計(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計算接口電路設(shè)計:主控制器 MSP430溫度傳感器保持按鍵數(shù)碼管電路程序框圖:總體設(shè)計流程圖讀取溫度傳感器數(shù)據(jù)流程圖數(shù)碼管溫度顯示程序設(shè)計:/*定義引腳 *#define LED8PORTP2OUT/P2接 8 個 LED 燈#define LED8SELP2SEL/P2接 8 個
9、LED 燈#define LED8DIRP2DIR/P2接 8 個 LED 燈#define DATAPORTP4OUT/ 數(shù)據(jù)口所在端口P4#define DATASELP4SEL/ 數(shù)據(jù)口功能寄存器,控制功能模式#define DATADIRP4DIR/ 數(shù)據(jù)口方向寄存器#define CTRPORTP6OUT/ 控制線所在的端口P6 #define CTRSELP6SEL/ 控制口功能寄存器,控制功能模式#define CTRDIRP6DIR/ 控制口方向寄存器#define DCTR0P6OUT &= BIT4/ 數(shù)碼管段控制位信號置低#define DCTR1P6OUT |=BIT4
10、/ 數(shù)碼管段控制位信號置高#define WCTR0P6OUT &= BIT3/ 數(shù)碼管位控制位信號置低#define WCTR1P6OUT |=BIT3/ 數(shù)碼管位控制位信號置高.#define KEYPORT#define KEYSELP1OUTP1SEL/ 按鍵所在的端口P1控制口功能寄存器,控制功能模式#define KEYDIRP1DIR/控制口方向寄存器#define KEYINP1IN/鍵盤掃 描判斷需要 讀取 IO 口狀 態(tài)值ucharkey=0xFF;uinttemp_value;/鍵值變 量floattruetemp;uinttemp,A1,A2,A3;/ 定義的變量,顯示
11、數(shù)據(jù) 處理/*共陰數(shù)碼管顯示的斷碼表*uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/ *系統(tǒng)時鐘初始化 *void Clock_Init()uchar i;BCSCTL1&=XT2OFF;/ 打開 XT2 振蕩器BCSCTL2|=SELM1+SELS;/MCLK為 8MHZ , SMCLK 為 8MHZdoIFG1&=OFIFG;/ 清楚振蕩器錯誤標(biāo)志for(i=0;i100;i+)_NOP();while(IFG1&OFIFG)!=0);/ 如果標(biāo)志位1
12、 ,則繼續(xù)循環(huán)等待IFG1&=OFIFG;/*MSP430內(nèi)部看門狗初始化 *void WDT_Init()WDTCTL = WDTPW + WDTHOLD;/ 關(guān)閉看門狗/*MSP430IO口初始化 *void Port_Init()LED8SEL= 0x00;/ 設(shè)置 IO 口為普通 I/O模式,此句可省LED8DIR= 0xFF;/ 設(shè)置 IO 口方向 為輸出LED8PORT = 0xFF;/P2口初始 設(shè)置為 FFDATASEL= 0x00;/設(shè)置 IO口為普通 I/O模式,此句可省DATADIR= 0xFF;/設(shè)置 IO口方向 為輸出DATAPORT = 0xFF;/P4口初始 設(shè)置
13、為 FFCTRSEL=0x00;/ 設(shè)置 IO 口為普通 I/O模式,此句可省CTRDIR |=BIT3 + BIT4 +BIT2;/ 設(shè)置 IO 口方向 為輸出, 控制口在 P63,P64 CTRPORT =0xFF;/P6口初始 設(shè)置為 FFKEYSEL = 0x00;/ 設(shè)置 IO 口為普通 I/O模式,此句可省KEYDIR = 0x0F;/ 高四位 輸入模式,低四位輸出模式,外部上拉電阻KEYPORT= 0xF0;/ 初始值 0xF0/*74HC573控制數(shù)碼管動態(tài)掃描鍵值顯示函數(shù)*void Display_Key(uchar num)uchar i,j;j=0x01;/ 此數(shù)據(jù)用來控
14、制位選for(i=0;i8;i+)/8個數(shù)碼管依次顯示DCTR1;/ 控制數(shù)碼管段數(shù)據(jù)的74HC573的 LE 管腳置高WCTR1;/ 控制數(shù)碼管位的74HC573的 LE 管腳置高DATAPORT=j;/ 設(shè)置要顯示的位,也就是哪一個數(shù)碼管亮WCTR0;/ 鎖存位數(shù)據(jù),下面送上段數(shù)據(jù)以后,就顯示出來了DATAPORT=tablenum;/ 送要顯示的數(shù)據(jù),這里是鍵值DCTR0;/ 鎖存段數(shù)據(jù),數(shù)碼管亮一個時間片刻j=j1;/ 移位,準(zhǔn)備進(jìn)行下一位的顯示delay_us(500);/ 顯示一個時間片刻,會影響亮度和閃爍性Close_LED();/ 顯示完8 個數(shù)碼管后關(guān)閉數(shù)碼管顯示,否則可能導(dǎo)
15、致各個數(shù)碼管亮度不一致/*鍵盤掃描子程序,采用逐鍵掃描的方式*uchar Key_Scan(void)uchar key_check; uchar key_checkin;key_checkin=KEYIN;/ 讀取 IO 口狀態(tài),判斷是否有鍵按下key_checkin&= 0xF0;/ 屏蔽掉低四位的不確定值if(key_checkin!=0xF0)/ /IO口值發(fā)生變化則表示有鍵按下delay_ms(20);/ 鍵盤消抖,延時20MS key_checkin=KEYIN;/ 再次讀取IO 口狀態(tài)if(key_checkin!=0xF0)/ 確定是否真正的有鍵按下key_check=KEYI
16、N;/ 有鍵按下,讀取端口值switch (key_check & 0xF0)/ 判斷是哪個鍵按下case 0xE0:key=1;break; case 0xD0:key=2;break; case 0xB0:key=3;break;elsecase 0x70:key=4;break;key=0xFF;/ 無鍵按下,返回FFreturn key;/*74HC573控制數(shù)碼管動態(tài)掃描顯示函數(shù),顯示采集到的溫度*void Display_DS18B20(uint data_b,uint data_s,uint data_g)uchar i,j;j=0x01;/ 此數(shù)據(jù)用來控制位選for(i=0;i
17、3;i+)/ 用后 3 位數(shù)碼管來顯示DCTR1; WCTR1; DATAPORT=j; WCTR0; j=(j1);DATAPORT=0x00;/ 前 5 位都不顯示,送數(shù)據(jù)00 即可DCTR0;delay_ms(2);DCTR1;/ 開始顯示第6 位, 即十位WCTR1;DATAPORT=j; WCTR0; j=(j1);/DATAPORT=tableA1;DATAPORT=tabledata_b;DCTR0;delay_ms(1);DCTR1;/ 開始顯示個位WCTR1; DATAPORT=j; WCTR0; j=(j1);/DATAPORT=tableA2|0x80;/ 顯示小數(shù)點DA
18、TAPORT=tabledata_s|0x80;/ 顯示小數(shù)點DCTR0;delay_ms(1);DCTR1;/ 開始顯示小數(shù)點后面的數(shù)據(jù)WCTR1;DATAPORT=j;WCTR0; j=(j1);/DATAPORT=tableA3;DATAPORT=tabledata_g;DCTR0;delay_ms(1);DCTR1;/ 開始顯示溫度單位WCTR1; DATAPORT=j; WCTR0; j=(j1);/DATAPORT=tableA3;DATAPORT=0x63;DCTR0;delay_ms(1);DCTR1;/ 開始顯示溫度單位WCTR1; DATAPORT=j; WCTR0; j=
19、(j480uS)if (i)return 0x00;elsereturn 0x01;/*DS18B20讀一個字節(jié)函數(shù) *unsigned char ds1820_read_byte(void)unsigned char i; unsigned char value = 0; for (i = 8; i != 0; i-)value = 1; DQ_OUT; DQ_CLR;delay_us(4);/*延時 4uSDQ_SET;DQ_IN;delay_us(10);/*延時 10uSif (DQ_R)value|=0x80;delay_us(60);/*延時 60uSreturn(value);/
20、*向 18B20 寫一個字節(jié)函數(shù) */*DS18B20字節(jié)寫入函數(shù) */void ds1820_write_byte(unsigned char value)unsigned char i; for (i = 8; i != 0; i-)DQ_OUT;DQ_CLR;delay_us(4);/ 延 時 4uSif (value & 0x01)DQ_SET;delay_us(80);/ 延 時 80uS DQ_SET;/ 位結(jié)束value = 1;/*發(fā)送溫度轉(zhuǎn)換命令 */* 啟動 ds1820轉(zhuǎn)換 */ void ds1820_start(void)DS18B20_Reset();ds1820_
21、write_byte(0xCC);/ 勿略地址ds1820_write_byte(0x44);/ 啟動轉(zhuǎn)換/*DS8B20讀取溫度信息 *unsigned int ds1820_read_temp(void)unsigned int i; unsigned char buf9;DS18B20_Reset();ds1820_write_byte(0xCC);/ 勿略地址ds1820_write_byte(0xBE);/ 讀取溫度for (i = 0; i 9; i+)bufi = ds1820_read_byte();i = buf1; i = 8;i |= buf0; temp_value=i
22、;temp_value=(uint)(temp_value*0.625);/ 不是乘以0.0625的原因是為了把小數(shù)點后一位數(shù)據(jù)也轉(zhuǎn)化為可以顯示的數(shù)據(jù)到 BCD 碼,我們先放大到275示出 27.5度了return i;/ 比如溫度本身為27.5度,為了在后續(xù)的數(shù)據(jù)處理程序中得/ 然后在顯示的時候確定小數(shù)點的位置即可,就能顯/*溫度數(shù)據(jù)處理函數(shù) *void data_do(uint temp_d)A3=temp_d%10;/ 分出百,十,和個位temp_d/=10;A2=temp_d%10;A1=temp_d/10;/*處理溫度數(shù)據(jù) *void handletemp()ds1820_start
23、();/ 啟動一次轉(zhuǎn)換ds1820_read_temp();/ 讀取溫度數(shù)值data_do(temp_value);/ 處理數(shù)據(jù),得到要顯示的值truetemp=0.1*temp_value;/judgeAlarm();/ 判斷是否觸發(fā)警報/ 已將其添加至按鍵程序/*顯示溫度 *void showtemp()uchar j;for(j=0;j100;j+)Display_DS18B20(A1,A2,A3);/ 顯示溫度值/delay_ms(100);/ 延 時 100ms/*主程序 *void main(void)uchar flag1,flag2,flag3,flag4;/uint key_
24、store=0x00;/ 沒有按鍵按下時,默認(rèn)顯示1 WDT_Init();/ 看門狗初始化Clock_Init();/ 時鐘初始化Port_Init();/ 端口初始化,用于控制IO 口輸入或輸出/Close_LED();DS18B20_Reset();/ 復(fù) 位 D18B20 delay_ms(100);/ 延 時 100mswhile(1)Key_Scan();/ 鍵盤掃描,看是否有按鍵按下if(key!=0xff)/ 如果有按鍵按下,則顯示該按鍵鍵值1 4switch(key)case1:LED8PORT=0xfc;flag1=1;flag2=0;flag3=0;flag4=0;break;/對溫度數(shù)據(jù)處理判斷警報, 然后顯示 ,handletemp();showtemp();case 2: LED8PORT=0xf3;flag1=0;flag2=1;flag3=0;flag4=0;break;/
溫馨提示
- 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è)教育培訓(xùn)機(jī)構(gòu)導(dǎo)師聘用合同
- 2025年度綠色能源合資項目合同范本
- 二零二五年度時尚服飾店門面房買賣協(xié)議
- 二零二五年度演出活動主辦方觀眾免責(zé)協(xié)議模板
- 二零二五年度綜合醫(yī)院與??漆t(yī)院雙向轉(zhuǎn)診合作協(xié)議書
- 2025年度航空航天知識產(chǎn)權(quán)保護(hù)及保密合同
- 二零二五年度退股股權(quán)變更與風(fēng)險控制協(xié)議
- 2025年度裝修公司拖欠工資無勞動合同糾紛解決協(xié)議
- 二零二五年度金融科技內(nèi)部股東股權(quán)轉(zhuǎn)讓合同范本
- 二零二五年度石英石采礦權(quán)轉(zhuǎn)讓合同
- 2025年雙方協(xié)商一致自愿離婚協(xié)議書范本
- 眼科與視功能檢查屈光參差課件
- GB/T 6433-2025飼料中粗脂肪的測定
- 2025年湖南司法警官職業(yè)學(xué)院單招職業(yè)傾向性測試題庫學(xué)生專用
- 2025年呼和浩特職業(yè)學(xué)院單招職業(yè)傾向性測試題庫及參考答案
- 2025山西國際能源集團(tuán)有限公司所屬企業(yè)社會招聘258人筆試參考題庫附帶答案詳解
- 醫(yī)學(xué)遺傳學(xué)教案-山東大學(xué)醫(yī)學(xué)遺傳學(xué)
- 心房顫動診斷和治療中國指南解讀課件
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 方太電烤箱KQD50F-01使用說明書
- 榆神礦區(qū)郭家灘煤礦(700 萬噸-年)項目環(huán)評
評論
0/150
提交評論