版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)評語:考勤 10 分守紀(jì) 10 分過程 30 分設(shè)計(jì)報告 30 分答辯 20 分總成績 100 分專業(yè): 信號 班級: 信號 姓名: 學(xué)號: 指導(dǎo)教師:蘭州交通大學(xué)自動化與電氣工程學(xué)院2016 年 12 月 30 日單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告一、設(shè)計(jì)題目基于單片機(jī)的智能數(shù)顯調(diào)溫系統(tǒng)設(shè)計(jì)二、設(shè)計(jì)目的和方法1. 目的本設(shè)計(jì)目的是根據(jù)環(huán)境溫度實(shí)時顯示并動態(tài)調(diào)溫以保持環(huán)境溫度在一固定范圍。2. 方法本設(shè)計(jì)采用工程化思想, 從問題入手, 透徹的分析問題, 然后描繪出整體實(shí)現(xiàn)的 思路,再將系統(tǒng)分割為一個個的小模塊來分別進(jìn)行功能的設(shè)計(jì), 模塊化設(shè)計(jì)調(diào)試 完成后整合為一體的程序再進(jìn)行
2、聯(lián)調(diào), 最后采用 EDA工程進(jìn)行仿真實(shí)驗(yàn), 這樣開 發(fā)目的性強(qiáng),周期短,成本低,且容易實(shí)現(xiàn)。三、設(shè)計(jì)方案及原理12MHz 晶振AT89C5LCD1602復(fù)位電路電機(jī)驅(qū)動1DS18B20電熱爐圖 1 系統(tǒng)結(jié)構(gòu)圖本系統(tǒng)如圖 1 以主控制模塊為核心,以溫度采集模塊、顯示模塊、電機(jī)驅(qū)動模 塊和加熱模塊為功能模塊共五部分構(gòu)成。 單片機(jī)作為主控制模塊通過預(yù)定程序來 對其他功能模塊進(jìn)行管理。 在整個系統(tǒng)運(yùn)行過程中, 首先由溫度傳感器采集環(huán)境 溫度并進(jìn)行 AD轉(zhuǎn)換,主控將所得溫度數(shù)據(jù)顯示出來并進(jìn)行判斷,隨后選擇合適 的調(diào)溫模式驅(qū)動電機(jī),本設(shè)計(jì)中當(dāng) 0 T50時,風(fēng)扇以最快速度轉(zhuǎn)動降溫;當(dāng) T0時,風(fēng)扇停轉(zhuǎn)并使
3、用電熱器加熱。四、硬件設(shè)計(jì)單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖2如圖 2 主要硬件選取的有 AT89C51單片機(jī)、 DS18B20數(shù)字溫度傳感器、LCD1602 液晶屏、 DC12V 電機(jī)、熱爐和若干電阻、電容、晶振、三極管、繼電 器和按鍵等。A 模塊是 12MHz 晶振電路,為單片機(jī)提供穩(wěn)定精確的時鐘脈沖,有利于準(zhǔn) 確控制延時。B 模塊為復(fù)位電路, 提供兩種復(fù)位模式, 上電復(fù)位和手動復(fù)位。 系統(tǒng)上電后, 電容充電使得 RST 高電平復(fù)位,當(dāng)需要手動對系統(tǒng)復(fù)位時,短暫按下按鍵使得 RST高電平復(fù)位 ,CPU從0000H開始執(zhí)行程序。C 模塊為 DS18B20 數(shù)字溫度傳感器,它是一種不需要外圍設(shè)備、
4、單口線雙 向傳輸且分辨率為可編程 9-12 位的溫度傳感器,其溫度最大轉(zhuǎn)換時間為 750毫 秒,其 RAM 前兩個字節(jié)存放溫度值,通過配置寄存器 R0 和 R1 控制分辨率。D 模塊為 LCD1602,支持 16列 2 行,58點(diǎn)陣顯示, 8 位數(shù)據(jù)接口,其內(nèi) 部字符發(fā)生存儲器存儲了 160個不同的點(diǎn)陣 ASCII 碼字符圖形,可以直接使用,單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告引腳定義及功能說明如表 1 所列引腳功能說明VSS接地。VDD接電源( +5V)。VEE液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,使用時可以通過一個 10K的電位器調(diào)整對比度。RSRS為寄存器選擇,高電
5、平 1 時選擇數(shù)據(jù)寄存器、 低電平 0 時選擇指令寄存器。RWR/W為讀寫信號線,高電平 (1) 時進(jìn)行讀操作, 低電平 (0) 時進(jìn)行寫操作。E使能端,寫操作時,下降沿使能。讀操作時, E 高電平有效。D0-D78 位數(shù)據(jù)總線,其中當(dāng) D7 位為 1 時, LCD忙, 將無法再處理其他的指令要求。表1E模塊為 PWM電機(jī)驅(qū)動電路,利用單片機(jī)的數(shù)字輸出來對模擬電路進(jìn)行控制, 本次設(shè)計(jì)是單片機(jī)調(diào)制輸出波形占空比來實(shí)現(xiàn)調(diào)速, 驅(qū)動電機(jī)時使用了晶體管放 大電路, D端可用作方向選擇, PWM端可用作調(diào)速,驅(qū)動電路也可選用達(dá)林頓管 或者專用的驅(qū)動器驅(qū)動電機(jī),電機(jī)也可根據(jù)實(shí)際需求改變。F 模塊為 OVE
6、N加熱電路,利用單片機(jī)的一個口線控制繼電器來控制電熱器 的通斷,實(shí)現(xiàn)低溫加熱功能。五、軟件設(shè)計(jì)1. 主程序系統(tǒng)程序采用模塊化設(shè)計(jì),系統(tǒng)上電之后,對 DS18B20溫度傳感器和 LCD1602 進(jìn)行初始化, 隨后顯示系統(tǒng)初始化界面。 系統(tǒng)主要功能在循環(huán)中完成, 先采集溫 度數(shù)據(jù),進(jìn)行溫度數(shù)值轉(zhuǎn)換并顯示到 LCD屏幕上,接下來根據(jù)溫度范圍的不同選 擇是加熱還是散熱, 散熱時又選擇不同的散熱等級進(jìn)行散熱。 如此往復(fù)循環(huán), 讓 溫度平衡在某一水準(zhǔn), 主程序中基本不進(jìn)行功能操作, 各個功能均調(diào)用各個功能 子函數(shù)實(shí)現(xiàn), 數(shù)據(jù)除長周期變量, 其他均使用參數(shù)傳遞, 體現(xiàn)完整的工程化模塊 化思想,流程圖如圖 3
7、 所示。源代碼詳情見附錄。單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖 3 主程序流程圖2. 溫度讀取程序溫度傳感器選用的是較常用的 DS18B20,使用時,先要對其進(jìn)行初始化,初始化 有嚴(yán)格的時序要求。單片機(jī)應(yīng)先向 DS18B20發(fā)送一個長 480-960 s 的脈沖,再 拉高至高電平 15-60 s 等待 DS18B20響應(yīng)低電平后一段時間即完成 DS18B20的 初始化。一個簡單的讀取溫度流程應(yīng)如圖 4 所示,復(fù)位 DS18B20后由于本設(shè)計(jì) 不需讀取設(shè)備序列號故跳過讀 ROM直接啟動溫度轉(zhuǎn)換, 延時等待溫度轉(zhuǎn)換完成再 次復(fù)位 DS18B20,跳過讀 ROM寫入一個讀命令, 從口線每 8 位循環(huán)讀出一
8、個字節(jié), 前兩個字節(jié)是溫度低字節(jié)和高字節(jié)。 單口線的特點(diǎn)是每次讀寫一個指令或者數(shù)據(jù) 都需要每 8 位循環(huán)來完成一個字節(jié)的操作。 讀出的溫度數(shù)據(jù)在分辨率為 12位時, 溫度低字節(jié)里包括 4 位小數(shù)與 4 位整數(shù)位,溫度高字節(jié)里包括 3 位整數(shù)位與 5 位符號位,如圖 5 將數(shù)據(jù)進(jìn)行操作和整合成十進(jìn)制 BCD碼以便 LCD顯示出正確 的數(shù)值。源代碼詳情及注解見附錄。單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖 4 溫度讀取程序流程圖圖 5 溫度轉(zhuǎn)化程序流程圖3. LCD顯示程序 由于要求顯示溫度,用到很多的字符, LCD1602內(nèi)部有字符集可供使用,顯示效 果較數(shù)碼管友好。 LCD1602使用時也要先對其進(jìn)行初
9、始化設(shè)置,配合使能端通過 D0-D7口線 8 位并行對 LCD1602寫入相應(yīng)的命令即可。 基本顯示是不可變友好提 醒“T Monitor ”和溫度單位“”,動態(tài)顯示的是溫度的正負(fù)“ +”、“-”和 十進(jìn)制溫度數(shù)值, 故而在初始化顯示 LCD時,先顯示不可變的友好提醒和溫度單 位,這樣隨后的溫度變化僅改變 1位符號位和 3位 BCD數(shù)碼即可,優(yōu)化系統(tǒng)的效 率。寫顯示數(shù)據(jù)時,先選擇寫起始位置,每次寫入一個字符,到寫入字符串的末 尾時停止。動態(tài)更新溫度數(shù)據(jù)流程如圖 6 ,先設(shè)定寫入起始位置, 判斷溫度正負(fù) 標(biāo)志位改變可變溫度值字符串, 而后更改變化后的數(shù)值, 動態(tài)更新 LCD顯示。源 代碼詳情及注
10、解見附錄。單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖 6 溫度顯示程序流程圖4. 電機(jī)和電熱器驅(qū)動程序這部分的程序主要負(fù)責(zé)判斷溫度區(qū)間然后做出相應(yīng)的控溫措施。 主要的部件有兩 個,電機(jī)和電熱爐分別用來降溫和加熱。 電機(jī)有停轉(zhuǎn), 轉(zhuǎn)速根據(jù)溫度智能可調(diào)和 全速三種狀態(tài), 控制引腳的高低電平即可控制相應(yīng)器件的工作狀態(tài), 其中電機(jī)轉(zhuǎn) 速與溫度成正比這種模式主要采用調(diào)制占空比來達(dá)到控速的目的。 源代碼詳情及 注解見附錄。圖 7 電機(jī)和電熱器驅(qū)動程序流程圖單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告六、系統(tǒng)仿真如圖 8 為環(huán)境溫度為 18時的仿真結(jié)果截圖, LCD顯示與環(huán)境溫度相同為 18,直流電機(jī)停轉(zhuǎn)。如圖 9 為環(huán)境溫度為 35
11、時的仿真結(jié)果截圖, LCD顯示與環(huán)境溫度相同為 35,直流電機(jī)轉(zhuǎn)速為 47.0 轉(zhuǎn)/ 分鐘。如圖 10 為環(huán)境溫度為 60時的仿真結(jié)果截圖, LCD顯示與環(huán)境溫度相同為 60,直流電機(jī)轉(zhuǎn)速為 62.6 轉(zhuǎn)/ 分鐘。如圖 11 為環(huán)境溫度為 -12 時的仿真結(jié)果截圖, LCD顯示與環(huán)境溫度相同為 -12 ,直流電機(jī)停轉(zhuǎn),電熱器加熱。圖 8 18 仿真結(jié)果圖單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖 9 35 仿真結(jié)果圖圖 10 60 仿真結(jié)果圖8單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告圖 11 -12 仿真結(jié)果圖七、總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生來綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問 題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對
12、學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。 隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今單片機(jī)在工業(yè)控制領(lǐng)域廣泛應(yīng)用,且 EDA 開發(fā)在實(shí)際中非常重要, 極大地提高了電路設(shè)計(jì)的效率和可操作性, 減輕了設(shè)計(jì) 者的勞動強(qiáng)度,因此我們必須掌握這種簡單高效的開發(fā)技術(shù)去實(shí)現(xiàn)各種工業(yè)控制 實(shí)例?;仡櫰鸫舜握n程設(shè)計(jì),感觸頗多,從理解題目到完成整個系統(tǒng),從理論到實(shí) 踐,兩個星期的日子里, 可以學(xué)到很多很多的東西, 同時鞏固了以前所學(xué)過的知 識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合的重要性, 只有理論知識是 遠(yuǎn)遠(yuǎn)不夠的, 只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來, 從理論中得出結(jié)論,
13、 才 能提高自己的實(shí)際動手能力和獨(dú)立思考的能力。 在設(shè)計(jì)的過程中難免會遇到過各 種各樣的問題, 同時還發(fā)現(xiàn)了自己的不足之處, 對以前所學(xué)過的知識理解得不夠 深刻,掌握得不夠牢固, 通過這次課程設(shè)計(jì)之后, 一定要將以前所欠缺的知識再 溫故,多動手提高實(shí)際操作能力。單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告這次課程設(shè)計(jì)終于順利完成,在設(shè)計(jì)中遇到了很多問題,學(xué)會利用書本,網(wǎng) 絡(luò),人力資源等多種途徑解決問題,這是對自己能力的一種提升。在此,對給過 我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!八、附錄main.c 源程序代碼:頭文件#include 號定義#define uchar unsigned char#
14、define uint unsigned int#define LCDData P0/ 定義縮寫 uchar/定義縮寫 uint/定義 LCD 的數(shù)據(jù)口為 P0接口定義sbit DQ=P17;sbit LCD_RS=P20;sbit LCD_RW=P21;sbit LCD_E=P22;sbit PWM=P37;sbit D=P36; 加熱控制位/設(shè) P1.7 為溫度傳感器 DS18B20控制位/設(shè) P2.0為 LCD1602 寄存器控制位/設(shè) P2.1為 LCD1602 讀寫控制位/設(shè) P2.2為 LCD1602 使能控制位/設(shè) P3.7為 PWM 調(diào)速系統(tǒng)脈沖轉(zhuǎn)速控制位/設(shè) P3.6為 PW
15、M 調(diào)速系統(tǒng)電平轉(zhuǎn)向控制位和加熱器變量定義uchar t2,temperature;/溫度高低字節(jié)數(shù)組 t,十進(jìn)制溫度temperatureuchar TempBuffer12=0x20,0x20,0x20,0x20,0;/ 可變溫度值uchar tab116=0x54,0x20,0x4d,0x6f,0x6e,0x69,0x74,0x6f,0x72,0;/ 不可變友好 提醒“ T Monitor ”/不可變溫度單位“”uchar tab216=0xdf,0x43,0;延時程序 *void delay_20ms() uchar i,temp; for(i=20;i0;i-)temp=248; w
16、hile(-temp); temp=248; while(-temp);/延時 20ms10單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告void delay_38us()uchar temp; temp=18;while(-temp);/延時 38usvoid delay_1520us()uchar i,temp;for(i=3;i0;i-)temp=252; while(-temp);/延時 1520usvoid delay_DS18B20(uint i) while(i-);void delay(uint x)uchar i;while(x-)for(i=0;i0x07) /若溫度為負(fù)TempBuffer
17、0=0x2d;t1=t1;t0=t0;if(t0=0xff) t1+=1;x=t0+1;t0=x;if(x255) t1+=1;else/溫度顯示符號位為“ -” /將負(fù)數(shù)的補(bǔ)碼轉(zhuǎn)化為正數(shù) / /若溫度為正TempBuffer0=0x2b;t1=4;x=x&0x0f;t1=t1|x; temperature=t1;/溫度顯示符號位為“ +” /取溫度高字節(jié)部分 4 位/取溫度低字節(jié)整數(shù)部分 4 位/溫度整合為一個字節(jié)/將溫度數(shù)值轉(zhuǎn)存TempBuffer1=t1/100+0x30;/取百位并轉(zhuǎn)化為 ASCII 碼if(TempBuffer1=0x30) /若百位為 0,消隱TempBuffer1
18、=0xfe;TempBuffer2=(t1%100)/10+0x30;TempBuffer3=(t1%100)%10+0x30;void InitDS18B20()DQ=1;delay_DS18B20(8);DQ=0;/取十位并轉(zhuǎn)化為 ASCII 碼/取個位并轉(zhuǎn)化為 ASCII 碼/初始化 DS18B20/DQ 復(fù)位/復(fù)位脈沖拉低 480um960um 后拉高 1560umdelay_DS18B20(80);DQ=1;delay_DS18B20(14);delay_DS18B20(20);/延時完成初始化/循環(huán)串行讀取 8 位得到一個字節(jié)uchar ReadOneChar() uchar i=
19、0;uchar word=0; for(i=8;i0;i-) /從 DS18B20 讀一個字節(jié)DQ=0;13單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報告word=1;DQ=1;if(DQ) word|=0x80;delay_DS18B20(4);return word;/返回讀到的字節(jié)void WriteOneChar(uchar word)/向 DS18B20 寫一個字節(jié)uchar i=0;for(i=8;i0;i-)/循環(huán)串行寫入 8 位完成寫一個字節(jié)DQ=0;DQ=word&0x01; delay_DS18B20(4);DQ=1; word=1;void ReadTemperature()InitDS1
20、8B20();WriteOneChar(0xcc);WriteOneChar(0x44);delay_DS18B20(80);InitDS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);t0=ReadOneChar();t1=ReadOneChar(); /讀取溫度/初始化 DS18B20/跳過讀序列號命令 /啟動溫度轉(zhuǎn)換命令 /延時等待溫度轉(zhuǎn)換完成 /初始化 DS18B20/跳過讀序列號命令/讀取溫度值命令/t0 存放溫度低字節(jié)/t1 存放溫度高字節(jié)電機(jī) PWM 驅(qū)動程序 */void delay_motor(uchar i) uchar j;for(;i0;i-) for(j=100;j0;j-);/電機(jī)占空比延時子程序void motor()/電機(jī)調(diào)速程序
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版江蘇省宿遷市2023-2024學(xué)年高二上學(xué)期期末調(diào)研測試數(shù)學(xué)試卷
- 古詩詞誦讀《李憑箜篌引》-高二語文大單元教學(xué)同步備課(統(tǒng)編版選擇性必修中冊)
- 《溫暖的毛衣》少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 人教版位置課件
- 二年級上冊數(shù)學(xué)每日計(jì)算小紙條1-6
- 西京學(xué)院《國畫》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《中國政治制度史》2022-2023學(xué)年第一學(xué)期期末試卷
- 高考地理一輪復(fù)習(xí)第八章人口第一節(jié)人口分布與人口容量課件
- 西華師范大學(xué)《土壤污染防治技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 職業(yè)技術(shù)學(xué)院現(xiàn)代物流管理專業(yè)人才培養(yǎng)方案
- 中國審美文化史第四講唐代課件
- 中醫(yī)經(jīng)穴推拿模板課件
- 《三只小豬的真實(shí)故事》課件
- 遼寧省火力發(fā)電企業(yè)名錄2017年158家
- “美麗醫(yī)院”建設(shè)工作匯報材料
- 鉆孔灌注樁鉆進(jìn)成孔原始記錄表
- 中石油氣集團(tuán)公司 會計(jì)核算辦法
- 小學(xué)綜合實(shí)踐二年級上冊第1單元《主題活動一:交通標(biāo)志我會認(rèn)》教案
- 壓力是否有利于成長辯論稿
- 思想道德與法治教案第四章:明確價值要求踐行價值準(zhǔn)則
- 藥品生產(chǎn)質(zhì)量管理工程完整版課件
評論
0/150
提交評論