作息時間控制器_第1頁
作息時間控制器_第2頁
作息時間控制器_第3頁
作息時間控制器_第4頁
作息時間控制器_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、電子系統(tǒng)綜合課程設(shè)計信息工程系院電子信息工程 專業(yè)題 目作息時間限制器硬件局部學(xué)生姓名麥辿班 級級電子信息工程學(xué) 號 9指導(dǎo)教師克里斯保羅日 期 2022 年 12 月 7 日作息時間限制器Time schedule controller總計課程設(shè)計論文31 頁表格 0 個插圖 18 幅摘要本設(shè)計詳細(xì)介紹了利用 AT89C5俾片機(jī)設(shè)計時間限制器的方法.該時間控制器是以AT89C51I片機(jī)為核心,采用了 DS18B20溫度芯片,該芯片能測量環(huán) 境中的溫度變化,通過單片機(jī)的處理就可以顯示出實時溫度值.當(dāng)環(huán)境溫度改變時,顯示出來的溫度也會隨著改變我們設(shè)計的作息時間限制是用單片機(jī)實現(xiàn)的, 是為了更好的

2、對時間限制智能化.時間限制器包括硬件和軟件.硬件設(shè)計局部以單片機(jī)為核心,I/O接口及外圍電路構(gòu)成學(xué)校電鈴硬件系 統(tǒng).顯示電路采用數(shù)碼管顯示,單片機(jī)和數(shù)碼管之間的數(shù)據(jù)傳輸使用串口方式.軟件設(shè)計局部采用單片機(jī)C語言進(jìn)行程序編寫,由很多功能塊整合而成. 這一局部主要包括系統(tǒng)初始化,定時器初始化,串口初始化,時鐘的設(shè)定,鬧鈴 時間的設(shè)定,定時器中斷處理,按鍵判斷,響鈴判斷,響鈴指示等.縱觀整個系統(tǒng),結(jié)構(gòu)簡單、體積小、可靠性高、操作簡單、擴(kuò)展性強(qiáng),而 且價格低廉,非常適合學(xué)校、工廠和機(jī)關(guān)等單位使用.關(guān)鍵字:單片機(jī);打鈴;智能限制;顯示AbstractThis design detailed introd

3、uced the use of AT89C51 time controller design method. The time controller based on AT89C51 single-chip microcomputer as the core, the DS18B20 temperature chip, the chip can measure the environment temperature change, through the single chip processing can show real time temperature value. When the

4、environmental temperature change, the temperature of the display will change as we design work and rest time control is to use single chip microcomputer, is in order to better for time control intelligent. Time controller including hardware and software.Hardware design of single-chip microcomputer a

5、s the core, the I/O interface and peripheral circuit constitute the school bell hardware system. Display circuit using digital tube display, single-chip microcomputer and digital tube data transfer between use serial mode.The software design of the single chip microcomputer C language programming, b

6、y a lot of function block integration and become. This part mainly includes system initialization, the timer initialization, serial initialization, clock setting, alarm time setting, the timer interrupt handling, key judgment, ring judgment, ring indicator, etc.Throughout the entire system, simple s

7、tructure, small volume, high reliability, simple operation and strong scalability, and the price is low, very suitable for schools, factories and authority, and other units to use.Keywords: single chip microcomputer; bell; intelligent control;display第一章緒論本設(shè)計的研究背景和研究目的學(xué)校以及一些企事業(yè)單位通常使用傳統(tǒng)的電鈴聲作為上下課、上下班的作

8、息時間信號.且不說人工打鈴的繁瑣,鈴聲的單調(diào)和乏味,光是那忽然驟響的刺耳 鈴聲就常常激起周圍居民的不滿.多年來,中國各地從大學(xué)到小學(xué)乃至幼兒園, 從城市到農(nóng)村,從冬到夏,那特有的鈴聲響遍了大江南北,成了學(xué)校的特色和“專 利.正是這種鈴聲讓一些學(xué)生產(chǎn)生了厭煩情緒,甚至一些學(xué)生把鈴聲看成是考 試的代名詞,以至于一聽到這種聲音就產(chǎn)生緊張、恐懼心理.單片機(jī)作息時間限制實現(xiàn)了對時間限制的智能化,擺脫了傳統(tǒng)由人來限制 時間長短的不便,是現(xiàn)代學(xué)校必不可少的設(shè)備.國內(nèi)外研究現(xiàn)狀現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘, 石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,

9、 不需要經(jīng)常調(diào)校.數(shù)字式電子鐘用集成電路計時時,譯碼代替機(jī)械式傳動,LED 顯示器代替指針顯示時間,減小了計時誤差.這種電子鐘具備顯示時、分、秒 的功能,還可以對時、分、秒進(jìn)行校對,片選的靈活性好.隨著科學(xué)技術(shù)的迅 速開展,電子時鐘正迅速取代紙質(zhì)日歷、年歷和一般機(jī)械電子時鐘.電子時鐘 走時準(zhǔn)確、功能多樣、外觀時尚、使用方便,深受消費(fèi)者的青睞且其產(chǎn)品琳瑯 滿目,但它們的核心局部都有兩個共同點(diǎn),一是采用高性能時鐘芯片;二是大 都采用單片機(jī)限制.本設(shè)計的研究內(nèi)容以往的作息時間限制系統(tǒng)只具備根本時鐘顯示當(dāng)前時間的小時及分鐘功能, 而且采用數(shù)字電路實現(xiàn),致使電路非常復(fù)雜,計時精度不高,且不能隨季節(jié)的變化

10、以及天氣的變化而自動調(diào)整限制, 功能簡單.而該統(tǒng)除了具備根本時鐘功能之 外,還可以顯示年、月、日、溫度等信息,并且采用單片機(jī)限制并配合時鐘芯片, 既保證了系統(tǒng)結(jié)構(gòu)簡單,又保證了限制時間的精度和可靠性, 且通過外擴(kuò)電路還 可以實現(xiàn)多種功能.作息時間限制器的功能實現(xiàn)校園作息時間的限制既保證了時間限制的準(zhǔn)確性,又到達(dá)了特殊情況下時間設(shè)置的靈活性.該限制系統(tǒng)硬件設(shè)備結(jié)構(gòu)簡單,易操作,準(zhǔn)備度高,系統(tǒng)靈活性,實用性強(qiáng),本錢低,適用于各類院校的作息時間限制.本設(shè)計作息時間限制器主要功能為:1、時鐘功能:能顯示年、月、日、星期、時、分、秒;2、調(diào)整功能:能調(diào)時和調(diào)分,以保證時鐘與標(biāo)準(zhǔn)時間相吻合;3、打鈴功能:

11、可根據(jù)學(xué)校的作息時間按時打鈴、現(xiàn)場修改作息時間表;設(shè)置的作息時間表數(shù)據(jù)在單片機(jī)掉電后不會喪失;5、溫度顯示:測量環(huán)境中的溫度變化,實時顯示溫度值.第二章硬件設(shè)計基于單片機(jī)的作息時間限制器具硬件電路方框圖如所示.該系統(tǒng)主要包含調(diào)節(jié)模塊、溫度模塊、聲音模塊、LCD顯示模塊等外圍電路組成.硬件功能:按鍵輸入限制電路、晶振、復(fù)位電路、 LCD顯示器電路、蜂鳴器電路都是有硬件功能來實現(xiàn).軟件功能:LED動態(tài)顯示、時鐘計時、按鍵判斷和處理都是有軟件功能來 實現(xiàn).圖2-1單片機(jī)的選用2.1.1 AT89C51AT89C2051是美國ATMEL公司生產(chǎn)的一種低電壓、高性能CMOS 8位單片機(jī), 片內(nèi)含2k b

12、ytes的可反復(fù)擦寫的只讀程序存儲器PEROM和128 bytes的隨機(jī)存取 數(shù)據(jù)存儲器RAM,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼 容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能 強(qiáng)大.2.1.2 AT89C51芯片的引腳及特點(diǎn)圖2-2 AT89C51引腳圖引腳功能說明:VCC電源電壓GND 接地P0 P0 口是一組8位漏極開路型雙向I/O 口 ,也即地址/數(shù)據(jù)總線復(fù)用 口.P1 口P1 口是一個帶內(nèi)部上拉電阻的8位雙向I/O 口,P1的輸出緩沖級 可驅(qū)動吸收或輸出電流4個TTL邏輯門電路P2 P2是一個帶內(nèi)部上拉電阻的8位雙向I/O 口,

13、P2的輸出緩沖級可 驅(qū)動吸收或輸出電流4個TTL邏輯門電路.P3 P3 口是一組帶有內(nèi)部上拉電阻的 8位雙向I/O 口.P3 口輸出緩沖 級可驅(qū)動吸收或輸出電流4個TTL邏輯門電路.RST復(fù)位輸入.ALE/PROG 當(dāng)訪問外部程存儲器或數(shù)據(jù)存儲器時,ALE 地址鎖存允許 輸出脈沖用于鎖存地址的低8位字節(jié).PSEN程序儲存允許.EA/VPP外部訪問允許.顯示器的選用本次設(shè)計采用了 12864,液晶顯示模塊是128X64點(diǎn)陣的漢字圖形型液晶 顯示模塊,可顯示漢字及圖形,內(nèi)置 8192個中文漢字16X16點(diǎn)陣、128個 字符8X16點(diǎn)陣及64X256點(diǎn)陣顯示RAM GDRAM .可與 CPU直接接

14、口,提供兩種界面來連接微處理機(jī):8-位并行及串行兩種連接方式.具有多種 功能:光標(biāo)顯示、畫面移位、睡眠模式等.各引腳說明:?1 VSS 0V邏輯電源地.?2 VDD邏輯電源正.?3 V0 LCD驅(qū)動電壓,應(yīng)用時在 VEE與V0之間加一 2K可調(diào)電阻.?4 D/I H/L數(shù)據(jù) 指令選擇:高電平:數(shù)據(jù) D0-D7將送入顯示RAM 低電平: 數(shù)據(jù)D0-D7將送入指令存放器執(zhí)行.?5 R/W H/L讀 寫選擇:高電平:讀數(shù)據(jù);低電平:寫數(shù)據(jù).?6 E L讀寫使能,高電平有效,下降沿鎖定數(shù)據(jù).?7 DB0 H/L數(shù)據(jù)輸入輸出引腳.?8 DB1 H/L數(shù)據(jù)輸入輸出引腳.?9 DB2 H/L數(shù)據(jù)輸入輸出引腳

15、.?10 DB3 H/L數(shù)據(jù)輸入輸出引腳.?11 DB4 H/L數(shù)據(jù)輸入輸出引腳.?12 DB5 H/L數(shù)據(jù)輸入輸出引腳.?13 DB6 H/L數(shù)據(jù)輸入輸出引腳.?14 DB7 H/L數(shù)據(jù)輸入輸出引腳.?15 CS1 H/L片選擇信號,低電平時選擇前 64列.?16 CS2 H片選擇信號,低電平時選擇后 64列17 RET L復(fù)位信號,低電平有效18 VEE -10V LCD 驅(qū)動電源.?19 BL AC背光電源,LED . ?20 BL AC背光電源,LED-.系統(tǒng)設(shè)計的流程框圖2.3.1 時鐘與復(fù)位電路的設(shè)計1、系統(tǒng)復(fù)位電路的設(shè)計:單片機(jī)工作的時間基準(zhǔn)是有時鐘電路提供的.在單片機(jī)的XTAL

16、1和XTAL2兩個引腳,接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時鐘電路,如原 理圖所示.電路中,電容C4和C5對晶振頻率有微調(diào)作用,通常的取值范圍為 (30 10) pF.石英晶體選擇12MHz,選擇不同的石英晶體,其結(jié)果只是機(jī)器 周期不同,影響計數(shù)器的計數(shù)初值.單片機(jī)系統(tǒng)一般應(yīng)有手動或上電復(fù)位電路.復(fù)位電路的實現(xiàn)通常有兩種方 式:1) RC復(fù)位電路;2)專用pP監(jiān)控電路.前者實現(xiàn)簡單,本錢低,但復(fù) 位可靠性相對較低;后者本錢較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位. 對于復(fù)位要求高、并對電源電壓進(jìn)行監(jiān)視的場合,大多采用這種方式.本設(shè)計 系統(tǒng)采用上電自動復(fù)位和手動復(fù)位組合電路, 如原理圖中單片

17、機(jī)的RST引腳連接R1 (1°K )、C3 (10 F),按鍵S2可以選擇專門的復(fù)位按鍵,也可以選擇輕觸開關(guān).只要 Vcc上升時間不超過1ms,它們都能很好的工作.復(fù)位電路主要用來在單片機(jī)的程序進(jìn)入死循環(huán)后,能使單片機(jī)重新從頭執(zhí) 行程序而不會無休止的執(zhí)行程序.本設(shè)計采用了上電按鈕電平復(fù)位電路,如圖 2圖2-32、系統(tǒng)時鐘電路設(shè)計:對于時間要求不是很高的系統(tǒng),只要按圖進(jìn)行設(shè)計就能使系統(tǒng)可靠起振并穩(wěn)定運(yùn)行.但由于實際工作過程中的 C1、C2電容起著系統(tǒng)時鐘頻率微調(diào)和穩(wěn) 定的作用,因此,在實際應(yīng)用中一定要注意正確選擇參數(shù)(30±0 PF),并保證對稱性(盡可能匹配),這兩個電容元

18、件對鬧鐘的走時誤差有很大關(guān)系,并 且選用正規(guī)的瓷片或云母電容,如果可能的話,溫度系數(shù)要盡可能低.另外, 瓷片電容的實際焊接距離不應(yīng)該離單片機(jī)太遠(yuǎn)否那么誤差較大.具體的時鐘電路 如圖三所示:圖2-42.3.2 指示電路設(shè)計:指示可以有聲或光兩種形式.本系統(tǒng)采用聲音指示.元件是蜂鳴器和.鬧 鐘電路是用比擬器來比擬計時系統(tǒng)和定時系統(tǒng)的輸出狀態(tài),如果計時系統(tǒng)和定 時系統(tǒng)的輸出狀態(tài)相同,那么發(fā)出一個脈沖信號,冉和一個高頻信號混合,送到 放大電路驅(qū)動揚(yáng)聲器發(fā)聲,從而實現(xiàn)定時鬧響的功能.2.3.3 顯示電路的設(shè)計:時間顯示模塊主要由四位數(shù)碼管來顯示,配合按鍵限制模塊的校正與設(shè)定時間,相應(yīng)的顯示.時間正常顯示

19、時,LED每閃動60次,分鐘自動加一;每六十分鐘小時自動加一;每24小時天自動加一.圖2-52.3.4 定時和調(diào)時電路的設(shè)計:本設(shè)計由于使用到的鍵數(shù)目比擬少,不宜采用矩陣式鍵盤,采用了功能直 觀簡潔方便的獨(dú)立式鍵盤,而且考慮了鍵盤的消抖問題.比擬容易理解.每個 鍵的具體功能如下:按鍵定義如圖5所示:圖2-62.3.5 鬧鈴實現(xiàn):程序初始化的時候?qū)?20個鬧鈴時間進(jìn)行了賦值,其鬧鈴的時間分別是8:00、8:50、9:00、9:50、10:10、11:00、10:10、12:00、14:00、14:50、15: 00、15:50、16:00、16:50、17:00、17:50、19:00、19:

20、50、20:00、20:50.如果要修改鬧鈴時間,可以依次進(jìn)入調(diào)節(jié)模式2、3、4進(jìn)行修改.當(dāng)?shù)搅唆[鈴時間時,那么蜂鳴器會響起來.當(dāng)設(shè)定時間與當(dāng)前時間一致時,那么鬧鐘自動鬧鈴進(jìn)行提示,同時二極管閃亮一分鐘后,自動退出響鈴狀態(tài),假設(shè)按K3鍵,鬧鐘退出響鈴狀態(tài).圖2-7蜂鳴器2.3.6溫度測量:本次設(shè)計采用了 DS18B20溫度芯片,該芯片能測量環(huán)境中的溫度變化, 通 過單片機(jī)的處理就可以顯示出實時溫度值.當(dāng)環(huán)境溫度改變時,顯示出來的溫 度也會隨著改變.U2VCCDQ24.0GND D818B2O<TEXT>圖2-8DS18B20溫度芯片第三章軟件設(shè)計本系軟件設(shè)計中,利用單片機(jī)定時器設(shè)計

21、時間計時處理,采用單片機(jī)內(nèi)部的T0定時器溢出中斷來實現(xiàn),工作在 T1方式下,定時50微妙,那么連續(xù)中斷20 次即為一秒,得到了我們所需時間的最小單位該設(shè)計用C51編寫程序,由于匯編語言的移植性比擬差,而C語言那么比擬靈活.許多子函數(shù)都可以直接移植過去.在程序中除了有主函數(shù)外還包含許多子函數(shù),如延時函數(shù)、按鍵掃描函數(shù)、 初始化函數(shù)、時間顯示函數(shù)、設(shè)定鬧鐘顯示函數(shù)、設(shè)定日期顯示函數(shù)、設(shè)定年份顯示函數(shù)、月份選擇函數(shù)、年份顯示輔助函數(shù)圖3-1 總的硬件電路圖調(diào)節(jié)工作模式:調(diào)節(jié)模式的實現(xiàn)只用了三個按鈕,分別是 mode、inc和dec按鈕.如圖3-2所示:圖3-2三個調(diào)節(jié)按鈕開始程序仿真時,進(jìn)入的是設(shè)定

22、好的模式0 :圖3-3模式0按下mode按鍵,那么進(jìn)入模式1:進(jìn)入修改時間,此時修改分鐘按INC按鍵,修改小時按DEC按鍵:圖3-4模式1再次按下mode按鍵,那么進(jìn)入模式2:選擇要修改的鬧鈴,此處顯示的是第2個鬧鈴,可以按inc按鍵加,也可以按下dec按鍵減:圖3-5模式2再次按下mode按鍵,那么進(jìn)入模式3:修改選定的鬧鈴的分鐘此時修改的是鬧鈴的分鐘,inc按鍵加,dec按鍵減:圖3-6模式3再次按下mode按鍵,那么進(jìn)入模式4:修改選定的鬧鈴的小時此時修改的是鬧鈴的小時,inc按鍵加,dec按鍵減:圖3-7模式4再次按下mode按鍵,那么回到模式0:正常工作狀態(tài):圖3-8返回小式0四課程

23、設(shè)計心得此次課程設(shè)計為期三個星期,我們從中獲益匪淺.本課程設(shè)計是所學(xué)的綜 合知識練習(xí).從討論、確定方案、設(shè)計原理圖、仿真的過程中,我們學(xué)到了很多,這對我們來說是一次將課本所學(xué)知識應(yīng)用到具體實踐中的一次考驗雖然在這個過程中我們遇到了很多困難,編寫程序需要一步一步并認(rèn)真的 調(diào)試,一個小小的錯誤都可導(dǎo)致整個程序的不可用;硬件仿真需要考慮硬件與 軟件的連調(diào),才能保證硬件與軟件協(xié)同工作.我們通過查閱資料、同學(xué)的幫 助,最終根本解決這些問題,從而根本完成了課程設(shè)計的要求.在這個過程中 我們學(xué)會了發(fā)現(xiàn)問題、分析問題并最終解決問題,為我們以后的工作和學(xué)習(xí)打 下了一定的根底.此次課程設(shè)計,也使我們發(fā)現(xiàn)了自己的缺

24、點(diǎn),課本所學(xué)知識與實踐是有一 定距離的,我們不僅要學(xué)好科學(xué)文化知識,更要積極的參與實踐學(xué)習(xí),真樣才 能有更大的收獲,真正學(xué)到知識,要把理論與實際相結(jié)合,從而成為真正有用 的人.五參考文獻(xiàn)1、單片機(jī)典型系統(tǒng)設(shè)計實例精講/彭為等編著.一北京:電子工業(yè)出版社,ISBN 7-2、單片機(jī)C51程序設(shè)計教材與實驗/祁偉等編著.一北京:北京航空航天大學(xué)出版社,ISBN 7-81077-736-X3、單片機(jī)微型計算機(jī)技術(shù)/劉國榮等編著.一北京:機(jī)械工業(yè)出版社.4、單片機(jī)原理與應(yīng)用/曾屹等編著.一長沙:中南大學(xué)出版社.高等院校培養(yǎng)應(yīng)用型人才電子技術(shù)類課程規(guī)劃教材ISBN 987-7-81105-832-15、陳

25、光東,?單片微型計算機(jī)原理與接口技術(shù)?華中科技大學(xué)出版社出版19996、何立民,MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù),北京航空航天大學(xué)出版社,20017、李建忠,單片機(jī)原理及應(yīng)用,西安電子科技大學(xué)出版社,20228、潘永雄,新編單片機(jī)原理與應(yīng)用.西安:西安電子科技大學(xué)出版社.20229、胡汗才編?單片機(jī)原理及其接口技術(shù)?清華大學(xué)出版社出版199610、 Mano «Digital Design» Third Edition Higher Education Press , 2022.六附錄附錄一:原理圖附錄二:程序源代碼/*名稱:作息時間限制限制器的設(shè)計程序

26、,基于 AT89C51單片機(jī),用lcd12864顯示內(nèi)容:三個按鍵:mode模式、inc增加、dec減少一個LCD12864顯示 一個DS18B20數(shù)字溫度計和一個聲音播放器SOUNDER日期:2022-12-7 編寫:ZMY*#include<>#include<>#define LCD P0sbit DQ=P3A7;,1*/0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,/*":",2*/0x00,0x00,0x00,0x00,0x00

27、,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*".",3*/0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,/*"C",4*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"",5*/;/符號/*LCD顯示模塊程序*/* 檢查 12864L

28、CD*/checkbusy()E=1;RW=1;RS=0;LCD=0Xff;if(BUSY);/*writecode(unsigned char dat)寫命令 */寫命令 checkbusy();E=0;RW=0;RS=0;LCD=dat;E=1;E=0;/*寫數(shù)據(jù)*/寫數(shù)據(jù)writedata(unsigned char dat) checkbusy();E=0;RW=0;RS=1;LCD=dat;E=1;E=0;/*漢字顯示程序 */void hanzi(unsigned char page,unsigned char lineaddress,int n,int a, unsigned c

29、har table16) unsigned char temp32;if(lineaddress<0X80) CS1=0;CS2=1;/leftfor(j=2*a;j<n+2*a;j+) if(lineaddress>=0X80)CS1=1; /rightCS2=0;lineaddress=lineaddress-0X40;)for(k=0;k<16;k+)tempk=tablejk;j+=1;for(k=0;k<16;k+)temp16+k=tablejk;writecode(page);writecode(lineaddress);for(i=0;i<1

30、6;i+) writedata(tempi); writecode(page+1);writecode(lineaddress);for(i=16;i<32;i+) writedata(tempi);lineaddress+=16;/*數(shù)字和字符顯示程序*/void zifu(unsigned char page,unsigned char lineaddress,int n,int a, unsigned char table8) unsigned char temp16;if(lineaddress<0X80)CS1=0;CS2=1;/leftfor(j=2*a;j<n+

31、2*a;j+)(if(lineaddress>=0X80)(CS1=1;/rightCS2=0;lineaddress=lineaddress-0X40;for(k=0;k<8;k+) tempk=tablejk;j+=1;for(k=0;k<8;k+) temp8+k=tablejk;writecode(page); writecode(lineaddress); for(i=0;i<8;i+) writedata(tempi); writecode(page+1);writecode(lineaddress); for(i=8;i<16;i+) writeda

32、ta(tempi); lineaddress+=8;初始化 */ /*LCD void LCD_inti()writecode(0X3f);/ 顯示開關(guān)關(guān)writecode(0XC0);/writecode(0Xb8);/writecode(0X40);/修改顯示起始行修改頁地址,修改列地址,x地址y地址/*顯示固定的漢字*/void xingxian() hanzi(0Xb8,0X40,4,0,&zi);/ 顯示姓名zifu(0xb8,0x70,20,0,&xuehao);/ 顯示學(xué)號hanzi(0xba,0x60,2,2,&zi);/ 顯示"時hanzi(

33、0xba,0x80,2,3,&zi);/ 顯示"分hanzi(0xba,0xa0,2,4,&zi);/ 顯示“秒/ 顯示“年份hanzi(0xbc,0xa0,2,5,&zi);/ 顯示“模"zifu(0xbc,0x40,2,2,&shu);zifu(0xbc,0x48,2,0,&shu);zifu(0xbc,0x50,2,1,&shu);zifu(0xbc,0x58,2,2,&shu);zifu(0xbc,0x60,2,0,&fuhao);zifu(0xbc,0x78,2,0,&fuhao);zifu(

34、0xb8,0x60,2,5,&fuhao);顯示空白zifu(0xb8,0x68,2,5,&fuhao);zifu(0xba,0x40,2,5,&fuhao);zifu(0xba,0x48,2,5,&fuhao);zifu(0xba,0xb0,2,5,&fuhao);zifu(0xba,0xb8,2,5,&fuhao);zifu(0xbc,0x90,2,5,&fuhao);zifu(0xbc,0x98,2,5,&fuhao);zifu(0xbc,0xb0,2,2,&fuhao);zifu(0xbe,0x58,2,0,&am

35、p;fuhao);/顯示"-"/*溫度模塊程序*/*延時*/*void delayds(unsigned int i)初始化函數(shù) */while(i-); /*12M, 一次 6us,加進(jìn)入退出14us(8M 晶振,一次 9us) */ /* unsigned char init(void) unsigned char x;DQ=1;/ 復(fù)位delayds(8);DQ=0;/單片機(jī)將DQ拉低delayds(80); /復(fù)位信號延時大于480usDQ=1;在復(fù)位電平結(jié)束之后,單片機(jī)應(yīng)該將數(shù)據(jù)單總線拉高delayds(14);x=DQ;/判斷復(fù)位是否成功.如果 x=0那么初始化

36、成功,x=1那么初始化失敗delayds(20);return(x); readchar(void)/*讀一個字節(jié) */unsigned char i=0;unsigned char dat = 0;for(i=8;i>0;i-) /*/ 寫入 ds1820 的 bit 數(shù),一個字節(jié) 8 個 bit*/ DQ=0; /給脈沖信號,“讀起始位dat>>=1;右移運(yùn)算,把一個字節(jié) data(A)分成8個bit環(huán)移DQ=1; /給脈沖信號,“讀停止位 if(DQ)dat|=0x80;/按位或,取最高位并存入dat中,DQ=1那么dat的最高位也為 delayds(4);)retur

37、n(dat);)/*寫一個字節(jié)*/writechar(unsigned char dat)unsigned char i=0;for (i=8;i>0;i-)DQ=0;/ “寫起始低DQ=dat&0x01;/通過按位與使送出數(shù)據(jù)為“0或“ 1,取最低位,先送位再送delayds(5);/60us 至1J 120us 延時DQ=1;“寫停止dat>>=1;/右移運(yùn)算,取高一位數(shù)據(jù)傳入)delayds(4);)/*讀取溫度 */readtemp()float tt=0;unsigned char a=0;unsigned char b=0;unsigned char t=

38、0;init();writechar(0xCC); /跳過讀序號列號的操作writechar(0x44); /啟動溫度轉(zhuǎn)換init();writechar(0xCC); /跳過讀序號列號的操作前writechar(0xBE);/寫入讀取溫度指令,讀取溫度存放器等(共可讀9個存放器)兩個就是溫度a=readchar();/讀溫度值的低字節(jié)b=readchar(); /讀溫度值的高字節(jié)fu=b&0x80;if(fu!=0)flag=1;/負(fù)溫標(biāo)志位置1b=b;/ 取反a=a;tt=(b*256)+a+1)*; 求負(fù)的溫度 t=tt;)else(flag=0;/正溫標(biāo)志位置0tt=(b*25

39、6)+a)*;/ 求正的溫度 t=tt;)return(t);溫度計算*/*worktemp(void)(realtemp=readtemp();/ 將讀取的溫度賦給realtempbai=realtemp/100;shi=(realtemp%100)/10;ge=realtemp%10;xiaoshu=realtemp-(bai*100+shi*10+ge);(if(flag=1)/標(biāo)志位顯示判斷(zifu(0xbe,0x80,2,0,&fuhao);/顯示“符號-")elsezifu(0xbe,0x80,2,5,&fuhao);)if(bai!=0)/百位顯示判斷

40、zifu(0xbe,0x88,2,bai,&shu);elsezifu(0xbe,0x88,2,5,&fuhao);if(shi!=0)/十位顯示判斷zifu(0xbe,0x90,2,shi,&shu);elsezifu(0xbe,0x90,2,5,&fuhao);zifu(0xbe,0x98,2,ge,&shu);個位顯示zifu(0xbe,0xa0,2,1,&fuhao);zifu(0xbe,0xa8,2,xiaoshu,&shu);/小數(shù)位顯示zifu(0xbe,0xb0,4,3,&fuhao);/顯示溫度單位C*時間模塊程

41、序*/*時間值和日期的計算*/workhour() (/時間的計算h1=hour/10;h2=hour%10; /小時 f1=minute/10;f2=minute%10;/ 分鐘s1=second/10;s2=second%10; /秒m1=month/10; /日期的計算m2=month%10;d1=day/10 ;d2=day%10 ;/*顯示時間和日期 */void shixian() workhour();/ 取時間和日期zifu(0xba,0x50,2,h1,&shu);/ 顯示“小時" zifu(0xba,0x58,2,h2,&shu);zifu(0xb

42、a,0x70,2,f1,&shu);/ 顯示"分zifu(0xba,0x78,2,f2,&shu);zifu(0xba,0x90,2,s1,&shu);/ 顯示“秒zifu(0xba,0x98,2,s2,&shu);zifu(0xbc,0x68,2,m1,&shu);/ 顯示"月份 zifu(0xbc,0x70,2,m2,&shu);zifu(0xbc,0x80,2,d1,&shu);/ 顯示"日子 zifu(0xbc,0x88,2,d2,&shu);) void timer() interrupt

43、1 中斷函數(shù)/*T0*/TH0=(65536-50000)/256; 給 T0 賦初值TL0=(65536-50000)%256;count+;if(count=20)滿一秒鐘,秒力口 1count=0;second+;if(second=60)滿一分鐘,分加 1(second=0;minute+;if(minute=60) 滿一小時,時力口 1(minute=0;hour+;if(hour=24) 滿了一日 ,日加 1(hour=0;day+ ;if(day=30)/滿了 一月,月加(day=0;month+;/*聲音模塊程序*/*延時*/*void delaysj(unsigned cha

44、r j)/ 延時程序(unsigned char i;while.-)(for(i=0;i<50;i+);/*蜂鳴器*/void s_fmq()(unsigned char j=2;蜂鳴器叫while(j-) (fmq=fmq;delaysj(3);)/*void nling()鬧鈴判斷*/ unsigned char i ;for(i=0;i<20;i+)if(hour=dsi0&&minute=dsi1)/判斷是否到鬧鈴時間 s_fmq();調(diào)用蜂鈴)*調(diào)節(jié)模塊程序*/*調(diào)節(jié)模式*/*void tiaojie()if(mode=0)while(!mode);mode_value+;)zifu(0xbc,0xb8,2,mode_value,&shu);switch(mode_value)/模式0:正常工作.顯示“祝你快樂case 0:hanzi(0xbe,0x40,8,6,&zi); break ;case 1:/模式1:可以修改時間,其中 inc是改分鐘,dec是改小時if(inc=0) while(!inc);minute+;if(minute=60) minute=0; if(dec=0) while(!dec);hour+; if(

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論