




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中北大學單片機課程設計說明書1 引言本設計是一種基于單片機原理的簡易實用的溫度控制系統(tǒng)。采用AT89C51作為CPU主控裝置,電路主要由溫度采集和電機控制電路組成。溫度采集由智能溫度傳感器DS18B20集成芯片完成,該系統(tǒng)主要用于實現(xiàn)溫度采集、顯示和控制功能。1.1 設計任務與要求使用AT89C51單片機為核心,使用4位集成式數(shù)碼管顯示當前溫度,溫度傳感使用DS18B20。用4位集成式數(shù)碼管顯示當前溫度,當溫度在-20C70C00范圍之外時,直流電動機開始旋轉。控制程序在Keil軟件中編寫,編譯,整個控制電路在Proteus仿真軟件中連接調試。1.2 實用價值與理論意義溫度的測量和控制在工業(yè)生
2、產中獲得了廣泛的應用,在工農業(yè)生產、日常的生活等領域都占有重要的地位。隨著對溫度控制精度的不斷提高,溫度控制系統(tǒng)的控制技術得到了迅速發(fā)展。目前溫度控制系統(tǒng)廣泛應用于社會生活、生產,成為發(fā)展國民經濟的重要設備之一。所以溫度控制智能化有著極其重要的意義。通過對溫度控制通信系統(tǒng)的設計,了解信息采集測試、控制及通信的過程,提高在電子工程設計和操作方面的綜合能力,初步培養(yǎng)在完成工程項目中所應具備的基本素質和要求。以AT89C51單片機為核心,使用4位集成式數(shù)碼管顯示當前溫度,使用DS18B20溫度傳感器來設計一個用4位集成式數(shù)碼管顯示當前溫度,當溫度在-20C70C00范圍之外時,使直流電動機開始旋轉的
3、程序并仿真調試,驗證該設計可行性。2 方案設計采用AT89C51作為CPU主控制器,電路由溫度采集、電機控制、顯示電路組成,系統(tǒng)的總體電路原理圖如圖2.1所示第 1 頁 共 18 頁中北大學單片機課程設計說明書圖2.1 電路原理圖3 硬件電路的設計3.1溫度采集電路3.1.1 DS18B20數(shù)字溫度傳感器基本特性獨特的一線接口,只需要一條口線通信 多點能力,簡化了分布式溫度傳感應用 無需外部元件 可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無需備用電源 測量溫度范圍為-55 ° C至+125 ??删幊痰姆直媛蕿?12位 溫度轉換為12位數(shù)字格式最大值為750毫秒 用戶可定義的
4、非易失性溫度報警設置 應用范圍包括恒溫控制,工業(yè)系統(tǒng),消費電子產品溫度計,或任何熱敏感系統(tǒng).表3.1中所示為DS18B20內部寄存器陣列。其中的2、3字節(jié)是可設置的文都超限報警值,同一總線上的器件可以設置不同的高、低限報警數(shù)值,當某一點的文都超限是,改點就會發(fā)出報警信號。表3.1 DS18B20內部寄存器主控制器件對DS18B20的各種控制都是通過傳輸操作指令進行的。對ROM操作第 2 頁 共 18 頁中北大學單片機課程設計說明書的命令制記過能表如表3.2所示表 3.2 DS18B20 ROM操作指令表 3.3 DS18B20 RAM操作指令3.1.2 DS18B20數(shù)字溫度傳感器芯片引腳表3
5、.4 DS18B20的引腳3.1.3 電路如3.1圖所示為溫度采集電路,由于DS18B20是單線數(shù)據(jù)傳輸?shù)闹悄軠囟葌鞲衅?,在使用中不需要如何外圍的元件,在連接時僅需要一條口線即可實現(xiàn)單片機與DS18B20的雙向通信。所以此溫度采集電路只需將DS18B20外接一個上拉電阻,然后接在單片機的I/O接口。第 3 頁 共 18 頁中北大學單片機課程設計說明書VCC圖3.1 溫度采集電路 3.2 CPU電路CPU電路主要包括復位和晶振電路。復位電路主要是在系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經一定延時才撤銷復位信號,以防止電源開關過程中引起的抖動而影響復位
6、。本電路,主要是由一個按鍵和電容電阻組成的RC復位電路。晶振電路是由片內振蕩電路輸入線外接石英晶體和微調電容組成,此處使用12MHZ的晶體振蕩器。3.3 電機控制電路本系統(tǒng)的電機控制電路:電動機回路是一個簡單的開關電路,主要由單片機的I/O接口接電路的輸入端,通過單片機的I/O口的電平控制三極管的通斷,來控制繼電器,從而達到控制電機的目的。3.4 顯示電路硬件顯示電路部分由四位數(shù)碼管構成。采用的是動態(tài)掃描方式。通常將所有位的段選線相應的并聯(lián)在一起,有一個8位的I/O口控制,形成段選線的多路復用。而各位共陽極分別有相應的I/O口控制,實現(xiàn)各位的分時復用。段選和位選位同相驅動,不需要對每個LED數(shù)
7、碼管單獨配置鎖存和驅動電路,簡化電路。顯示部分的四位一體的數(shù)碼管用74LS04驅動,P3.3作為溫度采集信號線,P0口為顯示數(shù)據(jù)線,P2口作為位選線,動態(tài)掃描實現(xiàn)顯示溫度。4 軟件設計電路軟件設計主要分為兩部分:主程序和服務子程序,子程序包括顯示和溫度傳感器讀/寫程序。第 4 頁 共 18 頁中北大學單片機課程設計說明書溫度轉換的程序設計單片機實現(xiàn)溫度轉換讀取溫度數(shù)值程序的流程如圖4.1所示圖 4.1 溫度轉換N-S圖第 5 頁 共 18 頁4.1中北大學單片機課程設計說明書4.2 數(shù)碼管顯示電路顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)驚喜刷新操作,當最高顯示位為0時將符號位移入下一位
8、。顯示數(shù)據(jù)刷新流程圖如圖4.2所示圖4.2 顯示N-S圖第 6 頁 共 18 頁中北大學單片機課程設計說明書5 Keil及Protues仿真在Keil中完成編輯、編譯、連接、調試、仿真等整個流程。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS).ABS文件由OH51轉換成標準的Hex文件。在Proteus中連接電路,實現(xiàn)它的電路仿真是交互的,可視化,實現(xiàn)軟件源碼級的實時調試。圖5.1 Keil軟件中的調試圖以下各圖分別為仿真的結果圖,圖5.2是proteus軟件中的電路圖。四位數(shù)碼管
9、顯示采集到的溫度,當溫度為負值時顯示符號“-”,當十位和百位為零時不顯示該位。從圖中可以看出:在-20°-70°范圍內電機停轉,數(shù)碼管顯示溫度傳感器的溫度值;當溫度大于70°或者小于-20°時電機開始轉動。第 7 頁 共 18 頁第 8 頁 共 18 頁中北大學單片機課程設計說明書圖5.2 電路仿真圖中北大學單片機課程設計說明書圖5.3 溫度采集及顯示電路第 9 頁 共 18 頁中北大學單片機課程設計說明書圖5.4 規(guī)定正范圍內電機停轉第 10 頁 共 18 頁中北大學單片機課程設計說明書圖5.5 超出70°電機轉動第 11 頁 共 18 頁中
10、北大學單片機課程設計說明書圖5.6規(guī)定負范圍內電機停轉第 12 頁 共 18 頁中北大學單片機課程設計說明書圖5.7 小于-20°電機轉動第 13 頁 共 18 頁中北大學單片機課程設計說明書6 結論本課程設計闡述了以AT89C51單片機為核心,使用DS18B20溫度傳感器以及4位集成式數(shù)碼管顯示溫度的數(shù)碼管顯示的溫控電動機。實現(xiàn)了通過數(shù)碼管監(jiān)測溫度,當溫度在-20C70C00范圍之外時,直流電動機開始旋轉的要求。附錄:溫控電動機源程序/DS18B20的讀寫程序,數(shù)據(jù)腳P3.3 /溫度傳感器18B20匯編程序,采用器件默認的12位轉化 /最大轉化時間750微秒,顯示溫度-55到+12
11、5度,顯示精度 /為0.1度,顯示采用4位LED共陽顯示測溫值 /P0口為段碼輸入,P2.0P2.3為位選 /*/#include "reg51.h"#include "intrins.h" /_nop_();延時函數(shù)用#define Disdata P0 /段碼輸出口#define discan P2 /掃描口#define uchar unsigned char#define uint unsigned intsbit DQ=P33; /溫度輸入口sbit DIN=P07; /LED小數(shù)點控制uint h;uint temp;/*溫度小數(shù)部分用查表法
12、*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; /uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf; /共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7&q
13、uot; "8" "9" "不亮" "-"uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; /列掃描控制字uchar data temp_data2=0x00,0x00; /讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00; /顯示單元數(shù)據(jù),共4個數(shù)據(jù)和一個運算暫用/*11us延時函數(shù)*/第 14 頁 共 18 頁中北大學單片機課程設計說明書void delay(uint t)for (;t>0;t-);/*顯示掃描函數(shù)*/
14、 scan()char k;for(k=0;k<4;k+) /4位LED掃描控制Disdata=dis_7displayk; /數(shù)據(jù)顯示if (k=1)DIN=0; /小數(shù)點顯示 discan=scan_conk; /位選delay(300);P2=0xff;/*DS18B20復位函數(shù)*/ ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();/從高拉倒低DQ=0;delay(50); /550 usDQ=1;delay(6); /66 uspresence=DQ; /presen
15、ce=0 復位成功,繼續(xù)下一步 delay(45); /延時500 uspresence=DQ;DQ=1; /拉高電平/第 15 頁 共 18 頁中北大學單片機課程設計說明書/*DS18B20寫命令函數(shù)*/ /向1-WIRE 總線上寫1個字節(jié)void write_byte(uchar val)uchar i;for(i=8;i>0;i-)DQ=1;_nop_();_nop_(); /從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出 delay(6); /66 usval=val/2; /右移1位
16、DQ=1;delay(1);/*DS18B20讀1字節(jié)函數(shù)*/ /從總線上取1個字節(jié)uchar read_byte(void)uchar i;uchar value=0;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /66 us DQ=1;return(value);/*讀出溫度函數(shù)*/ /read_tem
17、p()ow_reset(); /總線復位delay(200);write_byte(0xcc); /發(fā)命令第 16 頁 共 18 頁中北大學單片機課程設計說明書write_byte(0x44); /發(fā)轉換命令ow_reset();delay(1);write_byte(0xcc); /發(fā)命令write_byte(0xbe);temp_data0=read_byte(); /讀溫度值的第字節(jié)temp_data1=read_byte(); /讀溫度值的高字節(jié)temp=temp_data1;temp<<=8; temp=temp|temp_data0; / 兩字節(jié)合成一個整型變量。 re
18、turn temp; /返回溫度值/*溫度數(shù)據(jù)處理函數(shù)*/二進制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個 /字節(jié)的二進制轉換為十進制后,就是溫度值的百、十、個位值,而剩 /下的低字節(jié)的低半字節(jié)轉化成十進制后,就是溫度值的小數(shù)部分/*/ work_temp(uint tem)uchar n=0,t,r;if(tem>6348) / 溫度值正負判斷tem=65536-tem;n=1; / 負溫度求補碼,標志位置1 display4=tem&0x0f; / 取小數(shù)部分的值display0=ditabdisplay4; / 存入小數(shù)部分顯示值display4=tem>&g
19、t;4; / 取中間八位,即整數(shù)部分的值 display3=display4/100; / 取百位數(shù)據(jù)暫存t=display3;display1=display4%100; / 取后兩位數(shù)據(jù)暫存display2=display1/10; / 取十位數(shù)據(jù)暫存r=display2;display1=display1%10;P1=0x00;/*符號位顯示判斷*/ if(!display3)display3=0x0a; /最高位為0時不顯示if(!display2)display2=0x0a; /次高位為0時不顯示第 17 頁 共 18 頁中北大學單片機課程設計說明書if(n) if(!r)display3=0x0a;display2=0x0b;else display3=0x0b; /負溫度時最高位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公務員協(xié)議書范本
- 環(huán)保產業(yè)代收款合作協(xié)議范本
- 高新技術產業(yè)園區(qū)廠房租賃安全合同樣本
- 特色美食街三股東合作協(xié)議及區(qū)域經濟發(fā)展貢獻
- 車輛租賃合同保證金與車輛租賃企業(yè)社會責任履行協(xié)議
- 企業(yè)參股合作協(xié)議書范本
- 生物質能源財產抵押合同
- 城市交通車輛翻新烤漆租賃合作協(xié)議
- 餐廳餐飲員工離職合同范本
- 廢舊鋼模板翻新工藝技術方案
- 工程預算審核報告回復函
- 醫(yī)藥行業(yè)銷售流程與培訓手冊
- 陪診師考試知識點提煉與答案解析
- 產后護理檔案表
- 深信服aES產品技術白皮書-V1.5
- 低壓電氣基礎知識培訓電工-電氣工程師
- 現(xiàn)代環(huán)境生物技術課件
- 《民法典》合同編實務解讀
- 導管相關感染預防及控制
- 企業(yè)消防安全培訓課件
- 2025年山西焦煤集團公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論