




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
畢業(yè)論文設(shè)計基于單片機溫度控制系統(tǒng)的設(shè)計畢業(yè)論文目 錄一、引言4(一)課題研究的背景4(二)課題研究的目的和意義5二、硬件電路的設(shè)計5(一)系統(tǒng)設(shè)計的框架5(二)單片機最小系統(tǒng)電路6(三)單片機的選型61.STC89C52單片機簡介62.STC89C52單片機時序73.STC89C52單片機引腳介紹7(四)溫度傳感器電路9(五)系統(tǒng)電源電路的設(shè)計10(六)LCD顯示電路11(七)串口通訊電路12(八)按鍵接口電路13(九)DS1302時鐘電路13(十)存儲器接口電路13三、系統(tǒng)軟件設(shè)計14(一)計算溫度子程序15(二)按鍵處理子程序15(三)計算溫度子程序16(四)顯示數(shù)據(jù)刷新子程序17四、結(jié)束語18參考文獻(xiàn)19致謝20附件1:系統(tǒng)原理圖21附件2:系統(tǒng)相關(guān)程序22一、DS18B20底層驅(qū)動程序22二、DS1302時鐘底層驅(qū)動程序27三、數(shù)據(jù)存儲底層驅(qū)動程序33一、引言(一)課題研究的背景工業(yè)控制是計算機的一個重要應(yīng)用領(lǐng)域,計算機控制系統(tǒng)正是為了適應(yīng)這一領(lǐng)域的需要而發(fā)展起來的一門專業(yè)技術(shù),它主要研究如何將計算機技術(shù)、通過信息技術(shù)和自動控制理論應(yīng)用于工業(yè)生產(chǎn)過程,并設(shè)計出所需要的計算機控制系統(tǒng)。隨著微機測量和控制技術(shù)的迅速發(fā)展與廣泛應(yīng)用,以單片機為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用在很大程度上提高了生產(chǎn)生活中對溫度的控制水平。本設(shè)計就是基于單片機STC89C52溫度控制系統(tǒng)的設(shè)計,通過本次課程實踐,我們更加的明確了單片機的廣泛用途和使用方法,以及其工作的原理。(二)課題研究的目的和意義隨著社會的發(fā)展,溫度的測量及控制變得越來越重要。本文采用單片機STC89C52設(shè)計了溫度實時測量及控制系統(tǒng)。單片機STC89C52 能夠根據(jù)溫度傳感器DS18B20 所采集的溫度在液晶屏上實時顯示,通過控制從而把溫度控制在設(shè)定的范圍之內(nèi)。所有溫度數(shù)據(jù)均通過液晶顯示器LCD顯示出來。系統(tǒng)可以根據(jù)時鐘存儲相關(guān)的數(shù)據(jù)。通過該課程的學(xué)習(xí)使我們對計算機控制系統(tǒng)有一個全面的了解、掌握常規(guī)控制算法的使用方法、掌握簡單微型計算機應(yīng)用系統(tǒng)軟硬的設(shè)計方法,進一步鍛煉同學(xué)們在微型計算機應(yīng)用方面的實際工作能力。二、硬件電路的設(shè)計(一)系統(tǒng)設(shè)計的框架本課題設(shè)計的是一種以STC89C52單片機為主控制單元,以DS18B20為溫度傳感器的溫度控制系統(tǒng)。該控制系統(tǒng)可以實時存儲相關(guān)的溫度數(shù)據(jù)并記錄當(dāng)前的時間。其主要包括:電源模塊、溫度采集模塊、按鍵處理模塊、實時時鐘模塊、數(shù)據(jù)存儲模塊、LCD顯示模塊、通訊模塊以及單片機最小系統(tǒng)。圖1 系統(tǒng)設(shè)計框架(二)單片機最小系統(tǒng)電路在課題設(shè)計的溫度控制系統(tǒng)設(shè)計中,控制核心是STC89C52單片機,該單片機為51系列增強型8位單片機,它有32個I/O口,片內(nèi)含4K FLASH工藝的程序存儲器,便于用電的方式瞬間擦除和改寫,而且價格便宜,其外部晶振為12MHz,一個指令周期為1S。使用該單片機完全可以完成設(shè)計任務(wù),其最小系統(tǒng)主要包括:復(fù)位電路、震蕩電路以及存儲器選擇模式(EA腳的高低電平選擇),電路如下圖2所示:圖2 單片機最小系統(tǒng)(三)單片機的選型本課題設(shè)計的溫度控制系統(tǒng)主控制芯片選型為STC89C52單片機,其特點如下:1.STC89C52單片機簡介目前,51系列單片機在工業(yè)檢測領(lǐng)域中得到了廣泛的應(yīng)用,因此我們可以在許多單片機應(yīng)用領(lǐng)域中,配接各種類型的語音接口,構(gòu)成具有合成語音輸出能力的綜合應(yīng)用系統(tǒng),以增強人機對話的功能。STC89C52單片機是深圳宏晶科技有限公司生產(chǎn)的一種單片機,在一小塊芯片上集成了一個微型計算機的各個組成部分。每一個單片機包括:一個8位的微型處理器CPU;一個512K的片內(nèi)數(shù)據(jù)存儲器RAM;4K片內(nèi)程序存儲器;四個8位并行的I/O接口P0-P3,每個接口既可以輸入,也可以輸出;兩個定時器/記數(shù)器;五個中斷源的中斷控制系統(tǒng);一個全雙工UART的串行I/O口;片內(nèi)振蕩器和時鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率是12MHZ。以上各個部分通過內(nèi)部總線相連接。2.STC89C52單片機時序 STC89C52單片機的一個執(zhí)器周期由6個狀態(tài)(s1s6)組成,每個狀態(tài)又持續(xù)2個震蕩周期,分為P1和P2兩個節(jié)拍。這樣,一個機器周期由12個振蕩周期組成。若采用12MHz的晶體振蕩器,則每個機器周期為1us,每個狀態(tài)周期為16us;在一數(shù)情況下,算術(shù)和邏輯操作發(fā)生在N期間,而內(nèi)部寄存器到寄存器的傳輸發(fā)生在P2期間。對于單周期指令,當(dāng)指令操作碼讀人指令寄存器時,使從S1P2開始執(zhí)行指令。如果是雙字節(jié)指令,則在同一機器周期的s4讀人第二字節(jié)。若為單字節(jié)指令,則在51期間仍進行讀,但所讀入的字節(jié)操作碼被忽略,且程序計數(shù)據(jù)也不加1。在加結(jié)束時完成指令操作。多數(shù)STC89C52指令周期為12個機器周期,只有乘法和除法指令需要兩個以上機器周期的指令,它們需4個機器周期。 對于雙字節(jié)單機器指令,通常是在一個機器周期內(nèi)從程序存儲器中讀人兩個字節(jié),但Movx指令例外,Movx指令是訪問外部數(shù)據(jù)存儲器的單字節(jié)雙機器周期指令,在執(zhí)行Movx指令期間,外部數(shù)據(jù)存儲器被訪問且被選通時跳過兩次取指操作。3.STC89C52單片機引腳介紹STC89C52單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。下面按引腳功能分為4個部分?jǐn)⑹鰝€引腳的功能。(1)電源引腳Vcc和VssVcc(40腳):接+5V電源正端;Vss(20腳):接+5V電源正端。(2)外接晶振引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHOMS單片機,該引腳作為外部振蕩信號的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時鐘時,對于HMOS單片機,該引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不接。(3)控制信號或與其它電源復(fù)用引腳 控制信號或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。(A)RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機的上電復(fù)位或掉電保護端。當(dāng)單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平,就可實現(xiàn)復(fù)位操作,使單片機復(fù)位到初始狀態(tài)。當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(B)ALE/ P (30腳):當(dāng)訪問外部存儲器時,ALE(允許地址鎖存信號)以每機器周期兩次的信號輸出,用于鎖存出現(xiàn)在P0口的低(C)PSEN(29腳):片外程序存儲器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲器讀取指令或常數(shù)期間,每個機器周期PESN兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲器期間,PESN信號將不出現(xiàn)。(D)EA/Vpp(31腳):EA為訪問外部程序儲器控制信號,低電平有效。當(dāng)EA端保持高電平時,單片機訪問片內(nèi)程序存儲器4KB(MS52子系列為8KB)。若超出該范圍時,自動轉(zhuǎn)去執(zhí)行外部程序存儲器的程序。當(dāng)EA端保持低電平時,無論片內(nèi)有無程序存儲器,均只訪問外部程序存儲器。對于片內(nèi)含有EPROM的單片機,在EPROM編程期間,該引腳用于接21V的編程電源Vpp。 (4)輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口(A).P0口(39腳22腳):P0.0P0.7統(tǒng)稱為P0口。當(dāng)不接外部存儲器與不擴展I/O接口時,它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲器或擴展I/O口時,P0口為地址/數(shù)據(jù)分時復(fù)用口。它分時提供8位雙向數(shù)據(jù)總線。對于片內(nèi)含有EPROM的單片機,當(dāng)EPROM編程時,從P0口輸入指令字節(jié),而當(dāng)檢驗程序時,則輸出指令字節(jié)。(B).P1口(1腳8腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。對于MCS52子系列單片機,P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進行程序校驗時,P0口接收輸入的低8位地址。(C).P2口(21腳28腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲器或擴展I/O接口且尋址范圍超過256個字節(jié)時,P2口用于高8位地址總線送出高8位地址。對于EPROM編程和進行程序校驗時,P2口接收輸入的8位地址。(D).P3口(10腳17腳):P3.0P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表 表1 單片機P3.0管腳含義引腳第2功能P3.0RXD(串行口輸入端0)P3.1TXD(串行口輸出端)P3.2INT0(部中斷0請求輸入端,低電平有效)P3.3INT1(中斷1請求輸入端,低電平有效)P3.4T0(時器/計數(shù)器0計數(shù)脈沖端)P3.5T1(時器/計數(shù)器1數(shù)脈沖端)P3.6WR(部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效)P3.7RD(部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效)綜上所述,MCS51系列單片機的引腳作用可歸納為以下兩點:1).單片機功能多,引腳數(shù)少,因而許多引腳具有第2功能;2).單片機對外呈3總線形式,由P2、P0口組成16位地址總線;由P0口分時復(fù)用作為數(shù)據(jù)總線。(四)溫度傳感器電路采用一線制數(shù)字溫度傳感器DS18B20來作為本課題的溫度傳感器。傳感器輸出信號進4.7K的上拉電阻直接接到單片機的P1.0引腳上。DS18B20溫度傳感器是美國達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。本設(shè)計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:(1)系統(tǒng)的特性:測溫范圍為-55+125 ,測溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。(2)系統(tǒng)成本:由于計算機技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強大,體積越來越小,而價格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價格只有十元人民幣左右。(3)系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護:由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強,因此,減少了系統(tǒng)的日常維護工作。DS18B20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過內(nèi)部電容在空閑時從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時間較長。這種情況下,用單片機的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)的完成溫度測量的時間較短。在本設(shè)計中采用外部供電方式實現(xiàn)DS18B20傳感器與單片機的連接,其接口電路如圖4所示。圖4 溫度傳感器接口(五)系統(tǒng)電源電路的設(shè)計本系統(tǒng)采用電源穩(wěn)壓芯片是LM2596,該開關(guān)電壓調(diào)節(jié)器是降壓型電源管理單片集成電路,能夠輸出3A的驅(qū)動電流,輸入電壓是+5v,輸入電壓是+24v,同時具有很好的線性和負(fù)載調(diào)節(jié)特性。該器件內(nèi)部集成頻率補償和固定頻率發(fā)生器,開關(guān)頻率為150KHz,與低頻開關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。 該器件還有其他一些特點:在特定的輸入電壓和輸出負(fù)載的條件下,輸出電壓的誤差可以保證在4%的范圍內(nèi),振蕩頻率誤差在15%的范圍內(nèi);可以用僅80A的待機電流,實現(xiàn)外部斷電;具有自我保護電路(一個兩級降頻限流保護和一個在異常情況下斷電的過溫完全保護電路)在該溫度控制系統(tǒng)中,其電源電路設(shè)計如下圖10所示。圖5 系統(tǒng)電源模塊(六)LCD顯示電路本課題設(shè)計的溫度控制系統(tǒng)是采用液晶屏128*64作為顯示模塊,其接口原理圖如下圖6所示:圖6 液晶顯示接口電路(七)串口通訊電路本課題設(shè)計的通訊采用的是常見的串口通訊,協(xié)議轉(zhuǎn)換芯片是采用MAX232A,其接口原理圖如下圖7所示:圖6 串口通訊接口電路(八)按鍵接口電路本課題設(shè)計采用的鍵盤模塊,其接口原理圖如下圖8所示:圖8 鍵盤模塊電路(九)DS1302時鐘電路本課題設(shè)計的時鐘是采用時鐘芯片DS1302,其接口原理圖如下圖9所示:圖9 時鐘接口電路(十)存儲器接口電路本課題設(shè)計的存儲器采用的是AT24C256,其接口原理圖如下圖十所示:圖10 存儲器電路三、系統(tǒng)軟件設(shè)計系統(tǒng)的軟件主要是采用C語言,對單片機進行變成實現(xiàn)各項功能。主程序?qū)δK進行初始化,而后調(diào)用讀溫度、處理溫度、顯示、鍵盤等模塊。用的是循環(huán)查詢方式,來顯示和控制溫度,主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值并負(fù)責(zé)調(diào)用各子程序,其程序流程如圖10系統(tǒng)程序流程圖。開始初始化啟動DB18B20讀溫度計算溫度LCD顯示圖10系統(tǒng)程序流程圖(一)計算溫度子程序 讀出溫度子程序的主要功能包括初始化,判斷DS18B20是否存在,若存在則進行一系列的讀操,作若不存在則返回。其程序流程圖如圖11所示。圖11 讀溫度流程圖 (二)按鍵處理子程序 按鍵處理子程序主要是負(fù)責(zé)參數(shù)的設(shè)置,主程序每循環(huán)一次都要對按鍵進行掃描,判斷是否有輸入鍵按下則進行一系列的按鍵輸入操作。其程序流程框圖如圖12所示。圖12 溫度轉(zhuǎn)換流程圖(三)計算溫度子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定,其程序流程圖如圖13所示。 開始溫度零下?溫度值取補碼置“”標(biāo)志計算小數(shù)位溫度BCD值計算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY圖13 計算溫度子程序(四)顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖14。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY圖14 數(shù)據(jù)刷新子程序四、結(jié)束語通過此次畢業(yè)論文的課題設(shè)計,我們學(xué)會了怎樣把所學(xué)的書本知識應(yīng)用于實踐中去,并學(xué)會了如何去思考整個控制系統(tǒng)的軟硬件設(shè)計。實踐過程中我們遇到了一些困難,但在解決問題的過程中,我們學(xué)會了團隊合作精神和怎樣發(fā)現(xiàn)問題、分析問題,進而解決問題。此次課程設(shè)計不僅增強了我們學(xué)習(xí)專業(yè)課的興趣,而且給了我們勇氣和信心,更重要的是它為我們以后的學(xué)習(xí)指明了方向。參考文獻(xiàn)1 李廣弟,朱月秀,王秀山.單片機基礎(chǔ)北京航空航天大學(xué)出版社,2001(07).2 蔡美琴,張為民等.MCS-51系列單片機系統(tǒng)及其應(yīng)用高等教育出版社,2004(06).3 張毅剛,等.MCS-51單片機應(yīng)用設(shè)計M.哈爾濱工業(yè)大學(xué)出版社,1997.4 劉瑞星,胡健等.Protel DXP 實用教程機械工業(yè)出版社,2003(04).5 于海生. 計算機控制技術(shù) 機械工業(yè)出版社 2007(05).6 譚浩強. C程序設(shè)計 清華大學(xué)出版社.7 康華光. 電子技術(shù)基礎(chǔ) 模擬部分 高等教育出版社 1998(08).8 余錫存. 單片機原理與接口技術(shù) 西安電子科技大學(xué)出版社,2003.致謝本論文是在我的指導(dǎo)老師密切關(guān)心和悉心指導(dǎo)下完成的。老師在課題開題期間和論文寫作的過程中給予了我許多指導(dǎo),導(dǎo)師總是以認(rèn)真負(fù)責(zé)、一絲不茍的工作態(tài)度閱讀并修改文章中不足的地方,他優(yōu)良的作風(fēng)和嚴(yán)謹(jǐn)治學(xué)的態(tài)度深深影響著我,至此,向恩師致以最真摯的感謝和最崇高的敬意!同時我要感謝我的同學(xué),特別是我的室友們,正是他們在這幾年里陪我一起成長,一起學(xué)習(xí),才讓我有了今天的成績。他們在平時的學(xué)習(xí)和生活中他們給予了我無私的關(guān)懷和幫助,在此表示我最誠摯的謝意。附件1:系統(tǒng)原理圖附件2:系統(tǒng)相關(guān)程序一、DS18B20底層驅(qū)動程序/延時 N ms/DS1820引腳定義sbit TMDAT =P10;void DS1820_DelayCount (unsigned char Coun) data unsigned char Count; Count=Coun; while(Count0) Count-; Count=Coun; while(Count0) Count-;/復(fù)位DS18B20void DS1820_Reset(void) TMDAT=0; DS1820_DelayCount(412); TMDAT=1; DS1820_DelayCount(16); /等待DS18B20應(yīng)答unsigned char DS1820_Answer(void)data unsigned int i;data unsigned char j; i=0xc000; while(TMDAT) i-;if (i=0)return(aban_return); i=0xffff; j=3; while(TMDAT) i-;if (i=0) if(j=0) return(aban_return); else j-; i=0xffff; DS1820_DelayCount(16); return(done_return);/等待DS18B20應(yīng)答/讀取位bit DS1820_Readbit(void) data int i=0; bit dat; TMDAT=0;i+;i+;i+;i+; TMDAT=1;i+;i+;i+;i+;i+;i+;i+;i+; dat = TMDAT;/ DS1820_DelayCount(8); DS1820_DelayCount(32); return dat;/讀取字節(jié)unsigned char DS1820_Readbyte(void)data unsigned char i,j,dat=0; for(i=1;i=8;i+) j=DS1820_Readbit(); dat=(j1); return dat;/寫一個字節(jié)void DS1820_Writebyte(unsigned char dat) data signed char i=0; data unsigned char j; bit testb; for(j=1;j1; if(testb) TMDAT=0; i+;i+;i+;i+;i+;i+;i+;i+; TMDAT=1; /DS1820_DelayCount(8); DS1820_DelayCount(32); else TMDAT=0; /DS1820_DelayCount(8); DS1820_DelayCount(32); TMDAT=1; i+;i+;i+;i+;i+;i+;i+;i+; /讀操作開始unsigned char DS1820_StartTem(void) EA=0; DS1820_Reset(); if(DS1820_Answer()=aban_return) EA=Ea; return(aban_return); / DS1820_Delayms(1); DS1820_Delayms(4); DS1820_Writebyte(0xcc); / DS1820_Writebyte(0x55); / for(i=0;i8;i+) /DS1820_Writebyte(DS1820_tempi); DS1820_Writebyte(0x44); EA=Ea; return(done_return);/讀所有傳感器int DS1820_ReadTem(void)data unsigned char a,b;data int y3;data float y4;data unsigned char i; EA=0; DS1820_Reset(); if(DS1820_Answer()=aban_return) EA=Ea; return(0xffff); DS1820_Delayms(4); DS1820_Writebyte(0xcc); /跳過匹配傳感器 /DS1820_Writebyte(0x55); /匹配傳感器 / for(i=0;i8;i+) /DS1820_Writebyte(run_inf.system_index.DS1820_tempi); DS1820_Writebyte(0xbe); /讀取溫度 for(i=0;i9;i+) run_inf.system_index.DS1820_tempi=DS1820_Readbyte(); if(CRC(9)!=0) EA=1; return(0xffff); /計算CRC a = run_inf.system_index.DS1820_temp0; b = run_inf.system_index.DS1820_temp1; DS1820_Reset(); y3 = (b0; i-)rtc_io = temp_0; /*相當(dāng)于匯編中的 RRC */rtc_sc = 1;rtc_sc = 0;temp = temp 1; /功能: 從DS1302讀取1Byte數(shù)據(jù)unsigned char uc_RTOutputByte(void) unsigned char i;rtc_io=1;for(i=8; i0; i-) temp = temp 1; /*相當(dāng)于匯編中的 RRC */ temp_7 = rtc_io; rtc_sc = 1; rtc_sc = 0; return(temp); /功能: 往DS1302寫入數(shù)據(jù)void write1302(unsigned char ucAddr,unsigned char ucDa) bit ea; ea=EA; EA=0;rtc_rs_port&=(rtc_rs_bit);rtc_sc = 0;rtc_rs_port|=rtc_rs_bit;v_RTInputByte(ucAddr); /* 地址,命令 */v_RTInputByte(ucDa); /* 寫1Byte數(shù)據(jù)*/rtc_sc = 1;rtc_rs_port&=(rtc_rs_bit);EA = ea; /功能: 讀取DS1302某地址的數(shù)據(jù)unsigned char read1302(unsigned char ucAddr)unsigned char ucDa; bit ea; ea=EA; EA=0;rtc_rs_port&=(rtc_rs_bit);rtc_sc = 0;rtc_rs_port|=rtc_rs_bit;v_RTInputByte(ucAddr); /* 地址,命令 */ucDa = uc_RTOutputByte(); /* 讀1Byte數(shù)據(jù) */rtc_sc = 1;rtc_rs_port&=(rtc_rs_bit);EA = ea;return(ucDa);/功能: 設(shè)置初始時間void Set1302(pTime_S time_temp) unsigned char i= 0x80; write1302(0x8e,0x00); /* 控制命令,WP=0,寫操作*/ write1302(i,time_temp-sec); i +=2; write1302(i,time_temp-min); i +=2; write1302(i,time_temp-hou); i +=2; write1302(i,time_temp-day); i +=2; write1302(i,time_temp-mon); i +=2; write1302(i,0x02); i +=2; write1302(i,time_temp-yea); i +=2; write1302(0x8e,0x80); /* 控制命令,WP=1,寫保護*/功能: 讀取DS1302當(dāng)前時間void get1302(void) unsigned char i,time_bcd_temp6;unsigned char ucAddr = 0x81;for (i=0;i7;i+) time_bcd_tempi = read1302(ucAddr);/*格式為: 秒 分 時 日 月 星期 年 */ ucAddr += 2; sec=time_bcd_temp0;min=time_bcd_temp1;hou=time_bcd_temp2;day=time_bcd_temp3;mon=time_bcd_temp4;yea=time_bcd_temp6; /連續(xù)6字節(jié)讀出程序void ds1302_read(unsigned char *ptr,unsigned char addr) unsigned char i;addr=addr*2+0x0c1;for(i=0;i6;i+) *(ptr+i)=read1302(addr); addr+=2; /連續(xù)6字節(jié)寫入程序void ds1302_write(unsigned char *ptr,unsigned char addr)unsigned char i;addr=addr*2+0x0c0;write1302(0x8e,0x00); /寫保護置低(關(guān)閉)for(i=0;i6;i+) write1302(addr,*(ptr+i); addr+=2; write1302(0x8e,0x80); /寫保護置高(打開) void Start1302(void) unsigned char temp; bit ea; ea=EA; EA=0; temp=read1302(0x81); temp&=0x7f; write1302(0x8e,0x00); /* 控制命令,WP=0,寫操作*/ write1302(0x80,temp); write1302(0x90,0); write1302(0x8e,0x80); /* 控制命令,WP=1,寫保護*/ EA=ea;/DS1302驅(qū)動程序結(jié)束三、數(shù)據(jù)存儲底層驅(qū)動程序/ATC256引腳定義sbit epr_sd=P33;sbit epr_sc=P32;bdata unsigned char temp1;sbit temp1_0 = temp10;sbit temp1_7 = temp17;/存儲器驅(qū)動程序開始void noack(void) epr_sd=1; epr_sc=1; epr_sc=1; epr_sc=1; epr_sc=0;void ask()unsigned char i=0xff; epr_sd=1; epr_sc=1; epr_sc=1; epr_sc=1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西工程學(xué)院《儀器機械學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春醫(yī)學(xué)高等專科學(xué)?!督ㄖ畔⒔<夹g(shù)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津理工大學(xué)中環(huán)信息學(xué)院《火電廠煙氣凈化Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北軌道運輸職業(yè)技術(shù)學(xué)院《野生動植物保護與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安高新科技職業(yè)學(xué)院《公共關(guān)系學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大理護理職業(yè)學(xué)院《植物資源化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年核磁共振巖心測試儀投資申請報告代可行性研究報告
- 2024年高性能鐵氧體一次磁粉項目投資申請報告代可行性研究報告
- 安全教育說課稿
- 2025年四川瀘州自貿(mào)區(qū)龍馳商務(wù)秘書服務(wù)有限公司招聘筆試參考題庫含答案解析
- (高清版)JTG 3363-2019 公路橋涵地基與基礎(chǔ)設(shè)計規(guī)范
- 第10課和諧校園共同維護(課件)-【中職專用】高一思想政治《心理健康與職業(yè)生涯》(高教版2023·基礎(chǔ)模塊)
- 2024年04月江蘇省農(nóng)業(yè)農(nóng)村廳直屬事業(yè)單位2024年公開招考工作人員筆試歷年高頻考題摘選后附答案詳解
- 傷口造口進修匯報護理
- 檔案整理及數(shù)字化服務(wù)售后服務(wù)方案
- 2024年一年級《體育與健康》全冊教案
- 臂叢神經(jīng)損傷康復(fù)護理
- 糜爛性胃炎的護理查房
- 【高中語文】《紅樓夢》+日常生活描寫所表現(xiàn)的文化內(nèi)涵+統(tǒng)編版高中語文必修下冊
- 攝影測量與遙感課件
- 銀行安全知識培訓(xùn)課件
評論
0/150
提交評論