版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 《具有溫度顯示的電子實時時鐘/萬年日歷系統(tǒng)的設(shè)計與制作》</p><p><b> 目 錄</b></p><p><b> 摘 要2</b></p><p><b> 第1章 引
2、言4</b></p><p><b> 1.1研究背景4</b></p><p> 1.2論文研究目標和意義4</p><p> 1.3論文章節(jié)安排5</p><p> 第2章 任務(wù)與要求6</p><p><b> 2.1課題概述6</b>
3、</p><p> 2.1.1 設(shè)計內(nèi)容6</p><p> 2.1.2 要求6</p><p> 2.2 參數(shù)要求6</p><p> 第3章 方案論證與設(shè)計8</p><p> 3.1 總體設(shè)計分析8</p><p> 3.2 方案的選擇與設(shè)計8</p>
4、<p> 3.2.1 顯示模塊選擇方案和論證:8</p><p> 3.2.2 時鐘芯片的選擇方案和論證:9</p><p> 3.2.3 溫度傳感器的選擇方案與論證:9</p><p> 3.3 方案確定9</p><p> 第4章 硬件電路設(shè)計10</p><p> 4.1 硬件電
5、路設(shè)計框圖10</p><p> 4.1.1 系統(tǒng)硬件概述10</p><p> 4.1.2 單片機主控制模塊的設(shè)計10</p><p> 4.1.3 振蕩電路11</p><p> 4.1.4 復位電路11</p><p> 4.1.5 溫度采集模塊設(shè)計11</p><p&g
6、t; 4.1.6 顯示模塊的設(shè)計12</p><p> 4.1.7 蜂鳴器電路13</p><p> 第5章 系統(tǒng)的軟件設(shè)計14</p><p> 5.1軟件設(shè)計方案14</p><p> 5.2程序流程框圖14</p><p> 第6章 電路調(diào)試14</p><p>
7、 5.1調(diào)試的設(shè)備14</p><p> 5.2調(diào)試步驟15</p><p> 5.2.1 硬件調(diào)試15</p><p> 5.2.2 軟件調(diào)試15</p><p> 第7章 使用說明17</p><p> 6.1 使用方法17</p><p> 6.1.1 系統(tǒng)面板介紹
8、17</p><p> 6.1.2 調(diào)整方法17</p><p> 6.1.3 注意事項18</p><p> 6.2故障分析18</p><p> 6.2.1 LED數(shù)碼管顯示不全、模糊、多出相對較暗的一位18</p><p> 6.2.2 調(diào)整時按鍵過于靈敏18</p><
9、p> 第8章 心得體會19</p><p><b> 參考文獻19</b></p><p><b> 附件21</b></p><p> 附件一:總原理圖21</p><p> 附件二:PCB版圖22</p><p> 附件三:元件清單22<
10、;/p><p> 附錄四:程序代碼23</p><p><b> 摘 要</b></p><p> 單片計算機即單片微型計算機(Single-Chip Microcomputer),是集CPU、RAM、ROM、定時、計數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動化上,而51單片機是各單片機中最為典型和
11、最有代表性的一種。這次畢業(yè)設(shè)計通過對它的學習,應(yīng)用,從而達到學習、設(shè)計、開發(fā)軟、硬的能力。</p><p> 本設(shè)計以數(shù)字集成電路技術(shù)為基礎(chǔ),單片機技術(shù)為核心。本文詳細的介紹基于AT89S51單片機帶有溫度和鬧鐘的萬年歷控制系統(tǒng)。利用單片機定時計數(shù)器提供秒信號,DS18B20數(shù)字式溫度傳感器進行溫度數(shù)據(jù)傳輸,經(jīng)軟件處理,在動態(tài)掃描后,利用8個共陽數(shù)碼管交替顯示年月日、時分秒、環(huán)境溫度值。為了更好的調(diào)節(jié)和設(shè)置,設(shè)
12、計了四個按鍵快速進行時間和鬧鐘的精準調(diào)整。</p><p> 關(guān)鍵字: 單片機;萬年歷;溫度;鬧鐘 ;DS18B20</p><p><b> Abstract</b></p><p> Single-chip computer that is single-chip microcomputer (Single-Chip Microco
13、mputer), is a CPU, RAM, ROM, timing, counting and multiple interfaces in one of the micro-controller. His small size, low cost, powerful, widely used in intelligent products and industrial automation, while 51 of the mic
14、rocontroller chip is the most typical and most representative one. The graduation project through to its study, the application to achieve the study, design, development software and hardware capabilities.</p><
15、;p> This design with digital integrated circuit technology as the foundation, microcontroller technology as the core. This paper introduced in detail based on AT89S51 with temperature and the alarm clock calendar con
16、trol system. Using single chip computer timing counter offer seconds signal, the temperature sensor DS18B20 digital temperature data transmission, the software processing, in dynamic scan, a total of 8 Yang digital tube
17、alternate show date, meticulous, environment when temperature. In or</p><p> Key words: Microcomputer; Calendar;Temperature; Alarm clock; DS18B20; Dynamic scanning </p><p><b> 第1章 引 言
18、</b></p><p><b> 1.1研究背景</b></p><p> 當今社會逐漸步入信息化時代,快節(jié)奏、高效率成為當今時代的主題。人們在日常的工作和生活中對各種信息量的需求也在不斷加大,為了滿足人們的這種需求,電子萬年歷應(yīng)運而生。電子萬年歷整合了人們所需的日期、時間、氣溫、日程安排的鬧鐘等諸多常用信息,最大限度的方便了人們的信息獲取,可以對工
19、作和生活做出有效的安排。</p><p> 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。</p><p> 1
20、.2論文研究目標和意義</p><p> 本文分析的是具有溫度顯示的電子實時時鐘/萬年日歷系統(tǒng)的設(shè)計,可以顯示年月日時分秒及環(huán)境溫度信息,具有可調(diào)整日期、時間和鬧鐘功能。采用數(shù)字電路實現(xiàn)對.時,分,秒.數(shù)字顯示的計時裝置,我們可以通過對電子萬年歷的研究進一步熟悉和掌握51單片機及其外圍電路的應(yīng)用,加強自己的動手能力,把理論和實際操作聯(lián)系起來,在實踐中達到理論知識的融會貫通,并進一步提高自身在電子技術(shù)方面的理論研
21、究及實踐能力。</p><p> 研究數(shù)字鐘及擴大其應(yīng)用,有著非?,F(xiàn)實具有現(xiàn)實意義,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p><b> 1.3論文設(shè)計目的</b></p>
22、<p> 通過本研究性學習,進一步了解研究性學習的要求和寫作過程,了解此類設(shè)計的研究方法,培養(yǎng)文獻檢索能力、創(chuàng)新能力、文字表達能力等。</p><p> 本設(shè)計電路都采用目前流行的簡單的典型電路接法,簡單實用、穩(wěn)定廉價??善鸬揭粋€很好的學習目的和實驗?zāi)康摹?lt;/p><p><b> 1.4論文章節(jié)安排</b></p><p>
23、 本論文大致可分為三大部分:第一部包含第一章至第三章,系統(tǒng)介紹了論文研究的目的及意義,并最終確立方案;第二部分包含第四章至第七章,給出實際硬件電路的分析,求證、及調(diào)試,還有使用說明;第三部分為第八章,是論文總結(jié)及未來相關(guān)展望。</p><p><b> 第2章 任務(wù)與要求</b></p><p><b> 2.1課題概述</b></p&
24、gt;<p> 本設(shè)計基于單片機技術(shù)原理,以單片機芯片AT89C51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計制作出一個多功能數(shù)字時鐘系統(tǒng)。該時鐘系統(tǒng)主要由時鐘模塊、鬧鐘模塊、顯示模塊、鍵盤控制模塊等組成。能夠準確顯示時間(顯示格式為時時:分分:秒秒,24小時制),可隨時進行時間調(diào)整,能顯示溫度。</p><p> 2.1.1 設(shè)計內(nèi)容</p><p>
25、 顯示準確的北京時間(時、分、秒)及公歷日期顯示功能(年、月、日);</p><p> 可通過按鍵切換年、月、日及時、分、秒的顯示狀態(tài);</p><p> 可隨時可以調(diào)校年、月、日或時、分、秒;</p><p> 可每次增減一進行時間調(diào)節(jié),也可快速增減進行時間調(diào)節(jié);</p><p> 有鬧鐘功能(可控制鬧鐘的開關(guān));</p>
26、;<p><b> 可顯示環(huán)境溫度。</b></p><p> 2.1.2 設(shè)計要求</p><p> ?、?繪制系統(tǒng)組成框圖,確定設(shè)計方案;</p><p> ?、?了解電路所需集成芯片的功能,參數(shù)和工作原理;</p><p> ?、?繪制整機電路圖;</p><p>
27、 ⑷ 制作實物并完成軟、硬件調(diào)試;</p><p> ?、?提交畢業(yè)設(shè)計論文</p><p><b> 2.2 參數(shù)要求</b></p><p> 1) DS18B20主要參數(shù)</p><p> 溫度測量范圍-55℃~+125℃,電源電壓3~5.5V,在-10℃~+85℃區(qū)間測量精度為0.5℃。</p&g
28、t;<p><b> 電參數(shù):</b></p><p> 第3章 方案論證與設(shè)計</p><p> 3.1 總體設(shè)計分析</p><p> 本課題設(shè)計的是具有溫度顯示的電子實時時鐘/萬年日歷系統(tǒng),</p><p> 3.2 方案的選擇與設(shè)計 </p><p> 為實現(xiàn)本設(shè)
29、計的要求可以采用以下幾種方案:</p><p><b> a.顯示模塊方案:</b></p><p> 方案一:采用LED液晶顯示屏;</p><p> 方案二:采用點陣式數(shù)碼管顯示;</p><p> 方案三:采用LED數(shù)碼管動態(tài)掃描;</p><p><b> b.時鐘芯片
30、方案:</b></p><p> 方案一:單片機定時計數(shù)器提供;</p><p> 方案二:DS1302時鐘芯片提供;</p><p> c.溫度傳感器方案:</p><p><b> 方案一:熱敏電阻;</b></p><p> 方案二:數(shù)字式溫度傳感器DS18B20;&l
31、t;/p><p> 3.2.1 顯示模塊選擇方案和論證:</p><p><b> 方案一:</b></p><p> 采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多。</p><p><b> 方案二:</b></p
32、><p> 采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高。</p><p><b> 方案三:</b></p><p> 采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。</p&
33、gt;<p> 3.2.2 時鐘芯片的選擇方案和論證:</p><p><b> 方案一:</b></p><p> 直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、時、分、秒計數(shù)。采用此種方案減少芯片的使用,節(jié)約成本,實現(xiàn)的時間誤差較小,單片機芯片得到充分利用。</p><p><b> 方案二:&
34、lt;/b></p><p> 采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時耗電小于300nA.</p><p> 3.2.3 溫度傳感器的選擇方案與論證:</p><p><b&
35、gt; 方案一:</b></p><p> 使用熱敏電阻作為傳感器,用熱敏電阻與一個相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進行A/D轉(zhuǎn)換。。此設(shè)計方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴格線性的,會產(chǎn)生較大的測量誤差。</p><p><b> 方案二:</b>&l
36、t;/p><p> 采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,易于與單片機連接,可以去除A/D模塊,降低硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高、測量范圍廣等優(yōu)點。</p><p><b> 3.3 方案確定</b></p><p> 我們根據(jù)手頭現(xiàn)有資源,經(jīng)濟性,功能
37、實現(xiàn)性選取方案。</p><p> 綜上各方案所述,對此次設(shè)計的方案選定: LED數(shù)碼管動態(tài)掃描作為顯示;采用單片機定時計數(shù)器提供秒信號;DS18B20數(shù)字式溫度傳感器。</p><p> 第4章 硬件電路設(shè)計</p><p> 4.1 硬件電路設(shè)計框圖</p><p> 4.1.1 系統(tǒng)硬件概述</p><p&
38、gt; 本電路是由AT89S51單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。溫度的采集由DS18B20構(gòu)成;顯示部份由8個數(shù)碼管、74ls138譯碼器構(gòu)成,使用動態(tài)掃描顯示方式對數(shù)字的顯示。</p><p> 4.1.2 單片機主控制模塊的設(shè)計</p><p> AT89S5
39、1單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。</p><p> 單片機的最小系統(tǒng)如下圖所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復
40、位輸入端,接上電容,電阻及開關(guān)后夠上電復位電路,20引腳為接地端,40引腳為電源端. 如圖所示:</p><p> 圖4-1 主控制系統(tǒng)</p><p> 4.1.3 振蕩電路</p><p> 本設(shè)計51芯片選用內(nèi)部振蕩器方式。由于本設(shè)計的時間由內(nèi)部定時器中斷與軟件計數(shù)相結(jié)合產(chǎn)生的,所以從計算方便以及系統(tǒng)的效率上考慮,本設(shè)計選用12MHz頻率的晶振,電路原
41、理圖如下:</p><p> 圖4-2 AT89C51的振蕩電路</p><p> 4.1.4 復位電路</p><p> 本設(shè)計使用上電復位電路。單片機晶振為12MHz,起振時間將近1ms,單片機1個機器周期的時間為1us。</p><p> 單片機每次上電復位所需的最短延時應(yīng)該不小于treset。這里,treset等于上電延時與起
42、振延時之和。從實際上講,延遲一個treset往往還不夠,不能夠保障單片機有一個良好的工作開端。</p><p> 復位電路把單片機鎖定在復位狀態(tài)上并且維持一個延時(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個等待時間;在電源電壓穩(wěn)定之后,再插入一個延時,給予時鐘振蕩器從起振到穩(wěn)定的一個等待時間;在單片機開始進入運行狀態(tài)之前,還要至少推遲2個機器周期的延時間。單片機是高電平的時候復位,一般是用電阻和電容組成
43、的,電容充電的時RST復位端為高電平,此時單片機開始復位..電容充電完成,此時單片機復位完成。</p><p> 圖4-3 AT89C51上電復位電路</p><p> 4.1.5 溫度采集模塊設(shè)計</p><p> 如圖4-4所示。采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳
44、輸,使用P3.6與DS18B20的I/O口連接加一個上拉電阻,Vcc接電源,Vss接地。</p><p> 表4-1 DS18B20詳細引腳功能描述:</p><p> 圖4-4 DS18B20溫度采集</p><p> 4.1.6 顯示模塊的設(shè)計</p><p> 要實現(xiàn)接在P0和P2口上8個數(shù)碼管的動態(tài)顯示,必須輪流向各數(shù)碼管送出
45、段碼和相應(yīng)的位碼,利用發(fā)光二極管的余暉和人眼的視覺暫留效應(yīng),使得人感覺各位數(shù)碼管同時在顯示,實際多位數(shù)碼管是一位一位輪流顯示的,試試輪流的速度非???,人眼已經(jīng)無法分辨。</p><p> 數(shù)碼管掃描頻率必須大于42HZ,人的眼睛才不會感覺到閃爍。</p><p> 本設(shè)計中P2接段碼,P0接位碼,如圖4-5所示:</p><p> 圖4-5 數(shù)碼管動態(tài)顯示硬件
46、原理圖</p><p> 4.1.7 蜂鳴器電路</p><p> 如圖4-6,本設(shè)計采用無源蜂鳴器,單片機必須輸出固定頻率的方波信號,其工作電壓范圍寬,4-12V,需要外圍元件少,電壓增益可調(diào)范圍為20-200.,接在P3.5口。</p><p> 圖4-6 蜂鳴器輸出電路</p><p> 第5章 系統(tǒng)的軟件設(shè)計</p>
47、;<p><b> 5.1軟件設(shè)計方案</b></p><p> 1.時間累加及顯示設(shè)計</p><p><b> 5.2程序流程框圖</b></p><p><b> 第6章 電路調(diào)試</b></p><p> 正確的調(diào)試系統(tǒng)才能使各模塊電路正常工作,
48、實現(xiàn)高穩(wěn)定性的顯示。要經(jīng)過反復的調(diào)整和測試,才能達到預期的目標。 </p><p><b> 5.1調(diào)試的設(shè)備</b></p><p><b> 5.2調(diào)試步驟</b></p><p> 調(diào)試具體步驟大致如下: </p><p><b> 硬件調(diào)試</b></p&
49、gt;<p><b> 軟件調(diào)試</b></p><p> 5.2.1 硬件調(diào)試</p><p> 電路的調(diào)試具體步驟大致如下: </p><p> 1.通電觀察:通電后不要急于測量電氣指標,而要觀察電路有無異?,F(xiàn)象,例如有無冒煙現(xiàn)象,有無異常氣味,手摸集成電路外封裝,是否發(fā)燙等。如果出現(xiàn)異常現(xiàn)象,應(yīng)立即關(guān)斷電源,待排除故
50、障后再通電。 </p><p> 2.靜態(tài)調(diào)試:靜態(tài)調(diào)試一般是指在不加輸入信號,或只加固定的電平信號的條件下所進行的直流測試,可用萬用表測出電路中各點的電位,通過和理論估算值比較,結(jié)合電路原理的分析,判斷電路直流工作狀態(tài)是否正常,及時發(fā)現(xiàn)電路中已損壞或處于臨界工作狀態(tài)的元器件。通過更換器件或調(diào)整電路參數(shù),使電路直流工作狀態(tài)符合設(shè)計要求。 </p><p> 3.動態(tài)調(diào)試:動態(tài)調(diào)試是在靜
51、態(tài)調(diào)試的基礎(chǔ)上進行的,在電路的輸入端加入合適的信號,按信號的流向,順序檢測各測試點的輸出信號,若發(fā)現(xiàn)不正常現(xiàn)象,應(yīng)分析其原因,并排除故障,再進行調(diào)試,直到滿足要求。 </p><p> 5.2.2 軟件調(diào)試</p><p><b> (一)、調(diào)試步驟:</b></p><p> 首先啟動KeilC51軟件的集成開發(fā)環(huán)境。</p>
52、;<p><b> 建立工程文件。</b></p><p><b> 建立并添加源文件。</b></p><p><b> 配置工程屬性。</b></p><p><b> 程序調(diào)試。</b></p><p><b> (
53、二)、調(diào)試方法:</b></p><p> 先進行人工檢查,即靜態(tài)檢查。</p><p> 為了更有效地進行人工檢查,所編的程序應(yīng)力求做到以下幾點:</p><p> ?、賾?yīng)當采用結(jié)構(gòu)化程序方法編程,以增加可讀性;</p><p> ?、诒M可能多加注釋,以幫助理解每段程序的作用;</p><p> ?、?/p>
54、在編寫復雜的程序時不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。各函數(shù)之間除用參數(shù)傳遞數(shù)據(jù)外,盡量少出現(xiàn)耦合關(guān)系,這樣便于分別檢查和處理。</p><p> 在人工檢查無誤后,再上機調(diào)試。</p><p> 進行動態(tài)檢查。在編譯時會給出語法錯誤的信息,調(diào)試時可以根據(jù)提示信息具體找出程序中出錯之處并改正。應(yīng)當注意的是有時提示出錯的地方并不是真正出錯的
55、位置,如果在提示出錯的行找不到錯誤的話應(yīng)當?shù)缴弦恍性僬?。有時提示出錯的類型并非絕對準確,由于出錯的情況繁多且各種錯誤互有關(guān)聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鉆牛角尖。</p><p> 若系統(tǒng)提示的出錯信息很多,應(yīng)當從上到下逐一改正。有時顯示出一大片出錯信息往往使人感到問題嚴重,無從下手。其實可能只有一二個錯誤。例如,對使用的變量未定義,編譯時就會對所有含該變量的語句發(fā)出出錯信
56、息。這時只要加上一個變量定義,就所有錯誤都消除了。</p><p> 在改正語法錯誤(包括“錯誤(error)”和“警告(warning)”)后,應(yīng)當對運行結(jié)果作分析,看它是否符合要求。</p><p> 及時將程序?qū)懭胄酒?,看是否達到要求,入不能實現(xiàn)功能則反復檢查和調(diào)試,不斷完善優(yōu)化程序。</p><p><b> 第7章 使用說明</b&
57、gt;</p><p><b> 6.1 使用方法</b></p><p><b> 連接電源;</b></p><p><b> 打開電源開關(guān);</b></p><p> 通過S1鍵、S2鍵、S3鍵、S4鍵對系統(tǒng)進行設(shè)置。</p><p>
58、6.1.1 系統(tǒng)面板介紹</p><p> 6.1.2 調(diào)整方法</p><p> 系統(tǒng)啟動后按S4進入設(shè)置程序,設(shè)置時時鐘停止運行,對當前項進行設(shè)置,調(diào)整順序依次為:</p><p> 2.按S3對設(shè)置項進行逐個切換,循環(huán);</p><p> S2對選項進行減(-)操作和ON/OFF的切換;</p><p>
59、 S1對選項進行加(+)操作和ON/OFF的切換;</p><p> 當全部選項或者部分選項設(shè)置完成,按下S4保存退出,時鐘開始運行。</p><p> 6.1.3 注意事項</p><p><b> 6.2故障分析</b></p><p> 對實驗過程中產(chǎn)生的故障進行分析及解決。</p><
60、;p> 6.2.1 LED數(shù)碼管顯示不全、模糊、多出相對較暗的一位</p><p> 故障分析:可能是電路斷路、數(shù)碼管沒有消影造成。</p><p> 故障解決:首先使用試測儀對電路進行測試,觀察電路是否存在斷路現(xiàn)象。加入數(shù)碼管消影程序,問題得到解決。</p><p> 6.2.2 調(diào)整時按鍵過于靈敏</p><p> 故障分
61、析:可能是沒有采用按鍵防抖。</p><p> 故障解決:加入按鍵防抖程序,問題得到解決。</p><p><b> 第8章 心得體會</b></p><p> 衷心感謝我的指導老師趙巧妮老師在設(shè)計的過程中對我的悉心指導,使我獲得了豐富的理論知識,極大地提高了實踐能力,并對當前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,單片機知識對今后進
62、一步學習有極大的幫助。隨著畢業(yè)日子的到來,畢業(yè)設(shè)計也接近了尾聲。經(jīng)過幾周的奮戰(zhàn)我的畢業(yè)設(shè)計終于完成了。在沒有做畢業(yè)設(shè)計以前覺得畢業(yè)設(shè)計只是對這幾年來所學知識的單純總結(jié),但是通過這次做畢業(yè)設(shè)計發(fā)現(xiàn)自己的看法有點太片面。畢業(yè)設(shè)計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計使我明白了自己原來知識還比較欠缺。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次畢業(yè)設(shè)計,我才
63、明白學習是一個長期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學習,努力提高自己知識和綜合素質(zhì)。在這次畢業(yè)設(shè)計中也使我們的同學關(guān)系更進一步了,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學。我的心得也就這么多了,總之,不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重</p><p> 在此要感謝我
64、的指導老師對我悉心的指導,感謝老師給我的幫助。在設(shè)計過程中,我通過查閱大量有關(guān)資料,與同學交流經(jīng)驗和自學,并向老師請教等方式,使自己學到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個設(shè)計中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設(shè)計做的也不太好,但是在設(shè)計過程中所學到的
65、東西是這次畢業(yè)設(shè)計的最大收獲和財富,使我終身受益。</p><p> 總之,這次畢業(yè)設(shè)計讓我學習到很多。雖然結(jié)束了,但這只能是一個開始。我們只有對自己有了更高的要求,才能作為動力不斷取得新的成績!</p><p><b> 參考文獻</b></p><p> 1.《模擬電子技術(shù)》第二版 戴士弘 電子工業(yè)出版社</p>
66、<p> 2.《數(shù)字電路》郝 波電子工業(yè)出版社</p><p> 3.《C語言程序設(shè)計》徐建民 電子工業(yè)出版社</p><p> 4.《新概念51單片機C語言教程》郭天祥 電子工業(yè)出版社</p><p> 5. 相關(guān)網(wǎng)站和論文</p><p><b> 附件</b>
67、;</p><p><b> 附件一:總原理圖</b></p><p><b> 附件二:PCB版圖</b></p><p><b> 附件三:元件清單</b></p><p><b> 附錄四:程序代碼</b></p><p&
68、gt; /* P2接段碼,P0接位碼*/</p><p> #include <reg51.h></p><p> #include<intrins.h></p><p> sbit DQ=P3^6;</p><p> void display();</p><p> void i
69、nit_18b20();</p><p> int temp=365;</p><p> typedef unsigned char UINT8;</p><p> typedef unsigned int UINT16;</p><p> #define S1 0x0e</p><p> #define S
70、2 0x0d</p><p> #define S3 0x0b</p><p> #define S4 0x07</p><p><b> UINT8 </b></p><p> code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//段碼
71、</p><p> int kaiguan[]={0xc8,0x8e,0xff,0x8e};</p><p> int *p=kaiguan;</p><p><b> int k=0;</b></p><p> unsigned char Text[7];</p><p> bit f
72、lag=1;</p><p> UINT16 Year=2011;</p><p> UINT8 Month=8,Day=11,Hour=23,Minute=59,Second=40,AHour=01,num=0,AMin=10;</p><p> static unsigned int show=0;</p><p> sbit S
73、PEAK=P3^5;</p><p> void Delay(UINT16 t)</p><p><b> {</b></p><p> UINT16 i,j;</p><p> for(i=0;i<t;i++)</p><p> for(j=0;j<112;j++);<
74、;/p><p><b> }</b></p><p> void delay_18B20(UINT8 i)//延時1微秒</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></
75、p><p> void ds1820rst()/*ds1820復位*/</p><p><b> { </b></p><p> UINT8 x=0;</p><p> DQ = 1; //DQ復位</p><p> delay_18B20(4); //延時</p&g
76、t;<p> DQ = 0; //DQ拉低</p><p> delay_18B20(100); //精確延時大于480us</p><p> DQ = 1; //拉高</p><p> delay_18B20(40); </p><p><b> } </b>
77、</p><p> UINT8 ds1820rd()/*讀數(shù)據(jù)*/</p><p><b> { </b></p><p> UINT8 i=0;</p><p> UINT8 dat = 0;</p><p> for (i=8;i>0;i--)</p><p
78、><b> { </b></p><p> DQ = 0; //給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1; //給脈沖信號</p><p><b> if(DQ)</b></p>
79、<p> dat|=0x80;</p><p> delay_18B20(10);</p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p> void ds1820wr(UI
80、NT8 wdata)/*寫數(shù)據(jù)*/</p><p><b> {</b></p><p> UINT8 i=0;</p><p> for (i=8; i>0; i--)</p><p><b> { </b></p><p><b> DQ = 0
81、;</b></p><p> DQ = wdata&0x01;</p><p> delay_18B20(10);</p><p><b> DQ = 1;</b></p><p> wdata>>=1;</p><p><b> }</b
82、></p><p><b> }</b></p><p> void display()</p><p><b> {</b></p><p><b> UINT8 i;</b></p><p> switch (show)</p&
83、gt;<p><b> {</b></p><p><b> case 0: </b></p><p> Text[0] =tab[Year/1000];</p><p> Text[1] =tab[Year%1000/100];</p><p> Text[2] =tab[
84、Year%100/10];</p><p> Text[3] =tab[Year%10];</p><p> Text[4]=tab[Month/10];</p><p> Text[5]=tab[Month%10];</p><p> Text[6]=tab[Day/10]; </p><p> Text[
85、7]=tab[Day%10]; </p><p><b> break;</b></p><p><b> case 1:</b></p><p> Text[0] =tab[Hour/10];</p><p> Text[1] =tab[Hour%10];</p><p
86、> Text[2] =0xBF;</p><p> Text[3]=tab[Minute/10];</p><p> Text[4]=tab[Minute%10];</p><p> Text[5] =0XBF;</p><p> Text[6]=tab[Second/10];</p><p> Te
87、xt[7]=tab[Second%10];</p><p><b> break;</b></p><p><b> case 2:</b></p><p> Text[0] =tab[temp/100];</p><p> Text[1] =tab[(temp/10)%10]; </
88、p><p> Text[2] =0X7F;</p><p> Text[3] =tab[(temp/1)%10] ;</p><p> Text[4] =0Xff;</p><p> Text[5] =0Xff;</p><p> Text[6] =0Xff;</p><p> Text
89、[7] =0Xff;</p><p><b> break;</b></p><p><b> case 3:</b></p><p> Text[0] =tab[0];</p><p> Text[1] =*(p+k);</p><p> Text[2] =*(p
90、+k+2);</p><p> Text[3]=tab[AHour/10];</p><p> Text[4]=tab[AHour%10];</p><p> Text[5]=0Xff;</p><p> Text[6]=tab[AMin/10];</p><p> Text[7]=tab[AMin%10];
91、</p><p><b> }</b></p><p> if(flag==0)</p><p><b> {</b></p><p> switch(num)</p><p><b> {</b></p><p>
92、case 0:Text[4]=0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff; break;</p><p> case 1:Text[0] =0Xff;</p><p> Text[1] =0Xff;<
93、;/p><p> Text[2] =0Xff;</p><p> Text[3] =0Xff; </p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff;break; </p><p> case 2:Text[0] =0Xff;</p>
94、<p> Text[1] =0Xff;</p><p> Text[2] =0Xff;</p><p> Text[3] =0Xff;</p><p> Text[4]=0Xff;</p><p> Text[5]=0Xff;break;</p><p><b> case 3:<
95、/b></p><p> Text[2] =0Xff;</p><p> Text[3] =0Xff;</p><p> Text[4]=0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=
96、0Xff;break; </p><p> case 4:Text[0] =0Xff;</p><p> Text[1] =0Xff;</p><p> Text[2] =0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p
97、> Text[7]=0Xff;break;</p><p> case 5:Text[0] =0Xff;</p><p> Text[1] =0Xff;</p><p> Text[2] =0Xff;</p><p> Text[3]=0Xff;</p><p> Text[4]=0Xff; <
98、/p><p> Text[5]=0Xff;break; </p><p><b> case 6:</b></p><p> Text[0] =0Xff;</p><p> Text[1] =0Xff;</p><p> Text[2] =0Xff;</p><p>
99、 Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff;break;</p><p><b> case 7:</b></p><p> Text[0] =0Xff;</p><p> Text[1] =0Xff;<
100、;/p><p> Text[2] =0Xff;</p><p> Text[3]=0Xff;</p><p> Text[4]=0Xff; </p><p> Text[5]=0Xff;break; </p><p><b> case 8:</b></p><p>
101、 Text[3] =0Xff;</p><p> Text[4]=0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff;break;</p><p><b> case 9:</b><
102、/p><p> Text[4]=0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff; break;</p><p><b> case 10:</b></p><p>
103、 Text[4]=0Xff;</p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff; break;</p><p><b> case 11:</b></p><p> Text[4]=0Xff;<
104、/p><p> Text[5]=0Xff;</p><p> Text[6]=0Xff; </p><p> Text[7]=0Xff; break;</p><p><b> }</b></p><p><b> }</b></p><p>
105、 for(i=0;i<8;i++)//8位顯示</p><p><b> {</b></p><p> P2=_cror_(0X7f,i); //段碼送P2口</p><p> P0=Text[i]; //位碼送P0口,移位顯示</p><p> Delay(1); //延時2M
106、S</p><p> P0=0xff;P2=0xff;</p><p><b> }</b></p><p><b> }</b></p><p> UINT8 Scankey(void)</p><p><b> {</b></p>
107、;<p> UINT8 key;</p><p> if((P3&0x0f)==0x0f)</p><p> return(0xff);</p><p> Delay(10);</p><p> if((P3&0x0f)==0x0f)</p><p> return(0xff)
108、;</p><p> key=P3&0x0f;</p><p> while((P3&0x0f)!=0x0f);</p><p> return(key);</p><p><b> }</b></p><p> void Adjust(void)</p>
109、<p><b> {</b></p><p><b> UINT8 c;</b></p><p><b> show=0;</b></p><p><b> flag=0;</b></p><p><b> num=0;&l
110、t;/b></p><p><b> while(1)</b></p><p><b> {</b></p><p> display();</p><p> c=Scankey();</p><p> SPEAK=0;//按鍵聲音</p>&l
111、t;p><b> switch(c)</b></p><p><b> {</b></p><p><b> case S1:</b></p><p> SPEAK=0;SPEAK=!SPEAK;</p><p> switch(num)</p>
112、<p><b> {</b></p><p><b> case 0:</b></p><p><b> show=0;</b></p><p> display();</p><p><b> Year++;</b></p>
113、;<p> display();</p><p><b> break;</b></p><p><b> case 1:</b></p><p><b> show=0;</b></p><p> display();</p><p
114、><b> Month++;</b></p><p> if(Month==13)</p><p><b> Month=1;</b></p><p> display();</p><p><b> break;</b></p><p>
115、;<b> case 2:</b></p><p><b> show=0;</b></p><p> display();</p><p><b> Day++;</b></p><p> if(Month==1 ||Month==3 || Month==5 ||
116、 Month==7 || Month==8 || Month==10 ||Month==12)</p><p><b> {</b></p><p> if( Day==32)</p><p><b> Day=1;</b></p><p><b> }</b><
117、/p><p> else if(Month==4 || Month==6 || Month==9 || Month==11)</p><p><b> {</b></p><p> if(Day==31)</p><p><b> Day=1;</b></p><p>&
118、lt;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if((Year %4==0) && (Year%100!=0) || Year%400==0)</p><p><b>
119、 {</b></p><p> if(Day==30)</p><p><b> Day=1;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {<
120、;/b></p><p> if(Day==29)</p><p><b> Day=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> display();</p>
121、<p><b> break;</b></p><p><b> case 3:</b></p><p><b> show=1;</b></p><p> display();</p><p><b> Hour++;</b><
122、;/p><p><b> {</b></p><p> if(Hour==24)</p><p><b> Hour=0;</b></p><p><b> }</b></p><p> display();break;</p>&l
123、t;p><b> case 4:</b></p><p><b> show=1;</b></p><p> display();</p><p><b> Minute++;</b></p><p><b> { </b></p&g
124、t;<p> if(Minute==60)</p><p><b> Minute=0;</b></p><p><b> }</b></p><p> display();break;</p><p><b> case 5:</b></p>
125、;<p><b> show=1;</b></p><p> display();</p><p><b> Second++;</b></p><p><b> {</b></p><p> if(Second==60)</p><
126、p><b> Second=0;</b></p><p><b> }</b></p><p> display();break;</p><p><b> case 6:</b></p><p><b> show=3;</b></
127、p><p> display();</p><p><b> AHour++;</b></p><p><b> {</b></p><p> if(AHour==24)</p><p><b> AHour=0;</b></p>&
128、lt;p><b> }</b></p><p> display();break;</p><p><b> case 7:</b></p><p><b> show=3;</b></p><p> display();</p><p>
129、;<b> AMin++;</b></p><p><b> { </b></p><p> if(AMin==60)</p><p><b> AMin=0;</b></p><p><b> }</b></p><p>
130、; display();break;</p><p><b> case 8:</b></p><p><b> show=3;</b></p><p> display();</p><p><b> if(k==0)</b></p><p>
131、;<b> k=1;</b></p><p><b> else k=0;</b></p><p> display();break;</p><p><b> case 9:</b></p><p><b> show=0;</b></p
132、><p> display();</p><p> Year=Year+10;</p><p> display();</p><p><b> break;</b></p><p><b> case 10:</b></p><p><b
133、> show=0;</b></p><p> display();</p><p> Year=Year+100;</p><p> display();</p><p><b> break;</b></p><p><b> case 11:</b
134、></p><p><b> show=0;</b></p><p> display();</p><p> Year=Year+1000;</p><p> display();</p><p><b> break;</b></p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--電子實時時鐘
- 課程設(shè)計--實時時鐘顯示例程設(shè)計
- 畢業(yè)論文——基于arm920t的嵌入式實時時鐘設(shè)計
- 畢業(yè)設(shè)計論文——基于lpc1752的實時時鐘研究
- 高精度實時時鐘的溫度補償電路設(shè)計.pdf
- 基于單片機的實時時鐘
- 實時時鐘RTC的IP設(shè)計.pdf
- 實時時鐘RTC的IP研究.pdf
- 大專畢業(yè)論文——基于arm920t的嵌入式實時時鐘控制系統(tǒng)設(shè)計
- 畢業(yè)論文--電子時鐘設(shè)計
- 畢業(yè)論文-----電子時鐘設(shè)計
- 電子時鐘設(shè)計畢業(yè)論文
- 電子時鐘設(shè)計畢業(yè)論文
- 數(shù)字顯示電子時鐘畢業(yè)設(shè)計論文(修訂)
- 數(shù)字顯示電子時鐘畢業(yè)設(shè)計論文(修訂)
- 電子與信息工程畢業(yè)論文基于來電顯示信號的電子時鐘設(shè)計
- 單片機實時時鐘設(shè)計2
- 基于51系列的單片機進行的實時日歷和時鐘顯示畢業(yè)論文
- 數(shù)字電子時鐘的設(shè)計 畢業(yè)論文
- 基于I2C總線的數(shù)字溫度補償實時時鐘芯片設(shè)計.pdf
評論
0/150
提交評論