![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/20/348e7538-95fe-4062-9064-26a37933dd71/348e7538-95fe-4062-9064-26a37933dd71pic.jpg)
![單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/20/348e7538-95fe-4062-9064-26a37933dd71/348e7538-95fe-4062-9064-26a37933dd711.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)</p><p> 專 業(yè): 自動(dòng)化 </p><p> 設(shè)計(jì)題目: 電子時(shí)鐘 </p><p> 班級(jí): </p><p> 學(xué)生姓名: </p
2、><p> 學(xué)號(hào) : 10 </p><p> 指導(dǎo)教師: </p><p> 分院院長: </p><p> 教研室主任: </p><p><b> 電氣工
3、程學(xué)院</b></p><p> 一、課程設(shè)計(jì)任務(wù)書 </p><p><b> 1.課程設(shè)計(jì)項(xiàng)目</b></p><p> 電子時(shí)鐘(LED顯示)</p><p><b> 2.設(shè)計(jì)內(nèi)容</b></p><p> 1)以MCS-
4、51系列單片機(jī)為核心器件組成電子時(shí)鐘控制系統(tǒng);</p><p> 2)利用提供單元模塊構(gòu)成硬件系統(tǒng)。</p><p> 系統(tǒng)程序編制與調(diào)試;</p><p> 電路系統(tǒng)的綜合調(diào)試;</p><p><b> 撰寫課程設(shè)計(jì)論文;</b></p><p> 完成課程設(shè)計(jì)論文答辯。</p
5、><p><b> 3.設(shè)計(jì)要求</b></p><p> 1)以STC10F04E單片機(jī)為控制核心,用單片機(jī)內(nèi)部定時(shí)器為時(shí)鐘源,設(shè)計(jì)電子時(shí)鐘,使用4位數(shù)碼管顯示時(shí)、分,后兩位數(shù)碼管(分)的閃爍顯示秒。</p><p> 2)顯示格式為:“XXXX</p><p> 3)用4個(gè)功能鍵操作來進(jìn)行對(duì)時(shí)。可自行定義各鍵的功
6、能,也 可按下述方式定義K1~K4鍵的功能如下。</p><p> K1—功能鍵,每按下一次對(duì)應(yīng)的LED閃爍。</p><p> K2—移位鍵,每按下一次向后移一位。</p><p> K3—加1鍵。 K4—減1鍵。</p><p><b> 4.參考資料</b></p><p&g
7、t; [1]李廣弟,朱月秀,王秀山編著.單片機(jī)基礎(chǔ). 北京:北京航空航天大學(xué)出版社,2001</p><p> [2] 何立民編著.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1999</p><p> [3] 蔡美琴等編著.MCS-51 單片機(jī)系統(tǒng)及應(yīng)用.北京:高等教育出版社.1992</p><p> 5.設(shè)計(jì)進(jìn)度
8、(2011年6月13日至2011年6月24日) </p><p><b> 6.設(shè)計(jì)地點(diǎn)</b></p><p> 新實(shí)驗(yàn)樓323微機(jī)實(shí)驗(yàn)室</p><p><b> 二、評(píng)語及成績</b></p><p><b> 成績:</b></p><p&g
9、t;<b> 指導(dǎo)教師:</b></p><p><b> 單片機(jī)原理及</b></p><p><b> 應(yīng)用課程設(shè)計(jì)</b></p><p> 班 級(jí): 自1042 </p><p> 姓 名: </p><p>
10、 學(xué) 號(hào): 10號(hào) </p><p> 指導(dǎo)教師: </p><p> 撰寫日期: 2013/6/13 </p><p><b> 目錄</b></p><p><b> 第一章 緒論1</b></p><p><b> 課題背
11、景1</b></p><p><b> 課題意義2</b></p><p> 第二章 課程設(shè)計(jì)內(nèi)容與要求分析3</p><p> 2.1課程設(shè)計(jì)內(nèi)容3</p><p> 2.1.1課程設(shè)計(jì)項(xiàng)目3</p><p> 2.1.2課程設(shè)計(jì)目的3</p>&
12、lt;p> 2.1.3設(shè)計(jì)內(nèi)容3</p><p> 2.2課程設(shè)計(jì)要求分析3</p><p> 2.2.1設(shè)計(jì)要求3</p><p> 2.3系統(tǒng)單元電路組成5</p><p> 第三章 控制系統(tǒng)程序設(shè)計(jì)6</p><p><b> 3.1個(gè)人創(chuàng)意6</b></
13、p><p><b> 3.2調(diào)試步驟7</b></p><p> 3.2.1電路調(diào)試7</p><p> 3.2.2硬件調(diào)試7</p><p> 3.2.3性能測(cè)試7</p><p> 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)總結(jié)11</p><p><b>
14、參考資料12</b></p><p><b> 附錄13</b></p><p><b> 第一章 緒論</b></p><p><b> 隨</b></p><p> 著時(shí)代的發(fā)展,生活節(jié)奏的加快,人們的時(shí)間觀念愈來愈強(qiáng);隨自動(dòng)化、智能化技術(shù)的發(fā)展,
15、機(jī)電產(chǎn)品的智能度愈來愈高,用到時(shí)間提示、定時(shí)控制的地方也會(huì)愈來愈多,因此,設(shè)計(jì)開發(fā)數(shù)字時(shí)鐘具有良好的應(yīng)用前景。</p><p> 由于單片機(jī)價(jià)格的低成本、高性能,在自動(dòng)控制產(chǎn)品中得到了廣泛的應(yīng)用。本設(shè)計(jì)利用Atmel公司的STC12C5A08S2單片機(jī)對(duì)電子時(shí)鐘進(jìn)行開發(fā),設(shè)計(jì)了實(shí)現(xiàn)所需功能的硬件電路,應(yīng)用匯編語言進(jìn)行軟件編程,并用實(shí)驗(yàn)板進(jìn)行演示、驗(yàn)證。</p><p> 在介紹本單片機(jī)
16、的發(fā)展情況基礎(chǔ)上,說明了本設(shè)計(jì)實(shí)現(xiàn)的功能,以及實(shí)驗(yàn)板硬件情況,并對(duì)各功能電路進(jìn)行了分析。主要工作放在軟件編程上,用實(shí)驗(yàn)板實(shí)現(xiàn)時(shí)間、日期、定時(shí)及它們的設(shè)定功能,詳細(xì)對(duì)軟件編程流程以及調(diào)試進(jìn)行了說明,并對(duì)計(jì)時(shí)誤差進(jìn)行了分析及校正,提出了定時(shí)音與顯示相沖突問題及解決方案。實(shí)驗(yàn)證明效果良好,可以投入使用。</p><p><b> 課題背景</b></p><p> 單片
17、機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。</p><p> 單片機(jī)有兩種基本結(jié)構(gòu):一種是在通用微型計(jì)算機(jī)中廣泛采用的,程
18、序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為“馮·諾依曼”(Von Neumann)結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,分別尋址的結(jié)構(gòu),稱為“哈佛”(Harvard)結(jié)構(gòu),目前的單片機(jī)采用此種結(jié)構(gòu)為多。</p><p> 本文討論的單片機(jī)多功能時(shí)鐘系統(tǒng)的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能多等特點(diǎn)。不僅能滿
19、足所需要求而且還有很多功能可供擴(kuò)展,有著廣泛的應(yīng)用領(lǐng)域。</p><p><b> 課題意義</b></p><p> 在日常生活和工作中,我們常常用到定時(shí)控制,如擴(kuò)印過程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作的,其定時(shí)準(zhǔn)確性和重復(fù)精度都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性價(jià)比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來
20、越廣泛。大則可以構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能;小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強(qiáng)大、體積小、質(zhì)量輕、靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)成各種各樣、功能各異的微電子產(chǎn)品。</p><p> 隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使用起來很不方便。這些具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字
21、化提供了可能。</p><p> 根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能時(shí)鐘系統(tǒng),它有基本的時(shí)間功能,還有定時(shí)功能,既可作為鬧鈴,也可擴(kuò)展為定時(shí)對(duì)家電等電氣產(chǎn)品的自動(dòng)控制,可以避免多種控制器的混淆,利用一個(gè)控制器對(duì)多路電器進(jìn)行控制;可增加溫度傳感器,進(jìn)行實(shí)時(shí)溫度顯示,進(jìn)一步擴(kuò)展為利用不同的溫度某些電氣產(chǎn)品進(jìn)行自動(dòng)控制;也可增加濕度傳感器,進(jìn)行實(shí)時(shí)濕度顯示,以便對(duì)濕度進(jìn)行控制,方便人們的生活。</p>
22、;<p> 第二章 課程設(shè)計(jì)內(nèi)容與要求分析</p><p> 2.1課程設(shè)計(jì)內(nèi)容 </p><p> 2.1.1課程設(shè)計(jì)項(xiàng)目</p><p> 電子時(shí)鐘(LED顯示)</p><p> 2.1.2課程設(shè)計(jì)目的 </p><p> 鞏固和加深對(duì)單片機(jī)原理知識(shí)的理解和運(yùn)用;
23、 </p><p> 進(jìn)一步提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)的能力; </p><p> 培養(yǎng)學(xué)生綜合分析問題、發(fā)現(xiàn)問題和解決問題的能力。</p><p><b> 2.1.3設(shè)計(jì)內(nèi)容</b></p><p> 以MCS-51系列單片機(jī)為核心器件組成電子時(shí)鐘控制系統(tǒng);</p><p> 利用提供
24、單元模塊構(gòu)成硬件系統(tǒng)。</p><p> 系統(tǒng)程序編制與調(diào)試;</p><p> 電路系統(tǒng)的綜合調(diào)試;</p><p><b> 撰寫課程設(shè)計(jì)論文;</b></p><p> 6) 完成課程設(shè)計(jì)論文答辯。</p><p> 2.2課程設(shè)計(jì)要求分析</p><p>
25、;<b> 2.2.1設(shè)計(jì)要求</b></p><p> 1)以STC10F04E單片機(jī)為控制核心,用單片機(jī)內(nèi)部定時(shí)器為時(shí)鐘源,設(shè)計(jì) 電子時(shí)鐘,使用4位數(shù)碼管顯示時(shí)、分,后兩位數(shù)碼管(分)的閃爍顯示秒。</p><p> 2)顯示格式為:“XXXX</p><p> 3)用4個(gè)功能鍵操作來進(jìn)行對(duì)時(shí)??勺孕卸x各鍵的功能,也可按下述方式定
26、義K1~K4鍵的功能如下。</p><p> K1—功能鍵,每按下一次對(duì)應(yīng)的LED閃爍。</p><p> K2—移位鍵,每按下一次向后移一位。</p><p> K3—加1鍵。 K4—減1鍵。</p><p> 2.3系統(tǒng)單元電路組成</p><p> 第三章 控制系統(tǒng)程序設(shè)計(jì)</p>
27、<p><b> 3.1個(gè)人創(chuàng)意</b></p><p> 本實(shí)驗(yàn)的基本要求由我們組的蔡楗同學(xué)設(shè)計(jì)完成。而我在原有的基礎(chǔ)上設(shè)計(jì)了一個(gè)整點(diǎn)報(bào)時(shí)功能。報(bào)時(shí)的時(shí)候由蜂鳴器的鳴叫和LED彩燈的開幕閉幕兩個(gè)現(xiàn)象來實(shí)現(xiàn)。</p><p> 表3.1 整點(diǎn)報(bào)時(shí)設(shè)計(jì)函數(shù)</p><p><b> 3.2調(diào)試步驟</b>
28、</p><p> 3.2.1電路調(diào)試 </p><p> 把相應(yīng)編譯好的目標(biāo)程序代碼加載到單片機(jī)芯片STC12C5A08S2,可接上5V電壓源即開始進(jìn)行硬件電路的調(diào)試工作。如果顯示結(jié)果不符合設(shè)計(jì)要求,即檢查電路各連接點(diǎn)是否正確連接,再次進(jìn)行硬件電路的調(diào)試工作,或是檢查代碼程序是否符合硬件電路的設(shè)計(jì),若有錯(cuò)即進(jìn)行相應(yīng)的修改,編譯后,再進(jìn)行硬件電路的調(diào)試工作。如此反復(fù)操作,直到調(diào)試出正
29、確結(jié)果。</p><p><b> 3.2.2硬件調(diào)試</b></p><p> ?。?) 在計(jì)算機(jī)上運(yùn)行程序調(diào)試軟件Keil,進(jìn)行程序調(diào)試。</p><p> ?。?)利用老師給的板子以及自己的開發(fā)板進(jìn)行調(diào)試。</p><p> ?。?)加載程序代碼到單片機(jī)芯片STC12C5A08S2中,進(jìn)行模擬仿真。若出現(xiàn)錯(cuò)誤,查
30、看錯(cuò)誤后進(jìn)行相應(yīng)修改再進(jìn)行調(diào)試與模擬仿真,直到調(diào)試出正確結(jié)果。 </p><p><b> 3.2.3性能測(cè)試</b></p><p> 系統(tǒng)上電后進(jìn)行功能的測(cè)試,通過測(cè)試觀察到,系統(tǒng)上電后數(shù)碼管上顯示時(shí)間:00.00。通過測(cè)試,本作品設(shè)計(jì)實(shí)現(xiàn)了數(shù)字電子鐘的基本功能,且系統(tǒng)工作穩(wěn)定。經(jīng)過全組組員一起調(diào)試及驗(yàn)證,計(jì)時(shí)誤差為1.0秒。</p><p
31、> 然后進(jìn)行本人的設(shè)計(jì)測(cè)試。本次設(shè)計(jì)成功實(shí)現(xiàn):當(dāng)時(shí)間到達(dá)整點(diǎn)時(shí),首先讓蜂鳴器想起來,然后讓LED彩燈以閉幕和開幕的形式亮起來,5秒之后,蜂鳴器停止鳴叫,彩燈也全部熄滅。</p><p><b> 注:程序詳情見附錄</b></p><p> 表3.2 電子時(shí)鐘課設(shè)函數(shù)列表</p><p> 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)總結(jié)</p
32、><p> 本次課程設(shè)計(jì)的題目是LED數(shù)字顯示電子時(shí)鐘。經(jīng)過本組同學(xué)的共同努力,終于調(diào)試成功,并經(jīng)過測(cè)試數(shù)據(jù)顯示, 系統(tǒng)的可靠性已經(jīng)基本能夠達(dá)到實(shí)際電子鐘的設(shè)計(jì)要求,同時(shí)本單片機(jī)數(shù)字電子鐘系統(tǒng)具有擴(kuò)展性。</p><p> 失敗是成功之母,實(shí)驗(yàn)中我們當(dāng)然也遇到了不少問題。</p><p> 首先是分工問題。剛開始我們小組由組長進(jìn)行編程,我負(fù)責(zé)整理資料和排版,小云進(jìn)
33、行收集資料。老師覺得這樣的分工很不平衡,因?yàn)槌私M長之外,其他兩名同學(xué)根本沒有參與設(shè)計(jì),這樣根本得不到鍛煉,而且背離了我們這次以設(shè)計(jì)為主的課程設(shè)計(jì)主題。所以我們后來采取了每個(gè)人在原有基礎(chǔ)之上,再額外設(shè)計(jì)一些功能的辦法,讓每位組員能積極投身到設(shè)計(jì)的行動(dòng)中,真正做到設(shè)計(jì)的要求。</p><p> 在此,先謝謝老師的用心良苦。</p><p> 再就是個(gè)人設(shè)計(jì)的部分的問題。我的設(shè)計(jì)是整點(diǎn)報(bào)時(shí)
34、功能。這個(gè)對(duì)我來說是力所能及的。我花了一天的時(shí)間去理解基礎(chǔ)程序,積極向組長請(qǐng)教,終于弄懂了這長長程序背后的奧妙。最后我又花了一個(gè)早上的時(shí)間去添加整點(diǎn)報(bào)時(shí)功能。在硬件調(diào)試的過程中都會(huì)出現(xiàn)不少的小問題,經(jīng)過反復(fù)修改程序,終于成功做出自己想要的結(jié)果。</p><p> 我們組通過此次單片機(jī)課程設(shè)計(jì)不僅僅將我們一學(xué)期在單片機(jī)課程上的所學(xué)很好的應(yīng)用到了實(shí)際設(shè)計(jì)中,更是將理論知識(shí)應(yīng)用到了實(shí)踐中,這才是真正的學(xué)習(xí),不僅僅是讀
35、萬卷書,更要行萬里路,講知識(shí)與實(shí)踐有機(jī)的結(jié)合。也十分感謝老師為我們提供了這次單片機(jī)課程設(shè)計(jì)的機(jī)會(huì),我們也通過此次課程設(shè)計(jì),更清晰更實(shí)際的接觸到了單片機(jī)。</p><p><b> 總結(jié)人:</b></p><p> 2013/06/13</p><p><b> 參考資料</b></p><p&g
36、t; [1]李廣弟,朱月秀,王秀山編著.單片機(jī)基礎(chǔ). 北京:北京航空航天大學(xué)出版社,2001</p><p> [2] 何立民編著.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1999</p><p> [3] 蔡美琴等編著.MCS-51 單片機(jī)系統(tǒng)及應(yīng)用.北京:高等教育出版社.1992</p><p><b>
37、; 附錄</b></p><p> #include<reg51.h> //#include"stc10f08xe.h"</p><p> #include<intrins.h></p><p> #define uchar unsigned char</p><p>
38、#define uint unsigned int</p><p> sbit key_function=P2^3;</p><p> sbit key_move=P2^2;</p><p> sbit key_add=P2^1;</p><p> sbit key_sub=P2^0;</p><p> sb
39、it LED=P1^0;</p><p> sbit speaker=P3^0;</p><p> bit time_int_flag=0; //整點(diǎn)報(bào)時(shí)標(biāo)志</p><p> bit setfinish=0; //設(shè)置完成標(biāo)志</p><p> bit secflag=0; //秒閃爍標(biāo)志</p>
40、;<p> uchar keyfun_flag,move_flag,add_flag,sub_flag,set1_timer,set2_timer,set3_timer,set4_timer;</p><p> uchar code LED_Val[] = {0xC0,0xF9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};//0-9</p>&
41、lt;p> uchar num[6];</p><p> uchar data led_point[6]={0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p> uint time,set_timer;</p><p> uchar sec,min,hour;</p><p> void Led(
42、);</p><p> void send_data(uchar send_dat);</p><p> void Disp(uint disp_value);</p><p> void Bcd(uint bcd_value);</p><p> void Delay_ms(uint delay);</p><p
43、> ///整點(diǎn)報(bào)時(shí)函數(shù)//</p><p> void Led()</p><p><b> {</b></p><p> if(time_int_flag==1)</p><p> { P3=0XFE;</p><p> Delay_ms(100);</p>
44、<p><b> P1=0X7E;</b></p><p> Delay_ms(1000);</p><p><b> P1=0XBD;</b></p><p> Delay_ms(1000);</p><p><b> P1=0XDB;</b></p
45、><p> Delay_ms(1000);</p><p><b> P1=0XE7;</b></p><p> Delay_ms(1000);</p><p><b> }</b></p><p><b> else</b></p>
46、<p> {P3=0XFF;</p><p> P1=0xff;</p><p><b> }</b></p><p><b> }</b></p><p><b> //顯示函數(shù)//</b></p><p> void D
47、isp(uint disp_value)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> Bcd(disp_value);</p><p> for(i=0;i<4;i++)</p><p><b
48、> {</b></p><p> P2=led_point[i];</p><p> if((secflag==1)&&((i==2)|(i==3))) //第幾個(gè)管閃爍</p><p><b> {</b></p><p> P0=0xff; </p>
49、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> P0=LED_Val[num[i]];</p><p><b> } </b></p>
50、<p> Delay_ms(5);</p><p><b> P2=0XFF;</b></p><p><b> }</b></p><p><b> }</b></p><p> void Disp_ss(uint disp_value)//設(shè)置顯示函
51、數(shù)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> Bcd(disp_value);</p><p> for(i=0;i<4;i++)</p><p><b> { </b>&
52、lt;/p><p> if((i==3)&&(move_flag==1))</p><p><b> {</b></p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(1000);&l
53、t;/p><p><b> P2=0xff;</b></p><p> Delay_ms(1000);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&l
54、t;/p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(5);</p><p><b> }</b></p><p> if((i==2)&&(move_flag==2))</p
55、><p><b> {</b></p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(1000);</p><p><b> P0=0xff;</b></p>&l
56、t;p> Delay_ms(1000);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> P2=led_point[i];</p><p> P0
57、=LED_Val[num[i]];</p><p> Delay_ms(5);</p><p><b> }</b></p><p> if((i==1)&&(move_flag==3))</p><p><b> {</b></p><p> P2
58、=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(1000);</p><p><b> P0=0xff;</b></p><p> Delay_ms(1000);</p><p><b> }</
59、b></p><p><b> else</b></p><p><b> {</b></p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(5);</p>
60、<p><b> }</b></p><p> if((i==0)&&(move_flag==4))</p><p><b> {</b></p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p
61、><p> Delay_ms(1000);</p><p><b> P0=0xff;</b></p><p> Delay_ms(1000);</p><p><b> }</b></p><p><b> else</b></p>
62、<p><b> {</b></p><p> P2=led_point[i];</p><p> P0=LED_Val[num[i]];</p><p> Delay_ms(5);</p><p><b> }</b></p><p><b>
63、; }</b></p><p><b> }</b></p><p> void Delay_ms(uint delay)////延時(shí)函數(shù)</p><p><b> {</b></p><p><b> uchar j;</b></p>&l
64、t;p> while(delay--)</p><p><b> {</b></p><p> for(j=125;j>0;j--)</p><p><b> {;}</b></p><p><b> }</b></p><p>&
65、lt;b> }</b></p><p> void Bcd(uint bcd_value)///數(shù)據(jù)分離函數(shù)</p><p><b> { </b></p><p> num[0]=bcd_value/1000; //高位</p><p> num[1]=(bcd_value%100
66、0)/100;</p><p> num[2]=((bcd_value%1000)%100)/10;</p><p> num[3]=((bcd_value%1000)%100)%10; //低位</p><p><b> }</b></p><p> void key_scan()//鍵盤掃描函數(shù)</
67、p><p><b> {</b></p><p> if(key_function==0) //功能鍵按下</p><p><b> {</b></p><p> Delay_ms(10);</p><p> if(key_function==0)</p>
68、;<p><b> {</b></p><p> while(key_function==0);</p><p> keyfun_flag++;</p><p><b> }</b></p><p><b> } </b></p><
69、p> //////////////</p><p> if(key_move==0) //移位鍵按下</p><p><b> {</b></p><p> Delay_ms(10);</p><p> if(key_move==0)</p><p><b>
70、{ </b></p><p> while(key_move==0);</p><p> move_flag++;</p><p> if(move_flag==5)</p><p><b> {</b></p><p> move_flag=1;</p>
71、;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //////////////</p><p> if(key_add==0) //加一鍵</p><p
72、><b> {</b></p><p> Delay_ms(10);</p><p> if(key_add==0)</p><p><b> {</b></p><p> while(key_add==0);</p><p> add_flag=1;<
73、;/p><p><b> }</b></p><p><b> }</b></p><p> if(key_sub==0) //減一鍵</p><p><b> {</b></p><p> Delay_ms(10);</p>
74、<p> if(key_sub==0)</p><p><b> {</b></p><p> while(key_sub==0);</p><p> sub_flag=1;</p><p><b> }</b></p><p><b> }&
75、lt;/b></p><p><b> }</b></p><p> void key_deal()///按鍵處理</p><p><b> {</b></p><p> if(keyfun_flag==1) //功能按下一次</p><p><b&g
76、t; {</b></p><p> TR0=0; //關(guān)閉定時(shí)器</p><p> if((move_flag==1)&&(add_flag==1)) //設(shè)置第一位</p><p><b> {</b></p><p> add_flag=0; </p>&l
77、t;p> set1_timer++;</p><p> if(set1_timer==10)</p><p><b> {</b></p><p> set1_timer=0;</p><p><b> }</b></p><p><b> }&
78、lt;/b></p><p> if((move_flag==1)&&(sub_flag==1))</p><p><b> {</b></p><p> sub_flag=0; </p><p> set1_timer--;</p><p> if(set1_ti
79、mer==255) </p><p><b> {</b></p><p> set1_timer=9;</p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==2)&a
80、mp;&(add_flag==1)) //設(shè)置第二位</p><p><b> {</b></p><p> add_flag=0; </p><p> set2_timer++;</p><p> if(set2_timer==6)</p><p><b> {&l
81、t;/b></p><p> set2_timer=0;</p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==2)&&(sub_flag==1))</p><p><
82、b> { </b></p><p> sub_flag=0; </p><p> set2_timer--;</p><p> if(set2_timer==255)</p><p><b> {</b></p><p> set2_timer=5; <
83、;/p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==3)&&(add_flag==1)) //設(shè)置第三位</p><p><b> {</b></p><p>
84、 add_flag=0; </p><p> set3_timer++;</p><p> if(set4_timer<2)</p><p><b> {</b></p><p> if(set3_timer==10)</p><p><b> {</b>&
85、lt;/p><p> set3_timer=0;</p><p><b> }</b></p><p><b> }</b></p><p> if((set4_timer==2)&&(set3_timer==4))//時(shí)鐘十位為2</p><p>
86、<b> {</b></p><p> set3_timer=0;</p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==3)&&(sub_flag==1))</p>
87、<p><b> { </b></p><p> sub_flag=0; </p><p> set3_timer--;</p><p> if(set3_timer==255)</p><p><b> {</b></p><p> if(set4_
88、timer<2)</p><p><b> {</b></p><p> set3_timer=9;</p><p><b> }</b></p><p> if(set4_timer==2)</p><p><b> {</b><
89、/p><p> set3_timer=3;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==4)&&(add_fla
90、g==1)) //設(shè)置第四位</p><p> {add_flag=0; </p><p> set4_timer++;</p><p> if(set3_timer>3)</p><p><b> {</b></p><p> if(set4_timer==2)</
91、p><p><b> {</b></p><p> set4_timer=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p>
92、<p> if(set4_timer==3)</p><p> {set4_timer=0;</p><p><b> }</b></p><p><b> }</b></p><p> if((move_flag==4)&&(sub_flag==1))
93、</p><p><b> { </b></p><p> sub_flag=0; </p><p> set4_timer--;</p><p> if(set4_timer==255)</p><p><b> {</b></p><p>
94、; if(set3_timer>3)</p><p><b> {</b></p><p> set4_timer=1;</p><p><b> }</b></p><p><b> else </b></p><p><b&g
95、t; {</b></p><p> set4_timer=2;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
96、></p><p> if(keyfun_flag==2) //功能鍵按下第二次</p><p><b> {</b></p><p><b> TR0=1;</b></p><p> setfinish=1; //設(shè)置完成</p><p> move
97、_flag=0;</p><p><b> } </b></p><p> set_timer=set4_timer*1000+set3_timer*100+set2_timer*10+set1_timer;//必須放在外面 </p><p><b> }</b></p><p> v
98、oid system_init()///系統(tǒng)初始化</p><p><b> {</b></p><p> TMOD=0X01;</p><p> TH0=(65536-50000)/256; //50ms</p><p> TL0=(65536-50000)%256; //50ms</p>
99、<p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p><b> EA=1;</b></p><p><b> }</b></p><p> void timer0() interrup
100、t 1//計(jì)時(shí)函數(shù)</p><p><b> {</b></p><p> uchar count;</p><p> TH0=(65536-50000)/256;//50ms</p><p> TL0=(65536-50000)%256; //50ms</p><p><b>
101、; count++;</b></p><p> if(setfinish==1)</p><p><b> {</b></p><p> min=min+set2_timer*10+set1_timer;</p><p> if(min>=60)</p><p><
102、;b> {</b></p><p> min=min-60;</p><p><b> hour++;</b></p><p><b> }</b></p><p> hour=hour+set4_timer*10+set3_timer;</p><p
103、> if(hour>=24)</p><p><b> {</b></p><p> hour=hour-24;</p><p><b> }</b></p><p> setfinish=0; //讀取完成,清除數(shù)據(jù)</p><p><b&g
104、t; }</b></p><p> if(count<=5)</p><p><b> {</b></p><p> secflag=1;//秒鐘閃爍標(biāo)志位</p><p><b> }</b></p><p><b> else
105、</b></p><p><b> {</b></p><p> secflag=0;</p><p> if(count==20)</p><p><b> {</b></p><p><b> sec++;</b></p&
106、gt;<p><b> count=0;</b></p><p> if(sec==5)</p><p><b> {</b></p><p><b> min++;</b></p><p><b> sec=0;</b></
107、p><p> if(min==3)</p><p><b> {</b></p><p><b> hour++;</b></p><p><b> min=0;</b></p><p> if(hour==24) //24小時(shí)制</p&
108、gt;<p><b> {</b></p><p><b> hour=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p
109、><p><b> }</b></p><p><b> }</b></p><p> if((sec>=2)&&(min>=2))</p><p><b> {</b></p><p> time_int_flag=1
110、;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> time_int_flag=0;</p><p><b> }</b></
111、p><p> time=hour*100+min;</p><p><b> }</b></p><p> void main()//主函數(shù)</p><p><b> {</b></p><p> SCON=0x00;</p><p><b
112、> P2=0XFF;</b></p><p> system_init();</p><p><b> while(1)</b></p><p><b> {</b></p><p> key_scan();</p><p> key_deal(
113、);</p><p> Disp(time);</p><p><b> Led();</b></p><p> if(keyfun_flag==1)</p><p> {break;</p><p><b> }</b></p><p&g
114、t;<b> }</b></p><p><b> while(1)</b></p><p> { key_scan();</p><p> key_deal();</p><p> Disp_ss(set_timer);</p><p> if(keyf
115、un_flag==2)</p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
116、while(1)</b></p><p><b> {</b></p><p> Disp(time);</p><p><b> Led();</b></p><p><b> }</b></p><p><b> }&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)----單片機(jī)電子時(shí)鐘
- 51單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告 (2)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--- 單片機(jī)電子時(shí)鐘設(shè)計(jì)
- 51單片機(jī)電子時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)電子時(shí)鐘的設(shè)計(jì)
- 單片機(jī)電子時(shí)鐘的設(shè)計(jì) 單片機(jī)課程設(shè)計(jì)
- 51單片機(jī)電子時(shí)鐘課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 51單片機(jī)電子時(shí)鐘課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論