




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程考核答題冊(cè)課程名稱自動(dòng)檢測(cè)與轉(zhuǎn)換技術(shù)課程性質(zhì)院(部)物電學(xué)院專業(yè)電子聲像學(xué)號(hào) 8 培琳年級(jí) 2010級(jí)班一班層次本科學(xué)年 2012-2013 學(xué)期 2 成績(jī)?cè)u(píng)定表序號(hào)評(píng)語(yǔ)得分總成績(jī)?cè)u(píng)卷人19 / 22基于DS18B20的數(shù)字溫度計(jì)的設(shè)計(jì)摘要本設(shè)計(jì)以AT89C51單片機(jī)為核心的溫度控制系統(tǒng)的工作原理和設(shè)計(jì)方法。溫度信號(hào)由溫度芯片DS18B20采集,并以數(shù)字信號(hào)的方式傳送給單片機(jī),再由單片機(jī)將信號(hào)通過(guò)數(shù)碼管顯示出來(lái),并有報(bào)警提示功能。報(bào)告中介紹了該控制系統(tǒng)的硬件部分,包括:溫度檢測(cè)模塊、溫度控制模塊、顯示模塊和報(bào)警模塊。單片機(jī)通過(guò)對(duì)信號(hào)進(jìn)行相應(yīng)處理,從而實(shí)現(xiàn)溫度控制的目的。報(bào)告中還重點(diǎn)介紹了軟
2、件設(shè)計(jì)部分,在這里采用模塊化結(jié)構(gòu),主要模塊有:數(shù)碼管顯示程序、鍵盤(pán)掃描與按鍵處理程序、溫度信號(hào)處理程序。關(guān)鍵詞:AT89C51單片機(jī) DS18B20溫度芯片溫度控制串口通訊目錄摘要1緒論11.1課題研究的背景和意義11.2本設(shè)計(jì)的主要要求12系統(tǒng)總體設(shè)計(jì)方案22.1系統(tǒng)方案選擇22.2整體電路設(shè)計(jì)23硬件系統(tǒng)方案設(shè)計(jì)33.1DS18B20溫度傳感器33.2DS18B20供電方式43.3DS18B20測(cè)溫原理43.4復(fù)位電路模塊43.5顯示電路模塊53.6按鍵電路模塊54軟件設(shè)計(jì)65系統(tǒng)調(diào)試86分析97結(jié)論9參考文獻(xiàn):9附錄A10附錄B10程序代碼:10基于DS18B20的數(shù)字溫度計(jì)的設(shè)計(jì)1 緒
3、論1.1 課題研究的背景和意義溫度是工業(yè)生產(chǎn)過(guò)程中最普遍、最重要日常檢測(cè)參數(shù)之一。任何物理變化和化學(xué)變化的過(guò)程都與溫度密切相關(guān)。溫度檢測(cè)和控制都直接與安全生產(chǎn)、節(jié)約能源等技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。溫度測(cè)量在工業(yè)、民用、軍事等領(lǐng)域占著重要的地位,航空、家電、科研等領(lǐng)域都需要溫度測(cè)試設(shè)備,用于測(cè)試和確定電工、電子與其它產(chǎn)品與材料進(jìn)行高溫、低溫、交變溫度或恒定試驗(yàn)的溫度環(huán)境的變化,判斷當(dāng)檢測(cè)目標(biāo)的溫度值達(dá)到警示條件時(shí)發(fā)出警告信號(hào)。常用的控制電路根據(jù)應(yīng)用場(chǎng)合和所要求的性能指標(biāo)有所不同,在工業(yè)企業(yè)中,如何提高溫度控制對(duì)象的運(yùn)行性能一直以來(lái)都是控制人員和現(xiàn)場(chǎng)技術(shù)人員努力解決的問(wèn)題。這類控制對(duì)象慣性大,滯后現(xiàn)象嚴(yán)
4、重,存在很多不確定的因素,難以建立精確的數(shù)學(xué)模型,從而導(dǎo)致控制系統(tǒng)性能不佳,甚至出現(xiàn)控制不穩(wěn)定、失控現(xiàn)象。傳統(tǒng)的繼電器調(diào)溫電路簡(jiǎn)單實(shí)用,但由于繼電器動(dòng)作頻繁,可能會(huì)因觸點(diǎn)不良而影響正常工作??刂祁I(lǐng)域還大量采用傳統(tǒng)的PID控制方式,但PID控制對(duì)象的模型難以建立,并且當(dāng)擾動(dòng)因素不明確時(shí),參數(shù)調(diào)整不便仍是普遍存在的問(wèn)題。而采用數(shù)字溫度傳感器DS18B20,因其部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡(jiǎn)單,而且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,使得測(cè)量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個(gè)引腳即可與單片機(jī)進(jìn)行通信,大大減少了接線的麻煩,使得單片機(jī)更加具有拓展性。由于DS18B20芯片的小型化
5、,更加可以通過(guò)單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實(shí)用性。更能串接多個(gè)數(shù)字溫度傳感器DS18B20進(jìn)行圍的溫度檢測(cè)。1.2 本設(shè)計(jì)的主要要求(1) 測(cè)量溫度圍:-50150;(2) 精度:±0.5;(3) 線性度:±0.3;(4) 超限報(bào)警功能;(5) 具有溫度和時(shí)間顯示功能;(6) 工作電壓:總線供電。2 系統(tǒng)總體設(shè)計(jì)方案2.1 系統(tǒng)方案選擇方案一:采用純硬件的閉環(huán)控制系統(tǒng)。方案二:測(cè)溫電路的設(shè)計(jì),可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片
6、機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái)。方案三:考慮使用數(shù)字溫度傳感器,結(jié)合單片機(jī)電路設(shè)計(jì),采用一只DS18B20溫度傳感器,直接讀取被測(cè)溫度值,之后進(jìn)行轉(zhuǎn)換,依次完成設(shè)計(jì)要求。方案比較:方案一優(yōu)點(diǎn)在于速度較快,但可靠性比較差控制精度比較低、靈活性小、線路復(fù)雜、調(diào)試、安裝都不方便,且要實(shí)現(xiàn)題目所有的要求難度較大。方案二采用模擬溫度傳感器,數(shù)據(jù)處理麻煩,且容易產(chǎn)生信號(hào)失真。方案三可以只用一根線實(shí)現(xiàn)信號(hào)的雙向傳輸,具有接口簡(jiǎn)單容易擴(kuò)展等優(yōu)點(diǎn)。DS18B20可以直接溫度轉(zhuǎn)換為串行數(shù)字信號(hào),供單片機(jī)進(jìn)行處理,具有低功耗、商性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。比較以上三種方案,很容易看出,采用方
7、案三,電路比較簡(jiǎn)單,軟件設(shè)計(jì)容易實(shí)現(xiàn),故實(shí)際設(shè)計(jì)中擬采用方案三。2.2 整體電路設(shè)計(jì)溫度傳感器 DS18B20從設(shè)備環(huán)境中采集溫度,單片機(jī)獲取采集的溫度值,經(jīng)處理后得到當(dāng)前環(huán)境中一個(gè)比較穩(wěn)定的溫度值,再根據(jù)當(dāng)前設(shè)定的溫度值,通過(guò)加熱和冷卻對(duì)當(dāng)前溫度進(jìn)行調(diào)整。采集到的溫度數(shù)據(jù)傳輸?shù)絾纹瑱C(jī),由單片機(jī)處理后的數(shù)據(jù)送顯示部分顯示,當(dāng)采集的溫度經(jīng)處理后低于設(shè)定溫度的下限或高于設(shè)定溫度的上限時(shí),單片機(jī)控制報(bào)警電路相應(yīng)的發(fā)光二極管發(fā)光顯示。本次設(shè)計(jì)的整體電路圖見(jiàn)附錄。溫度傳感器單片機(jī)鍵盤(pán)控制復(fù)位電路顯示電路報(bào)警電路電源電路圖2.1溫度計(jì)電路總體設(shè)計(jì)框圖3 硬件系統(tǒng)方案設(shè)計(jì)3.1 DS18B20溫度傳感器DS
8、18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能抗干擾能力、強(qiáng)易配處理器等優(yōu)點(diǎn),特別適合用于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理,且在同一總線上可以掛接多個(gè)傳感器芯片,它具有三引腳T0-92小體積封裝形式,溫度測(cè)量-55+125,可編程為912位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生,多個(gè)DS18B20可以并聯(lián)到三根或者兩根線上,CPU只需一根端口線就能與多個(gè)DS18B20通信,占用微處理器的端口較少,可省大量的引線和邏輯電路。
9、從而可以看出DS18B20可以非常方便的被用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。綜上,在本系統(tǒng)中采用溫度芯片DS18B20測(cè)量溫度。該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,且此元件線形較好。在0-100攝氏度時(shí),最大線形偏差小于l攝氏度,該芯片直接向單片機(jī)傳輸數(shù)字信號(hào),便于單片機(jī)處理與控制。圖3.1 溫度芯片DS18B20 圖3.2 DS18B20引腳圖3.2 DS18B20供電方式在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是用寄生電源供電,此時(shí)VCC、GND接地,I/O接單片機(jī)I/O如圖3.3所示;另一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連如圖3.4所示。無(wú)
10、論是部寄生電源還是外部供電,I/O口線要接5K左右的上拉電阻。圖3.3寄生電源方式圖3.4外接電源方式本設(shè)計(jì)中,采用第二種方法,這樣簡(jiǎn)化硬件電路設(shè)計(jì),降低了整個(gè)系統(tǒng)的復(fù)雜度。3.3 DS18B20測(cè)溫原理當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625 形式表示。溫度值格式如圖3.5所示。圖3.5 溫度值格式3.4 復(fù)位電路模塊復(fù)位電路有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的
11、,只要電源VCC的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與VCC電源接通而實(shí)現(xiàn)的,而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的。本系統(tǒng)的復(fù)位電路采用上電復(fù)位方式。復(fù)位電路圖如圖3.6所示:圖3.6 復(fù)位電路3.5 顯示電路模塊本電路主要使用八段數(shù)碼管HD7279和移位寄存器芯片。單片機(jī)通過(guò)數(shù)據(jù)總線將要顯示的數(shù)據(jù)信號(hào)傳送到移位寄存器芯片,再由移位寄存器控制數(shù)碼管的顯示,從而實(shí)現(xiàn)移位寄存點(diǎn)亮數(shù)碼管顯示。由于單片機(jī)的時(shí)鐘頻率較高,移位寄存器的移位速度相當(dāng)快,所以我們根本看不
12、到數(shù)據(jù)是一位一位傳輸?shù)?。從人類視覺(jué)的角度上看,就仿佛是全部數(shù)碼管同時(shí)顯示的一樣。圖3.7顯示電路3.6 按鍵電路模塊利用單片機(jī)的IO口實(shí)現(xiàn)按鍵的中斷輸入。另外需要一個(gè)與門實(shí)現(xiàn)與中斷端口的連接。按鍵電路如圖3.8所示。圖3.8 按鍵電路4 軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)主要包括系統(tǒng)程序和控制流程圖,根據(jù)整個(gè)系統(tǒng)要求的溫度測(cè)量與控制寫(xiě)出系統(tǒng)的控制流程圖,然后進(jìn)行編程。開(kāi)始DS18B20初始化DS1302初始化HD7279初始化按鍵調(diào)用顯示溫度函數(shù)鍵值是1鍵值是2鍵值是3報(bào)警調(diào)用顯示時(shí)間函數(shù)溫度在2030中結(jié)束在19范圍內(nèi)循環(huán),數(shù)字加1待修改的數(shù)字右移,指針加1顯示時(shí)間鍵值是4鍵值是2鍵值是3按鍵鍵盤(pán)中斷服務(wù)
13、子程序:自定義中斷標(biāo)志置一顯示鍵值掃描鍵值開(kāi)始結(jié)束溫度顯示模塊流程圖:開(kāi)始DS18B20初始化HD7279初始化延時(shí)讀出DS18B20數(shù)據(jù),并寫(xiě)入HD7279的輸入緩沖區(qū)顯示溫度值按方式1譯碼延時(shí)10個(gè)10ms設(shè)置DIG0DIG3顯示,DIG4DIG7消隱時(shí)間顯示模塊流程圖:開(kāi)始DS1302初始化譯碼后顯示時(shí)間讀日期和時(shí)間到輸出緩沖區(qū)給輸入緩沖正負(fù)賦初值5 系統(tǒng)調(diào)試焊接完成之后,首先認(rèn)真的按照電路圖檢查焊接的情況,發(fā)現(xiàn)兩個(gè)管腳焊錯(cuò)了,然后因?yàn)檫@些管腳都是P2腳,沒(méi)有太大影響,所以修改電路圖。然后檢查電源和接地,發(fā)現(xiàn)沒(méi)有短路,可以上電了,上電之后,檢查器件沒(méi)有發(fā)熱現(xiàn)象。顯示調(diào)試:1) 編寫(xiě)一段簡(jiǎn)
14、短的測(cè)試程序,上電后,下載測(cè)試HD7279的程序,發(fā)現(xiàn)無(wú)常顯示,進(jìn)行如下調(diào)試:2) 初步認(rèn)定是單片機(jī)最小系統(tǒng)的焊接出現(xiàn)問(wèn)題。斷電,然后認(rèn)真的用萬(wàn)用表測(cè)試震蕩電路、復(fù)位電路、電源和接地的導(dǎo)通情況,電阻和電容的情況發(fā)現(xiàn)沒(méi)有問(wèn)題。3) 檢查HD7279和數(shù)碼管的焊接情況,斷電,測(cè)試P2.5,P2.4,P2.3和CS,DAT,SLK的連接情況,沒(méi)有問(wèn)題;測(cè)試A,B,C,D,E,F,G,H,DP管腳和數(shù)碼管的連接情況,發(fā)現(xiàn)電阻無(wú)窮大,是斷開(kāi)的,然后焊上;斷電,測(cè)試HD7279的電源和接地情況,發(fā)現(xiàn)沒(méi)問(wèn)題檢查各種跳線的塑料外包裝,發(fā)現(xiàn)有些外皮被燙壞,有破損;跳線的裸露接頭過(guò)長(zhǎng),容易短路;斷電,測(cè)試時(shí),電源
15、和DIG0短路,發(fā)現(xiàn)因?yàn)閷?dǎo)線外皮破損,換導(dǎo)線。4) 再次上電,用測(cè)試程序測(cè)試,仍然無(wú)法顯示。5) 重新檢查電路圖,發(fā)現(xiàn)電路圖設(shè)計(jì)有問(wèn)題,EA接了低電平,改為高電平。然后修改電路圖。6) 再次上電,重新測(cè)試,仍然無(wú)法顯示。7) 測(cè)試HD7279管腳電壓,正常,然后更換芯片,再次測(cè)試能顯示了。溫度顯示調(diào)試:下載溫度顯示程序,發(fā)現(xiàn)無(wú)常顯示溫度。調(diào)試過(guò)程如下:1) 上電,檢查DS18B20的管腳電平,不正常。2) 斷電,檢查DS18020的管腳連通情況。3) 發(fā)現(xiàn)DS18B20插反了,所以有可能燒壞,更換器件。4) 上電,正確顯示溫度。然后進(jìn)行如下調(diào)試:主程序的功能是:?jiǎn)?dòng)DS18B20測(cè)量溫度,將測(cè)
16、量值與所設(shè)定的溫度上下限值進(jìn)行比較,若測(cè)得溫度小于設(shè)定下限值,則進(jìn)入報(bào)警子程序,這期間報(bào)警不問(wèn)斷的響起,直到溫度在設(shè)定圍,才終止報(bào)警程序,若測(cè)得溫度大于所設(shè)定的溫度上限值,亦進(jìn)入報(bào)警子程序,此時(shí)報(bào)警不間斷的響起,直到所測(cè)的溫度在設(shè)定的安全圍。顯示時(shí)間調(diào)試:下載顯示時(shí)間程序,能正確顯示分秒。鍵盤(pán)調(diào)試,因?yàn)楸緦?shí)驗(yàn)的鍵盤(pán)功能設(shè)定簡(jiǎn)單,沒(méi)有復(fù)雜的過(guò)程按鍵調(diào)試時(shí),剛開(kāi)始由于沒(méi)有設(shè)置按鍵松手檢測(cè)程序,按鍵一直失靈,后將按鍵松子檢測(cè)程序(while( P2=OXxx)后,按鍵運(yùn)轉(zhuǎn)正常。串口調(diào)試時(shí),剛開(kāi)始是發(fā)送一個(gè)數(shù)據(jù)便顯示一個(gè)數(shù)據(jù),打開(kāi)一次中斷,這樣導(dǎo)致數(shù)據(jù)更換太慢,沒(méi)發(fā)同時(shí)顯示幾個(gè)數(shù)據(jù),后將所有要顯示的數(shù)
17、據(jù)一個(gè)一個(gè)儲(chǔ)存起來(lái)后再打開(kāi)中斷,一起送出去,這樣問(wèn)題解決了,發(fā)送和接收都沒(méi)有錯(cuò)誤了。6 分析對(duì)于實(shí)際室的溫度控制,可以提出以下方法:檢驗(yàn)所做溫度測(cè)量是否準(zhǔn)確,可以用電吹風(fēng)機(jī)作為加熱設(shè)備,降溫設(shè)備可采用空氣壓縮機(jī)等制冷設(shè)備,并將所采集到的溫度與實(shí)際標(biāo)準(zhǔn)的溫度計(jì)進(jìn)行比較。通過(guò)實(shí)驗(yàn)測(cè)試和分析,發(fā)現(xiàn)雖然傳感器的溫度采集精度最高可得到0.06,但測(cè)試得到的數(shù)據(jù)最小間隔為0.03。通過(guò)分析,當(dāng)對(duì)浮點(diǎn)數(shù)求平均處理時(shí),遇到同一時(shí)刻兩個(gè)傳感頭采集的溫度相差不大,使0.06時(shí)求出下均溫度變?yōu)?.03為了解該數(shù)據(jù)是否真實(shí),可采用一個(gè)高精度的數(shù)字溫度計(jì)測(cè)試,如果讀出的值與其基本一致,則可推斷如果在同一時(shí)間增加采集溫度
18、的個(gè)數(shù),可以進(jìn)一步提高溫度的精度。7 結(jié)論溫度檢測(cè)和控制都直接與安全生產(chǎn)、節(jié)約能源等技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。溫度測(cè)量在工業(yè)、民用、軍事等領(lǐng)域占著重要的地位。航空、家電、科研等領(lǐng)域都需要溫度測(cè)試設(shè)備,用于測(cè)試和確定電工、電子與其它產(chǎn)品與材料進(jìn)行高溫、低溫、交變溫度或恒定試驗(yàn)的溫度環(huán)境的變化,判斷當(dāng)檢測(cè)目標(biāo)的溫度值達(dá)到警示條件時(shí)發(fā)出警告信號(hào)。在工業(yè)生產(chǎn)和日常生活中,對(duì)溫度控制系統(tǒng)的要求,主要是保證溫度在一定溫度圍變化,穩(wěn)定性好,不振蕩,對(duì)系統(tǒng)的快速性要求不高。在本設(shè)計(jì)中簡(jiǎn)單分析了單片機(jī)溫度控制系統(tǒng)設(shè)計(jì)過(guò)程與實(shí)現(xiàn)方法。本系統(tǒng)的測(cè)溫圍為-50150,溫度檢測(cè)系統(tǒng)根據(jù)用戶設(shè)定的溫度圍完成一定圍的溫度控制。本
19、設(shè)計(jì)使用的溫度控制器結(jié)構(gòu)簡(jiǎn)單、測(cè)溫準(zhǔn)確,具有一定的實(shí)際應(yīng)用價(jià)值。該智能溫度控制器只是DS18B20在溫度控制領(lǐng)域的一個(gè)簡(jiǎn)單實(shí)例,還有許多需要完善的地方。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉(cāng)儲(chǔ)等行業(yè)。本溫度控制系統(tǒng)可以應(yīng)用于多種場(chǎng)合。用戶可靈活選擇本設(shè)計(jì)的用途,有很強(qiáng)的實(shí)用價(jià)值。參考文獻(xiàn):1傳感器原理與工程應(yīng)用郁有文,電子科技大學(xué),2008.72MCS-51系列單片機(jī)原理與應(yīng)用偉,東北林業(yè)大學(xué),2007.13模擬電子技術(shù)基礎(chǔ)童詩(shī)白,高等教育,2001.1附錄A附錄B程序代碼: BIT_COUNT DATA07FHTIMERDATA07EHTENDATA07CH TIMER1 D
20、ATA 07DHDATA_INDATA020HDATA_OUTDATA021HKEY_18B20BIT23HKEY_1302BIT22H;*DATBITP2.5;KEYBITP2.6CSBITP2.3CLKBITP2.4;*FLAG1 BIT F0 ;DS18B20存在標(biāo)志位DQ BIT p2.0TEMPER_L EQU 29H;TEMPER_H EQU 28H;A_BIT EQU 35H;B_BIT EQU 36H ;*KEY1 BIT P1.4 ;鍵盤(pán)和顯示定義CH451KEY2 BIT P1.5KEY3 BIT P1.6KEY4 BIT P1.7MYDAT DATA 33HDATA_F
21、DATA 34HDATA_KEY DATA 35H;TIMER DATA 30H;TIMER1 DATA 31HTIMER2 DATA 32HTIMER3 DATA 33H ;* ;*SCLK BIT P1.0 ; ;系統(tǒng)時(shí)鐘芯片ds1302IODATA BIT P1.1 ;RST BIT P1.2 ;FLAG BIT 02H ;讀寫(xiě)標(biāo)志位ORG000HJMPSTARTORG 13HLJMP CH451_INT1 ORG 100HSTART:MOVSP,#6FHMOVP2,#11001111B;MOV TIMER,#50 MOV TIMER,#5START_DELAY: ;MOV TIMER1
22、,#255 MOV TIMER1,#25START_DELAY1: DJNZTIMER1,START_DELAY1DJNZTIMER,START_DELAYMOVDATA_OUT,#00010101B;復(fù)位,下降沿,CS低電平有效CALLSENDSETBCSACALL DELAY_1SCLR IT1 ;置外部中斷信號(hào)為低電平觸發(fā)SETB EX1 ;允許鍵盤(pán)中斷SETB EA ;開(kāi)總中斷;*;CS無(wú)效MAIN:MOV 20H,#0MOV DATA_KEY,#0;MOV DATA_OUT,#00010101B ;CALL SENDMOVA,28HMOVB,29HMOV TEN,AMOV DATA_
23、OUT,#10100001BCALL SENDMOV DATA_OUT,#10100001BCALL SENDMOVDATA_OUT,#10000001B;下載,譯碼指令CALLSENDMOVDATA_OUT,TEN;十位數(shù)字CALLSENDMOVDATA_OUT,#10000000B;下載和譯碼CALLSENDMOVDATA_OUT,B;發(fā)個(gè)位CALLSENDSETB CS;*鍵盤(pán)判斷*WAIT: JNB 00H,WAITCLR 00HMOV A,DATA_KEYUKEY1:JNBKEY_18B20,UKEY2CALL RECEIVE ;MOV DATA_IN,#15 SETB CS ;MO
24、V B,#10 ;MOV A,DATA_IN ;DIV ABJMPMAINUKEY2:CJNEA,#2,UKEY3CALLDS1302_MeasurementAJMP MAINUKEY3:AJMPMAIN;*SEND:MOVBIT_COUNT,#8CLRCSCALLLONG_DELAYSEND_LOOP: MOV 21H,#26H MOV C,DATA_OUT.7 ;1 MOV DAT,C SETB CLK ;CLK MOV A,DATA_OUT ; RL A MOV DATA_OUT,A CALL SHORT_DELAY ; CLR CLK ;CLK CALL SHORT_DELAY ; D
25、JNZ BIT_COUNT,SEND_LOOP ;8 CLR DAT ; RET;*;7279接受數(shù)據(jù);*RECEIVE: MOV BIT_COUNT,#8LCALL INIT_18B20LCALL GET_TEMPER;*DS18B20復(fù)位程序*INIT_18B20: SETB DQNOPCLR DQMOV R0,#0FBHTSR1: DJNZ R0,TSR1 ;延時(shí)SETB DQMOV R0,#25HTSR2: JNB DQ ,TSR3DJNZ R0,TSR2TSR3: SETB FLAG1 ;置標(biāo)志位,表明DS18B20存在;CLR P2.0 ;二極管指示AJMP TSR5TSR4: C
26、LR FLAG1LJMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,TSR6TSR7:SETB DQ ;表明不存在RET;*讀轉(zhuǎn)換后的溫度值*GET_TEMPER:SETB DQLCALL INIT_18B20 FLAG1,TSS2RET ;若不存在則返回TSS2: MOV A,#0CCH ;跳過(guò)ROMLCALL WRITE_18B20MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令LCALL WRITE_18B20;LCALL DISPLAY ;延時(shí);LCALL INIT_18B20MOV A,#0CCH ;跳過(guò)ROMLCALL WRITE_18B20MOV A,#0B
27、EH ;發(fā)出讀溫度換命令LCALL WRITE_18B20LCALL READ2_18B20 ;讀兩個(gè)字節(jié)的溫度RET ;*寫(xiě)ds18b20匯編程序* WRITE_18B20:MOV R2,#8CLR CWR1:CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET ;*讀18B20程序,讀出兩個(gè)字節(jié)的溫度* READ2_18B20:MOV R4,#2 ;低位存在29 H,高位存在28HMOV R1,#29H RE00: MOV R2,#8 RE01: CLR CSETB C
28、NOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET ;*讀出的溫度進(jìn)行數(shù)據(jù)轉(zhuǎn)換*;CHANGE: MOV A,29H; MOV C,28H.0 ;將28H中的最低位移入C ; RRC A ; MOV C,28H.1 ; RRC A ; MOV C,28H.2 ; RRC A ; MOV C,28H.3 ; RRC A ; MOV 29H,A ; ;setb p2.0 ; LCALL DISPLAY ;調(diào)用數(shù)碼
29、管顯示子程序 ; ; setb P2.0 ; LJMP MAIN ;*DISPLAY* ;DISPLAY: mov a,29H;將29H中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制; mov b,#10 ;10進(jìn)制/10=10進(jìn)制; div ab; mov b_bit,a ;十位在a; mov a_bit,b ;個(gè)位在b; mov dptr,#TAB ;指定查表啟始地址; mov r0,#4;dpl1: mov r1,#250 ;顯示1000次;dplop: mov a,a_bit ;取個(gè)位數(shù); MOVC A,A+DPTR ;查個(gè)位數(shù)的7段代碼; mov p0,a ;送出個(gè)位的7段代碼 ; clr p2.5;
30、開(kāi)個(gè)位顯示 ; acall d1ms ;顯示1ms ; setb p2.5 ; mov a,b_bit ;取十位數(shù) ; MOVC A,A+DPTR ;查十位數(shù)的7段代碼 ; mov p0,a ;送出十位的7段代碼 ; clr p2.4;開(kāi)十位顯示 ; acall d1ms ;顯示1ms ; setb p2.4 ; djnz r1,dplop ;100次沒(méi)完循環(huán) ; djnz r0,dpl1 ;4個(gè)100次沒(méi)完循環(huán) ; ret ;* ;D1MS: MOV R7,#80 ;1MS延時(shí)(按12MHZ算) ; DJNZ R7,$ ; RET ;* ;TAB: DB 0C0H,0F9H,0A4H,0B0
31、H,99H,92H,82H,0F8H,80H,90H*/ CALL LONG_DELAY ;RECEIVE_LOOP:SETB CLK CALL SHORT_DELAY MOV A,DATA_IN ; RL A MOV DATA_IN,A MOV C,DAT ; MOV DATA_IN.0,C CLR CLK ;CLK CALL SHORT_DELAY DJNZ BIT_COUNT,RECEIVE_LOOP;8 RET;*LONG_DELAY: MOV TIMER,#25DELAY_LOOP:DJNZ TIMER,DELAY_LOOPRETSHORT_DELAY: MOV TIMER,#4SH
32、ORT_LP: DJNZ TIMER,SHORT_LPRET;*DELAY_1S: MOV TIMER1,#10TEST_DYA: MOV TIMER2,#200TEST_DYA1: MOV TIMER3,#250TEST_DYA2: DJNZ TIMER3,TEST_DYA2DJNZ TIMER2,TEST_DYA1DJNZ TIMER1,TEST_DYARET;*DELAY10: MOV TIMER2,#20TEST_1: MOV TIMER3,#250TEST_2: DJNZ TIMER3,TEST_2DJNZ TIMER2,TEST_1RET;*;*鍵盤(pán)處理*;*讀取鍵值*CH451_
33、INT1: PUSH ACC ;現(xiàn)場(chǎng)保護(hù)PUSH BCLR EX1CLR KEY_18B20CLR KEY_1302KEY1,L2MOVA,#1SETB KEY_18B20JMPL1L2:KEY2,L3MOV A,#2SETB KEY_1302JMPL1L3:KEY3,L4MOVA,#3JMP L1L4:MOVA,#4L1:MOV DATA_KEY,A ;保存鍵值EXIT: SETB 00HEXIT1: POP B POP ACC CLR IE1SETB EX1 RETI;*DS1302_Measurement: LCALL DS1302INI ;時(shí)鐘芯片ds1302初始化 MOV 30H,#
34、10H ;秒初值=0-59 MOV 31H,#26H ;分初值=0-59 MOV 32H,#10H ;時(shí)初值=0-23 MOV 33H,#17H ;日期初值=1-30 1-31 1-28 1-29 MOV 34H,#05H ;月初值=1-12 MOV 35H,#02H ;星期初值=1-7 MOV 36H,#11H ;年初值=00-99 MOV R0,#30H MOV R7,#7 CLR FLAG ;FLAG=0 賦初值 LCALL RWRTC LCALL YANSH200RET;*系統(tǒng)時(shí)鐘芯片ds1302*DS1302INI: CLR SCLK CLR RST MOV 30H,#8EH ;命令8EH寫(xiě)保護(hù)寄存器;容00H 最高位=0打開(kāi)寫(xiě)保護(hù)(可寫(xiě)可讀) MOV 31H,#00H ;容80H 最高位=1 只可讀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車維修行業(yè)人才引進(jìn)與培養(yǎng)合同
- 2025年度環(huán)衛(wèi)工人勞動(dòng)爭(zhēng)議調(diào)解與處理合同
- 二零二五年度農(nóng)村宅基地租賃協(xié)議(農(nóng)村文化產(chǎn)業(yè)發(fā)展)
- 2025年度高級(jí)建造師聘用與技術(shù)咨詢服務(wù)協(xié)議
- 二零二五年度商業(yè)企業(yè)購(gòu)銷合同印花稅稅率調(diào)整與稅收籌劃實(shí)務(wù)
- 二零二五年度藝人經(jīng)紀(jì)與全產(chǎn)業(yè)鏈合作合同
- IT基礎(chǔ)設(shè)施建設(shè)項(xiàng)目投資合同
- 鄉(xiāng)村旅游資源開(kāi)發(fā)利用合作協(xié)議
- 電梯采購(gòu)工程合同
- 文化旅游項(xiàng)目開(kāi)發(fā)合作框架協(xié)議
- 2025年第六屆(中小學(xué)組)國(guó)家版圖知識(shí)競(jìng)賽測(cè)試題庫(kù)及答案
- GB/T 26436-2025禽白血病診斷技術(shù)
- 體育場(chǎng)館工程施工組織設(shè)計(jì)
- 春季校園常見(jiàn)傳染病及預(yù)防措施培訓(xùn)課件
- 國(guó)際標(biāo)準(zhǔn)下的AI技術(shù)應(yīng)用-深度研究
- 2025-2030年城市軌道交通運(yùn)營(yíng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025年江西生物科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 《信息技術(shù)(拓展模塊)》高職全套教學(xué)課件
- 2025天津市安全員《B證》考試題庫(kù)
- DB37T-住宅小區(qū)供配電設(shè)施建設(shè)標(biāo)準(zhǔn)編制說(shuō)明
- 食品飲料行業(yè)酒類2025年度策略報(bào)告:拐點(diǎn)漸近行穩(wěn)致遠(yuǎn)
評(píng)論
0/150
提交評(píng)論