下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 廣東海洋大學(xué)寸金學(xué)院單片機(jī)課程設(shè)計(jì)(論文) 論文題目: 高精度大屏幕led日歷時(shí)鐘設(shè)計(jì) a high precision and large screen led calendar clock design 系 別: 信息技術(shù)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)1班 姓 名: 陳創(chuàng)勝 學(xué) 號(hào): 200816704101 指導(dǎo)老師: 舒秀蘭 職 稱: 講師 日 期: 2012年5月5日 廣東海洋大學(xué)寸金學(xué)院教務(wù)處制1廣東海洋大學(xué)寸金學(xué)院2013年課程考查(論文)目 錄目 錄i摘 要ii第1章引言41.1背景與意義41.2論文設(shè)計(jì)41.2.1 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)41.2.2
2、 系統(tǒng)的總體設(shè)計(jì)4第2章需求分析52.1需求分析52.2 可行性分析52.3開發(fā)及運(yùn)行環(huán)境5第3章硬件電路設(shè)計(jì)53.1單片機(jī)最小系統(tǒng)53.2時(shí)鐘芯片設(shè)計(jì)53.2.1時(shí)鐘芯片引腳介紹53.2.2 4個(gè)控制寄存器介紹53.3按鍵調(diào)整電路53.4電源模塊5第4章軟件設(shè)計(jì)54.1主程序流程54.2 時(shí)間設(shè)置子流程54.3鬧鐘設(shè)置子程序流程54.4程序設(shè)計(jì)問題54.4.1 按鍵抖動(dòng)問題54.4.2 蜂鳴器設(shè)置54.4.3 液晶顯示器設(shè)置54.4.4中斷設(shè)置5第5章測試55.1測試軟件介紹55.2軟件調(diào)試5結(jié)束語5致 謝5參考文獻(xiàn)5附錄5程序代碼:5摘 要在51單片機(jī)應(yīng)用的系統(tǒng)中,常常需要記錄實(shí)時(shí)的時(shí)間信
3、息并長期保存。比如,在數(shù)據(jù)采集時(shí),對(duì)某些重要的信息不僅需要幾路車其內(nèi)容,還需要記錄下改事件發(fā)生的準(zhǔn)確時(shí)間;在銀行營業(yè)大廳中使用的利率或匯率顯示屏,上面除了需要顯示利率或匯率等數(shù)據(jù)以外,還需要顯示實(shí)時(shí)的時(shí)間信息,如年、月、日、星期、時(shí)間等。本文用51單片機(jī)以及ds1302日歷時(shí)鐘芯片實(shí)現(xiàn)日歷時(shí)鐘的設(shè)計(jì)。論文研究了ds1302日歷時(shí)鐘芯片的相關(guān)功能。設(shè)計(jì)結(jié)果表明本文設(shè)計(jì)的基于ds1302的實(shí)時(shí)日歷時(shí)鐘顯示系統(tǒng)完全能夠滿足設(shè)計(jì)要求關(guān)鍵詞: ds1302,51單片機(jī), lcd1062顯示器iiiabstract 51 scm application system , often need to rec
4、ord real-time information and long-term preservation. for example, when data collection for some important information not only need to record the content, but also record the exact time of the incident; the banking hall in the use of interest rate or exchange rate display, shown above in addition t
5、o the interest rate or exchange rate such data, it also needs to show real-time information, such as year, month, date, day and time. in this paper,51mcu and the calendar clock chip ds1302 calendar clock design.thesis of the calendar clock chip ds1302-related functions.design results show that the d
6、s1302-based design of real-time calendar clock display system can completely meet the design requirements.key word :ds1302,51microcontroller, lcd1062 display第1章 引言1.1背景與意義led顯示屏作為信息傳播的一種重要手段,具有高亮度、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定等優(yōu)點(diǎn),再加上集成電路的使用,led顯示屏的外圍電路變得越來越簡單,性價(jià)比不斷攀升,使得led顯示屏廣泛用于各行各業(yè)以及公共場所,成為了信息化時(shí)代發(fā)布工具
7、。現(xiàn)在的led大屏幕一般應(yīng)用于汽車站、銀行、機(jī)場、高速公路可變報(bào)版、體育場館比賽等人多去關(guān)注的地方,所以這就要求led大屏幕要設(shè)計(jì)得鮮明、顯眼、耐用、三防能力強(qiáng)。本次設(shè)計(jì)將led大屏幕和電子日歷時(shí)鐘的結(jié)合起來,打破傳統(tǒng)電子時(shí)鐘只適用于個(gè)人的局限,將日歷時(shí)鐘推廣到公共場合,更方便人們。本次設(shè)計(jì)將采用51單片機(jī)、ds1302日歷時(shí)鐘芯片和1062顯示器(代替led大屏幕,因?yàn)閮烧叨疾畈欢啵?.2論文設(shè)計(jì)1.2.1 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)本文是以實(shí)時(shí)時(shí)鐘芯片ds1302和at89c52單片機(jī)為主要研究對(duì)象,著重進(jìn)行51單片機(jī)如何讀取ds1302內(nèi)部時(shí)鐘信息的研究。主要內(nèi)容包括:1) 實(shí)時(shí)溫度顯示;2)
8、 年月日星期時(shí)分秒顯示;3) 年月日星期時(shí)分秒調(diào)整;4) 鬧鐘定時(shí)小時(shí)分鐘和秒;1.2.2 系統(tǒng)的總體設(shè)計(jì)采用at89c52作為主控單片機(jī),時(shí)鐘模塊選用ds1302作為時(shí)鐘芯片,顯示模塊選用lcd1062,設(shè)置部分選用按鍵電路。at89c52與mcs-51單片機(jī)產(chǎn)品兼容 、8k字節(jié)在系統(tǒng)可編程flash存儲(chǔ)器、 1000次擦寫周期、 全靜態(tài)操作:0hz33hz 、 三級(jí)加密程序存儲(chǔ)器 、 32個(gè)可編程i/o口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工uart串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。ds1302 實(shí)時(shí)時(shí)鐘芯片功
9、能豐富,可以用來直接代替ibm pc 上的時(shí)鐘日歷芯片ds12887,同時(shí),它的管腳也和mc146818b、ds12887 相兼容。由于ds1302 能夠自動(dòng)產(chǎn)生世紀(jì)、年、月、日、時(shí)、分、秒等時(shí)間信息,其內(nèi)部又增加了世紀(jì)寄存器,從而利用硬件電路解決子“千年”問題;ds1302 中自帶有鋰電池,外部掉電時(shí),其內(nèi)部時(shí)間信息還能夠保持10 年之久;對(duì)于一天內(nèi)的時(shí)間記錄,有12 小時(shí)制和24 小時(shí)制兩種模式。用戶還可對(duì)ds1302 進(jìn)行編程以實(shí)現(xiàn)多種方波輸出,并可對(duì)其內(nèi)部的三路中斷通過軟件進(jìn)行屏蔽。該系統(tǒng)的系統(tǒng)框圖如圖1.1示:圖1-1系統(tǒng)框圖第2章 需求分析2.1需求分析數(shù)字電子鐘一個(gè)無處不在的電子
10、產(chǎn)品,經(jīng)過多年的發(fā)展技術(shù)已經(jīng)相當(dāng)成熟了。隨著電子技術(shù)的產(chǎn)業(yè)結(jié)構(gòu)調(diào)整,生產(chǎn)工藝的飛速發(fā)展,市場對(duì)智能電子時(shí)鐘的需求也越來越大,而現(xiàn)今市場上多采用的普通電子表,不具備報(bào)時(shí)和鬧鐘的雙重功能。日前應(yīng)用廣泛的數(shù)字鐘大多用ds1302時(shí)鐘芯片,以51單片機(jī)為核心控制部件制作的??梢詫?shí)現(xiàn)對(duì)年、月、日、周、時(shí)、分、秒精確計(jì)時(shí),閏年補(bǔ)償,可計(jì)時(shí)至2100年。ds1302內(nèi)嵌一個(gè)鋰電池,可以保證在沒有電源系統(tǒng)的情況下做到非易揮發(fā)性計(jì)時(shí)。通過對(duì)相應(yīng)管腳電平的簡單設(shè)置,就可以輕松地適應(yīng)intel處理器或motorola處理器的總線時(shí)序。通過擴(kuò)展還可以實(shí)現(xiàn)對(duì)電子鐘所在地點(diǎn)的溫度顯示和智能鬧鐘功能,廣泛用于車站、醫(yī)院、機(jī)
11、場、廁所等公共場所的時(shí)間顯示。該電子鐘運(yùn)用單片機(jī)進(jìn)行設(shè)計(jì)制作,通過軟件編程完成實(shí)時(shí)時(shí)間顯示、按鍵調(diào)節(jié)時(shí)間,與數(shù)字電路電子鐘相比具有設(shè)計(jì)電路簡單、成本低的優(yōu)點(diǎn)。與機(jī)械鐘表和3v電源半機(jī)械表相比,數(shù)字電子鐘具有時(shí)間精確度高、停電不用校準(zhǔn)、較少汞的使用等優(yōu)點(diǎn)。2.2 可行性分析通過可行性分析對(duì)所開發(fā)的高精度時(shí)鐘從適應(yīng)性、經(jīng)濟(jì)效益以及開發(fā)成本進(jìn)行研究。通過調(diào)查和高精度時(shí)鐘設(shè)計(jì)目標(biāo)分析,對(duì)要開發(fā)的硬件、軟件從技術(shù)、經(jīng)濟(jì)、資源和管理進(jìn)行可行性的分析。以保證資源合理使用、避免失誤和浪費(fèi)。l 技術(shù)可行性:通過51單片機(jī)來設(shè)計(jì)電子時(shí)鐘,采用k軟件來進(jìn)行編程,可以實(shí)現(xiàn)小時(shí)、分、秒和年、月、日的顯示的功能。本次設(shè)計(jì)
12、的電子時(shí)鐘系統(tǒng)由時(shí)鐘電路、顯示電路、按鍵調(diào)整電路、定時(shí)報(bào)警電路四個(gè)部分組成。本次報(bào)告需要介紹51單片機(jī)的基本原理,分析時(shí)鐘芯片ds1302各個(gè)管腳的功能及它在設(shè)計(jì)電路中的作用工作原理及其軟件設(shè)計(jì)過程以及1062顯示屏在設(shè)計(jì)電路中的作用。l 經(jīng)濟(jì)可行性:本次設(shè)計(jì)使用的單片機(jī)是51單片機(jī),是集cpu、ram/rom,計(jì)數(shù)和多種接口于一體的微控制器。自從單片機(jī)在20世紀(jì)70年代問世,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注。它體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格相對(duì)比較低廉、可靠性高、靈活性好、開發(fā)較為容易,廣泛應(yīng)用于智能生產(chǎn)和工業(yè)自動(dòng)化上。ds1302時(shí)鐘芯片設(shè)計(jì)了一種具有校時(shí)和鬧鐘
13、功能的高精度電子鐘,ds1302可精確計(jì)時(shí)到2100年。其價(jià)格一般為幾元到幾十元,性價(jià)比比較高。l 操作可行性:51單片機(jī)通過軟件編程,在1062顯示屏上實(shí)現(xiàn)時(shí)、分、秒和年、月、日,并且按秒實(shí)時(shí)更新顯示,利用時(shí)鐘芯片ds1302來實(shí)現(xiàn)計(jì)時(shí),定時(shí)功能,通過四個(gè)按鍵開關(guān):一個(gè)用于功能選擇、一個(gè)用于鬧鐘查看、另外兩個(gè)為數(shù)值增多和減少,來實(shí)現(xiàn)參數(shù)設(shè)置和調(diào)節(jié)功能,到達(dá)設(shè)置的鬧鐘時(shí)間,由蜂鳴器發(fā)聲,起報(bào)警作用。本次設(shè)計(jì)的電子時(shí)鐘,走時(shí)精度較高,可滿足多種場合的應(yīng)用需求。2.3開發(fā)及運(yùn)行環(huán)境本次設(shè)計(jì)包括51單片機(jī)、ds1302時(shí)鐘芯片、1062顯示屏、k軟件。下圖為原理圖 圖2-1原理圖第3章 硬件電路設(shè)計(jì)
14、3.1單片機(jī)最小系統(tǒng)本系統(tǒng)以at89c52單片機(jī)為核心,本系統(tǒng)選用11.0592mhz的晶振,使得單片機(jī)有合理的運(yùn)行速度。起振電容30pf對(duì)振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。at89c52單片機(jī)最小系統(tǒng)電路設(shè)計(jì)如圖3-1所示。圖3-1單片機(jī)最小系統(tǒng)3.2時(shí)鐘芯片設(shè)計(jì)3.2.1時(shí)鐘芯片引腳介紹 1) 時(shí)鐘芯片ds1302,其引腳分布圖如下所示圖3-2時(shí)鐘引腳分布mot (1腳) :總線時(shí)序模式選擇腳。接高電平,選擇motorola總線時(shí);序;接低電平或懸空,擇選擇intel總線時(shí)序。nc (2,3,16,20,21,22腳):懸空腳。ad0ad7
15、(411腳):地址/地址數(shù)據(jù)復(fù)用總線引腳。cs(13腳):片選腳,低電平有效。as(14腳):地址鎖存輸入腳。下降沿時(shí),地址被鎖存,緊接著的上升沿來時(shí)地址被清除。r/w(15腳):讀/寫輸入腳。在選擇motorola總線時(shí)序模式時(shí),此引腳用于指示當(dāng)前的讀寫周期,高電平指示當(dāng)前為讀周期,低電平指示當(dāng)前為寫周期;選擇intel中線時(shí)序模式時(shí),此引腳為低電平有效的輸入腳,相當(dāng)于通用ram的寫使能信號(hào)(/we)ds(17腳):選擇motorola總線時(shí)序模式時(shí),此引腳為數(shù)據(jù)鎖存腳;選擇intel總線時(shí)序模式時(shí),此引腳為讀輸入腳,低電平有效,相當(dāng)于典型的內(nèi)存的輸出使能信號(hào)(/oe)reset(18腳):
16、復(fù)位腳,低電平有效,復(fù)位不會(huì)影響到時(shí)鐘、日歷和ram。irq(19腳):中斷申請輸出腳,低電平有效,可作為微處理器的中斷輸入。sqw(23腳):方波信號(hào)輸出腳??赏ㄟ^設(shè)置寄存器位sqwe關(guān)斷此信號(hào)輸出,此信號(hào)的輸出頻率也可通過對(duì)芯片內(nèi)部的寄存器編程予以改變。vcc(24腳):+5v電源端。3.2.2 4個(gè)控制寄存器介紹ds1302有4個(gè)控制寄存器,在任何時(shí)間都可以進(jìn)行訪問,即使處于更新周期。寄存器a字節(jié)的內(nèi)容如下。msb lsb uip dv2 dv1 dv0 rs3 rs2 rs1 rs0uip: 更新標(biāo)志位。為只讀位且不受復(fù)位操作的影響,為1時(shí),表示即將發(fā)生的數(shù)據(jù)更新;為0時(shí),表示至少24
17、4us不會(huì)更新數(shù)據(jù)。當(dāng)uip為0時(shí),可以獲得所有時(shí)鐘、日歷、鬧鐘信息。將寄存器b中的set位置1可以限制任何數(shù)據(jù)更新操作,并且清除uip位。dv2、dv1、dv0:此3位為010時(shí)將打開晶振,并開始計(jì)時(shí)。res3、res2、res1、res0:用于設(shè)置周期性中斷產(chǎn)生的時(shí)間周期和輸出方波的頻率。寄存器b字節(jié)的內(nèi)容如下。 msb lsb set pie aie uie sqwe dm24/12 dseset:設(shè)置位,可讀寫,不受復(fù)位操作影響。為0時(shí),不處于設(shè)置狀態(tài),芯片進(jìn)行正常時(shí)間數(shù)據(jù)更新;為1時(shí),抑制數(shù)據(jù)更新,可以通過程序設(shè)定時(shí)間和日歷信息。pie:周期性中斷使能位,可讀寫,復(fù)位時(shí)清除此位。為1
18、時(shí),允許寄存器c中的周期中斷標(biāo)志位pf,驅(qū)動(dòng)/irq引腳為低產(chǎn)生中斷信號(hào)輸出,中斷信號(hào)產(chǎn)生的周期由rs3re0決定。aie:鬧鐘中斷使能位,可讀寫。為1時(shí),允許寄存器c中的鬧鐘中斷標(biāo)志位af、鬧鐘發(fā)生時(shí)就會(huì)通過/irq引腳產(chǎn)生中斷輸出。uie:數(shù)據(jù)更新結(jié)束中斷使能位,可讀寫。復(fù)位或者set位為1時(shí)清除此位。為1時(shí)允許寄存器c中的更新結(jié)束標(biāo)志uf,更新結(jié)束時(shí)就會(huì)通過/irq引腳產(chǎn)生中斷輸出。sqwe:方波使能位,可讀寫,復(fù)位時(shí)清除此位。為0時(shí),sqw引腳保持低電平;為1時(shí),sqw引腳輸出方波信號(hào),其頻率由rs3rs0決定。dm:數(shù)據(jù)模式位,可讀寫,不受復(fù)位操作影響。為0時(shí),設(shè)置時(shí)間、日歷信息為二
19、進(jìn)制數(shù)據(jù);為1時(shí),設(shè)置為bcd碼數(shù)據(jù)。24/12:時(shí)間模式設(shè)置為,可讀寫,不受復(fù)位操作影響。為0時(shí),設(shè)置為12小時(shí)模式;為1時(shí),設(shè)置為24小時(shí)模式。dse:為1時(shí),會(huì)引起兩次特殊的時(shí)間更新;4月的第一個(gè)星期日凌晨1:59:59會(huì)直接更新到3:00:00,10月的最后一個(gè)星期日凌晨1:59:59會(huì)直接更新到1:00:00;為0時(shí),時(shí)間信息正常更新,此位可讀寫,不受復(fù)位操作影響。寄存器c字節(jié)內(nèi)容如下。 msb lsb irqf pf af uf 0 0 0 0iqrf:中斷申請標(biāo)志位。為1時(shí),/irq引腳為低,產(chǎn)生中斷申請。當(dāng)pf、pie為1時(shí)或者af、ate為1或者uf、uie為1時(shí),此位為1,
20、否則置0.pf:中期中斷標(biāo)志位。為1時(shí),它是只讀位,和pie位狀態(tài)無關(guān),由復(fù)位操作或者寄存器c操作清除。af:鬧鐘中斷標(biāo)志位。為1時(shí),表示當(dāng)前時(shí)間和鬧鐘設(shè)定時(shí)間一至,由復(fù)位操作或讀寄存器c操作清除。uf:數(shù)據(jù)更新結(jié)束中斷標(biāo)志位。每個(gè)更新周期后此位都會(huì)置1,當(dāng)uie位位置1時(shí),uf若為1就會(huì)引起irqf置1,將驅(qū)動(dòng)/irq引腳為低電平,申請中斷。此位由復(fù)位操作或讀寄存器c操作清除。寄存器d字節(jié)的內(nèi)容如下。 msb lsb 0 0 0 0 0 0 0 0vrt;ram和時(shí)間有效位。用于指示和vbat引腳連接的電池狀態(tài)。此位不可寫,也不受操作為影響,正常情況下讀取時(shí)總?cè)?,如果出現(xiàn)讀取為0的情況,
21、則表示電池耗盡,時(shí)間數(shù)據(jù)和ram中的數(shù)據(jù)就會(huì)出現(xiàn)問題。芯片ds12cr887的113字節(jié)普通ram空間為非易失性ram空間,他不專門用于某些特別功能,而是可以在未處理器程序中作為非易失性內(nèi)存空間使用。3.3按鍵調(diào)整電路 系統(tǒng)四個(gè)獨(dú)立鍵盤均采用查詢方式,s2用于設(shè)置年、月、日、時(shí)、分、秒、星期的數(shù)值加,以及鬧鐘開,s3用于設(shè)置年、月、日、時(shí)、分、秒、星期的數(shù)值減以及鬧鐘關(guān),s1用于具體設(shè)置時(shí)鐘位的切換,s4鍵用于設(shè)置鬧鐘。其電路圖如3-3所示:圖3-3按鍵電路連接3.4電源模塊 電子鐘的電源為5伏直流電源,本設(shè)計(jì)中我使用的是5v的充電模塊,電源模塊的原理圖如圖3-4所示:圖3-4電源模塊第4章
22、軟件設(shè)計(jì)4.1主程序流程 主程序開始初始化,并打開中斷,然后執(zhí)行掃描鬧鐘、鍵盤及讀取18b20值。當(dāng)有s1鍵按下時(shí),執(zhí)行時(shí)鐘設(shè)置,當(dāng)有s4鍵按下時(shí),則進(jìn)入鬧鐘設(shè)置,無論是時(shí)鐘還是鬧鐘,設(shè)置完后退出,溫度、時(shí)鐘恢復(fù)實(shí)時(shí)顯示。主程序流程圖如圖4-1所示:初始化開中斷讀18b20s1或s2是否按下掃描鬧鐘顯示溫度設(shè)置鬧鐘顯示溫度設(shè)置時(shí)間圖4-1主程序流程圖4.2 時(shí)間設(shè)置子流程 通過單片機(jī)判斷s1按下的次數(shù)來設(shè)置,由s1num標(biāo)志位來記錄次數(shù),用if語句判斷執(zhí)行命令。系統(tǒng)程序不斷掃面鍵盤,當(dāng)s1鍵按下后產(chǎn)生一個(gè)低電平,即s1num加一。在調(diào)節(jié)時(shí)間之前首先進(jìn)行各個(gè)變量初始化,及設(shè)置起始時(shí)間,同時(shí)為讀取
23、數(shù)據(jù)作準(zhǔn)備。當(dāng)s1=1時(shí)進(jìn)入秒的設(shè)置,地址指針指向miao顯示位置處,通過兩個(gè)if語句分別循環(huán)控制顯示秒數(shù)的加和減。當(dāng)s1=2時(shí),地址指針指向fen顯示位置處,變量最大值為59。當(dāng)s1=3時(shí),地址指針指向shi顯示位置處,變量最大值設(shè)為23。當(dāng)s1=4時(shí),地址指針指向week顯示位置處,最大值設(shè)為7,1至7分別用mon、tue、wed、thu 、fri、sat、sun字符串顯示。隨著s2、s3值的的變化顯示不同的字符串。當(dāng)s1=5時(shí),地址指針指向day顯示位置,變量最大值為31。當(dāng)s1=6時(shí),地址指針指向month顯示位置,變量最大值為12。當(dāng)s1=7時(shí),地址指針指向year顯示位置,最大值為
24、99。s1=1秒s1=2分s1=7月s1=8退出s2調(diào)加秒s3調(diào)減秒s3調(diào)減年s2調(diào)加年圖4-2時(shí)間設(shè)置流程圖4.3鬧鐘設(shè)置子程序流程時(shí)間設(shè)置程序流程圖如圖4-3所示。在開始時(shí)間設(shè)置之前程序會(huì)關(guān)閉全局中斷,直至設(shè)置結(jié)束,中斷又會(huì)重新開啟,進(jìn)入計(jì)時(shí)狀態(tài)。鬧鐘的設(shè)置時(shí)通過s1鍵的按下次數(shù)來判斷的。當(dāng)單片機(jī)檢測到s4鍵按下一次時(shí)則進(jìn)入鬧鐘設(shè)置界面,光標(biāo)并自動(dòng)跳到秒設(shè)置位置,可以對(duì)秒進(jìn)行設(shè)置,當(dāng)s1鍵依次按下1、2、3次時(shí),則分別進(jìn)入鬧鐘的秒、分、時(shí)關(guān)的設(shè)置。:s4=1設(shè)置鬧鐘s4=2退出設(shè)置s1=1調(diào)節(jié)秒s1=2調(diào)節(jié)分s1=3調(diào)節(jié)時(shí)s1=4退出圖4-3鬧鐘設(shè)置流程圖4.4程序設(shè)計(jì)問題4.4.1 按鍵
25、抖動(dòng)問題按鍵在按下時(shí)因?yàn)闄C(jī)械原因會(huì)產(chǎn)生抖動(dòng),抖動(dòng)的后果就是當(dāng)按下一次按鍵時(shí)因?yàn)槎秳?dòng)的原因讓系統(tǒng)讀取到多次的按鍵按下的次數(shù),由此導(dǎo)致設(shè)置時(shí)出現(xiàn)錯(cuò)誤。解決的方法如下:當(dāng)按鍵按下時(shí)讀取按鍵鍵值,若5ms后鍵值和按下是相等,則確認(rèn)為有效按鍵,以此消除按鍵抖動(dòng)帶來的問題。4.4.2 蜂鳴器設(shè)置蜂鳴器報(bào)警時(shí),設(shè)置響100毫秒,停100毫秒,循環(huán)響應(yīng),產(chǎn)生滴滴的聲音。4.4.3 液晶顯示器設(shè)置初始化設(shè)置顯示模式設(shè)置寫入指令碼write_com(0x38),設(shè)置功能16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口顯示/開關(guān)及光標(biāo)設(shè)置8) 寫入指令碼write_com(0x0c),設(shè)置開顯示,不顯示光標(biāo),光標(biāo)不閃爍。16
26、) 寫入指令碼write_com(0x06),設(shè)置當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一,且光標(biāo)加一。當(dāng)寫一個(gè)字符,整屏顯示不移動(dòng)。顯示清屏,寫入指令碼write_com(0x01)。寫入指令碼函數(shù)write_com()寫指令過程 :輸入:rs=0,d0-d7=指令碼,e=高脈沖寫入數(shù)據(jù)函數(shù) write_date() 寫指令過程: 輸入:rs=1,d0-d7=數(shù)據(jù),e=高脈沖寫入指令和數(shù)據(jù)時(shí)rw端已經(jīng)接地。數(shù)據(jù)指針設(shè)置 指令碼80h+地址碼(0-27h)顯示第一行的字符 指令碼80h+地址碼(40h-67h)顯示的第二行字符4.4.4中斷設(shè)置ea=1;/打開總中斷ex1=1;/打開外部中斷it1=1;
27、/設(shè)置負(fù)跳變沿觸發(fā)中斷當(dāng)鬧鐘到點(diǎn)時(shí)響應(yīng)外部中1 時(shí)間到時(shí)irq端從高阻態(tài)轉(zhuǎn)為低電平,此時(shí)讀一次c寄存器清除irq端的輸出,等待下一次定時(shí)。void exter() interrupt 2 /外部中斷1服務(wù)程序uchar c;/進(jìn)入中斷表示鬧鐘時(shí)間到flag_ri=1; /設(shè)置標(biāo)志位,用以大程序中報(bào)警c=read_ds(0x0c);/讀取12c887c寄存器表示響應(yīng)了中端第5章 測試5.1測試軟件介紹keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用
28、c來開發(fā),體會(huì)更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。keil c51軟件是一個(gè)基于32位windows環(huán)境的應(yīng)用程序,支持c語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為vision(通常稱為v2)。keil提供包括c編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:vision ide集成開發(fā)環(huán)
29、境c51編譯器、a51匯編器、lib51庫管理器、bl51連接/定位器、oh51目標(biāo)文件生成器以及 monitor-51、rtx51實(shí)時(shí)操作系統(tǒng)。5.2軟件調(diào)試應(yīng)用keil進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,產(chǎn)生目標(biāo)文件程序調(diào)試。keil使用“工程”(project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單file-new,在源程序編輯器中輸入?yún)R編語言或c語言源程序(或選擇file-open,直接打開已用其它編輯器編輯好的源程序文檔)并
30、保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單project-new project,建立新工程并保存(保存時(shí)無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話框,選擇cpu后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(files)會(huì)出現(xiàn)“target1”,將其前面+號(hào)展開,接著選擇source group1,右擊鼠標(biāo)彈出快捷菜單,選擇“add file to group source group1”,出現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不會(huì)消失,而是等待繼續(xù)加入其它文件)。加入文件后點(diǎn)close返回主界
31、面,展開“source group1”前面+號(hào),就會(huì)看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對(duì)工程進(jìn)行設(shè)置,選擇工程管理窗口的target1,再選擇project-option for targettarget1(或點(diǎn)右鍵彈出快捷菜單再選擇該選項(xiàng)),打開工程屬性設(shè)置對(duì)話框,共有8個(gè)選項(xiàng)卡,主要設(shè)置工作包括在target選項(xiàng)卡中設(shè)置晶振頻率、在debug選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫片,還必須在output選項(xiàng)卡中選中“creat hex fi”;其它選項(xiàng)卡內(nèi)容一般可取默認(rèn)值。工程設(shè)置后按f7鍵(或點(diǎn)擊編譯工具欄上相應(yīng)圖標(biāo))進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。成功編譯/匯編
32、、連接后,選擇菜單debug-start/stop debug session(或按ctrl+f5鍵)進(jìn)入程序調(diào)試狀態(tài),keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真cpu以模擬執(zhí)行程序。keil能以單步執(zhí)行(按f11或選擇debug-step)、過程單步執(zhí)行(按f10或選擇debug-step over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(debug-inline assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能
33、被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(debug-insert/remove breakpoint或debug-breakpoints等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。結(jié)束語本文是一篇關(guān)于用單片機(jī)實(shí)現(xiàn)高精度日歷時(shí)鐘論文,設(shè)計(jì)中使用到了at89c52和1602液晶顯示屏。在設(shè)計(jì)過程中我通過在網(wǎng)上和圖書館查閱資料,收集了關(guān)于單片機(jī)和液晶顯示方面的資料,通過對(duì)這些資料的學(xué)習(xí),我了解了單片機(jī)的基本結(jié)構(gòu),使用和單片機(jī)在生活和生產(chǎn)中所發(fā)揮的作用;液晶顯示的原理和使用。本次畢業(yè)設(shè)計(jì)除了讓我回顧以前學(xué)過的知識(shí)
34、外,也使我學(xué)習(xí)到了新的東西。這次畢業(yè)設(shè)計(jì)可以說是對(duì)四年的大學(xué)學(xué)習(xí)的總結(jié)。本次畢業(yè)設(shè)計(jì)完成的主要工作和任務(wù)如下:對(duì)設(shè)計(jì)方案的理論研究,單片機(jī)的合理選型,硬件電路的設(shè)計(jì),電路板的制作,元器件的焊接,軟件的編寫和調(diào)試以及畢業(yè)論文的制作。通過對(duì)本課題的研究我有以下幾個(gè)方面的收獲: (1)學(xué)習(xí)與掌握了單片機(jī)的基本原理及其各種應(yīng)用,對(duì)它的各種硬件接口與軟件設(shè)計(jì)方法有較深入的認(rèn)識(shí)。 (2)對(duì)液晶顯示有了一定的認(rèn)識(shí),能夠初步掌握液晶顯示的原理。 (3)通過對(duì)電路原理圖、pcb圖的繪制,電路板的制作掌握了對(duì)altium designer winter 09 (4)本設(shè)計(jì)重點(diǎn)在于軟件的設(shè)計(jì),因此在設(shè)計(jì)過程中使自己
35、在大學(xué)學(xué)到的c語言知識(shí)得到了鞏固,同時(shí)提高了解決實(shí)際問題的能力。 由于時(shí)間倉促,再加上作者水平有限,本文不免有很多錯(cuò)誤,懇請各位讀者批評(píng)指正。52致 謝在我的畢業(yè)設(shè)計(jì)與論文完成過程中,得到了很多人的幫助與支持。首先,最感謝的是我的指導(dǎo)老師葉偉慧老師,他以嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、做研究全力以赴的精神,對(duì)我畢業(yè)設(shè)計(jì)和論文的寫作給予悉心指導(dǎo),提出了許多批評(píng)建議,使個(gè)人的畢業(yè)設(shè)計(jì)和論文得以如期完成,在此致上最真摯的謝意。也謝謝大學(xué)所有教導(dǎo)過我的老師,謝謝你們四年來的悉心教導(dǎo)與關(guān)心愛護(hù)。感謝培養(yǎng)教育我的母校廣東海洋大學(xué)寸金學(xué)院!最后,感謝我親愛的家人,感謝他們在生活及情感上的容忍及包容,在我完成論文的學(xué)習(xí)生活中
36、,默默的支持著我。 參考文獻(xiàn)1 余錫存,曹國華,單片機(jī)原理及接口技術(shù). 西安:西安電子科技大學(xué)出版社,20002 郭天祥,新概念51單片機(jī)c語言教程。北京:電子工業(yè)出版社,20093 楊拴科, 模擬電子技術(shù)基礎(chǔ). 北京:高等教育出版社, 2003。4 李光才,樓然笛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo). 北京:北京航空航天大學(xué)出版社,2004。6 楊立民,單片機(jī)技術(shù)及應(yīng)用.西安:西安電子科技大學(xué)出版社,1997.912。7 馬忠梅,單片機(jī)的c語言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1997。8王天曦 ,李洪儒.電子技術(shù)工藝基礎(chǔ).北京:清華大學(xué)出版社,2000。9 弘道工作室,融會(huì)貫通 protel
37、99電路設(shè)計(jì).北京: 人民交通出版設(shè),2000。10 張偉,王力,趙晶,proteldxp 入門與提高.北京:人民郵電出版社, 2003.2。11 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)m. 北京:北京航空航天大學(xué)出版社, 2001.7。12 譚浩強(qiáng),c程序設(shè)計(jì)(第二版)m.北京:清華大學(xué)出版社,2003。 13 付家才,單片機(jī)控制工程實(shí)踐技術(shù)m. 北京:化學(xué)工業(yè)出版社,2004.3。14 w.simpson,editor,the point-to-point protocol, rfc1661 eb/ol. july 1994。15 wavecom,at commands interface g
38、uide, revision 002eb/ol.6th november 2003。附錄程序代碼#include/#includeds18b20_3.h#include #include #define uint unsigned int#define uchar unsigned char#define wd 1/定義是否有溫度功能 =0時(shí)無溫度,=1時(shí)有溫度#define yh 0x80 /lcd第一行的初始位置,因?yàn)閘cd1602字符地址首位d7恒定為1(100000000=80)#define er 0x80+0x40 /lcd第二行初始位置(因?yàn)榈诙械谝粋€(gè)字符位置地址是0x40)/
39、液晶屏的與c51之間的引腳連接定義(顯示數(shù)據(jù)線接c51的p0口)sbit en=p27;/sbit rw=p26; /如果硬件上rw接地,就不用寫這句和后面的rw=0了sbit rs=p26;/校時(shí)按鍵與c51的引腳連接定義sbit menu=p30;/菜單鍵sbit set=p31; /設(shè)置鍵sbit add=p32; /加鍵sbit dec=p33; /減鍵sbit ensure=p34;/確認(rèn)鍵sbit dq=p20;/sbit buzzer=p14;/蜂鳴器,通過三極管8550驅(qū)動(dòng),端口低電平響sbit led=p24; /lcd背光開關(guān)bit led1=1;unsigned char
40、 temp_miao;unsigned char bltime; /背光亮的時(shí)間/ds1302時(shí)鐘芯片與c51之間的引腳連接定義sbit io=p11;sbit sclk=p12;sbit rst=p10;uchar a,miao,shi,fen,ri,yue,nian,week,setn,temp;uint flag;/flag用于讀取頭文件中的溫度值,和顯示溫度值bit c_moon;uchar nz_shi=12,nz_fen=0,nz_miao=0,setnzn; /定義鬧鐘變量uchar shangyimiao,bsn,temp_hour;/記錄上一秒時(shí)間uchar t_nl_nz;
41、/計(jì)數(shù)器bit timeron=0;/鬧鐘啟用標(biāo)志位bit baoshi=0;/整點(diǎn)報(bào)時(shí)標(biāo)志位bit p_r=0; /平年/潤年 =0表示平年,=1表示潤年data uchar year_moon,month_moon,day_moon,week;sbit acc0=acc0;sbit acc7=acc7;code uchar year_code597= 0x04,0xae,0x53, /1901 0 0x0a,0x57,0x48, /1902 3 0x55,0x26,0xbd, /1903 6 0x0d,0x26,0x50, /1904 9 0x0d,0x95,0x44, /1905 12
42、0x46,0xaa,0xb9, /1906 15 0x05,0x6a,0x4d, /1907 18 0x09,0xad,0x42, /1908 21 0x24,0xae,0xb6, /1909 0x04,0xae,0x4a, /1910 0x6a,0x4d,0xbe, /1911 0x0a,0x4d,0x52, /1912 0x0d,0x25,0x46, /1913 0x5d,0x52,0xba, /1914 0x0b,0x54,0x4e, /1915 0x0d,0x6a,0x43, /1916 0x29,0x6d,0x37, /1917 0x09,0x5b,0x4b, /1918 0x74,
43、0x9b,0xc1, /1919 0x04,0x97,0x54, /1920 0x0a,0x4b,0x48, /1921 0x5b,0x25,0xbc, /1922 0x06,0xa5,0x50, /1923 0x06,0xd4,0x45, /1924 0x4a,0xda,0xb8, /1925 0x02,0xb6,0x4d, /1926 0x09,0x57,0x42, /1927 0x24,0x97,0xb7, /1928 0x04,0x97,0x4a, /1929 0x66,0x4b,0x3e, /1930 0x0d,0x4a,0x51, /1931 0x0e,0xa5,0x46, /19
44、32 0x56,0xd4,0xba, /1933 0x05,0xad,0x4e, /1934 0x02,0xb6,0x44, /1935 0x39,0x37,0x38, /1936 0x09,0x2e,0x4b, /1937 0x7c,0x96,0xbf, /1938 0x0c,0x95,0x53, /1939 0x0d,0x4a,0x48, /1940 0x6d,0xa5,0x3b, /1941 0x0b,0x55,0x4f, /1942 0x05,0x6a,0x45, /1943 0x4a,0xad,0xb9, /1944 0x02,0x5d,0x4d, /1945 0x09,0x2d,0
45、x42, /1946 0x2c,0x95,0xb6, /1947 0x0a,0x95,0x4a, /1948 0x7b,0x4a,0xbd, /1949 0x06,0xca,0x51, /1950 0x0b,0x55,0x46, /1951 0x55,0x5a,0xbb, /1952 0x04,0xda,0x4e, /1953 0x0a,0x5b,0x43, /1954 0x35,0x2b,0xb8, /1955 0x05,0x2b,0x4c, /1956 0x8a,0x95,0x3f, /1957 0x0e,0x95,0x52, /1958 0x06,0xaa,0x48, /1959 0x7a,0xd5,0x3c, /1960 0x0a,0xb5,0x4f, /1961 0x04,0xb6,0x45, /1962 0x4a,0x57,0x39, /1963 0x0a,0x57,0x4d, /1964 0x05,0x26,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46763-2025稀土鐵硼燒結(jié)永磁體晶界擴(kuò)散效果評(píng)價(jià)方法
- 2025年大學(xué)大四(交通運(yùn)輸)智能交通系統(tǒng)應(yīng)用試題及答案
- 2025年中職(中藥)中藥炮制階段測試題及答案
- 2025年高職(康復(fù)營養(yǎng)治療)營養(yǎng)治療專項(xiàng)測試試題及答案
- 2025年中職計(jì)算機(jī)平面設(shè)計(jì)(設(shè)計(jì)節(jié)能規(guī)范)試題及答案
- 2025年大學(xué)大四(安全工程)安全評(píng)價(jià)綜合測試試題及答案
- 2025年中職數(shù)據(jù)綜合技能實(shí)訓(xùn)(處理技能)試題及答案
- 2025年中職畜牧獸醫(yī)(動(dòng)物解剖生理)試題及答案
- 2025年大學(xué)漢語言文學(xué)(中國現(xiàn)代文學(xué)研究)試題及答案
- 2025年中職機(jī)器人應(yīng)用技術(shù)(機(jī)器人應(yīng)用技術(shù)案例)試題及答案
- 清華大學(xué)教師教學(xué)檔案袋制度
- 公租房完整租賃合同范本
- 東南大學(xué)附屬中大醫(yī)院2026年招聘備考題庫及答案詳解參考
- 2025新疆阿瓦提縣招聘警務(wù)輔助人員120人參考筆試題庫及答案解析
- 貴州國企招聘:2025貴州鹽業(yè)(集團(tuán))有限責(zé)任公司貴陽分公司招聘考試題庫附答案
- 2025-2026學(xué)年秋季學(xué)期教學(xué)副校長工作述職報(bào)告
- GB/T 3098.5-2025緊固件機(jī)械性能第5部分:自攻螺釘
- 2026年服裝電商直播轉(zhuǎn)化技巧
- 2025-2026學(xué)年小學(xué)美術(shù)浙美版(2024)二年級(jí)上冊期末練習(xí)卷及答案
- 水電站壓力管道課件
- 鐵總建設(shè)201857號(hào) 中國鐵路總公司 關(guān)于做好高速鐵路開通達(dá)標(biāo)評(píng)定工作的通知
評(píng)論
0/150
提交評(píng)論