版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、揚州大學能源與動力工程學院課程設計報告題 目: 數(shù)字溫度計的設計 課 程: 單片機原理及應用課程設計 專 業(yè): 電氣工程及其自動化 班 級: 電氣1202班 姓 名: 學 號: 第 一 部 分任務書單片機原理及應用課程設計任務書一、課題名稱硬件設計題目五:數(shù)字溫度計的設計二、課程設計目的課程設計是課程教學中的一項重要內(nèi)容,是達到教學目標的重要環(huán)節(jié),是綜合性較強的實踐教學環(huán)節(jié),它對幫助學生全面牢固地掌握課堂教學內(nèi)容、培養(yǎng)學生的實踐和實際動手能力、提高學生全面素質(zhì)具有很重要的意義。單片機原理及應用是一門理論性、實用性和實踐性都很強的課程,課程設計環(huán)節(jié)應占有更加重要的地位。單片機原理及應用課程設計的
2、目的是讓學生在理論學習的基礎上,通過完成一個涉及MCS-51單片機多種資源應用并具有綜合功能的小系統(tǒng)目標板的設計與編程應用,使學生不但能將課堂上學到的理論知識與實際應用結(jié)合起來,而且能進一步加深對電子電路、電子元器件等知識的認識與理解,同時在軟件編程、排錯調(diào)試、相關軟件和儀器設備的使用技能等方面得到較全面的鍛煉和提高。為今后能夠獨立進行某些單片機應用系統(tǒng)的開發(fā)設計工作打下一定的基礎。通過單片機硬件和軟件設計、調(diào)試、整理資料等環(huán)節(jié)的培訓,使學生初步掌握工程設計方法和組織實踐的基本技能,逐步熟悉開展科學實踐的程序和方法。三、課程設計內(nèi)容設計以89C51單片機和外圍元器件構成的單片機應用系統(tǒng),并完成
3、相應的軟硬件調(diào)試。1. 系統(tǒng)方案設計:綜合運用單片機課程中所學到的理論知識,學生根據(jù)所選課題的任務、要求和條件進行總體方案的設計。2. 硬件電路設計:對方案中以單片機為核心的電路進行設計計算,包括元器件的選擇和電路參數(shù)的計算,并畫出總體電路圖。3. 軟件設計:根據(jù)已設計出的軟件系統(tǒng)框圖,用匯編語言或C51編制出各功能模塊的子程序和整機軟件系統(tǒng)的主程序。4. 調(diào)試:在單片機周立功實驗箱上進行相關設計并調(diào)試。四、課程設計要求1. 學習DS18B20功能與使用方法;2. 每秒采集一次溫度并在LED上顯示;3. 具有顯示最高與最低溫度的功能;4. 設計硬件原理圖;5. 編寫程序。五、進度安排序號內(nèi)容天
4、數(shù)1布置任務,熟悉課題要求0.52總體方案確定,硬件電路設計1.53軟件編程1.54在周立功實驗箱上調(diào)試25總結(jié),撰寫課程設計報告1.5七、課程設計報告內(nèi)容:總結(jié)設計過程,寫出設計報告,設計報告具體內(nèi)容要求如下:1課程設計的目和設計的內(nèi)容。2課程設計的要求。3控制系統(tǒng)總框圖及系統(tǒng)工作原理。4控制系統(tǒng)的硬件電路連接圖,電路的原理。 5軟件設計流程圖及其說明。6電路設計,軟件編程、調(diào)試中遇到的問題及分析解決方法。7實驗結(jié)果及其分析。8體會。第 二 部 分課程設計報告 目 錄1課題簡介11.1目的11.2任務11.3要求12方案設計12.1總體設計12.2設計思路12.3工作原理23硬件電路設計23
5、.1主控電路設計23.2顯示電路設計23.3溫度采集電路設計34系統(tǒng)軟件編輯設計64.1系統(tǒng)軟件設計流程圖64.2單總線軟件設計64.3 I2C總線軟件設計65實驗與結(jié)果分析85.1系統(tǒng)結(jié)果顯示85.2實驗注意事項86小結(jié)與體會9參考文獻10附錄105數(shù)字溫度計的設計 1 課題簡介1.1 目的: 熟練掌握單總線方式器件DS18B20的應用,熟悉I2C總線協(xié)議,學習I2C器件ZLG7290的使用方法。并能把它們結(jié)合,組成數(shù)字式溫度計。 1.2 任務: 設計一個數(shù)字溫度計1.3 要求: 1. 學習DS18B20功能與使用方法; 2. 每秒采集一次溫度并在LED上顯示; 3. 具有顯示最高與最低溫度
6、的功能; 4. 設計硬件原理圖; 5. 編寫程序。2 方案設計2.1 總體設計MCUAT89C51ZLG7290顯示控制DS18B20溫度采集數(shù)碼管顯示 圖1 系統(tǒng)框圖 2.2 設計思路系統(tǒng)在溫度采集時主要應用了DS18B20芯片,該器件經(jīng)過初始化后單片機首先進行ROM匹配,當收到測溫器件發(fā)回的信號時證明該器件正常工作,接著單片機發(fā)送溫度轉(zhuǎn)換命令進行溫度采集,測溫的精確度很高。設計中還應用了ZLG7290芯片進行數(shù)碼管顯示的驅(qū)動,一共應用了6位數(shù)碼管。是報警比較判斷溫度值溫度值顯示溫度采集 否 圖2 設計思路2.3工作原理 如圖1所示基于單總線和I2C結(jié)合的溫度采集與報警控制系統(tǒng)框圖。系統(tǒng)利用
7、單片機做主控制器,驅(qū)動基于單總線的溫度傳感器DS18B20和基于I2C總線的ZLG7290數(shù)碼管顯示控制器,溫度傳感器DS18B20負責采集實時溫度值,ZLG7290作為顯示數(shù)碼管的驅(qū)動芯片,當采集到的溫度值大于40度或小于10度時,數(shù)碼管進行頻閃顯示報警。單片機完成對溫度的檢測,實現(xiàn)安全溫度內(nèi)正常顯示溫度值,超出設定的溫度上下限進行頻閃報警。 3 硬件電路設計3.1 主控電路設計本系統(tǒng)采用AT89C51單片機作為主控制器。AT89C51是一種帶4K字節(jié)FLASH存儲器的低電壓、高性能CMOS 8位微處理器,是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦
8、除1000次。AT89C51 提供以下標準功能:4k 字節(jié)Flash 閃速存儲器,128字節(jié)內(nèi)部RAM,32 個I/O 口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構,一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。設計電路如圖:3.2顯示電路設計 顯示電路采用兩只6位共陰LED數(shù)碼管和數(shù)碼管的驅(qū)動芯片ZLG7290。3.2.1 四位數(shù)碼管 圖
9、3 數(shù)碼管的外形尺寸圖3 數(shù)碼管的引腳排布注:管腳順序:從數(shù)碼管的正面看,以第一引腳為起點,管腳的順序是逆時針排列的。 A-11 B-7 C-4 D-2 E-1 F-10 G-5 DP-33.2.2 數(shù)碼管的驅(qū)動芯片ZLG7290 ZLG7290的核心是一塊ZLG7290B芯片,它采用I2C接口,能直接驅(qū)動8位共陰式數(shù)碼管,同時可掃描管理多達64只按鍵,實現(xiàn)人機對話的功能資源十分豐富。除具有自動消除抖動功能外,它還具有段閃爍、段點亮、段熄滅、功能鍵、連擊鍵計數(shù)等強大功能,并可提供10種數(shù)字和21種字母的譯碼顯示功能,用戶可以直接向顯示緩存寫入顯示數(shù)據(jù),而且無需外接元件即可直接驅(qū)動數(shù)碼管,還可擴
10、展驅(qū)動電壓和電流。此外,ZLG7290B的電路簡單,使用也很方便。用戶按下某個鍵時,ZLG7290的INT引腳會產(chǎn)生一個低電平的中斷請求信號,讀取鍵值后,中斷信號就會自動撤銷。正常情況下,微控制器只需要判斷INT引腳就可以得到鍵盤輸入的信息。微控制器可通過兩種方式得到用戶的鍵盤輸入信息。其一是中斷方式,該方式的優(yōu)點是抗干擾能力強,缺點是要占用微控制器的一個外部中斷源。其二是查詢方式,即通過不斷查詢INT引腳來判斷是否有鍵按下,該方式可以節(jié)省微控制器的一根I/O口線,但是代價是I2C總線處于頻繁的活動狀態(tài),消耗電流多并且不利于抗干擾。由于采用了I2C總線接口,因而用ZLG7290與微控制器設計電
11、力儀表的硬件電路連接非常簡單。它只需要兩根信號線(一根數(shù)據(jù)線SDA,一根時鐘信號線SCL)。但應注意進行I2C通信的雙方要共地,并應用,INT傳遞鍵盤中斷信號。微控制器通過RST可以將ZLG7290復位。設計電路如圖:3.3溫度采集電路設計 DS18B20是常用的溫度傳感器,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。 DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度
12、系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應的一個基數(shù)分別置入減法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預置在55所對應的一個基數(shù)值。減法計數(shù)器對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器的預置值減到時,溫度寄存器的值將加,減法計數(shù)器的預置將重新被裝入,減法計數(shù)器重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。表
13、1一部分溫度對應值表溫度/二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1
14、001 0000FC90H另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。3.3.1 DS18B20詳細引腳功能描述 見下表。 序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。3.3.2 通信過程:(1)主機拉低單總線至少480us產(chǎn)生復位脈沖;(2)主機釋放單總線,進入接收模式,釋放時
15、產(chǎn)生上升沿;(3)單總線器件檢測到上升沿,延時15-60us;(4)單總線器件通過拉低總線60-240us來產(chǎn)生應答脈沖;(5)主機接受應答信號,對從機ROM進行命令和功能命令操作; 所有讀寫時序至少60us,兩個獨立的時序間至少1us回復時間。3.3.3 DS18B20的基本參數(shù) DS18B20的64位ROM的結(jié)構開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性
16、的可電擦除的EERAM。高速暫存RAM的結(jié)構為8字節(jié)的存儲器,結(jié)構如圖4所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC 圖3 DS
17、18B20字節(jié)定義高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2是一部分溫度值對應的二進制溫度數(shù)據(jù)。 DS18B
18、20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若TTH或TTL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。當DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。設計電路如圖:4系統(tǒng)軟
19、件編程設計4.1 系統(tǒng)軟件設計流程圖啟動系統(tǒng)初始化初始化跳過ROM發(fā)出溫度轉(zhuǎn)換命令并讀取溫度值顯示溫度值溫度是否大于40度或者小于10度否是報警4.2 單總線軟件設計系統(tǒng)上電先初始化DS18B20,然后判斷芯片是否存在,對芯片操作命令進行寫入,然后出去溫度值,讀取后返回采集到的溫度值。4.3 I2C總線軟件設計 I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號, 它們分別是:開始信號、結(jié)束信號和應答信號。 開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。 結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)
20、送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應答信號,CPU接收到應答信號后,根據(jù)實際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應答信號,由判斷為受控單元出現(xiàn)故障。 這些信號中,起始信號是必需的,結(jié)束信號和應答信號,都可以不要。I2C一幀完整數(shù)據(jù)傳送開始開始初始化I2C總線參數(shù)初始化DS18B20存在?否Start是寫入設備起始地址找到當前地址STOPROM操作命令存儲操作命令是否發(fā)送成功讀取溫度值發(fā)送7位數(shù)據(jù)STOP返回是否發(fā)送成功圖4 DS18B20軟件設計框圖發(fā)送其他數(shù)據(jù)或地址I2C一幀完整數(shù)據(jù)傳送完畢 圖5 I2C總線軟件設計框圖
21、5 實驗與結(jié)果分析5.1 系統(tǒng)結(jié)果顯示硬件環(huán)境:DP-51PRO.NET單片機綜合仿真實驗臺。軟件環(huán)境:PC及Keil等軟件。通過DS18B20采集溫度后顯示在數(shù)碼管上(2位整數(shù)、4位小數(shù)),可在程序中任意設定報警上下限溫度,一旦超過上下限溫度,數(shù)碼管頻閃發(fā)出報警,當溫度回落,數(shù)碼管頻閃停止。5.2 實驗注意事項:1、硬件調(diào)試或運行的運行的時候打開電源,不要保持電源的常開狀態(tài),以免實驗箱運行時間過長燒壞。2、Debug時,需關掉DPflash,否則調(diào)試時開發(fā)環(huán)境報錯。6 小結(jié)與體會隨著時代的不斷發(fā)展,科技的不斷進步,單片機在我們的生活和以后的工作中是經(jīng)常用到的,所以學好它對我們來說是非常重要的
22、。本次的課程設計就是讓我們通過單片機來實現(xiàn)生活中的某一種功能,分為程序編輯和硬件實現(xiàn)兩個方面。我此次的課題是實現(xiàn)數(shù)字溫度計的實現(xiàn)。首先,在拿到課題后,我們需要上網(wǎng)查詢相關資料,對網(wǎng)上資料進行整合和對課設中用到的器件進行了解和學習。本次課設我用到了溫度傳感器DS18B20和數(shù)碼管等器件。在網(wǎng)上查詢了DS18B20的使用程序,并理解其含義。從網(wǎng)上參考相關課題的程序在Keil軟件中進行運行,理解其運行各步驟的含義并且借鑒到自己的程序中。在程序編寫完畢后,再到試驗箱中運行看是否能實現(xiàn)數(shù)字溫度計的功能。在試驗過程中,要對器件的引腳熟悉確定后再接入實驗電路中,經(jīng)過多次實驗,最終終于顯示了當前的溫度值。在手
23、動改寫了程序的溫度上下限報警值后也實現(xiàn)了頻閃報警的功能。本次課設既考驗了我們對相關軟件的學習和應用是否到位,又考驗了我們的單片機知識的掌握程度和動手能力。要實現(xiàn)數(shù)字溫度計的功能,程序是相當復雜的!在前期編寫程序的過程中,我就遇到了很大的困難。程序很復雜,要讀懂程序需要耗費很長的時間,還要對器件有足夠的了解。比如對于DS18B20,實現(xiàn)不同的功能其需要的準備時間就不同,所以在程序會出現(xiàn)很多的空操作來達到延時的目的。我在剛開始時就不是很了解,所以對于這樣的程序編輯表示很不理解,直到我的組員給我提醒后,我才恍然大悟。所以此次課設還考驗了我的耐心和細心程度。在一句一句程序的摸索和相關時序表的學習中,經(jīng)
24、過兩天的程序理解和編輯,我終于搞懂了程序部分,然后就開始運用Keil軟件進行仿真。先是在試驗箱上對正確的引腳進行連接,然后運行。剛開始時會有失誤,比如引腳連接不對或者有些引腳不知道要連接,經(jīng)過多次的嘗試,最后終于成功了!我覺得經(jīng)過這次課設,我的單片機知識更加充實和穩(wěn)固了。以前對一些命令因為使用不多,所以不夠熟悉,經(jīng)過這次課設也變得熟悉了,還有Keil軟件也能熟練使用了。其次,我對器件的引腳和使用更加熟悉了。為了實現(xiàn)相應的功能,我把課設要用到的器件引腳的功能每個都進行了了解,還有相應時序表的學習都讓我對器件的使用更加得心應手,而不再是拘泥于書本的學習,正所謂實踐出真知,真是一點不假。還有,這次課
25、設極大的考驗了我的細心和耐心,在面對復雜無比的程序要一句一句的弄懂其含義和先后功能的實現(xiàn),還要在一次次的失敗之后不氣餒,重新開始一次次的實驗!在最開始確實很折磨人,可當你發(fā)現(xiàn)大家都在為各自的任務而奮斗,不拋棄,不放棄,一次次的實踐直到成功的到來。在成功的那一刻,那滿腔的滿足感是無法言喻的!最后,我要感謝我的老師夏老師和組員袁同學對我的幫助!在我遇到困難無法進行下去時,是你們給予了我?guī)椭;蛘呤且痪涑绦虻牟欢蛘呤钦{(diào)試不出正確結(jié)果,感謝你們耐心的給我講解,讓我在一次次調(diào)試中,最終能取得成功。所以說人是群居動物,無論在生活或者工作中,很多時候都需要和別人的交流和合作來達到相應的目的,就像這次的課
26、程設計,如果我遇到了困難而一味自己瞎琢磨,這樣不僅浪費了大量時間和精力,而且還可能得不得正確結(jié)果。所以在遇到自己難以解決的問題時,要敢于尋求他人的幫助,互助互惠才是最好的生活方式!我相信經(jīng)過這次課設,我不僅更加牢固的掌握了單片機的知識和和相關軟件的應用,也鍛煉了自己的實踐能力,相信在未來的日子里,無論遭遇失敗或成功,我都會繼續(xù)進步,繼續(xù)成長,為將來的工作奠定一個好的基礎!參 考 文 獻1 張毅剛主編,單片機原理及應用,北京:高等教育出版社,20042 陳濤編著,單片機應用及C51程序設計,北京:機械工業(yè)出版社,20083 周潤景主編,PROTEUS入門實用教程,北京:機械工業(yè)出版社,20074
27、 皮大能主編,單片機課程設計指導書,北京:北京理工大學出版社,2010附錄;*;設置DS18B20端口參數(shù);* THI_WARNING EQU 40H TLI_WARNING EQU 41H TEMPER_FLAG EQU 42H ;溫度符號位數(shù)據(jù)保存區(qū) TEMPER_POINT EQU 43H ;溫度小數(shù)部分數(shù)據(jù)保存區(qū) TEMPER EQU 44H ;溫度整數(shù)部分數(shù)值保存區(qū) TEMPER_H EQU 45H ;溫度整數(shù)部分高位數(shù)值保存區(qū) TEMPER_L EQU 46H ;溫度整數(shù)部分低位數(shù)值保存區(qū) TI_SHOW EQU 47H ;十進制溫度整數(shù)部分數(shù)值保存區(qū) T_SAVE EQU 48H
28、 TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT P3.3;*;設置ZLG7290端口參數(shù);* SDA BIT P3.0 SCL BIT P3.1 WSLA EQU 70H RSLA EQU 71H DISDA EQU 20H DISCON EQU 08H;* ORG 8000H LJMP 8100H;*;初始化部分;* ORG 8100H MOV SP,#60H CLR P3.6 LCALL DELAY SETB P3.6;*;設置報警上下限值;* MOV THI_WARNING,#40 MOV TLI_WARNING,#10;*;主程序部分;*LP1: LC
29、ALL GET_TEMPER ;從DS18B20讀取溫度數(shù)據(jù) LCALL TEMPER_COV ;轉(zhuǎn)換讀取的溫度整數(shù)、符號位和小數(shù)部分數(shù)據(jù)并保存 LCALL DATA_PRO ;數(shù)碼管顯示前對要顯示數(shù)據(jù)的相關處理 LCALL LEDSHOW ;數(shù)碼管顯示程序 MOV A,TEMPER CJNE A,TLI_WARNING,WAR ;判斷溫度值是否低于報警下限值,低于則報警,不低于則判斷WAR: JNC LOOP10 ;是否大于報警上限值 LCALL TWINKLE SJMP LP1LOOP10: CJNE A,THI_WARNING,WAR1 ;判斷溫度值是否低于報警下限值,低于則報警,不低于
30、則跳轉(zhuǎn)WAR1: JC LP2 LCALL TWINKLE SJMP LP1LP2: LCALL NOTWINKLE ;對ZLG7290寫入不閃爍控制字 LJMP LP1;*;獲取DS18B20溫度值子程序;*GET_TEMPER:SETB DQ ; 定時入口BCD: LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ; 若DS18B20不存在則返回S22: LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配-0CC LCALL WRITE_1820 MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL DELAY
31、 CBA: LCALL INIT_1820 JB FLAG1,ABC LJMP CBAABC: LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 RET;-寫DS18B20的程序WRITE_1820: MOV R2,#8 ;寫一個字節(jié)的數(shù)據(jù) CLR CWR1: CLR DQ MOV R3,#6 DJNZ R3,$ ;延時 RRC A ;帶進位的右移 MOV DQ,C MOV R3,#23 DJNZ R3,$ ;延時 SETB DQ
32、 NOP DJNZ R2,WR1 SETB DQ RET;-讀DS18B20的程序,從DS18B20中讀出二個字節(jié)的數(shù)據(jù)READ_18200: MOV R4,#2 ;讀出兩個字節(jié)的數(shù)據(jù) MOV R1,#46HRE00:MOV R2,#8RE01:CLR CSETB DQNOPCLR DQNOPNOP ;空操作延時以達到DS18B20可以讀的狀態(tài)SETB DQMOV R3,#2DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC A DJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;*;DS18B20溫度值提取整數(shù)部分、符號位和小數(shù)部分
33、的子程序;*TEMPER_COV:MOV A,#0F0H ;數(shù)據(jù)省略低四位ANL A,TEMPER_LSWAP A ;交換高低半字節(jié)的數(shù)據(jù)MOV TEMPER_NUM,AMOV A,TEMPER_HANL A,#07H ;只保留高字節(jié)中的低三位數(shù)據(jù)SWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,AMOV TEMPER,TEMPER_NUMMOV A,#0FH ;只保留低四位數(shù)據(jù)ANL A,TEMPER_LSWAP AMOV TEMPER_POINT,AMOV A,TEMPER_HANL A,#08H SWAP AMOV TEMPER_FLAG,ARET;整數(shù)和小數(shù)的位
34、偏移數(shù)據(jù)存儲;*;30H37H為數(shù)據(jù)存儲區(qū),其中30H-33H為小數(shù)值;34H-35H為整數(shù)值,36H為百位值,37H為符號位值;*DATA_PRO: MOV 37H,#0AH MOV A,TEMPER_FLAG ;把標志位的值給A JZ POSITIVE MOV A,TEMPER CPL A ANL A,#7FH ;保留低7位 ADD A,#01H MOV TEMPER,A MOV 37H,#0BHPOSITIVE: MOV A,TEMPER CJNE A,64H,SETHUNDREDBIT ;條件轉(zhuǎn)移SETHUNDREDBIT: JC SETHUNDREDBIT1SUBB A,#64HMO
35、V TEMPER,A MOV 36H,#01H SJMP SET1SETHUNDREDBIT1: MOV 36H,#00HSET1: MOV A,TEMPER MOV B,#10 DIV AB ;A除以B,商存放在A中,余數(shù)存放在B中 MOV 34H,B MOV 35H,A MOV A,TEMPER_POINT CLR C RLC A ;數(shù)據(jù)左移 SWAP A RR A ;不帶進位的右移 JNZ POINT1 ;不為0則跳轉(zhuǎn)到POINT1 MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H SJMP SHOW POINT1: DEC A ;小
36、數(shù)數(shù)據(jù)的輸入 JNZ POINT2 MOV 30H,#05H ;堆棧區(qū)數(shù)據(jù)不斷修改 MOV 31H,#02H MOV 32H,#06H MOV 33H,#00H SJMP SHOWPOINT2: DEC A JNZ POINT3 MOV 30H,#00H MOV 31H,#05H MOV 32H,#02H MOV 33H,#01H SJMP SHOWPOINT3: DEC A JNZ POINT4 MOV 30H,#05H MOV 31H,#07H MOV 32H,#08H MOV 33H,#01H SJMP SHOWPOINT4: DEC A JNZ POINT5 MOV 30H,#00H
37、MOV 31H,#00H MOV 32H,#05H MOV 33H,#02H SJMP SHOWPOINT5: DEC A JNZ POINT6 MOV 30H,#05H MOV 31H,#02H MOV 32H,#06H MOV 33H,#00H SJMP SHOWPOINT6: DEC A JNZ POINT7 MOV 30H,#00H MOV 31H,#05H MOV 32H,#07H MOV 33H,#03H SJMP SHOWPOINT7: MOV 30H,#05H MOV 31H,#07H MOV 32H,#03H MOV 33H,#04HSHOW: JNC SHOW1 MOV A
38、,33H ADD A,#05H MOV 33H,ASHOW1: RET ;*;ZLG7290數(shù)據(jù)顯示部分子程序;* LEDSHOW: PUSH 00H ;堆棧 PUSH 01H PUSH 02H PUSH 03H PUSH 07H MOV DPTR,#LEDSEG CLR A MOV R7,#08H MOV R0,#20H MOV R1,#30HLOOP1: MOV A,R1 MOVC A,A+DPTR ;查表依次輸入 MOV R0,A INC R1 INC R0 DJNZ R7,LOOP1 MOV A,24H ADD A,#01H MOV 24H,ALOOP: MOV R7,#08H MOV R0,#20H MOV R2,#10H MOV R3,#WSLA LCALL WRNBYT LCALL DELAY0 POP 07H POP 03H POP 02H POP 01H POP 00H RET ;* ;延時子程序DELAY0:PUSH 00H PUSH 01H MOV R0,#00HDELAY2:MOV R1,#00H DJNZ R1,
溫馨提示
- 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年代理合同簽署注意事項
- 2025年商業(yè)合作形象授權代理服務協(xié)議
- 二零二五版商業(yè)地產(chǎn)買賣合同附帶抵押權登記0023篇
- 2025年高校與企業(yè)聯(lián)合培養(yǎng)協(xié)議教授合作協(xié)議9篇
- 二零二五年度出口合同模板(含出口貨物倉儲與物流服務)4篇
- 2025年度裝配式建筑構件生產(chǎn)與施工合同范本4篇
- 2025版水電安裝工程新能源并網(wǎng)服務合同集錦3篇
- 二零二五版零擔運輸合同物流數(shù)據(jù)安全保護合同4篇
- 二零二五版路演車輛租賃與后勤保障合同4篇
- 二零二五年度家族財產(chǎn)管理及子女成長支持協(xié)議
- (一模)臨汾市2025年高考考前適應性訓練考試(一)語文試卷(含答案)
- 2024-2025學年滬科版數(shù)學七年級上冊期末綜合測試卷(一)(含答案)
- 2023年廣東省公務員錄用考試《行測》真題及答案解析
- 2024年公證遺產(chǎn)繼承分配協(xié)議書模板
- 燃氣經(jīng)營安全重大隱患判定標準課件
- 深圳小學英語單詞表(中英文)
- 護理質(zhì)量反饋內(nèi)容
- 抖音搜索用戶分析報告
- 鉆孔灌注樁技術規(guī)范
- 2023-2024學年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學設計
- 供貨進度計劃
評論
0/150
提交評論