




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 課程設計報告課程名稱: 微機原理課程設計 課 題: 基于單片機的溫度數(shù)據(jù)采集控制 專業(yè)班級: 計算機系12101班 學 號: 2 姓 名: 余智文 指導老師: 周慧燦 日 期: 2015年7 月2 日 教師評語:成績評定: 指導教師(簽名): 目 錄1.課題簡介(黑體小4)12.設計方案13.具體設計1 3.1電路原理13.2 程序原理1 3.3關(guān)鍵代碼段源碼及分析24.測試11 4.1測試過程中遇到的問題記錄11 4.2測試結(jié)果115.總結(jié)11設計體會12參考文獻12基于單片機的溫度控制一、課題簡介 本課題是關(guān)于8個字節(jié)超長整型數(shù)據(jù),實現(xiàn)其運算( 加、減、乘)功能及二個數(shù)相比較的功能,滿足
2、其用戶在進行數(shù)據(jù)計算時的需要,增大了數(shù)據(jù)的使用范圍,解決了在實際中數(shù)據(jù)的越界。二設計題目及具體要求1基于單片機的溫度監(jiān)控系統(tǒng)2溫度測算范圍-20-703分辨率小于0.54所測的溫度值可以由LCD液晶直接顯示可以任意設置上下限溫度的報警功能 5顯示日期和時間到LCD液晶, 使用proteus,protel軟件的功能仿真和畫原理圖三設計目的1.通過本次課程設計加深對單片機課程的全面認識復習和掌握,對單片機課程的應用進一步的了解。2.掌握采用8051單片機控制溫度傳感器DS18B20、時鐘芯片DS1302和編程原理。3.通過此次課程設計能夠?qū)纹瑱C軟硬件結(jié)合起來,對程序進行編輯,校驗。四設計的意義該
3、次設計通過應用所學單片機的理論基礎(chǔ)知識,解決現(xiàn)實生活上的問題。設計溫度控制系統(tǒng)五設計方案設計思路總體設計大致可分為兩部分組成:一溫度采集模塊。二實時時鐘電路模塊。該設計通過單片機和溫度傳感器及相關(guān)部件實現(xiàn)溫度的測量和數(shù)字顯示。采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化,便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89S51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)
4、字信號,可直接與計算機連接。溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設計中加入時鐘芯片DS1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間。設計方框圖此方案的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設計也比較簡單,故本次設計采用此方案。設計原理溫度傳感器DS18B20DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。DALLAS 半導體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫
5、度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數(shù)以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。DS18B20 的性能特點如下:獨特的單線接口方式,DS18B20在與微處理
6、器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)適應電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電溫范圍55125,在-10+85時精度為0.5 零待機功耗可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度
7、更快用戶可定義報警設置報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作以上特點使DS18B20非常適用與多點、遠距離溫度檢測系統(tǒng)。 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS1302的介紹2002 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作
8、電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。引腳功能及結(jié)構(gòu)圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS130
9、2由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:初始化、ROM操作指令、存儲器
10、操作指令。必須先啟動DS18B20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。設計電路圖論是內(nèi)部寄生電源還是外部供電,I/O口線要接5K左右的上拉電。在這里采用前者方式供電。六、設計流程圖七仿真結(jié)果仿真結(jié)果分析(1)能數(shù)字顯示被測溫度,測量溫度范圍可以達到0100(2)分辨率不低于0.5 ;(3)帶有計時和時間顯示功能;(4)高、低兩路限溫控制點可在0100 范圍內(nèi)獨立設置 ;(5)當溫度達到高、低限溫控制點發(fā)出聲光報警。八程序代碼源程序/DS1302頭文件/ #ifndef _REAL_TIMER_DS1302_2003_7_21_sbit DS1302_CLK = P16; /實時時鐘時鐘線引腳sbit
11、DS1302_IO = P17; /實時時鐘數(shù)據(jù)線引腳sbit DS1302_RST = P15; /實時時鐘復位線引腳sbit ACC0 = ACC0;sbit ACC7 = ACC7;typedef struct _SYSTEMTIME_unsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Week;unsigned char Day;unsigned char Month;unsigned char Year;unsigned char DateString9;unsigned char Ti
12、meString9;SYSTEMTIME; /定義的時間類型#define AM(X) X#define PM(X) (X+12) / 轉(zhuǎn)成24小時制#define DS1302_SECOND 0x80#define DS1302_MINUTE 0x82#define DS1302_HOUR 0x84#define DS1302_WEEK 0x8A#define DS1302_DAY 0x86#define DS1302_MONTH 0x88#define DS1302_YEAR 0x8C#define DS1302_RAM(X) (0xC0+(X)*2) /用于計算DS1302_RAM 地址
13、的宏 void DS1302InputByte(unsigned char d) /實時時鐘寫入一字節(jié)(內(nèi)部函數(shù)) unsigned char i;ACC = d;for(i=8; i0; i-)DS1302_IO = ACC0; /相當于匯編中的 RRCDS1302_CLK = 1;DS1302_CLK = 0;ACC = ACC 1;unsigned char DS1302OutputByte() /實時時鐘讀取一字節(jié)(內(nèi)部函數(shù)) unsigned char i;for(i=8; i0; i-)ACC = ACC 1;ACC7 = DS1302_IO;DS1302_CLK = 1;DS13
14、02_CLK = 0;return(ACC);void Write1302(unsigned char ucAddr, unsigned char ucDa) /ucAddr: DS1302地址, ucData: 要寫的數(shù)據(jù)DS1302_RST = 0;DS1302_CLK = 0;DS1302_RST = 1;DS1302InputByte(ucAddr); / 地址,命令DS1302InputByte(ucDa); / 寫1Byte數(shù)據(jù)DS1302_CLK = 1;DS1302_RST = 0;unsigned char Read1302(unsigned char ucAddr) /讀取
15、DS1302某地址的數(shù)據(jù) unsigned char ucData;DS1302_RST = 0;DS1302_CLK = 0;DS1302_RST = 1;DS1302InputByte(ucAddr|0x01); / 地址,命令ucData = DS1302OutputByte(); / 讀1Byte數(shù)據(jù)DS1302_CLK = 1;DS1302_RST = 0;return(ucData);void DS1302_SetProtect(bit flag) /是否寫保護if(flag)Write1302(0x8E,0x10);elseWrite1302(0x8E,0x00);void DS
16、1302_SetTime(unsigned char Address, unsigned char Value) / 設置時間函數(shù)DS1302_SetProtect(0);Write1302(Address, (Value/10)Second = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MINUTE);Time-Minute = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_HOUR);Time-Hou
17、r = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_DAY);Time-Day = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_WEEK);Time-Week = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MONTH);Time-Month = (ReadValue&0x70)4)*10 + (ReadVal
18、ue&0x0F); ReadValue = Read1302(DS1302_YEAR);Time-Year = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); void DateToStr(SYSTEMTIME *Time)Time-DateString0 = Time-Year/10 + 0;Time-DateString1 = Time-Year%10 + 0;Time-DateString2 = -;Time-DateString3 = Time-Month/10 + 0;Time-DateString4 = Time-Month%10 + 0;Tim
19、e-DateString5 = -;Time-DateString6 = Time-Day/10 + 0;Time-DateString7 = Time-Day%10 + 0;Time-DateString8 = 0;void TimeToStr(SYSTEMTIME *Time)Time-TimeString0 = Time-Hour/10 + 0;Time-TimeString1 = Time-Hour%10 + 0;Time-TimeString2 = :;Time-TimeString3 = Time-Minute/10 + 0;Time-TimeString4 = Time-Minu
20、te%10 + 0;Time-TimeString5 = :;Time-TimeString6 = Time-Second/10 + 0;Time-TimeString7 = Time-Second%10 + 0;Time-DateString8 = 0;void Initial_DS1302()unsigned char Second=Read1302(DS1302_SECOND);if(Second&0x80)DS1302_SetTime(DS1302_SECOND,0);#endif/LCD1602頭文件/ #ifndef LCD_CHAR_1602_2005_4_9#include /
21、Port Definitions* sbit LcdRs = P20;sbit LcdRw = P21;sbit LcdEn = P22;sfr DBPort = 0xB0; /P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/內(nèi)部等待函* unsigned char LCD_Wait()LcdRs=0;LcdRw=1; _nop_();LcdEn=1; _nop_();LcdEn=0;return DBPort;/向LCD寫入命令或數(shù)*#define LCD_COMMAND 0 / Command#define LCD_DATA 1 / Data#define LCD
22、_CLEAR_SCREEN 0x01 / 清屏#define LCD_HOMING 0x02 / 光標返回原點void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0; _nop_();DBPort=input; _nop_();/注意順序LcdEn=1; _nop_();/注意順序LcdEn=0; _nop_();LCD_Wait();/設置顯示模式* #define LCD_SHOW 0x04 /顯示開#define LCD_HIDE 0x00 /顯示關(guān)#define LCD_CURSOR 0x02
23、/顯示光標#define LCD_NO_CURSOR 0x00 /無光標#define LCD_FLASH 0x01 /光標閃動#define LCD_NO_FLASH 0x00 /光標不閃動void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);/設置輸入模式* #define LCD_AC_UP 0x02#define LCD_AC_DOWN 0x00 / default#define LCD_MOVE 0x01 / 畫面可平移#define LCD_NO_MOVE 0x0
24、0 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD* void LCD_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); /開啟顯示, 無光標LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_
25、SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC遞增, 畫面不動 void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0xC0|x);if(y=2)LCD_Write(LCD_COMMAND,0x90|x);if(y=3)LCD_Write(LCD_COMMAND,0XD0|x);void Print(unsigned char *str)while(*str!=0)LCD_Write(LCD_DATA
26、,*str);str+;#endif/C文件/ #include#include#include#define uchar unsigned char#define uint unsigned intsbit DQ=P26;sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit alarm=P13;unsigned char code str1=H:30C L:10C;char t,f1;uchar data disdata10=0,0,0,0x2e,0,0x43,0x20,0x20,0x20,0x20;uint tvalue,temp1;uchar tflag; /溫度正負標志uchar flagdat;void delay1ms(uint ms)uint i;while(ms-)for(i=0;i0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國螺旋藻行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025天津市建筑安全員知識題庫
- 2025-2030年中國航空客運行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025-2030年中國電解錳廢渣處理行業(yè)競爭狀況及發(fā)展趨勢分析報告
- 長江大學《設計軟件基礎(chǔ)》2023-2024學年第二學期期末試卷
- 中國石油大學(華東)《強化學習(雙語)》2023-2024學年第二學期期末試卷
- 西安體育學院《食品分析技術(shù)》2023-2024學年第二學期期末試卷
- 廣西衛(wèi)生職業(yè)技術(shù)學院《食品研究開發(fā)》2023-2024學年第二學期期末試卷
- 幼兒園 中班心理健康《我會傾訴》
- GB/T 6553-2024嚴酷環(huán)境條件下使用的電氣絕緣材料評定耐電痕化和蝕損的試驗方法
- 中職旅游專業(yè)《中國旅游地理》說課稿
- 微積分試卷及規(guī)范標準答案6套
- 【鄉(xiāng)村振興背景下農(nóng)村基層治理問題探究開題報告(含提綱)3000字】
- 藥物警戒管理體系記錄與數(shù)據(jù)管理規(guī)程
- 2024-2029年擴展塢行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃投資研究報告
- SH/T 3003-2024 石油化工合理利用能源設計導則(正式版)
- 中國人民大學613衛(wèi)生統(tǒng)計歷年真題12-16
- 人事聘用合同范本標準版
- 新疆地方教材可愛的中國第二單元教學設計
評論
0/150
提交評論