




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 唐 山 學 院 單片機原理 課 程 設 計 題 目 簡易數(shù)字溫度計 系 (部) 智能與信息工程學院 班 級 姓 名 學 號 指導教師 2017 年 1 月 2 日至 1 月 6 日 共 1 周2017年1月4日單片機原理課程設計任務書一、設計題目、內(nèi)容及要求設計題目:簡易數(shù)字溫度計設計內(nèi)容:所設計數(shù)字溫度計應具有以下功能:1.可以測量-50到110攝氏度內(nèi)的溫度。2.在液晶上顯示當前溫度,分別為百位、十位、個位和小數(shù)點后一位。3.測量精度誤差在正負0.5攝氏度以內(nèi)。設計要求:1.根據(jù)題目要求進行系統(tǒng)總體設計。 2.完成系統(tǒng)硬件電路的設計。3.系統(tǒng)程序的設計。 (1)程序流程圖;(2)完整源程
2、序;(3)正確仿真運行。4.撰寫設計說明書(符合格式要求)。二、設計原始資料PROTEUS軟件,WAVE/KEIL軟件,實驗箱三、要求的設計成果(課程設計說明書、設計實物、圖紙等)設計結果能正確仿真演示課程設計說明書一份(要求有硬件設計原理圖,仿真結果圖,源程序代碼)四、進程安排1.2日-1.3日上午 查閱資料,設計電路原理圖、編寫程序1.4日下午-1.5日 中心機房調(diào)試程序1.6日 課程設計答辯五、主要參考資料1肖看.李群芳.單片機原理、接口及應用,清華大學出版社.2010.92樓然苗.單片機課程設計指導.北京:北京航空航天大學出版社.2002.3孫育才主編,MCS-51系列單片微型計算機及
3、其應用.東南大學出版社指導教師(簽名):教研室主任(簽名):課程設計成績評定表出勤情況出勤天數(shù) 缺勤天數(shù)成績評定出勤情況及設計過程表現(xiàn)(20分)課設答辯(20分)設計成果(60分)總成績(100分)提問(答辯)問題情況綜合評定 指導教師簽名: 年 月 日目 錄1.方案論證12.硬件設計22.1系統(tǒng)構成 2 2.2器件選擇 22.2.1 AT89C51概述22.2.2 AT89C51引腳功能32.2.3 復位電路的設計42.3數(shù)字溫度傳感器52.3.1 DS1621的技術指標52.3.2 DS1621的工作原理62.4 單片機和DS1621接口電路62.5 七段LED數(shù)碼顯示電路73.系統(tǒng)軟件設
4、計93.1 編程語言選擇93.2 主程序的設計93.3 溫度采集模塊設計103.4 溫度計算模塊設計103.5 串行總線編程114.軟硬件調(diào)試結果分析125.設計總結136.參考文獻14附錄A 多點溫度采集系統(tǒng)電路原理圖151.方案論證 該系統(tǒng)可以使用方案一:熱敏電阻;方案二:數(shù)字溫度芯片DS1621實現(xiàn)。采用數(shù)字溫度芯片DS1621 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度。DS1621 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計D
5、S1621和微控制器AT89C51構成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結構就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便??刂乒ぷ?,還可以與PC 機通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89C51芯片控制溫度傳感器DS1621進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設計中加入時鐘芯片DS1302以獲取
6、時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數(shù)據(jù)進行存儲,利用鍵盤來進行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。故采用了方案二。測溫電路的總體設計方框圖如圖1-1所示,控制器采用單片機AT89C51,溫度傳感器采用DS1621,用5位LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。圖1-1 測溫電路的總體設計方框圖2.硬件設計2.1系統(tǒng)構成本溫度數(shù)據(jù)采集系統(tǒng)的主要功能是測量溫度,并顯示溫度測量結果,并附帶了單片機和PC機之間通訊接口。系統(tǒng)結構包括單片機部分、溫度傳感器、
7、顯示電路、通訊接口電路等幾個部分。圖2-1為系統(tǒng)的總體結構框圖。圖2-1 測溫系統(tǒng)的總體結構框圖系統(tǒng)工作原理是:電路在上電后,最先單片機利用模擬總線I2C對DS1621進行尋址,單片機在接收到DS1621應答后,單片機將設置/狀態(tài)寄存器的值通過I2C總線寫入該寄存器,之后DS1621在單片機控制下進行溫度測量,然后DS1621把所采集的溫度(50攝氏度100攝氏度,精度為0.5攝氏度)傳輸給單片機,最后單片機把溫度數(shù)據(jù)送到LED上顯示。系統(tǒng)中附帶的串行接口以供備用。2.2器件選擇2.2.1 AT89C51概述對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部RAM,系統(tǒng)
8、又需要大量內(nèi)存存儲數(shù)據(jù),因而不適用。所以,我們選用51系列單片機AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機,片內(nèi)含4KB的可編程的Flash只讀程序存儲器,兼容標準8051指令系統(tǒng)及引腳,并集成了 Flash 程序存儲器,既可在線編程(ISP),也可用傳統(tǒng)方法進行編程,因此,低價位AT89C51單片機可應用于許多高性價比的場合,可靈活應用于各種控制領域,對于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機AT89C51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產(chǎn)品的設計使用系統(tǒng)可用二節(jié)電池供電。AT89C51的主要
9、特性如下:與MCS-51 兼容; 4K字節(jié)可編程閃爍存儲器;三級程序存儲器鎖定;128×8位內(nèi)部RAM; 32根可編程I/O線;兩個16位定時器/計數(shù)器; 5個中斷源;可編程串行通道; 片內(nèi)振蕩器和時鐘電路。2.2.2 AT89C51引腳功能單片機芯片AT89C51為40引腳雙列直插式封裝。其各個引腳功能介紹如下,芯片AT89C51的引腳排列和邏輯符號如圖2-2所示。各引腳分別為: VCC:供電電壓 圖2-2 AT89C51的引腳GND:接地P0口圖4-2 AT89C51的引腳排列圖P0口為一個8位漏級開路雙向I/O口,每個管腳可吸收8TTL門電流。當P1口的管腳寫1時,被定義為高阻
10、輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時,P0口作為原碼輸入口,當FLASH進行校驗時,P0輸出原碼,此時P0外部電位必須被拉高。P1口P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流P1口管腳寫入”1”后,電位被內(nèi)部上拉為高可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流 當P2口被寫”1”時,其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為
11、輸入時P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址”1”時,它利用內(nèi)部上拉的優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時,由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,同
12、時P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入端。當振蕩器復位時,要保持RST兩個機器周期的高電平時間。PSEN外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期PSEN兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。EA/VPP當EA保持低電平時,訪問外部ROM;注意加密方式1時,EA將內(nèi)部鎖定為RESET;當EA端保持高電平時,訪問內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。2.2.3 復位電路的設計單片機的復位電路如圖2-2所示。該復位電路采用手動復位與上電復位相結合的方式。當按下按鍵S1時,VCC
13、通過R2電阻給復位輸入端口一個高電平,實現(xiàn)復位功能,即手動復位。上電復位就是VCC通過電阻R2和電容C構成回路,該回路是一個對電容C1充電和放電的電路,所以復位端口得到一個周期性變化的電壓值,并且有一定時間的電壓值高于CPU復位電壓,實現(xiàn)上電復位功能。圖2-3 單片機的復位電路2.3數(shù)字溫度傳感器2.3.1 DS1621的技術指標DS1621是美國DALLAS公司生產(chǎn)的一種功能較強的數(shù)字式溫度傳感器和恒溫控制器。數(shù)字接口電路簡單,與I2C總線兼容,且可以使用一片控制器控制多達8片的DS1621。其數(shù)字溫度輸出達9位,精度為0.5攝氏度。DS1621可工作在最低2.7V電壓下,適用于低功耗應用系
14、統(tǒng)。 DS1621的引腳排列圖如圖2-4所示,引腳功能描述如表2-1所示。圖2-4 DS1621的引腳排列圖表2-1 DS1621的引腳功能表引腳符號功能描述1SDA2線I2C 串行數(shù)據(jù)輸入/輸出2SCL2線I2C 串行時鐘端3TOUT溫度上下限超出輸出4GND地5A2A0片選地址輸入A2A06VDD電源端(+2.75.5V)2.3.2 DS1621的工作原理圖2-5 DS1621的構成原理框圖斜坡累加電路重預置比較器計數(shù)溫度低敏感振蕩器重預置電路溫度寄存器溫度低敏感振蕩器計數(shù)器=0DS1621的構成原理框圖如圖2-5所示,在測量溫度時使用了獨有的在線溫度測量技術。它通過在一個由對溫度高度敏感
15、的振蕩器決定的計數(shù)周期內(nèi)對溫度低敏感的振蕩器時鐘脈沖的計數(shù)值的計算來測量溫度。DS1621在計數(shù)器中預置了一個初值,它相當于50攝氏度。如果計數(shù)周期結束之前計數(shù)器達到0,已預置了此初值的溫度寄存器中的數(shù)字就會增加,從而表明溫度高于55攝氏度。與此同時,計數(shù)器斜坡累加電路被重新預置一個值,然后計數(shù)器重新對時鐘計數(shù),直到計數(shù)值為0。通過改變增加的每1 內(nèi)的計數(shù)器的計數(shù),斜坡累加電路可以補償振蕩器的非線性誤差,以提高精度,任意溫度下計數(shù)器的值和每一斜坡累加電路的值對應的計數(shù)次數(shù)須為已知。 DS1621通過計算可以得到0. 5攝氏度的精度,溫度輸出為9位,在發(fā)出讀溫度值請求后還會輸出兩位補償值。表2給
16、出了所測的溫度和輸出數(shù)據(jù)的關系。這些數(shù)據(jù)可通過2線制串行口連續(xù)輸出,MSB在前,LSB在后。 2.4 單片機和DS1621接口電路前面已經(jīng)介紹了DS1621溫度傳感器以8位數(shù)字輸出,數(shù)據(jù)輸出與I2C總線兼容,可以方便地通過SDA,SCL以串行方式與單片機相連。而AT89C51面向主/從功能字節(jié)的I2C總線串行I/O口,所以多路溫度數(shù)字量可以通過I2C總線直接送GAS97C2051單片機。I2C總線(Inter IC BUS)是Philips公司推出的雙向兩線串行通信標準。由于它具有接口少、通信效率高等優(yōu)點,現(xiàn)已得到廣泛的應用I2C總線是一種串行的數(shù)據(jù)總線,掛在總線上的各集成電路模塊(單片機和具
17、有各種功能的電路芯片)通過一條串行的數(shù)據(jù)線 (SDA)和一條串行的時鐘線(SCL),按一定的通信協(xié)議進行尋址和信息的傳輸。每個電路模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上的電路模塊有的是主控器,有的是被控器,主控器和被控器都可以是發(fā)送器或接收器,這完全取決于它所要完成的功能。采用I2C總線可最大限度地簡化電路結構,實現(xiàn)電路的模塊化、標準化設計。I2C總線在進行數(shù)據(jù)傳輸時,由作為主控器的AT89C51來初始化一次數(shù)據(jù)的傳輸,并在I2C總線上提供時鐘進行傳送。信息傳送的對象、方向和傳送的開始、終止也由主控器(AT89C51)來決定。此時,在I2C總線上被主控器所尋址的集成電路模塊稱為被
18、控器(DS162)。在I2C總線上,數(shù)據(jù)由發(fā)送器傳出,并被接收器接收,接收器在每次正確接收到一個數(shù)據(jù)字節(jié)后,都要在數(shù)據(jù)總線(SDA)上給發(fā)送器一個應答信號。因單片機AT89C51本身 沒有I2C硬件資源,所以必須用軟件來模擬I2C總線,本系統(tǒng)利用單片機AT89C51的P3.0和P3.1引腳分別作I2C總線的數(shù)據(jù)線和時鐘線(見附錄A)。AT89C51模擬I2C總線主要由軟件設置來實現(xiàn)其功能。2.5七段LED數(shù)碼顯示電路采用七段LED數(shù)碼顯示,LED顯示器內(nèi)部由7段發(fā)光二極管組成,因此亦稱之為七段LED顯示器,由于主要用于顯示各種數(shù)字符號,故又稱之為LED數(shù)碼管。每個顯示器還有一個圓點型發(fā)光二極管
19、,用于顯示小數(shù)點。在單片機AT89C51接收到DS1621所采集的溫度數(shù)據(jù)后,單片機把所讀到的數(shù)據(jù)送給數(shù)碼管顯示。系統(tǒng)具體的顯示電路如圖2-6所示。圖2-6 七段LED數(shù)碼管顯示電路顯示電路中單片機AT89C51的P0口直接驅(qū)動8段數(shù)碼管(其中需要給P0外接上拉電阻)完成字形碼的輸出(字形選擇)。而P2.1-P2.5控制6位LED進行分時選通,這樣在任一時刻,只有一位LED是點亮的,但只要掃描的頻率足夠高(一般大于25Hz),由于人眼的視覺暫留特性,直觀上感覺卻是連續(xù)點亮的,這就是我們常說的動態(tài)掃描電路。3.軟件設計與調(diào)試3.1 編程語言選擇51的編程語言常用的有兩種,一種是匯編語言,一種是C
20、語言。匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C語言在大多數(shù)情況下其機器代碼生成效率和匯編語言相當,C 語言很好的結構性和模塊化更容易閱讀和維護,用C 編寫程序比匯編更符合人們的思考習慣,開發(fā)者可以更專心的考慮算法而不是考慮一些細節(jié)問題這樣就減少了開發(fā)和調(diào)試的時間,而且C語言還可以嵌入?yún)R編來解決高時效性的代碼編寫問題。3.2 主程序的設計初始化N讀溫度數(shù)據(jù)并存儲生成地址字節(jié)1001000,循環(huán)次數(shù)3延時1S以上等待結果啟動轉換向設置/狀態(tài)寄存器設置為連續(xù)工作方式生成地址字節(jié)1001000,循環(huán)次數(shù)3次地址字節(jié)加02H 循環(huán)次數(shù)減1為0?讀溫度數(shù)據(jù)并存儲及顯
21、示地址字節(jié)加02H 循環(huán)次數(shù)減1為0?圖3-1 主程序流程圖NN主程序的主要功能是負責多點溫度數(shù)據(jù)的實時采集、傳輸,處理和顯示。其程序流程如圖3-1所示。3.3 溫度采集模塊設計為本溫度采集系統(tǒng)開發(fā)的軟件程序,可以對DS1621內(nèi)部的寄存器編程控制DS1621的工作方式,以及從這些數(shù)據(jù)寄存器讀取溫度值,最后把經(jīng)過單片機數(shù)據(jù)處理后的溫度送到LED上顯示。AT89C51扮演著上傳下達的角色,單片機端的程序采用了C語言。DS1621一側的通信程序?qū)⒗貌⑿卸丝赑3.0和P3.1來模擬I2C 總線協(xié)議,總線上的通信通過程序來實現(xiàn)。整個軟件采用了模塊化的程序設計方法。為了實現(xiàn)AT89C51和DS1621
22、之間I2C 協(xié)議之下的串行通信,編寫了一些專用子程序。這些子程序段包括:符號定義、AT89C51的端口初始化、啟動信號時序產(chǎn)生、停止信號時序產(chǎn)生、發(fā)送字節(jié)、讀取字節(jié)、讀取溫度、顯示。系統(tǒng)電路在上電后開始工作,最先程序單片機進行初始化設置,然后單片機利用模擬I2C總線對DS1621進行尋址。單片機在接收到DS1621應答后,緊接著單片機利用命令(AAh、ACh、EEh、22h)將設置/狀態(tài)寄存器的值通過I2C總線寫入DS1621狀態(tài)寄存器,該系統(tǒng)中把DS1621設置為連續(xù)溫度轉換工作方式,之后DS1261在單片控制下進行溫度測量,然后DS1261把所采集的溫度傳輸給單片機,最后單片機把溫度數(shù)據(jù)送
23、到LED上顯示。3.4 溫度計算模塊設計計算溫度子程序?qū)腄S1621中讀取的溫度值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖3-2所示。 開始溫度零下?溫度值取補碼置“”標志計算小數(shù)位溫度BCD值 計算整數(shù)位溫度BCD值 結束置“+”標志NY圖3-2 溫度計算流程圖3.5 串行總線編程在本系統(tǒng)中,單片機AT89C51 作為主控器件,3個DS1621作為被控器,所以我們只要考慮主方式下的狀態(tài)處理模塊,即考慮AT89C51主發(fā)送和主接收方式下的狀態(tài)處理模塊。該電路中為了簡化電路設計在I2C總線的時鐘和數(shù)據(jù)上各加了一個上拉電阻,以獲取一定的上拉電流使信號采集可靠。本系統(tǒng)中掛在
24、I2C總線上的各電路模塊都有其節(jié)點地址。AT89C51作為主控器其節(jié)點地址無意義,作為被控器的3個DS1621都有其節(jié)點地址,其地址為1001A2A1A0 ,其中,1001是器件編號,已由芯片生產(chǎn)廠家規(guī)定,A2A1A0為DS1621的3個引腳,在電路中分別接高低電平?jīng)Q定2個DS1621的不同地址。2個DS1621的地址分別為10010001001010。本系統(tǒng)中的I2C總線的尋址方式為的廣播尋址,即AT89C51對掛在I2C總線上所有的DS1621的廣播呼叫尋址。AT89C51發(fā)出開始信號S后的第一個字節(jié)確定由AT89C51所選擇的一個DS1621的地址,然后在第一個字節(jié)以后開始數(shù)據(jù)傳送。具體
25、實現(xiàn)尋址的方法是:由AT89C51發(fā)出啟動位S后緊跟著發(fā)送從器件DS1621的7位地址碼,即S+SLA,在節(jié)點地址尋址中SLA為被尋址的從節(jié)點地址,主控設備在發(fā)送數(shù)據(jù)前,在時鐘為高時,在數(shù)據(jù)線上發(fā)送一個由高到低的信號來表示開始傳送數(shù)據(jù),DS1621 接收到開始信號時,移入后續(xù)8 位(高7 位地址線和一個R/W 位)來確定進行如何操作,R/W 位為0 表示寫,為1 表示讀。讀寫操作完成后,在時鐘為高時,在數(shù)據(jù)線上發(fā)送一個由低到高的信號表示傳送結束。具體數(shù)據(jù)格式如圖3-3所示,時序如圖3-4所示。圖3-3 串行通信的數(shù)據(jù)格式圖3-4 串行通信的時序圖 4.軟硬件調(diào)試結果分析本設計應用Proteus
26、及Keil軟件,首先根據(jù)自己設計的電路圖用Proteus軟件畫出電路模型,關于這個軟件的使用通過查一些資料和自己的摸索學習;然后用Keil軟件對所編寫的程序進行編譯、鏈接,如果沒有錯誤和警告便可生成程序的hex文件,調(diào)試好程序后將目標文件導入Proteus的AT89C51芯片中進行軟件調(diào)試。最后進行三路溫度的對比測試。數(shù)字溫度計的仿真電路圖如圖4-1所示。圖4-1 仿真圖 仿真結果分析:不斷調(diào)整三路DS1621的溫度值,發(fā)現(xiàn)LED顯示器上的數(shù)值和DS1621屏幕上的標準值相差無幾,在誤差允許的范圍之內(nèi)。當某一路的溫度不在50-80范圍時,兩個LED同時發(fā)光,表示告警信息。經(jīng)調(diào)試,證明開發(fā)者最終
27、設計出結構合理、美觀,主要電氣指標良好,性能穩(wěn)定可靠的電路。5.設計總結不知不覺中,一周的課程設計實習已經(jīng)接近尾聲了??赡苁羌倨诳斓降木壒剩偢杏X這次實習特別短暫。此刻,真是感慨萬千??!現(xiàn)在我可以自豪的說,這次實習我達到了預期的目標。因為在實習期間,我每天都在接觸新的東西,每天都會有新的問題等待我去探討去解決,每天都有新收獲?;叵胝n設第一天,我們做點電腦前,不知道自己能干點什么,對于指導老師的講解也是云里霧里的。因為頭一回接觸Proteus和Keil這兩個軟件。但是我相信,只要自己用心了,沒有辦不成的事。于是,我靜下心來,仔細研究老師下發(fā)的教程。我珍惜每一次的上機機會,勤加練習,課下積極研究手
28、冊和相關書籍。兩天過后,才算有點眉目了。到這時心里才算稍微安穩(wěn)了一些,再加上以前學過名為Protel的電路設計軟件,所以我的自信心加強了。在這次設計過程中,體現(xiàn)出自己單獨設計電路的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學習的不足和薄弱環(huán)節(jié),從而加以彌補。在此感謝我們的田紅霞、張國旭老師,老師嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次簡易數(shù)字溫度計設計的每個實驗細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設計。同時感謝對我?guī)?/p>
29、助過的同學們,謝謝你們對我的幫助和支持,讓我感受到同學的友誼。6.參考文獻1肖看.李群芳.單片機原理、接口及應用,清華大學出版社.2010.92樓然苗.單片機課程設計指導.北京:北京航空航天大學出版社.2002. 3孫育才主編,MCS-51系列單片微型計算機及其應用.東南大學出版社附錄A 多點溫度采集系統(tǒng)電路原理圖附錄B C語言源代碼#include "reg51.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned int#define DiSdata P0 /七段
30、碼數(shù)據(jù)輸出口#define discan P2 /掃描數(shù)據(jù)輸出口sbit DIN=P07; /小數(shù)點控制sbit Scl=P30; /串行時鐘sbit Sda=P31; /串行數(shù)據(jù)sbit alarm=P17;sbit alarm2=P16;uint i;uint h; uint temp;uchar dath2; /溫度輸入口uchar ff2,ff1=0,t3=0;uchar code dis_712=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共陰LED段碼表 "0" "1&quo
31、t; "2" "3" "4" "5" "6" "7" "8" "9" "滅" "-" uchar code scan_con5=0xfd,0xfb,0xf7,0xef,0xdf; /LED顯示控制,對應0的LED有效uchar data display5=0x00,0x00,0x00,0x00,0x002; /顯示單元數(shù)據(jù),共6個數(shù)據(jù)和一個運算暫用uchar data display15=0x01
32、,0x02,0x03,0x04,0x052;uchar data DD4=0x90,0x92,0x94; /void delay_us(uint t) /延時函數(shù) for (;t>0;t-); /scan() /LED掃描函數(shù) uchar k; for(k=0;k<5;k+) discan=scan_conk; /控制位送P2口 DiSdata=dis_7displayk; /數(shù)據(jù)位送P0口 if (k=3)DIN=1; else DIN=0; /小數(shù)點顯示 delay_us(150); /void delay(void) /延時函數(shù) _nop_(); _nop_(); _nop_
33、(); _nop_(); _nop_(); _nop_(); /void i_start(void) /開始 Sda=1; Scl=1; delay(); Sda=0; delay(); Scl=0; / void i_stop(void) /終止 Sda=0; Scl=1; delay(); Sda=1; delay(); Scl=0; Sda=0; /bit i_clock(void) /應答信號 bit sample; Scl=1; delay(); sample=Sda; _nop_(); _nop_(); Scl=0; delay(); return(sample); / void
34、i_ack(void) Sda=0; i_clock(); Sda=1; / bit i_send(uchar i_data) /發(fā)送 uchar i; for(i=0;i<8;i+) Sda=(bit)(i_data & 0x80); i_data=i_data<<1; i_clock(); Sda=1; return(i_clock(); / uchar i_receive(void) /I2C接收 uchar i_data=0; uchar i; for(i=0;i<8;i+) i_data<<=1; Scl=0;delay(); Scl=1;
35、delay() ; i_data|=Sda; Scl=0; delay(); return(i_data); / bit start_temperature_T(unsigned char d) /開始轉換命令 uchar t1; t1=DDd; i_start(); if(i_send(t1) if(i_send(0xee) i_stop(); delay(); return(1); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); / bit read_temperature_T(unsigned c
36、har *p,unsigned char d) unsigned char t1,t2; t1=DDd; t2=DDd+0x01; i_start(); if(i_send(t1) if(i_send(0xaa) i_start(); if(i_send(t2) *(p+1)=i_receive(); i_ack(); *p=i_receive(); i_stop(); delay(); i_send(t1); i_send(0x22); delay(); return(1); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); bit ds1621(unsigned char d) unsigned char t1; t1=DDd; i_start(); if(i_send(t1) if(i_send(0xac) i_start(); if(i_send(0x0a) i_stop(); delay(); return(1); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030食品加工及處理設備行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030鉸鏈集裝箱卡車市場前景分析及投資策略與風險管理研究報告
- 2025-2030路由器行業(yè)市場發(fā)展分析及發(fā)展趨勢前景預測報告
- 2025-2030犬類水療跑步機行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030氣壓鉚接機市場發(fā)展分析及行業(yè)投資戰(zhàn)略研究報告
- 2025年竹制牙簽行業(yè)深度研究報告
- 2025年鈦白粉項目投資分析及可行性報告
- 行政管理專業(yè)經(jīng)濟法認知試題及答案
- 畢業(yè)課程設計答辯要點解析
- 項目管理中的績效激勵機制試題及答案
- 2025展覽館裝飾工程合同范本
- 2019-2025年房地產(chǎn)經(jīng)紀協(xié)理之房地產(chǎn)經(jīng)紀操作實務過關檢測試卷B卷附答案
- 初中歷史明清時期的科技與文化 課件 2024-2025學年統(tǒng)編版七年級歷史下冊
- 2025年上半年發(fā)展對象題庫(含答案)
- 大連銀行招聘筆試真題2024
- 輸血管理制度
- 信息必刷卷04(廣東省卷專用)2025年中考數(shù)學(原卷版)
- 膝關節(jié)韌帶損傷護理查房
- GB/T 21196.2-2025紡織品馬丁代爾法織物耐磨性的測定第2部分:試樣破損的測定
- 中國傳統(tǒng)文化-剪紙藝術知到課后答案智慧樹章節(jié)測試答案2025年春石河子大學
- 重慶市2025年中考數(shù)學模擬試題(含答案)
評論
0/150
提交評論