版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 設計題目: 單片機電子時鐘 </p><p> 系 別: 應用電子與通信技術 </p><p> 班 級: </p><p> 學生姓名: </p><p&g
2、t; 指導教師: </p><p> 成 績: </p><p><b> 2012年9月7日</b></p><p><b> 摘 要</b></p><p> 單片機
3、即單片微型計算機。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM ,定時,計數和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于工業(yè)自動化上和智能產品。時鐘,自從它被發(fā)明的那天起,就成為了人類的好朋友,但隨著時間的推移,科學技術的不斷發(fā)展,時鐘的應用越來越廣范,人們對時間計量的精度要求也越來越高。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友再次煥發(fā)青春呢?這就要求我們不斷設計
4、出新型的時鐘,來不斷滿足人們的日常生活需要。然而市場上的時鐘便宜的比較笨重,簡單實用的又比較昂貴。那么,有沒有一款既簡單實用價格又便宜的時鐘呢?</p><p> 我們課程設計小組設想:可不可以利用單片機功能集成化高,價格又便宜的特點設計一款結構既簡單,價格又便宜的單片機電子時鐘呢? </p><p> 基于這種情況,我們課程設計小組成員多方查閱資料,反復論證設計出了這款既簡單實用,又
5、價格便宜的——單片機電子時鐘。</p><p> 關鍵詞:單片機 ; 時鐘 ; 計時</p><p><b> 目 錄</b></p><p> 第一章 緒 論………………………………………………1</p><p> 1.1課題背景……………………………………………………1</p><p
6、> 1.2課題來源……………………………………………………1</p><p> 第二章 MCS-51單片機的結構………………………………3</p><p> 2.1 控制器………………………………………………………3</p><p> 2.2 存儲器的結構………………………………………………3</p><p> 2.3 并
7、行I/O口…………………………………………………4</p><p> 2.4 時鐘電路與時序…………………………………………4</p><p> 2.5單片機的應用領域…………………………………………5</p><p> 第三章 系統(tǒng)設計要求………………………………………6</p><p> 3.1基本功能………………………………
8、……………………6</p><p> 3.2 擴展功能……………………………………………………6</p><p> 第四章 硬件總體設計方案………………………………….7</p><p> 4.1系統(tǒng)功能實現(xiàn)總體設計思想………………………………7</p><p> 44.2各部分功能實現(xiàn)…………………………………………8</p
9、><p> 4.3系統(tǒng)工作原理………………………………………………8</p><p> 4.4時鐘各功能分析及圖解……………………………………9</p><p> 4.5電路功能使用說明…………………………………………12</p><p> 第五章 軟件總體設計方案………………………………13</p><p>
10、 5.1 主程序流程圖……………………………………………13</p><p> 5.2總中斷程序流程…………………………………………14</p><p> 5.3控制電路的C語言源程序………………………………18</p><p> 第六章 課程設計結果分析………………………………22</p><p> 第七章 結論與展望……………
11、…………………………23</p><p> 7.1 結論………………………………………………………23</p><p> 7.2 單片機的發(fā)展趨勢………………………………………23</p><p> 致謝……………………………………………………………25</p><p> 參考文獻 ……………………………………………………26<
12、/p><p><b> 緒 論</b></p><p><b> 1.1課題背景</b></p><p> 單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點,目前已經滲入到人們工作和生活的方方面面,幾乎“無處不
13、在,無所不為”。單片機的應用領域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費產品、辦公自動化、汽車電子、PC機外圍以及網絡通訊等廣大領域。</p><p> 單片機有兩種基本結構形式:一種是在通用微型計算機中廣泛采用的,將程序存儲器和數據存儲器合用一個存儲器空間的結構,稱為普林斯頓結構。另一種是將程序存儲器和數據存儲器截然分開,分別尋址的結構,一般需要較大的程序存儲器,目前的單片機以采用程序存儲器
14、和數據存儲器截然分開的結構為多。</p><p> 本文討論的單片機多功能定時器的核心是目前應用極為廣泛的51系列單片機,配置了外圍設備,構成了一個可編程的計時定時系統(tǒng),具有體積小,可靠性高,功能強等特點。不僅能滿足所需要求而且還有很多功能可供開發(fā),有著廣泛的應用領域。</p><p> 20世紀80年代中期以后,Intel公司以專利轉讓的形式把8051內核技術轉讓給許多半導體芯片生產
15、廠家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。這些廠家生產的芯片是MCS-51系列的兼容產品,準確地說是與MCS-51指令系統(tǒng)兼容的單片機。這些兼容機與8051的系統(tǒng)結構(主要是指令系統(tǒng))相同,采用CMOS工藝,因而,常用80C51系列來稱呼所有具有8051指令系統(tǒng)的單片機,它們對8051單片機一般都作了一些擴充,更有特點。其功能和市場競爭力更強,不該把它們直接稱呼為MCS-51系列單片機,因為MCS
16、只是Intel公司專用的單片機系列型號。MCS-51系列及80C51單片機有多種品種。它們的引腳及指令系統(tǒng)相互兼容,主要在內部結構上有些區(qū)別。目前使用的MCS-51系列單片機及其兼容產品通常分成以下幾類:基本型、增強型、低功耗型、專用型、超8位型、片內閃爍存儲器型。</p><p><b> 1.2課題來源</b></p><p> 在日常生活和工作中,我們常常用
17、到定時控制,如擴印過程中的曝光定時等。早期常用的一些時間控制單元都使用模擬電路設計制作的,其定時準確性和重復精度都不是很理想,現(xiàn)在基本上都是基于數字技術的新一代產品,隨著單片機性能價格比的不斷提高,新一代產品的應用也越來越廣泛,大可構成復雜的工業(yè)過程控制系統(tǒng),完成復雜的控制功能。小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大,體積小,質量輕,靈活好用,配以適當的接口芯片,可以構造各種各樣、功能各異的微電子產品。</p&
18、gt;<p> 隨著電子技術的飛速發(fā)展,家用電器和辦公電子設備逐漸增多,不同的設備都有自己的控制器,使用起來很不方便。根據這種實際情況,設計了一個單片機多功能定時系統(tǒng),它可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制,同時又可以進行時鐘校準和定點打鈴。它可以執(zhí)行不同的時間表(考試時間和日常作息時間)的打鈴,可以任意設置時間。這種具有人們所需要的智能化特性的產品減輕了人的勞動,擴大了數字化的范圍,為家庭數字化提
19、供了可能。</p><p> 第二章 MCS-51單片機的結構</p><p> MCS-51單片機是把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數據存儲器(RAM)、程序存儲器(ROM/EPROM)、并行I/O口、串行口、定時器/計數器、中斷系統(tǒng)及特殊功能寄存器(SFR)。它們都是通過片內單一總
20、線連接而成,其基本結構依舊是CPU加上外圍芯片的傳統(tǒng)結構模式。但對各種功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。</p><p><b> 2.1 控制器</b></p><p> 控制器是單片機的指揮控制部件,控制器的主要任務是識別指令,并根據指令的性質控制單片機各功能部件,從而保證單片機各部分能自動而協(xié)調地工作。</p><
21、;p> 單片機執(zhí)行指令是在控制器的控制下進行的。首先從程序存儲器中讀出指令,送指令寄存器保存,然后送至指令譯碼器進行譯碼,譯碼結果送定時控制邏輯電路,由定時控制邏輯產生各種定時信號和控制信號,再送到單片機的各個部件去進行相應的操作。這就是執(zhí)行一條指令的全過程,執(zhí)行程序就是不斷重復這一過程??刂破髦饕ǔ绦蛴嫈灯?、程序地址寄存器、指令寄存器IR、指令譯碼器、條件轉移邏輯電路及時序控制邏輯電路。</p><p&
22、gt; 2.2 存儲器的結構</p><p> MCS-51單片機存儲器采用的是哈佛結構,即程序存儲器空間和數據存儲器空間截然分開,程序存儲器和數據存儲器各有自己的尋址方式,尋址空間和控制系統(tǒng)。</p><p> 這種結構對于單片機面向控制的實際應用極為方便,有利.在8051/8751彈片擊中,不僅在片內集成了一定容量的程序存儲器和數據存儲器及眾多的特殊功能寄存器,而且還具有極強的外
23、存儲器的擴展能力,尋址能力分別可達64KB,尋址和操作簡單方便.MCS-51的存儲器空間可劃分為如下幾類:</p><p><b> 程序存儲器</b></p><p> 單片機系統(tǒng)之所以能夠按照一定的次序進行工作,主要是程序存儲器中存放了經調試正確的應用程序和表格之類的固定常數。程序實際上是一串二進制碼,程序存儲器可以分為片內和片外兩部分。8031由于無內部存儲
24、器,所以只能外擴程序存儲器來存放程序。</p><p> MCS-51單片機復位后,程序存儲器PC的內容為0000H,故系統(tǒng)必須從0000H單元開始取指令,執(zhí)行程序.程序存儲器中的0000H地址是系統(tǒng)程序的啟動地址.一般在該單元存放一條絕對跳轉指令,跳向用戶設計的主程序的起始地址。</p><p><b> 內部數據存儲器</b></p><p
25、> MCS-51單片機內部有128個字節(jié)的隨機存取存儲器RAM,作為用戶的數據寄存器,它能滿足大多數控制型應用場合的需要,用作處理問題的數據緩沖器。</p><p> MCS-51單片機的片內存儲器的字節(jié)地址為00H-7FH.MCS-51單片機對其內部RAM的存儲器有很豐富的操作指令,從而使得用戶在設計程序時非常方便。地址為00H-1FH的32個單元是4組通用工作寄存器區(qū),每個區(qū)含8個8位寄存器,編號為
26、R7-R0。用戶可以通過指令改變PSW中的RS1,RS0這二位來切換當前的工作寄存器區(qū),這種功能給軟件設計帶來極大的方便,特別是在中斷嵌套時,為實現(xiàn)工作寄存器現(xiàn)場內容保護提供了極大的方便。</p><p> 特殊功能寄存器(SFR-Special Function Register)</p><p> 特殊功能寄存器反映了MCS-51單片機的狀態(tài),實際上是MCS-51單片機各功能部件的
27、狀態(tài)及控制寄存器.SFR綜合的,實際的反應了整個單片機基本系統(tǒng)內部的工作狀態(tài)及工作方式.SFR實質上是一些具有特殊功能的片內RAM單元,字節(jié)地址范圍為80H-FFH.特殊功能寄存器的總數為21個,離散的分布在該區(qū)域中,其中]有些SFR還可以進行位尋址.128個字節(jié)的SFR塊中僅有21個字節(jié)是由定義的.對于尚未定義的字節(jié)地址單元,用戶不能作寄存器使用,若訪問沒有定義的單元,則將得到一個不確定的隨機數.</p><p&g
28、t; 2.3 并行I/O口</p><p> MCS-51單片機共有4個雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅動器和輸入緩沖器所組成。實際上P0-P3已被歸入特殊功能寄存器之列。這四個口除了按字節(jié)尋址以外,還可以按位尋址。由于它們在結構上有一些差異,故各口的性質和功能有一些差異。</p><p> P0口是雙向8位三
29、態(tài)I/O口,此口為地址總線(低8位)及數據總線分時復用口,可驅動8個LS型TTL負載。P1口是8位準雙向I/O口,可驅動4個LS 型負載。P2口是8位準雙向I/O口,與地址總線(高8位)復用,可驅動4個LS型TTL負載。P3口是8位準雙向I/O口,是雙功能復用口,可驅動4個LS型TTL負載。P1口、P2口、P3口各I/O口線片內均有固定的上拉電阻,當這3個準雙向I/O口做輸入口使用時,要向該口先寫“1”,另外準雙向I/O口無高阻的“浮空
30、”狀態(tài),故稱為雙向三態(tài)I/O 口。</p><p> 2.4 時鐘電路與時序</p><p> 時鐘電路用于產生MCS-51單片機工作時所必需的時鐘信號。MCS-51單片機本身就是一個復雜的同步時序電路,為保證同步工作方式的實現(xiàn),MCS-51單片機應在唯一的時鐘信號控制下,嚴格地按時序執(zhí)行進行工作,而時序所研究的是指令執(zhí)行中各個信號的關系。</p><p>
31、 在執(zhí)行指令時,CPU首先要到程序存儲器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時序電路產生一系列控制信號去完成指令所規(guī)定的操作。CPU發(fā)出的時序信號有兩類,一類用于片內對各個功能部件的控制,這列信號很多。另一類用于片外存儲器或I/O端口的控制,這部分時序對于分析、設計硬件接口電路至關重要。這也是單片機應用系統(tǒng)設計者普遍關心的問題。</p><p> 2.5 單片機的應用領域</p><p
32、> 單片機應用領域可以歸納為以下幾個方面。</p><p><b> 1.智能儀表</b></p><p> 用單片機系統(tǒng)取代老式的測量、控制儀表,實現(xiàn)從模擬儀表向數字化、智能化儀表的轉化,如各種溫度儀表、壓力儀表、流量儀表、電能計量儀表等。</p><p><b> 2. 測控系統(tǒng)</b></p>
33、;<p> 用單片機取代原有的復雜的模擬數字電路,完成各種工業(yè)控制、數據采集系統(tǒng)等工作。</p><p><b> 3.電能變換</b></p><p> 應用單片機設計變頻調速控制電路。</p><p><b> 4.通信</b></p><p> 用單片機開發(fā)通信模塊、通
34、信器材等。</p><p><b> 5.機電產品</b></p><p> 應用單片機檢測、控制傳統(tǒng)的機械產品,使傳統(tǒng)的機械產品結構簡化,控制智能化,提高了機電產品的可靠性,增強了產品的功能。</p><p><b> 6.智能接口</b></p><p> 在數據傳輸中,用單片機實現(xiàn)外部
35、設備與微機通信。</p><p> 第三章 系統(tǒng)設計要求</p><p><b> 3.1基本功能</b></p><p> ?。?)能夠顯示時分秒</p><p> ?。?)能夠調整時分秒</p><p><b> 3.2 擴展功能</b></p>&l
36、t;p> (1)能夠任意設置定時時間</p><p> ?。?)定時時間到鬧鈴能夠報警</p><p> (3)實現(xiàn)了秒表功能</p><p> 第四章 硬件總體設計方案</p><p> 用一揚聲器來本次設計時鐘電路,使用了AT89C51單片機芯片控制電路,單片機控制電路簡單且省去了很多復雜的線路,使得電路簡明易懂,使用鍵盤鍵
37、上的按鍵來調整時鐘的時、分、秒,進行定時提醒,同時使用C語言程序來控制整個時鐘顯示,使得編程變得更容易,這樣通過四個模塊:鍵盤、芯片、揚聲器、顯示屏即可滿足設計要求。</p><p> 4.1系統(tǒng)功能實現(xiàn)總體設計思路</p><p> 如圖4-10 所示為AT89S51芯片的引腳圖</p><p> 此設計原理框圖如圖4-11所示,此電路包括以下四個部分:單片
38、機,鍵盤,鬧鈴電路及顯示電路。</p><p> 圖4-11 設計原理框圖</p><p> 經多方論證硬件我們小組采用AT89C51單片機和7SED八位共陽極數碼管等來實現(xiàn)單片機電子時鐘的功能。</p><p> 詳細元器件列表如表4.12所示:</p><p> 表4.12 詳細元器件列表</p><p>
39、; 4.2各部分功能實現(xiàn)</p><p> 單片機發(fā)送的信號通過程序控制最終在數碼管上顯示出來。</p><p> 單片機通過輸出各種電脈沖信號來驅動控制各部分正常工作。</p><p> 為使時鐘走時與標準時間一致,校時電路是必不可少的,鍵盤用來校正數碼管上顯示的時間。</p><p> 單片機通過控制鬧鈴電路來完成 定時鬧鐘的功
40、能</p><p><b> 4.3系統(tǒng)工作原理</b></p><p> 設計的電路主要由四模塊構成:單片機控制電路,顯示電路、鬧鈴電路以及校正電路。</p><p> 詳細電路功能圖如圖4-30:</p><p> 詳細電路功能圖如圖4-30</p><p> 本設計采用C語言程序設
41、計,使單片機控制數碼管顯示時、分、秒,當秒計數計滿60時就向分進位,分計數器計滿60后向時計數器進位,小時計數器按“23翻0”規(guī)律計數。時、分、秒的計數結果經過數據處理可直接送顯示器顯示。當計時發(fā)生誤差的時候可以用校時電路進行校正。設計采用的是時、分、秒顯示,單片機對數據進行處理同時在數碼管上顯示。</p><p> 4.4時鐘各功能分析及圖解</p><p><b> ?。?
42、) 時鐘運行圖</b></p><p> 仿真開始運行時,或按下key4鍵時,時鐘從12:00:00開始運行,其中key2鍵對分進行調整,key3對小時進行調整,key6可以讓時鐘暫停。</p><p> 時鐘運行圖如圖 4-41 所示:</p><p><b> ?。?)秒表計時圖</b></p><p&g
43、t; 當按下key1鍵進入秒表計時狀態(tài),key6是秒表暫停鍵,可按key4鍵跳出秒表計時狀態(tài)。</p><p> 秒表計時圖如圖 4-42所示:</p><p> 圖4-41 時鐘運行圖</p><p> 圖4-42 秒表計時圖</p><p> ?。?)鬧鈴設置圖及運行圖</p><p> 當按下key5,
44、開始定時,分別按key2調分,key3調時設置鬧鈴時間,然后按下key4鍵恢復時鐘運行狀態(tài)(圖4-43)當鬧鈴設置時間到時,蜂鳴器將發(fā)出10秒中蜂鳴聲(圖4-44)。</p><p> 圖4-43 鬧鈴時間設置圖</p><p> 該數字鐘是用一片AT89C51單片機通過編程去驅動8個數碼管實現(xiàn)的。通過6個開關控制,從上到下6個開關KEY1-KEY6的功能分別為:KEY1,切換至秒表;
45、KEY2,調節(jié)時間,每調一次時加1;KEY3, 調節(jié)時間,每調一次分加1;KEY4,從其它狀態(tài)切換至時鐘狀態(tài);KEY5,切換至鬧鐘設置狀態(tài),也可以對秒表清零;KEY6,秒表暫停.控制鍵分別與P1.0~P1.5口連接.其中:</p><p> A通過P2口和P3口去控制數碼管的顯示如圖所示P2口接數碼管的a——g端,是控制輸出編碼,P3口接數碼管的1——8端,是控制動態(tài)掃描輸出.</p><p
46、> B從P0.0輸出一個信號使二極管發(fā)光,二極管在設置的鬧鐘時間到了時候發(fā)光,若有樂曲可以去驅動揚聲器實現(xiàn)。</p><p> 圖4-44 鬧鈴運行圖</p><p> 4.5電路功能使用說明</p><p> (1) 各個控制鍵的功能:可對時間進行校準調節(jié)(只能加1);按下設置鍵數字時鐘進入鬧鐘設置狀態(tài),設置鬧鐘的時間;時加1、分加1鍵是在校準時間時
47、或設置鬧鐘時間對小時數或分鐘數調節(jié)而設置的;按下秒切換鍵就可以進入秒表模式,同時秒表也開始計時,按下秒表暫停、復位鍵就暫停、歸零,如果要重新對秒計時則可以按秒表開始、復位;清零鍵可以對鬧鐘清零。</p><p> AT89C51單片機,通過編寫程序對數碼顯示進行控制。</p><p> 八個7段數碼管顯示時鐘和秒表信號</p><p> 第五章 軟件總體設計
48、方案</p><p> 5.1 主程序流程圖</p><p> 軟件程序從開始執(zhí)行,先通過初始化各個寄存器,經過掃描按鍵來決定是否設定參數來執(zhí)行相應功能的程序,進而在數碼管上顯示。如圖5-10: </p><p> 圖3-1 主程序流程圖</p><p> 5.2總中斷程序流程</p><p> 圖5-20
49、 中斷流程圖</p><p> 時間的顯示通過此中斷程序來控制,并且通過與設定的時間進行比較來判斷是否讓鬧鈴工作。程序中包含時間的設定,如設定tcount來使秒等工作,進而來控制分和時。如上圖圖5-20。</p><p><b> 秒表中斷程序流程</b></p><p> 秒表功能通過另一個程序來實現(xiàn)。通過保護主程序的數據來進行秒表功能
50、。程序中需要設置秒表的具體顯示方法。如圖5-3:</p><p><b> N</b></p><p> N 圖5-3秒表中斷程序流程圖</p><p><b> B.按鍵程序流程</b></p><p> 圖5-4為時鐘和鬧鐘的調節(jié),程序中通過掃描來判斷按鍵
51、是否按下進行時間和鬧鐘的調節(jié)。</p><p> 圖5-4按鍵程序流程圖</p><p> 圖5-5為進入中斷和清零圖,程序中通過掃描來判斷按鍵是否按下進行執(zhí)行相應的中斷來事實現(xiàn)相應的功能。</p><p> 圖5-5 中斷和清零程序流程圖</p><p> 5.3控制電路的C語言源程序</p><p>
52、根據流程圖,經過認真分析得出控制電路的源程序如下:</p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define delay_time 3/*宏定義*/&
53、lt;/p><p> uchar k,dat[]={0,0,0,0,0,0,0,0};</p><p> uint tcount,t,u;</p><p> uchar dat1[]={0,0,0,0,0,0,2,1};</p><p> uchar dat2[]={0,0,0,0,0,0,0,0};</p><p&g
54、t; uchar alarms[]={0,0,0,0,0,0,0,0};</p><p> uchar dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};</p><p> unsigned char code SEG7[11]={0xC0,/*0*/ 0xF9,/*1*/
55、 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/
56、 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/</p><p> };/*數字顯示數組*/</p><p> sbit miaobiao1=P1^0;</p><p> sbit tminute=P1^1;</p><
57、;p> sbit thour=P1^2;</p><p> sbit miaobiao2=P1^3;</p><p> sbit alarm=P1^4;</p><p> sbit P0_0=P0^0;</p><p> sbit P1_5=P1^5;</p><p> sbit P1_6=P1^6;
58、</p><p> sbit P1_7=P1^7;/*端口定義*/</p><p> uchar ms=0;</p><p> uchar flag=0;</p><p> uchar sec=0;</p><p> uchar minit=0;</p><p> struct ti
59、me{uchar second;uchar minute;uchar hour;}time1;</p><p> uchar n,i;</p><p> void delay(n)</p><p> {while(n--)</p><p><b> {</b></p><p> for(
60、i=120;i>0;i--);</p><p><b> } </b></p><p><b> }</b></p><p><b> /*延時子程序*/</b></p><p> void modify(void)</p><p><
61、;b> {</b></p><p><b> EA=0;</b></p><p> if(thour==0)</p><p><b> { </b></p><p> if(flag==0)</p><p><b> {</b&
62、gt;</p><p> dat1[6]++;delay(280);</p><p> if(dat1[6]>9)</p><p><b> { </b></p><p> dat1[6]=0;</p><p> dat1[7]++;</p><p><
63、;b> }</b></p><p> else if((dat1[7]>1)&&(dat1[6]>3))</p><p> {dat1[7]=0; dat1[6]=0; }</p><p><b> }</b></p><p> if(flag==1)<
64、/p><p><b> {</b></p><p> alarms[6]++;delay(300);</p><p> if(alarms[6]>9)</p><p><b> {</b></p><p> alarms[6]=0;alarms[7]++;<
65、/p><p> if(alarms[7]>2)</p><p><b> {</b></p><p> alarms[7]=0;</p><p><b> }</b></p><p><b> }</b></p><p&g
66、t; dat[6]=alarms[6];</p><p> dat[7]=alarms[7];</p><p><b> }</b></p><p><b> }</b></p><p> if(tminute==0)</p><p><b> { &l
67、t;/b></p><p> if(flag==0)</p><p><b> {</b></p><p> dat1[3]++;delay(280);</p><p> if(dat[3]>=9)</p><p><b> {</b></p>
68、;<p> dat1[4]++;dat1[3]=0;</p><p> if(dat1[4]>5)</p><p><b> {</b></p><p> dat1[4]=0;</p><p><b> }</b></p><p><b&g
69、t; }</b></p><p><b> }</b></p><p> if(flag==1)</p><p><b> {</b></p><p> alarms[3]++;delay(300);</p><p> if(alarms[3]>
70、;9)</p><p><b> {</b></p><p> alarms[4]++;alarms[3]=0;</p><p> if(alarms[4]>5)</p><p><b> {</b></p><p> alarms[4]=0;</p&g
71、t;<p><b> }</b></p><p><b> }</b></p><p> dat[3]=alarms[3];</p><p> dat[4]=alarms[4];</p><p><b> }</b></p><p&g
72、t;<b> }</b></p><p> if(miaobiao1==0)</p><p> {TR0=0;ET0=0;TR1=1;ET1=1;</p><p><b> }</b></p><p> if(miaobiao2==0)</p><p><b&
73、gt; { </b></p><p> TR0=1;ET0=1;TR1=0;ET1=0;</p><p> dat2[0]=0;</p><p> dat2[1]=0;</p><p> dat2[3]=0;</p><p> dat2[4]=0;</p><p> d
74、at2[6]=0;</p><p> dat2[7]=0;</p><p><b> ms=0;</b></p><p><b> sec=0;</b></p><p><b> minit=0;</b></p><p><b> }
75、</b></p><p> if(P1_5==0)</p><p><b> {</b></p><p> TR0=0;ET0=0;TR1=0;ET1=0; </p><p><b> }</b></p><p> if(alarm==0)</p&
76、gt;<p><b> {</b></p><p> TR0=0;ET0=0;TR1=0;ET1=0;flag=1;</p><p><b> dat[0]=0;</b></p><p><b> dat[1]=0;</b></p><p> dat[2
77、]=10;</p><p><b> dat[3]=0;</b></p><p><b> dat[4]=0;</b></p><p> dat[5]=10;</p><p><b> dat[6]=0;</b></p><p><b>
78、; dat[7]=0;</b></p><p><b> }</b></p><p><b> EA=1;</b></p><p><b> }/*按鍵掃描*/</b></p><p> void init(void)</p><p&g
79、t;<b> {</b></p><p> TMOD = 0x11; </p><p> TH0 = 0xDB;</p><p> TL0 =0xFF;</p><p><b> TH1=0xDB;</b></p><p><b> TL1=0xFF;&
80、lt;/b></p><p> ET0 = 1; //10ms</p><p><b> ET1=1;</b></p><p><b> //TR1=1;</b></p><p><b> TR0=1;</b></p><p>
81、<b> tcount=0;</b></p><p><b> ms=0;</b></p><p><b> sec=0;</b></p><p><b> minit=0;</b></p><p><b> EA = 1;</b
82、></p><p><b> }/*初始化*/</b></p><p> void test(void){</p><p> for(k=0;k<8;k++)</p><p><b> {</b></p><p> P3=dis_bit[k];</
83、p><p> P2=SEG7[dat[k]]; delay(1);</p><p><b> P3=0X00;</b></p><p><b> }</b></p><p><b> }/*數字顯示*/</b></p><p> void main
84、()</p><p><b> {init();</b></p><p> delay(10);</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> modify();&
85、lt;/b></p><p><b> test();</b></p><p><b> }</b></p><p><b> }/*主函數*/</b></p><p> Void diplay() interrupt 1</p><p>
86、<b> { </b></p><p><b> ET0=0;</b></p><p><b> TR0=0;</b></p><p> TH0 = 0xDB;</p><p> TL0 = 0xff;</p><p><b>
87、TR0=1;</b></p><p><b> tcount++;</b></p><p> if(tcount==100) </p><p><b> {</b></p><p> time1.second++;</p><p><b> t
88、count=0;</b></p><p> dat1[0]=(time1.second)%10;</p><p> dat1[1]=(time1.second)/10;</p><p><b> }</b></p><p> if(time1.second==60)</p><p&
89、gt; { dat1[0]=0;dat1[1]=0;</p><p> time1.second=0;</p><p> time1.minute++;</p><p> dat1[3]=(time1.minute)%10;</p><p> dat1[4]=(time1.minute)/10;</p><p
90、><b> } </b></p><p> if(time1.minute==60)</p><p><b> {</b></p><p> time1.minute=0;</p><p> time1.hour++; </p><p> dat1[6]=t
91、ime1.hour%10;</p><p> dat1[7]=time1.hour/10;</p><p><b> }</b></p><p> if(time1.hour>23)</p><p><b> {</b></p><p> time1.hour
92、=0; </p><p><b> }</b></p><p> dat[5]=10;</p><p> dat[2]=10;</p><p> dat[0]=dat1[0];</p><p> dat[1]=dat1[1];</p><p> dat[3]=d
93、at1[3];</p><p> dat[4]=dat1[4];</p><p> dat[6]=dat1[6];</p><p> dat[7]=dat1[7];</p><p><b> flag=0;</b></p><p><b> P0=0x01;</b>
94、</p><p> if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat1[4])&&(alarms[3]==dat1[3])&&(dat1[1]<1))</p><p><b> {</b></p><
95、p><b> P0=0x00;</b></p><p><b> }</b></p><p><b> ET0=1;</b></p><p><b> }</b></p><p> void time_2(void)interrupt 3&
96、lt;/p><p><b> {</b></p><p><b> EA=0; </b></p><p><b> TR0=0;</b></p><p><b> TH1=0xDB;</b></p><p><b>
97、 TL1=0xFF;</b></p><p><b> TR1=1;</b></p><p><b> ms++;</b></p><p> dat2[0]=ms%10;</p><p> dat2[1]=ms/10;</p><p> if(ms>
98、;=100)</p><p><b> {</b></p><p><b> ms=0;</b></p><p><b> sec++;</b></p><p> dat2[3]=sec%10;</p><p> dat2[4]=sec/10;
99、</p><p> if(sec>=60)</p><p><b> {</b></p><p><b> sec=0;</b></p><p><b> minit++;</b></p><p> dat2[6]=minit%10;&l
100、t;/p><p> dat2[7]=minit/10;</p><p><b> }</b></p><p><b> }</b></p><p> dat[5]=10;</p><p> dat[2]=10;</p><p> dat[0]=
101、dat2[0];</p><p> dat[1]=dat2[1];</p><p> dat[3]=dat2[3];</p><p> dat[4]=dat2[4];</p><p> dat[6]=dat2[6];</p><p> dat[7]=dat2[7];</p><p>&
102、lt;b> EA=1</b></p><p> 第六章 課程設計結果分析</p><p> 此時鐘設計是利用protues仿真軟件進行仿真,基本上實現(xiàn)了課程設計要求實現(xiàn)的功能。</p><p> 硬件部分設置了的六個按鍵。當按鍵一按下時,進入秒表顯示狀態(tài),秒表開始計時,當按鍵六按下時,秒表暫停;當按鍵四按下時恢復到時間顯示功能;當按鍵二按
103、下時,進入調分狀態(tài),按一次,分加一,60一循環(huán);按鍵三按下時,進入調時狀態(tài),按一次,時加一,60一循環(huán);按鍵五按下時,進入鬧鈴設置功能,緊接著按下按鍵二和按鍵三進行時和分的設置,再按下按鍵4恢復顯示時間,當顯示的時間和定時設置的時間一致時,蜂鳴器發(fā)出蜂鳴聲,蜂鳴時間我們設置為10秒。</p><p> 另外,鬧鈴電路有音樂鬧鐘的擴展的功能(可以將蜂鳴器換成揚聲器再加一段音樂程序即可實現(xiàn))。</p>
104、<p> 調試階段,出現(xiàn)一些問題。比如,實際小時顯示到29才歸零,分鐘顯示到60才進一……經過軟件調試,以上問題均一一排除,結果達到預期目標。但時間有限,部分擴展功能不能及時實現(xiàn),比如音樂鬧鈴。 </p><
105、;p> 第七章 結論與展望</p><p><b> 7.1 結論</b></p><p> 單片機多功能定時系統(tǒng)理論上能很好的達到了學校教學要求,發(fā)揮了單片機在智能化方面的應用。該系統(tǒng)的設計很好的滿足當前學校教學的需要,是一個理想的智能化的設計。它具有一個走時精確的實時鐘,可以任意設置時間,可以控制時間表的轉換,時鐘的顯示功能等??梢酝ㄟ^按鍵操作和數字
106、顯示。該系統(tǒng)規(guī)模小,但是功能較多,操作簡單,造價低,應用非常廣泛。該系統(tǒng)的設計為向家庭數字化方向發(fā)展又前進了一步。同時又擴大了單片機的應用領域。</p><p> 7.2 單片機的發(fā)展趨勢</p><p> 自單片機出現(xiàn)至今,單片機技術已走過了幾十年的發(fā)展路程??v觀幾十年來單片機發(fā)展歷程可以看出,單片機技術的發(fā)展以微處理器(MPU)技術及超大規(guī)模集成電路技術的發(fā)展為先導,拉動廣泛的應用
107、領域,表現(xiàn)出比微處理器更具個性的發(fā)展趨勢:</p><p> 1.采用先進結構以實現(xiàn)高性能</p><p> 在過去的一段時間內,單片機的指令運行速度一直在10MIPS以下,這對于應用在工業(yè)控制領域內的單片機來說是足夠了,但當單片機被應用在通訊及DSP領域作為高速運算、編碼或解碼時,就會出現(xiàn)因指令運行速度不夠而限制單片機應用的情形,因此提高單片機指令運行速度已經成為迫切需要解決的問題。
108、</p><p> 2.進一步降低功耗、</p><p> 基于80C51的飛利浦低功率、低系統(tǒng)成本微控制器51LPC系列是業(yè)界推動單片機向低功耗方向發(fā)展的主導單片機系列之一。51LPC系列單片機采用以下三種方法降低功耗:</p><p> ?。?)使系統(tǒng)進入空閑模式,在空閑模式下,只有外圍器件在工作,任意的復位及中斷均可結束空閑模式;</p>&
109、lt;p> (2)使系統(tǒng)進入低功耗模式,在低功耗模式下,振蕩器停止工作,是功耗降到最小</p><p> ?。?)使系統(tǒng)進入低電壓EPROM操作;EPROM包含了模擬電路,當Vcc高于4V時,可通過軟件使這些模擬電路掉電以降低功耗,在上電情況下可使系統(tǒng)退出該模式。</p><p> 3.采用Flash Memory</p><p> 隨著半導體工藝技術的
110、不斷進步,MPU的Flash版本逐漸替代了原有的OTP版本。Flash MPU具有以下優(yōu)點:與多次可編程的窗口式EPROM相比,F(xiàn)lash MPU的成本要低得多;在系統(tǒng)編程能力以及產品生產方面提供了靈活性,因為Flash MPU可在編程后面再次以新代碼重新編程;可減少已編程器件的報廢和庫存;有助于生產廠商縮短設計周期,使終端用戶產品和、更具有競爭力。</p><p> 4.集成更多功能及兼容性</p>
111、;<p> 目前單片機的另一個發(fā)展趨勢是在芯片上集成更多的功能。如模擬功能,包括模擬比較器、A/D和D/A轉換器等。具體表現(xiàn)在:兼容性作為設計的第一考慮;額外的新的特點是透明的;使用同一種編程器;OTP使器件快速提升及標準化成為可能。</p><p><b> 5.強抗干擾能力</b></p><p> 不斷加強抗干擾能力是單片機進一步發(fā)展的必然趨
112、勢。ST Microelectronics公司推出的ST62系列單片機在這方面是佼佼者,其優(yōu)良的抗干擾能力使得許多大公司將其應用在系統(tǒng)中的關鍵部件上。許多單片機開發(fā)商也正朝著這個方向努力。</p><p> 6.朝系列化、全面化方向發(fā)展</p><p> 各大單片機開發(fā)商在增加產品功能的同時效力于形成產品的系列化=全面化,以滿足各種控制領域的要求,這也是單片機發(fā)展的趨勢之一。日本TOS
113、HBA公司開發(fā)了從4位到64位的多系列單片機,日立公司也有從4.位到32位的單片機,目前還沒有哪個廠家生產的單片機比東芝公司的種類多。</p><p> 隨著單片機性能的不斷提高,不斷的克服和彌補自身的不足。在各種控制領域,單片機將擁有更加廣闊的使用天地。在很長的一段時間內,它將一直是工程設計人員的首選控制芯片之一。</p><p><b> 致 謝</b>&l
114、t;/p><p> 本課題在選題及進行過程中得到了席東河老師的悉心指導。在硬件電路設計當中**老師幫助分析思路,開拓視角;在軟件設計中席老師幫助調試及修改程序。**老師嚴謹求實的治學態(tài)度,踏實堅韌的工作精神將使我們終身受益。再多華麗的言語也顯得蒼白。在此,謹向席東河老師致以誠摯的謝意和崇高的敬意!
115、 </p><p><b> 參考文獻</b></p><p> [1] 李葉紫.王喜斌.胡輝.孫東輝.編著MCS_51單片機應用教程清華大學出版社.2008.6.</p><p> [2] 陸劍.單片機應用技術指導書 河南工業(yè)職業(yè)技術學院2005.12.[3] 汪道輝.單片機系統(tǒng)設計與實踐.
116、電子工業(yè)出版社 </p><p> ?。?50頁 時、分、秒計時器設計,59頁 鍵盤及接口技術).</p><p> [4] 第二版.51系列單片機設計實例.北京航空航天大學出版社(81—89頁 數碼管時鐘電路的設計).</p><p> [5] 辛友順、胡永生、薛小玲.單片機應用系統(tǒng)設計與實現(xiàn).福建科學技術出版社(184-186頁 LED顯示接口,190-
117、193頁 鍵盤接口).</p><p> [6] 黃慶華、張永格.單片機開發(fā) 與實例.電子工業(yè)出版社(127-162頁 數字式電子時鐘的設計).</p><p> [7] 閆玉德、俞紅.MCS-51單片機原理與應用(C語言版).機械工業(yè)出版社(49-104頁 單片機的C程序設計).</p><p> [8] 求是科技.單片機典型模塊設計實例導航.人民郵電
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機電子時鐘 畢業(yè)設計論文
- 畢業(yè)設計(論文) 單片機電子時鐘設計
- 單片機電子時鐘畢業(yè)設計
- 畢業(yè)設計--單片機電子時鐘
- 單片機電子時鐘畢業(yè)設計
- 單片機電子時鐘設計畢業(yè)設計
- 單片機電子時鐘畢業(yè)設計 (2)
- 單片機電子時鐘畢業(yè)設計 (3)
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)設計開題報告
- 論文_單片機電子時鐘的設計
評論
0/150
提交評論