版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本科畢業(yè)設(shè)計(論文) 本科畢業(yè)論文(設(shè)計)本科畢業(yè)論文(設(shè)計)題題 目:目: 基于單片機的簡易燈光時鐘設(shè)計基于單片機的簡易燈光時鐘設(shè)計 專專 業(yè):業(yè): 電子信息工程電子信息工程 學(xué)生姓名:學(xué)生姓名: 學(xué)生學(xué)號:學(xué)生學(xué)號: 100305044100305044 院院 系:系: 物理與電子工程學(xué)院物理與電子工程學(xué)院 年級、班:年級、班: 1010 級級 5 5 班班 指導(dǎo)教師:指導(dǎo)教師: 2014年 5 月 6 日本科畢業(yè)設(shè)計(論文)摘要摘要本文介紹了一個基于單片機的簡易燈光時鐘的設(shè)計,它具有顯示年、月、日、時鐘、分鐘和秒、星期的顯示功能,還具有閏年補償?shù)裙δ?,時鐘芯片采用的是 DS1302,DS
2、1302 能存儲時間信息,并且可以掉電保存。單片機通過讀取DS1302 的信息后通過 LCD1602 顯示在液晶屏幕上面。本設(shè)計包含 4 個按鍵,編號分別為 1、2、3、4,每個按鍵的功能分別為功能選擇、光標(biāo)移動、加按鍵以及減按鍵,可以設(shè)置鬧鐘,當(dāng) DS1302 上面的時間跟單片機所設(shè)定的鬧鐘時間一致后,單片機可以驅(qū)動蜂鳴器進(jìn)行鬧鈴提醒。除此之外,系統(tǒng)還附帶整點報時,以及任何時候通過按鍵語音報時功能。關(guān)鍵詞關(guān)鍵詞:單片機;單片機; LCD1602;蜂鳴器;蜂鳴器;DS1302;鬧鐘;語音報時;鬧鐘;語音報時;本科畢業(yè)設(shè)計(論文)IAbstractAbstract This paper is a
3、im to introduce a design which is based on simple chip microcomputer clock. It owns two main functions, namely, showing time, including year, month, day, hour, minute and second; and compensation of the leap year. The chip of this design is called DS1302, which can save time information even when th
4、e electricity was cut down accidently. The Single-Chip Microcomputer is also capable of reading the information on DS1302 and reflects the data on the LCD screen through the LCD1602. The design includes four buttons, numbered 1,2,3,4, respectively, each button function selection, cursor movement, pl
5、us buttons and minus buttons, you can set the alarm. The Microcontroller can drive the buzzer to make the clock alarming when the time on these two equipments the same are. Besides, the basic functions in this microcontroller, such as: Chime on every hour and the time speaking by telephone, are also
6、 included in this design.KeyKey wordswords: : chipchip microcomputer,microcomputer, LCD1602,LCD1602, buzzer,buzzer, DS1302,DS1302, alarmalarm clock.clock.本科畢業(yè)設(shè)計(論文)II本科畢業(yè)設(shè)計(論文)目錄目錄摘要摘要.I IABSTRACTABSTRACT.IIII第一章第一章 緒論緒論.1 11.1 目的和意義.11.2 本系統(tǒng)實現(xiàn)的主要功能.1第二章第二章 總體方案論證與設(shè)計總體方案論證與設(shè)計.2 22.1 主控模塊的選型和論證 .22.2
7、 顯示模塊的選型和論證 .22.3 時鐘芯片的選型和論證 .22.4 溫度檢測模塊的選型和論證 .32.5 整點報時模塊的選型和論證 .32.6 電源模塊.32.7 系統(tǒng)整體設(shè)計概述 .3第三章第三章. .系統(tǒng)硬件電路設(shè)計系統(tǒng)硬件電路設(shè)計.5 53.1 主控模塊 .53.1.1 單片機的最小系統(tǒng)設(shè)計.53.2 LCD 液晶顯示器簡介 .63.2.1 液晶原理介紹.63.2.2 液晶模塊簡介 .63.2.3 液晶顯示部分與 STC89C52 的接口 .63.3 鍵盤模塊設(shè)計 .73.4 蜂鳴器模塊設(shè)計 .83.5 時鐘模塊的設(shè)計 .83.6 溫度檢測模塊設(shè)計 .103.6.1 溫度傳感器工作原理
8、 .103.6.2 DS18B20 硬件電路設(shè)計 .113.7 語音模塊設(shè)計.11第四章第四章. .系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.12124.1 系統(tǒng)軟件總體設(shè)計 .124.2 程序設(shè)計原理 .165.5.系統(tǒng)調(diào)試系統(tǒng)調(diào)試.18185.1 硬件調(diào)試 .185.2 軟件調(diào)試 .18參考文獻(xiàn)參考文獻(xiàn).2020致謝致謝.2121附錄附錄.2222本科畢業(yè)設(shè)計(論文)系統(tǒng)整體原理圖系統(tǒng)整體原理圖.2222系統(tǒng)系統(tǒng) PCBPCB 圖圖.2222元件清單元件清單.2424系統(tǒng)源程序系統(tǒng)源程序.2525本科畢業(yè)設(shè)計(論文)0第一章 緒論1.1 目的和意義現(xiàn)代社會已經(jīng)邁上了信息化的步伐,微電子技術(shù)的發(fā)展也越來越快
9、,單片機的運用也日漸廣泛。無論是通信業(yè)的學(xué)生,老師或者是研發(fā)人員,對于單片機的運用均青睞有加,因此單片機已成為研發(fā)人員必須掌握的能力之一,而且單片機也會發(fā)展成為一個高薪行業(yè)。而時鐘作為電子類的一個小設(shè)計,不僅深受人們的喜愛,也是單片機實驗中一個非常常見的題目。由于單片機給人有很大的發(fā)揮空間,是以會對制作人以高要求對待,并且在掌握設(shè)計的同時程序要以簡潔為主,功能上要能滿足人們需求,顯示界面要大膽創(chuàng)新,標(biāo)新立異。LCD 顯示的數(shù)字時鐘清晰直觀的顯示準(zhǔn)確時間、而且精度很是高、并且有夜視功能,還擴展出多種與人方便功能。本設(shè)計中的簡易燈光時鐘既是一個時間控制系統(tǒng),又包含溫度檢測系統(tǒng),既能準(zhǔn)確無誤的顯示出
10、正確的高精度的時間又能檢測當(dāng)前的溫度本文提出了以 STC51 系列單片機為核心,采用 DS1302 作為電子時鐘的核心芯片的設(shè)計方案,與溫度傳感器 DS18B20、LED 顯示、時鐘芯片 DS1302、按鍵等模塊組成硬件的電子電路系統(tǒng)。顯示采用 LCD,以實現(xiàn)顯示年、月、日、時、分鐘、秒、星期、溫度。設(shè)計過程中使用 Keilc51 軟件,采用 C 語言編程;此外,還要從多方面保障系統(tǒng)的穩(wěn)定性,提高系統(tǒng)的性能指標(biāo)本設(shè)計可以對時間進(jìn)行實時的校準(zhǔn),讀取時間方便、能直觀顯示實時時間、功能方面體現(xiàn)多樣話、簡單明了的電路、低廉的成本都是該設(shè)計的優(yōu)點,滿足未來電子設(shè)計的發(fā)展要求,市場前景好。1.2 本系統(tǒng)實
11、現(xiàn)的主要功能本系統(tǒng)設(shè)計制作一個基于單片機的簡易燈光時鐘。能實現(xiàn)以下幾種功能:(1)鍵盤掃描,設(shè)計按鍵掃描程序下載到單片機,每個按鍵賦予一個功能,單片機通過掃描程序檢測用戶按鍵,確定后實現(xiàn)功能。(2)通過單片機的 ds1302 的數(shù)據(jù)采集,并實時顯示年,月,日,時,分,秒,和星期在液晶屏上,并且可以設(shè)置時間,系統(tǒng)不供電的情況時鐘芯片依然可以由后備紐扣電池供電,使其掉電時間保存。(3)用戶可以設(shè)定鬧鐘時間,當(dāng)時間到了之后,系統(tǒng)自動驅(qū)動蜂鳴器發(fā)響。(4)系統(tǒng)附帶有整點報時功能,以及任何時候通過按鍵報時功能。(5)系統(tǒng)還帶有測溫功能,單片機可以實時讀取 DS18B20 的溫度數(shù)據(jù)并在液晶上顯示。本科畢
12、業(yè)設(shè)計(論文)1第二章 總體方案論證與設(shè)計本系統(tǒng)可以由主控、顯示、時鐘、溫度檢測、電源等模塊組成,以下是討論這幾個模塊的選型和論證。2.1 主控模塊的選型和論證方案一:采用 MSP430F149,MSP430F169 系列單片機,該單片機是 TI 公司 1996 年開始推向市場的一種 16 位超低功耗的混合信號處理器。其內(nèi)部集成了很多模擬電路、數(shù)字電路和微處理器,提供 12 位 ADC,具有采樣、保持、自動掃描,有 2 個 16 位計數(shù)器等強大的功能。但芯片價格昂貴,不適合一般的設(shè)計和開發(fā)。方案二采用 52 系列的單片機,該單片機具有可靠性高,價格成本低,解密難,高性能的特點,32 個 IO
13、口,且 STC 系列的單片機可以在線編程、調(diào)試。因此選用方案二中的 52 系列單片機作為主控芯片。2.2 顯示模塊的選型和論證方案一:用點陣式數(shù)碼管顯示,它是由發(fā)光二極管八行和八列顯示文本,更適合用于顯示文字,如進(jìn)行數(shù)字顯示使用就太浪費了,而且價格比較高,所以不用此種作為顯示。方案二:使用 LED 數(shù)碼管動態(tài)掃描,LED 數(shù)碼管雖然價格適中,最適合數(shù)字顯示,采用動態(tài)掃描的方法與單片機連接,單片機口線占用得少。但是由于數(shù)碼管動態(tài)掃描需要借助 74LS164 移位寄存器,74LS164 在調(diào)試的時候,電路方面常出故障,所以不采用 LED 數(shù)碼管作為顯示。方案三:選用 LCD 液晶顯示屏,它可以清晰
14、可見的顯示文字,圖像,功能很是強大,關(guān)于本設(shè)計的要求,我們使用一個 LCD1602 即能滿足要求,成本低,雖然接口線有點多,但是調(diào)試會很方便。所以本設(shè)計中方案三中的 LCD1602 液顯示屏作為顯示模塊。2.3 時鐘芯片的選型和論證方案一:用程序控制單片機實現(xiàn)時間計數(shù)。采取該方案雖然能夠縮小時鐘芯片的使用量,節(jié)省成本開支,但是,誤差會非常大。方案二:采用 DS1302 時鐘芯片實現(xiàn)時鐘,DS1302 是美國 DALLAS 公司推出的一種性能比較高、性價比高,功耗較低、帶 RAM 的實時時鐘電路,它可以對年、月、日、時鐘、分鐘、秒以及星期進(jìn)行計時,還能進(jìn)行閏年補償,工作電壓為2.5V5.5V。D
15、S1302 里面含有一個 8*31 的 RAM 存儲器,用于臨時存放數(shù)據(jù)。DS1302 主要特點是采用串行數(shù)據(jù)傳輸,具有可編程充電和掉電保護(hù)功能,采用普通 32.768KHz 晶振作為標(biāo)準(zhǔn)時鐘。本科畢業(yè)設(shè)計(論文)2因此本設(shè)計中采用方案二中的 DS1302 作為時鐘模塊2.4 溫度檢測模塊的選型和論證方案一:AD590 感溫電流源的輸出電流與絕對溫度成比例。電源電壓在 4 V30 V范圍內(nèi),AD590 可充當(dāng)一個高阻抗,調(diào)節(jié)系數(shù)為 1 A/K 為恒流調(diào)節(jié)器。通過激光調(diào)整的片內(nèi)薄膜電阻,用于校準(zhǔn)裝置,使該器件在 25C 時有 298.2 A 的輸出電流。由于該芯片輸出為模擬量還同時需要 AD 轉(zhuǎn)
16、換器對其進(jìn)行采集。因此不適用于本設(shè)計方案二: DS18B20 數(shù)字溫度傳感器耐磨耐碰,體積小,主要根據(jù)應(yīng)用場合的不同而外觀不同,DS18B20 用途廣泛,如電纜溝測溫,機房測溫,彈藥庫測溫、農(nóng)業(yè)大棚測溫,高爐水循環(huán)測溫,鍋爐測溫,潔凈室測溫等場合。使用場合廣,價格低,實用性強。因此本設(shè)計采用方案二中的 DS18B20 芯片進(jìn)行溫度采集。2.5 整點報時模塊的選型和論證整點報時模塊集成的語音芯片 NY3P035,NY3P035 是一款具有 PWM 輸出的 OTP 語音標(biāo)準(zhǔn)芯片,該芯片內(nèi)部集成了 09 以及一些常用單位的錄音。使用時只要根據(jù)錄音存放的位置依次讀出就能播報出當(dāng)前的重量和價格。2.6
17、電源模塊方案一: 選用以下兩塊芯片 LM337 和 LM317 自制一個可調(diào)的電源模塊,LM317 和LM337 分別是三端可調(diào)式輸出正電壓穩(wěn)壓器和三端可調(diào)式輸出負(fù)電壓穩(wěn)壓器。通過這 2 塊芯片,我們可以很容易的得到正負(fù) 5V,正負(fù) 12V 和正 3V 電壓,但由于本設(shè)計需求各模塊體積小,而自制電源體積較大,故不采用此方案。方案二: 采用 USB 接口供電,既能夠下載程序,也能供電,一舉兩得,故采用此方案。2.7 系統(tǒng)整體設(shè)計概述語音芯片揚聲器蜂鳴器模塊主控模塊單片機液晶顯示模塊LCD1602溫度測量模塊DS18B20時鐘模塊DS1302按鍵模塊圖 2.7 系統(tǒng)結(jié)構(gòu)框圖本科畢業(yè)設(shè)計(論文)3本
18、系統(tǒng)是以 STC89C52 單片機為核心,首先要對系統(tǒng)進(jìn)行初始化,然后單片機對鍵盤,DS18B20 等模塊進(jìn)行掃描,實現(xiàn)對鍵盤的響應(yīng),實時顯示分鐘、秒等,對 1602 液晶顯示,鬧鐘、溫度測量等功能,其中,單片機起到控制和協(xié)調(diào)各功能模塊的工作。系統(tǒng)的結(jié)構(gòu)框圖見圖 2.7。本科畢業(yè)設(shè)計(論文)4第三章.系統(tǒng)硬件電路設(shè)計3.1 主控模塊單片機在全部設(shè)計中起到了統(tǒng)領(lǐng)全局,承前啟后的作用,在該設(shè)計中單片機需要完成的任務(wù)主要有對鍵盤掃描,對 DS18B20 進(jìn)行及時的檢測,驅(qū)動蜂鳴器,驅(qū)動液晶顯示需要顯示的內(nèi)容,所以,在本設(shè)計中我們選用 52 系列的單片機作為系統(tǒng)的總控制模塊。如圖 3.1 所示為 ST
19、C89C52 單片機的結(jié)構(gòu)框圖。時鐘電路ROM/EPROM/Flash 4KBRAM128BSFR 21個定時個/計數(shù)器2CPU總線控制中斷系統(tǒng)5個中斷源2個優(yōu)先級串行口全雙工1個4個并行口XTAL2XTAL1RST EAALEPSENP0P1P2P3VssVcc圖 3.1 STC89C52 單片機結(jié)構(gòu)框圖3.1.1 單片機的最小系統(tǒng)設(shè)計本科畢業(yè)設(shè)計(論文)5P1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MISO7P1.7/SCK8RESET9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL
20、119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1供供供+5V12Y212MHZ30pFC330pFC4123456789P110K供供+5VS1SW-PB10KR310uFC2+5V圖 3.1.1 單片機最小系統(tǒng)電路圖圖 3.1.1 所示的電路圖是單片機在本設(shè)計中的最小系統(tǒng),時鐘電路選用12M 的晶振,作用是為單片機提供一個時鐘基準(zhǔn),其執(zhí)行一條指令需要一個機械周期,單片機的復(fù)位電路是讓單片機的
21、狀態(tài)回到剛上電的狀態(tài),因為 P0 口是一個漏極準(zhǔn)雙向的 I/O 口,所以需要上拉電阻才能正常工作。3.2 LCD 液晶顯示器簡介由于本設(shè)計中要求顯示界面顯示一些參數(shù),因此這里選用了 LCD1602 作為界面顯示,可以把一些相關(guān)的參數(shù)進(jìn)行顯示。 3.2.1 液晶原理介紹顯示部分選用 LCD1602 字符型液晶,輔以必要的外接電路組成顯示模塊,單片機控制帶字符的 LCD1602 查找其字符庫,從中選出要顯示的字符,設(shè)置光標(biāo),將之前查找到的字符在此對應(yīng)即可。3.2.2 液晶模塊簡介LCD1602 液晶模塊的引腳圖如圖 3.2.2 所示。圖 3.2.2 LCD1602 引腳圖本科畢業(yè)設(shè)計(論文)6液晶
22、寄存器選擇控制如表 1。表 1 寄存器選擇控制RSR/W操作說明00寫入指令寄存器(清除屏幕內(nèi)容顯示等)01讀位地址計數(shù)器(DB0DB6)和 busy flag(DB7)10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)3.2.3 液晶顯示部分與 STC89C52 的接口 如圖 3.2.3 所示。用 STC89C52 的 P0 口作為數(shù)據(jù)線,用 P1.2、P1.1、P1.0分別作為 LCD 的 EN、R/W、RS。其中 EN 作為片選信號,在出現(xiàn)下降沿的時候觸發(fā),RS 是寄存器選擇信號,R/W 是讀寫信號,在整個顯示模塊中,我們主要設(shè)計步驟如下:首先進(jìn)行清屏,顯示模塊初始化。然后將接口
23、數(shù)據(jù)位設(shè)置為 8 位,顯示行數(shù)設(shè)置為 2 行,設(shè)定字型為 57 點陣,然后取消光標(biāo)和字體閃爍, 顯示設(shè)置為整體顯示,最后設(shè)置為正向增量方式且不移位。將要顯示的字符送到對應(yīng)的數(shù)組中,最后進(jìn)行統(tǒng)一顯示。P1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MISO7P1.7/SCK8RESET9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.63
24、3P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1供供供+5V12Y212MHZ30pFC330pFC4123456789P110K供供VSS1VCC2VEE3RS4RW5EN6DB07DB18DB29DB310DB411DB512DB613DB714A15K16LCD1lcd1602+5V10KR1+5V+5V+5VS1SW-PB10KR310uFC2+5V圖 3.2.3 LCD1602 與 STC89C52 的接口3.3 鍵盤模塊設(shè)計本按鍵模塊按鍵一端接單片機的 I/O 口,另一端接地,由于單片機的 I/O本科畢業(yè)設(shè)計(論文)7口內(nèi)部都有上拉電阻,所以
25、在沒有按鍵按下的時候,我們會檢測到高電平,當(dāng)按鍵被按下,I/O 口與地面等電勢,此時為低電平,因此通過 I/O 端口的狀態(tài)變化檢測即可知道按下了哪個按鍵。4 個按鍵分別代表以下功能,第一為功能選擇按鍵,可以切換不同參數(shù)設(shè)置界面,第二個為切換按鍵,可以切換時、分、秒等參數(shù)進(jìn)行設(shè)置,第三個為增加按鍵,第四個為減少按鍵。其中按鍵還可以設(shè)置鬧鐘,重置時間等功能。鍵盤模塊電路圖如圖 3.3 所示。P1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MISO7P1.7/SCK8RESET9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.
26、717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1供供供+5VS2SW-PBS3SW-PBS4SW-PBS5SW-PB圖 3.3 鍵盤模塊電路圖3.4 蜂鳴器模塊設(shè)計本設(shè)計還帶有鬧鐘功能,用戶可以通過按鍵設(shè)定好鬧鐘,當(dāng)當(dāng)前時間跟鬧鐘時間一致的時候,單片機就可以驅(qū)動蜂鳴器發(fā)聲。通過試驗,發(fā)現(xiàn)單片機的 I/O 口無法直接驅(qū)動蜂鳴器,是因為蜂鳴器的工作電流一般比較大,所以我
27、們利用三極管開關(guān)電路來提供足夠大的驅(qū)動電流。本處選用的是 8550 三極管,它是一個 PNP 型的三極管,當(dāng)基極給低電平的時候三極管導(dǎo)通,這時候蜂鳴器發(fā)聲,當(dāng)給高電平的時候,三極管關(guān)閉,蜂鳴器不發(fā)聲。蜂鳴器模塊的電路圖如圖 3.4 所示。1KR4+5VP3.2LS1供供供Q18550圖 3.4 蜂鳴器驅(qū)動電路電路圖3.5 時鐘模塊的設(shè)計在本設(shè)計中,時鐘模塊的設(shè)計,我們把 DS1302 這塊串行日歷時鐘芯片作為核心,因為 DS1302 具有與單片機的連線很少,節(jié)省單片機的系統(tǒng)資源的有點,單片機通過 I/O 讀取 DS1302 上的數(shù)據(jù)可以得到實時時間。由于采用單片機作為計時模塊會占用硬件資源,而
28、且采用中斷、查詢等方式也要耗費單片機的資源,可能會造成很大的浪費,而采用 DS1302 卻可以很好本科畢業(yè)設(shè)計(論文)8的解決這類問題。DS1302 是美國 DALLAS 公司推出的一種帶 RAM、高性能、能對年、月、日、星期、時、分、秒進(jìn)行計時,并且低功耗,可以進(jìn)行閏年補償?shù)臅r鐘電路,工作電壓為 2.5V5.5V。采用 24 小時或是 12 小時的格式。此外,DS1302 采用雙電源供電,主電源和備用電源,VCC1 作為備用電源,在模塊整體供電中提供電壓相對低的電壓,而 VCC2 作為主電源,VCC1 和 VCC2 的供電模式?jīng)Q定如下:VCC2VCC1+0.2 時 由 VCC2 供電 VCC
29、2VCC1 時 由 VCC1 供電圖 3.5.1 DS1302 引腳示意圖如圖 3.5.1 為 DS1302 的引腳圖。X1 和 X2 是震蕩源,外接 32.76KHz 的晶振,GND 為接地端,RST 為復(fù)位端,低電平有效,圖 3.5.2 為 DS1302 的引腳功能圖引腳號引腳名稱功能1VCC2主電源2,3X1,X2振蕩源,外接 32768HZ 晶振4GND地線5RST復(fù)位/片選線6I/O串行數(shù)據(jù)輸入/輸出端(雙向)7SCLK串行數(shù)據(jù)輸入端8VCC1后備電源圖 3.5.2 DS1302 引腳功能表在 3.5.3 中,最高位控制字(第七位)必須是一個合乎邏輯的,即必須為邏輯 1,第六位控制字
30、為 0 是日歷時鐘對數(shù)據(jù)的訪問,第六位是 1 表示存取 RAM數(shù)據(jù),第五位地址到第一位(A4-A0)表示指針指向操作單元地址,電平 1 或 0分別表示寫操作是讀操作。本科畢業(yè)設(shè)計(論文)9圖 3.5.3 DS1302 控制字DS1302 共有 12 個寄存器,其中有 7 個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式,其日歷、時間寄存器及其控制字見表 2,其中奇數(shù)為讀操作,偶數(shù)為寫操作。總共有 12 個寄存器 DS1302,與日歷 ,時鐘相關(guān)寄存器共 7 個,都存儲為BCD 格式,日歷,時鐘寄存器和相關(guān)聯(lián)的控制字的數(shù)據(jù)位如表 2 所示,其特征在于所述奇數(shù)讀操作,寫操作是偶數(shù)。表 2
31、DS1302 的日歷、時鐘寄存器及其控制字命令字各位內(nèi)容寄存器名寫操作讀操作取值范圍76543210秒寄存器80H81H00-59CH10 秒秒分鐘寄存器82H83H00-59010 分分10小時寄存器84H85H01-12 或00-2312/240AM/PM時時日期寄存器86H87H131010 日日月份寄存器88H89H01-1200010月周日寄存器8AH8BH01-0700000周日年份寄存器8CH8DH00-9910 年年從表 2 我們可以發(fā)現(xiàn),小時寄存器的第七位為 1 是 12 小時計時模式,在12 小時計時模式下,第五位為高電平表示 AM,低電平表示 PM,第七位為 0 是24
32、小時模式,這是位 5 為第二個十小時位標(biāo)志。暫停位位于秒寄存器的第七位,當(dāng)該位被設(shè)置為 1 時,時鐘振蕩器停止工作,然后 DS1302 工作在低功率模式,該位為 0 時,時鐘正常運行??刂萍拇嫫鞯刂肥?8FH,8EH,其第七位是寫保護(hù)位,其余七位均要置 0,在對時鐘進(jìn)行的任何寫操作時,寫保護(hù)位 WP 必須是 0,否則,寫保護(hù)位禁止任何一個寄存器進(jìn)行寫操作。3.6 溫度檢測模塊設(shè)計本設(shè)計還帶有一個溫度檢測的功能,系統(tǒng)可以通過讀取 DS18B20 的溫度數(shù)據(jù)并在 LCD1602 上顯示,使整個時鐘的功能更加豐富。3.6.1 溫度傳感器工作原理溫度傳感器 DS18B20 測溫在-55 至+125 攝
33、氏度范圍內(nèi),具有 12 位的精度。它有 0.0625 攝氏度的測溫分辨率,可設(shè)置存儲在 EEPROM 中,用戶自定義的報警溫度在掉電后仍然可以保存。另外,多個溫度傳感器可以并聯(lián)連接,但只需本科畢業(yè)設(shè)計(論文)10要使用 CPU 上的一個端口就可以與溫度傳感器電路進(jìn)行通信,這樣微控制器端口占用最少。它可以節(jié)省大量的端口和邏輯電路就能構(gòu)成溫度測量系統(tǒng)。圖3.6.1 是 DS18B20 的引腳圖。 圖 3.6.1 DS18B20 引腳圖我在實驗中發(fā)現(xiàn),當(dāng)使用 DS18B20,VCC 電壓應(yīng)保持在 5V,否則,如果電壓太低,降低了溫度傳感器的精度。而且,溫度傳感器從測量溫度結(jié)束后,將溫度傳出到轉(zhuǎn)換到數(shù)
34、字量的時候,需要一定的延時時間,否則會導(dǎo)致轉(zhuǎn)換錯誤,總是顯示一個時間不動。3.6.2 DS18B20 硬件電路設(shè)計GND1DQ2VCC3U3DS18B20+5V10kR5+5V圖 3.6.2 DS18B20 溫度檢測電路圖如圖 3.6.2 所示的是 DS18B20 的硬件設(shè)計,DQ 作為溫度傳感器 DS18B20 數(shù)據(jù)輸出端口,單片機通過檢測可以實時輸出溫度值的數(shù)據(jù),由于該溫度傳感器是單線通信,所以當(dāng)發(fā)送數(shù)據(jù)時為低電平有效,接收數(shù)據(jù)是為高電平有效,即輸出邏輯 1,但是,在接收狀態(tài)下,必須外接上拉電阻將其拉為高電平,才能正常輸出邏輯 1.3.7 語音模塊設(shè)計語音模塊設(shè)計采用 NY3P035 芯片
35、,該芯片內(nèi)部含有一個 ROM 表。單片機通過對該芯片發(fā)送序列的脈沖信號來查找該 ROM 的地址,以此來發(fā)出聲音。圖 3.7.1 語音芯片引腳圖本科畢業(yè)設(shè)計(論文)11單片機控制原理是:先發(fā)送一個復(fù)位脈沖到 RST(Rest)腳,接著發(fā)送 10 個脈沖到 DATA 腳。芯片即刻工作,播放第十段的聲音;如果需要播放第五段的聲音,則是:先發(fā)送一個復(fù)位脈沖到 REST 腳,接著發(fā)送 5 個脈沖到 DATA 腳。芯片即刻工作,播放第 5 段的聲音;第四章.系統(tǒng)軟件設(shè)計4.1 系統(tǒng)軟件總體設(shè)計本科畢業(yè)設(shè)計(論文)12開始系統(tǒng)初始化系統(tǒng)顯示相關(guān)時間溫度信息是否按下按鍵按鍵掃描子程序否是讀取時鐘芯片的相關(guān)時間
36、信息讀取溫度參數(shù)是否和設(shè)定的鬧鐘時間一致驅(qū)動鬧鐘發(fā)聲是否圖 4.1.1 主程序流程圖主程序流程圖如圖 4.1.1 所示,首先系統(tǒng)經(jīng)過初始化,清除系統(tǒng)中原有的一些冗余信息后,讀取時鐘芯片 DS1302 的內(nèi)部相關(guān)信息,例如:年、月、日等時間參數(shù),緊接著判斷當(dāng)前信息是不是和設(shè)定的鬧鐘信息一致,如果是的話,單片機就發(fā)出驅(qū)動信號驅(qū)動蜂鳴器發(fā)出聲音,如果不是,則單片機將讀取溫度傳感器 DS18B20 的相關(guān)信息,然后將讀取的時間信息和溫度信息傳入 LCD1602進(jìn)行顯示,單片機在每個循環(huán)時都會檢測是否有用戶按鍵,如果有按鍵的話,將自動跳轉(zhuǎn)到相應(yīng)的子程序。本科畢業(yè)設(shè)計(論文)13開始復(fù)位端變高啟動一次數(shù)據(jù)
37、傳送工作寫命令字節(jié)一位SCLK發(fā)脈沖夠8次嗎?寫數(shù)據(jù)字節(jié)一位SCLK發(fā)脈沖夠8次嗎?復(fù)位端變低結(jié)束否是否是圖 4.1.2 時鐘模塊子函數(shù)程序流程圖時鐘模塊的流程圖如圖 4.1.2 所示,首先先讓時鐘芯片的復(fù)位引腳置高,然后開始數(shù)據(jù)傳輸,然后寫一個指令字節(jié),然后發(fā)送串行時鐘脈沖信號,一直循環(huán),直到發(fā)送了 8 個命令字節(jié)為止。當(dāng)發(fā)送完 8 個命令字節(jié)時,寫數(shù)據(jù)進(jìn)時鐘芯片,首先寫入一位數(shù)據(jù)字節(jié),然后給 SCLK 引腳發(fā)送脈沖,一直循環(huán)寫入 8次,這樣數(shù)據(jù)寫入完成,最后將復(fù)位引腳拉為低電平,這樣就可以完成時鐘芯片的一次操作。本科畢業(yè)設(shè)計(論文)14按鍵1是否按下按鍵2是否按下按鍵3是否按下時間設(shè)定鬧鈴
38、設(shè)定切換對應(yīng)菜單增加相應(yīng)值YNNYYYNY按鍵掃描子函數(shù)松手檢測松手檢測鬧鈴標(biāo)志位清零YgFunctioncount=0按鍵4是否按下YgFunctioncount=2?gFunctioncount=3?NNgFunctioncount=1?NgFunctioncount=0&Beep=0?gFunctioncount+N清除屏幕顯示松手檢測減少相應(yīng)值松手檢測N結(jié)束gFunctioncount=4?N重置時間Y圖 4.1.3 按鍵掃描程序流程圖鍵盤掃描程序流程圖如圖 4.1.3 所示,當(dāng)進(jìn)入到按鍵掃描子函數(shù)后,首先判斷按下的是哪個按鍵,如果是按鍵 1 的話,則檢測單片機是否處于鬧鐘的觸
39、發(fā)狀態(tài),是的話,將鬧鐘標(biāo)志位清 0,不是 0 的話,那么變量 gFunctioncount加 1,進(jìn)入時鐘設(shè)置界面,如果是的話重新檢測按鍵,如果是按鍵 2 的話,則用于選定不同的所需的時間參數(shù),按鍵 3 和按鍵 4 實現(xiàn)時間參數(shù)的確定,如果仍然是按鍵 1 時,則變量 gFunctioncount 加 1,進(jìn)入鬧鐘設(shè)置模式,此時通過按鍵確定并設(shè)置鬧鐘參數(shù)。繼續(xù)按鍵 1,則 gFunctioncount 加 1,進(jìn)入復(fù)位模式,按下確認(rèn)鍵,則使當(dāng)前時間參數(shù)全部復(fù)位。并且 gFunctioncount 清 0,以及清除屏幕顯示,最后跳出設(shè)置功能。按鍵 2 的功能是切換對應(yīng)菜單,按鍵 3是用于增加相應(yīng)值
40、,按鍵 4 是用于減少相應(yīng)值。本科畢業(yè)設(shè)計(論文)15調(diào)用自定義字庫設(shè)置DDRAM地址,在第一行顯示設(shè)置顯示數(shù)據(jù)首地址循環(huán)量設(shè)置取字符代碼循環(huán)完?設(shè)置DDRAM地址,在第一行顯示設(shè)置顯示數(shù)據(jù)首地址循環(huán)量設(shè)置取字符代碼循環(huán)完?結(jié)束圖 4.1.4 LCD1602 初始化子程序函數(shù)流程圖LCD1602 子程序函數(shù)流程圖如圖 4.1.4 所示,首先先調(diào)用液晶自定義的字庫,設(shè)置好 DDRAM 地址后在第一行顯示,根據(jù)程序中的數(shù)據(jù),設(shè)置顯示數(shù)據(jù)的首地址,并設(shè)置循環(huán)量,在循環(huán)過程中不斷的取字符代碼直到終止,第二行的顯示過程同理,兩行顯示完畢后便結(jié)束子程序本科畢業(yè)設(shè)計(論文)16開始初始化DS18B20發(fā)送跳
41、過ROM命令到DS18B20發(fā)送溫度轉(zhuǎn)換命令等待轉(zhuǎn)換完成初始化DS18B20發(fā)送跳過ROM命令到18B20讀取溫度值到緩沖區(qū)調(diào)用溫度處理子程序結(jié)束圖 4.1.5 溫度傳感器 DS18B20 溫度檢測子程序流程圖溫度傳感器 DS18B20 溫度檢測子程序流程圖如圖 4.1.5 所示,進(jìn)入溫度讀取子函數(shù)時,首先初始化 DS18B20 溫度傳感器的參數(shù),單片機發(fā)送跳過 ROM命令給 DS18B20,然后發(fā)送溫度轉(zhuǎn)換命令并且延時一定時間等待轉(zhuǎn)換完畢,等轉(zhuǎn)換完畢后單片機在再次初始化 DS18B20,發(fā)送跳過 ROM 命令,溫度到緩沖區(qū),最終溫度處理子程序調(diào)用達(dá)到存儲實時溫度的目的。4.2 程序設(shè)計原理軟
42、件設(shè)計是基于硬件設(shè)計的基礎(chǔ)之上,首先要明確硬件設(shè)計的原理,區(qū)分哪些是需要硬件設(shè)計的,哪些是軟件設(shè)計的范疇,軟件設(shè)計要明確設(shè)計內(nèi)容的真正目的,設(shè)計程序最好要簡單明了,盡量減少多余的冗余信息,減少 CPU 的本科畢業(yè)設(shè)計(論文)17負(fù)擔(dān)。軟件分析方面的任務(wù)是軟件設(shè)計的一個總體規(guī)劃。從軟件的功能的角度可以分為兩大類:一類是在軟件的設(shè)計,可以完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,導(dǎo)出控制和通信,以及其他的監(jiān)控軟件,其目的是作為軟件調(diào)度軟件的組織來執(zhí)行模塊的作用和運作之間的關(guān)系。這兩種類型的軟件設(shè)計方法都有其自身的特點,專注于算法的軟件設(shè)計,不斷提高軟件完成功能效率,以及與之密切相關(guān)的硬件,都
43、有不斷變化的可能性,關(guān)鍵就在于我們設(shè)計者是怎么進(jìn)行操作的。軟件需求分析的任務(wù),應(yīng)該將執(zhí)行模塊一一的列表,定義每個執(zhí)行模塊的輸入和輸出,并繪制了相應(yīng)的程序流程圖,并制定可執(zhí)行模塊的引腳和功能。本科畢業(yè)設(shè)計(論文)185.系統(tǒng)調(diào)試5.1 硬件調(diào)試在制作硬件電路之前,我們先根據(jù)實際需要的功能劃分硬件模塊,并且在 PROTEL 里面畫出其硬件原理圖和 PCB 圖,檢查無誤后開始先在萬用板上焊接,調(diào)試無誤后在腐蝕板上制作焊接。在本萬年歷的硬件調(diào)試中遇到過許多常見的問題,現(xiàn)在回想這類問題,只要在當(dāng)時認(rèn)真一些,多思考,多查下資料,這些問題都是可以避免的,以下為主要的問題:問題 1:剛開始的時候以為單片機 I
44、/O 口可以直接驅(qū)動蜂鳴器發(fā)出聲響,后來調(diào)試了很久都不能發(fā)出聲音。解決:經(jīng)過多方面的查找相關(guān)資料,如進(jìn)入圖書館查找歷年來的設(shè)計資料,或者進(jìn)入相關(guān)資源的數(shù)據(jù)庫,或者在商家處尋求相關(guān)芯片的 PDF 資料文件,最終我知道了單片機的 I/O 口給蜂鳴器提供不了足夠的驅(qū)動電流,所以我們采用三極管放大器來將電流放大,用以驅(qū)動蜂鳴器工作,實驗證明,把三極管放大器加在系統(tǒng)上后蜂鳴器就可以正常工作,發(fā)出聲音了。問題 2:單片機一直讀取 DS18B20 的溫度總是錯誤,顯示的時候不是亂碼就是總顯示 24 攝氏度或者 85。解決: 經(jīng)過查找芯片手冊,知道 DS18B20 的輸出端是漏極開路結(jié)構(gòu),需要加上拉電阻才能讀
45、取數(shù)據(jù)正常.問題 3:本設(shè)計要實現(xiàn)語言實時報時,但是在用萬用版做出來的時候,不管怎么做,都沒有語音發(fā)出聲音。 解決:剛開始懷疑是對語音芯片設(shè)計有問題,但是通過查找芯片手冊,發(fā)現(xiàn)對于語言報時模塊中的核心芯片設(shè)計沒有任何問題,接著懷疑是程序方面有問題,因為要實現(xiàn)語音報時,必須要進(jìn)行的步驟是要單片機對語音芯片的內(nèi)部ROM 進(jìn)行查表,但是通過分步驟的對程序進(jìn)行檢查發(fā)現(xiàn),程序也沒有問題,最后仔細(xì)檢查了一下整個電路設(shè)計,發(fā)現(xiàn)忘記在電路中設(shè)計喇叭了,誤以為電路中有蜂鳴器就可以發(fā)聲,由于模塊已經(jīng)設(shè)計完,只好用跳線外接了一個小喇叭,測試發(fā)現(xiàn),問題得到解決,語音報時內(nèi)容為:“今天是 XX 年 X 月 X 日” “
46、現(xiàn)在是 X 時 X 分 X 秒,星期 X” 。5.2 軟件調(diào)試本系統(tǒng)是一個較為復(fù)雜的數(shù)字系統(tǒng),程序更為復(fù)雜,所以在編程和調(diào)試出現(xiàn)了相對更多的問題。首先為了更好的測試效果,我最開始是一個模塊一個模塊單獨做成電路板,然后直接用跳線連接組成的系統(tǒng),在確定無誤后,再把程序燒錄到實物中運行。在系統(tǒng)中調(diào)試號確定無誤后,再將每個模塊全部集中在一個腐蝕板上,再進(jìn)過一番調(diào)試,問題得到解決,功能得到實現(xiàn)。在該過程中主要遇到的問題如下:問題 1:燒入程序,LCD 液晶出現(xiàn)顯示永遠(yuǎn)閃爍,和不均勻的亮度。解決:剛開始的時候懷疑是程序的延時部分有問題,所以在程序中修改對調(diào)用的子程序的延時,結(jié)果我們發(fā)現(xiàn)屏幕顯示閃動頻率明顯
47、降低,找到問題點本科畢業(yè)設(shè)計(論文)19后,繼續(xù)增大延時,最終達(dá)到解決顯示閃動問題的目的。由于該系統(tǒng)采用數(shù)字動態(tài)掃描顯示,動態(tài)掃描快,人眼無法看到,但是當(dāng)調(diào)用顯示程序,如果沒有返回的最后一個值,就會顯得非常明亮或亮度不均勻的現(xiàn)象,所以在顯示指令的后面加一個屏蔽子令,最終的問題得到解決。問題 2:當(dāng)用戶按下按鈕,設(shè)定的數(shù)值與單片機讀取的值跟不對應(yīng),而且有時候按鍵失靈或者是出現(xiàn)某些關(guān)鍵功能有時候不對應(yīng)有時候?qū)?yīng)的情況。解決:重新檢查矩陣鍵盤電路的連接,發(fā)現(xiàn)焊接鍵盤電路時有虛焊,重新焊接好矩陣鍵盤按鍵沒有反應(yīng)的問題得到解決。然后檢查鍵盤掃描程序,重新建立一個新的對應(yīng)關(guān)系。最終問題得到解決。本科畢業(yè)設(shè)
48、計(論文)20致謝通過此次簡易燈光時鐘的畢業(yè)設(shè)計,我學(xué)到了很多東西,并且,將許多以前在書本上學(xué)到的東西運用到實際生活中,在以前的專業(yè)課書本中,很多概念的模糊的,例如:在以前的學(xué)習(xí)過程中,一直不明白溫度傳感器是怎么進(jìn)行工作的,與單片機是怎么進(jìn)行通信,單片機的 I/O 口采集溫度傳感器 DS18B20 的數(shù)據(jù)后是怎么轉(zhuǎn)換數(shù)據(jù)將之對應(yīng)為實時的溫度的。而且通過此次設(shè)計,我學(xué)會了如何點亮液晶,怎么制作功能菜單,會設(shè)計單片機最小系統(tǒng),將許多模糊的概念徹底的搞清楚,同時,在這段時間里,我明白了我們專業(yè)在以后的生活工作中的運用方向,也為我在以后工作中需要學(xué)習(xí),掌握的工作技能奠定基礎(chǔ)。在這次設(shè)計當(dāng)中,我學(xué)會使用
49、 STC52 系列單片機,并會熟練使用protel,keilC51 等軟件,能夠獨立的搭建一些簡單的硬件設(shè)計,能夠檢查出一些簡單、常見的問題,動手能力有所提高,對所學(xué)知識運用加深。感謝在這次設(shè)計中對我提供幫助的老師,同學(xué),謝謝教我怎樣查找芯片關(guān)本科畢業(yè)設(shè)計(論文)21鍵資料,教會我使用 protel 的老師,謝謝你們。本科畢業(yè)設(shè)計(論文)22附錄系統(tǒng)整體原理圖P1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MISO7P1.7/SCK8RESET9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL
50、119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1供供供+5V12Y212MHZ30pFC330pFC4123456789P110K供供VSS1VCC2VEE3RS4RW5EN6DB07DB18DB29DB310DB411DB512DB613DB714A15K16LCD1lcd1602+5V10KR1+5V+5V+5VS2SW-PBVCC21X12X23GND4CE5I/O6SCLK7VCC18
51、U2DS130210KR2+5V12Y132.768KHZBT13VGND1DQ2VCC3U?DS18B20+5V10kR5+5VQ12N3906+5V1KR4LS1BuzzerS1SW-PB10KR310uFC2+5VS3SW-PBS4SW-PBS5SW-PB1234P2USB供供供供+5V1000uFC8+5VVL1PWM-12PWM-23VCC4GND5RST6DATA7BUSY8U2供供供供0.1UFC130.1UFC8LS1供供供 +5V系統(tǒng) PCB 圖本科畢業(yè)設(shè)計(論文)23實物圖本科畢業(yè)設(shè)計(論文)24元件清單名稱數(shù)量STC89C52130PF 電容210UF 電容11000UF
52、 電容110K 電阻310K 電位器1DIP40 插座1LCD16021輕觸按鍵512M 晶振1DS18B2018550 三極管1DS13021蜂鳴器1語音芯片NY3P035AP632401D1揚聲器1DIP8 插座2板子1銅柱4螺帽4USB 座子1本科畢業(yè)設(shè)計(論文)25系統(tǒng)源程序/說明:第一個鍵:按一下,當(dāng)前時間設(shè)置;通過第二個鍵來選擇年月日時分秒/按第二下,鬧鐘 1 設(shè)置;通過第二個鍵選擇時分秒/添加頭文件#include/單片機頭文件#includeLCD1602.h/液晶#includeDS1302.h /時鐘#includekey.h/按鍵#includeDS18B20.h/溫度傳
53、感器void DisplayInit(void)/初始化 LCD 和時鐘的顯示,初始化定時器LCDInit(); /初始化液晶 void Display1(void)/顯示正常界面,時間的函數(shù)DS1302_read_time(); /讀取 DS1302 時間LCDDispNum(1,1,(Nian4); /在液晶上顯示年的十位LCDDispNum(2,1,(Nian&0 x0f);/在液晶上顯示年的個位LCDDispChar(3,1,-);/在液晶上顯示字符-LCDDispNum(4,1,(Yue4);/在液晶上顯示月的十位LCDDispNum(5,1,(Yue&0 x0f);
54、 /在液晶上顯示月的個位LCDDispChar(6,1,-);/在液晶上顯示字符-LCDDispNum(7,1,(Ri4); /在液晶上顯示日的十位LCDDispNum(8,1,(Ri&0 x0f);/在液晶上顯示日的個位LCDDispNum(1,2,(Shi4); /在液晶上顯示十的十位LCDDispNum(2,2,(Shi&0 x0f);/在液晶上顯示十的個位LCDDispChar(3,2,:); /在液晶上顯示顯示字符:LCDDispNum(4,2,(Fen4); /在液晶上顯示分的十位LCDDispNum(5,2,(Fen&0 x0f);/在液晶上顯示分的個位L
55、CDDispChar(6,2,:);/在液晶上顯示顯示字符:LCDDispNum(7,2,(Miao4);/在液晶上顯示秒的十位LCDDispNum(8,2,(Miao&0 x0f);/在液晶上顯示秒的個位XingQi = (XingQi & 0 x0f)+(XingQi4) * 10); /星期if(XingQi = 1) /判斷并顯示星期的字符本科畢業(yè)設(shè)計(論文)26LCDDispString(12,1,Mon.); /如果星期等于 1 則顯示 Mon.else if(XingQi = 2)LCDDispString(12,1,Tues); /如果星期等于 2 則顯示 Tu
56、eselse if(XingQi = 3)LCDDispString(12,1,Wed.); /如果星期等于 3 則顯示 Wed.else if(XingQi = 4)LCDDispString(12,1,Thu.); /如果星期等于 4 則顯示 Thu.else if(XingQi = 5)LCDDispString(12,1,Fri.); /如果星期等于 5 則顯示 Fri.else if(XingQi = 6)LCDDispString(12,1,Sat.); /如果星期等于 6 則顯示 Sat.else if(XingQi = 7)LCDDispString(12,1,Sun.); /
57、如果星期等于 7 則顯示 Sun.FenA = (Fen & 0 x0f) + (Fen4) * 10);/把分的 BCD 碼轉(zhuǎn)成 10 進(jìn)制ShiA = (Shi & 0 x0f) + (Shi4) * 10);/把時的 BCD 碼轉(zhuǎn)成 10 進(jìn)制/鬧鈴,判斷是否有鬧鈴。如果時間到,則蜂鳴器響,否則不響if(AlarmFlag0 = 1 & DoneFlag0 = 1 & ShiA = AlarmClock00 & FenA = AlarmClock01)BEEP = 0;else BEEP = 1;/轉(zhuǎn)點時的鬧鐘標(biāo)志位要清零if(Shi = 0 &a
58、mp; Fen = 0 & Miao = 0)if(AlarmFlag0 = 1)DoneFlag0 = 1;if(Fen = 0 & Miao = 0)Music(L_beijing);if(Shi4)!=0)if(Shi4)=1)Music(L_shi);elseMusic(Shi4)+1);Music(L_shi);if(Shi&0 x0f)=0)if(Shi4)=0)本科畢業(yè)設(shè)計(論文)27Music(L_0);elseMusic(Shi&0 x0f)+1);Music(L_dian);Music(L_zheng);/讀取溫度的值ReadTemperat
59、ure();/顯示溫度的值LCDDispString(12,2,temperatureDate);void main(void)/初始化操作DisplayInit();Music(L_1);while(1)/死循環(huán)if(gFunctionCount = 0)/判斷是否為正常顯示界面Display1();/顯示子函數(shù) 1KeyScan(); /按鍵掃描子函數(shù)#include#includelcd1602.h/* Function: void DelayN40us(unsigned int n) Description: 延時函數(shù),延時 40us 的整數(shù)倍,傳入值 n 代表延時 時間到 n *40
60、us,不能實現(xiàn)準(zhǔn)確延時,只能實現(xiàn)大 概時間的延時,利用的是指令實現(xiàn)延時功能。 Calls: 沒有調(diào)用其它函數(shù) Called By: void LCDWriteCommand(unsigned char dat); void LCDWriteData(unsigned char dat); Input: unsigned int n - 用于延時時間的確定,取值、 為 165535 Output: 無 Return: 無*/本科畢業(yè)設(shè)計(論文)28void DelayN40us(unsigned int n)unsigned int i;unsigned char j; for(i=n;i0;i-)for(j=0;j2;j+); /* Function: void LCDInit(void); Description: 液
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:近代日本對中國茶業(yè)的侵奪研究
- 課題申報參考:教育高質(zhì)量發(fā)展視域下大學(xué)體育一流本科課程建設(shè)實證研究
- 2025年園林景觀綠化地使用權(quán)轉(zhuǎn)讓合同4篇
- 2025年度新能源汽車充電站車位租賃合作協(xié)議書4篇
- 2025版委托擔(dān)保合同范本:知識產(chǎn)權(quán)質(zhì)押貸款擔(dān)保合同3篇
- 2025年度家具行業(yè)綠色供應(yīng)鏈管理合同4篇
- 二零二五版橋梁建設(shè)施工合作協(xié)議2篇
- 2025年度個人沿街店房租賃合同(含合同解除條件與爭議解決)4篇
- 二零二五年度國際交流項目教師選拔與聘用協(xié)議
- 2025年度星級酒店廚房設(shè)備采購與定期檢修合同4篇
- 數(shù)學(xué)-山東省2025年1月濟南市高三期末學(xué)習(xí)質(zhì)量檢測濟南期末試題和答案
- 中儲糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 湖南省長沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項整治三年行動實施方案全國安全生產(chǎn)專項整治三年行動計劃
- 基于ADAMS的汽車懸架系統(tǒng)建模與優(yōu)化
- 當(dāng)前中國個人極端暴力犯罪個案研究
- 中國象棋比賽規(guī)則
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- GB/T 31525-2015圖形標(biāo)志電動汽車充換電設(shè)施標(biāo)志
評論
0/150
提交評論