版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 專 業(yè): 計算機科學與技術 </p><p> 題 目: 電子鐘 </p><p> 學 生 姓 名: </p><p> 指 導 教 師
2、: </p><p> 2012年 6 月 6 日</p><p><b> 目 錄</b></p><p> 前言……………………………………………………………………………………3</p><p> 課程設計任務書………………………………………………………………………4<
3、/p><p> 第一章 關于電子鐘…………………………………………………………………5</p><p> 第二章 方案論證……………………………………………………………………6</p><p> 2.1數(shù)字時鐘方案…………………………………………………………6</p><p> 2.2 數(shù)碼管顯示方案……………………………………………
4、………6</p><p> 第三章 硬件系統(tǒng)設計………………………………………………………………7</p><p> 3.1總體設計…………………………………………………………………7</p><p> 3.2模塊設計…………………………………………………………………7</p><p> 第四章 軟件系統(tǒng)設計…………………………
5、…………………………………18</p><p> 第五章 系統(tǒng)仿真與測試…………………………………………………………19</p><p> 5.1.系統(tǒng)仿真………………………………………………………………19</p><p> 5.2 測試結(jié)果………………………………………………………………19</p><p> 第六章 實驗心得
6、…………………………………………………………………21</p><p> 第七章 參考文獻…………………………………………………………………22</p><p> 附錄…………………………………………………………………………………23</p><p><b> 前 言</b></p><p> 我們生
7、活在一個信息時代,各種電子產(chǎn)品層出不窮,作為一個計算機專業(yè)的學生,了解這些電子產(chǎn)品的基本組成和設計基本原理是十分必要的,我們學習的是理論知識,而課程設計正是對我們學習的理論知識的實踐與鞏固。</p><p> 單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發(fā)展很快。單片機體積小、重量輕、抗干擾能力強、環(huán)境要求不高、價格低廉、可靠性高、靈活性好、開發(fā)較為容易。由于具有上述
8、優(yōu)點,在我國,單片機已廣泛地應用在工業(yè)自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等各個方面,本設計是基于單片機的定時鬧鐘設計。單片機是在一塊半導體芯片上集成了CPU、存儲器以及輸入和輸出接口電路的微型計算機;其集成度高、功能強、通用性好,特別是它具有體積小、重量輕、能耗低、價格便宜、抗擾、能力強和使用方便等特點。它不僅僅是一項技術性上的突破,同時也是對能源方面的有效節(jié)約與有效利用,因此深受國家有關技術部門和能
9、源部門的重視和支持。其組合而成的配件產(chǎn)品在日常生活的使用過程中非常方便、簡單且實用,深受著廣大消費者的喜愛,從而使單片機技術在社會中得到了廣泛的發(fā)展和應用。目前,已成為測量控制應用系統(tǒng)中的優(yōu)選機種和新電子產(chǎn)品的關鍵部件。特別是20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發(fā)展很快,推廣率高,市場利潤率高。而51單片機是各</p><p> 時鐘電路在計算機系統(tǒng)中起著非常重要的作
10、用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有
11、:DS1302,DS12887,X1203等都可以滿足高精度的要求。</p><p> 本文主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設計由單片機AT89S51芯片和LED數(shù)碼管為核心,輔以必要的電路,構成了一個單片機電子時鐘。</p><p> 安徽工程大學機電學院</p><p><b> 本科課程設計任務書</b>&
12、lt;/p><p> 2009 屆 機電學院 </p><p> 計算機科學與技術 專業(yè)</p><p> ?、?課程設計題目:</p><p><b> 電子鐘</b></p><p><b> Ⅱ 原始資料</b></p><p&g
13、t;<b> 1、設計的主要內(nèi)容</b></p><p> 設計一個電子鐘,利用四個數(shù)碼管,在其上顯示分、秒;用4個小鍵盤分別進行分+1、分-1、秒+1、秒-1改變時間值。</p><p><b> 基本要求:</b></p><p> ?、拧⒃O計實驗電路(要求利用實驗儀的硬件資源)</p><p
14、><b> ?、?、分析實驗原理</b></p><p><b> ⑶、列出實驗接線表</b></p><p> ⑷、采用匯編語言編寫實驗程序</p><p> ?、?、通過實驗驗證功能的實現(xiàn)</p><p> ⑹、編寫課程設計說明書</p><p><b>
15、; 2、設計參考</b></p><p> 本程序設計中有幾個要點:</p><p> A、設計一個1s時鐘,作為時間的基準??赏ㄟ^定時器來實現(xiàn),由于定時限制,我們可以設定定時時鐘為50ms中斷一次,然后用一個計數(shù)器計數(shù)20次,即50ms*20=1000ms=1s。</p><p> B、分與時都可采用軟件計數(shù)器來實現(xiàn)。60秒為1分,60分為1小
16、時。</p><p> C、由于實際應用中要求顯示為十進制數(shù),而在程序中處理的數(shù)據(jù)都為十六進制,因此在程序中要對顯示緩沖區(qū)的數(shù)據(jù)進行十進制調(diào)整。</p><p><b> 指導教師(簽字)</b></p><p> 完成日期 年 月 日</p><p> 接受任務書學生(簽字)</p>
17、;<p> 關于電子時鐘 </p><p> 1957年,Ventura發(fā)明了世界上第一個電子表,從而奠定了電子時鐘的基礎,電子時鐘開始迅速發(fā)展起來。現(xiàn)代的電子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分小時進一,滿二十四小時小時清零。從而達
18、到計時的功能,是人民日常生活補課缺少的工具。 </p><p> 現(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術,因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間
19、的功能,還可以進行時和分的校對,片選的靈活性好。 </p><p> 該電子時鐘由AT89S51,,六段數(shù)碼管等構成,采用晶振電路作為驅(qū)動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中唯一的一個控制鍵卻擁有多種不同的功能,按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松開,則可以通過
20、按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。</p><p><b> 方案論證</b></p><p><b> 2.1數(shù)字時鐘方案</b></p><p> 本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設三個字節(jié)分別存放時鐘的時、分、秒信息
21、。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現(xiàn),當單片機不上電,程序不執(zhí)行時,時鐘將不工作。</p><p> 2.2 數(shù)碼管顯示方
22、案</p><p> 動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也于點亮時間與間隔時間的比例有關。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。</p><p><b> 硬件系統(tǒng)設計<
23、;/b></p><p><b> 3.1總體設計</b></p><p><b> 計時方案</b></p><p> 利用AT89S51單片機內(nèi)部的定時/計數(shù)器進行中斷時,配合軟件延時實現(xiàn)時、分、秒的計時。該方案節(jié)省硬件成本,且能使讀者在定時/計數(shù)器的使用、中斷及程序設計方面得到鍛煉與提高,對單片機的指令系
24、統(tǒng)能有更深入的了解,從而對學好單片機技術這門課程起到一定的作用。</p><p><b> 控制方案</b></p><p> AT89S51的P0口和P2口外接由八個LED數(shù)碼管(LED8~LED1)構成的顯示器,用P0口作LED的段碼輸出口,P2口作八個LED數(shù)碼管的位控輸出線,P1口外接四個按鍵A、B、C構成鍵盤電路。</p><p>
25、; AT89S51 是一種低功耗,高性能的CMOS 8位微型計算機。它帶有8K Flash 可編程和擦除的只讀存儲器(EPROM),該器件采用ATMEL的高密度非易失性存儲器技術制造,與工業(yè)上標準的80C51和80C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個芯片上,可用與解決復雜的問題,且成本較低。簡易電子鐘的功能不復雜,采用其現(xiàn)有的I/O便可完成,所以本設計中采用此的設計方案。</p><p>
26、3.13具體設計分析</p><p> 利用單片機(AT89S51)制作簡易電子時鐘,由六個LED數(shù)碼管分別顯示小時十位、小時個位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位。結(jié)合本設計實驗來說,要求顯示的時間為時,分,秒,并且都用兩位數(shù)碼管來實現(xiàn)顯示。因此,具體設計程序時,應盡可能多用一些子程序與數(shù)據(jù)暫寄存器單元。本程序設計中,在主程序之外,可以設置時間值處理子程序,時間值顯示前的處理子程序,按鍵情況掃描子程序,
27、1S定時中斷子程序以及5ms延時消除按鍵抖動子程序等多個小型的子程序。另外,可以設置一些數(shù)據(jù)單元作為數(shù)據(jù)寄存器。用28H,2AH,2BH和2CH地址單元分別作為顯示位數(shù)的掃描指針值寄存器,時寄存器,</p><p> 分寄存器和秒寄存器,再用20H地址單元作為顯示寄存器</p><p><b> 系統(tǒng)框圖</b></p><p><b
28、> 3.2模塊設計</b></p><p><b> 硬件資源</b></p><p> AT89S51芯片說明</p><p> AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件
29、采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構,芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。</p><p> AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向
30、輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。 </p><p> 此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具
31、有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產(chǎn)品的需求。</p><p> 選用的AT89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實現(xiàn)在線的編程。用于實現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:</p><p> AT89S51引腳圖</p><p> 1、為一般控制應用的 8 位單片機</p><p>
32、; 2、晶片內(nèi)部具有時鐘振蕩器(傳統(tǒng)最高工作頻率可至 33MHz)</p><p> 3、內(nèi)部程式存儲器(ROM)為 4KB</p><p> 4、內(nèi)部數(shù)據(jù)存儲器(RAM)為 128B</p><p> 5、外部程序存儲器可擴充至 64KB</p><p> 6、外部數(shù)據(jù)存儲器可擴充至 64KB</p><p&g
33、t; 7、32 條雙向輸入輸出線,且每條均可以單 獨做 I/O 的控制</p><p> 8、5 個中斷向量源</p><p> 9、2 組獨立的 16 位定時器</p><p> 10、1 個全雙工串行通信端口</p><p> 11、8751 及 8752 單芯片具有數(shù)據(jù)保密的功能</p><
34、p> 12、單芯片提供位邏輯運算指令</p><p> AT89S51各引腳功能介紹:</p><p><b> VCC:</b></p><p> ATAT89S51 電源正端輸入,接+5V。</p><p><b> VSS:</b></p><p>&l
35、t;b> 電源地端。</b></p><p><b> XTAL1:</b></p><p> 單芯片系統(tǒng)時鐘的反向放大器輸入端。</p><p><b> XTAL2:</b></p><p> 系統(tǒng)時鐘的反向放大器輸出端,一般在設計上只要在 XTAL1 和 XTAL2
36、 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩個引腳與地之間加入一個 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。</p><p><b> RESET:</b></p><p> AT89S51的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項動作,使得內(nèi)
37、部特殊功能寄存器之內(nèi)容均被設成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。</p><p><b> EA/Vpp:</b></p><p> "EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM
38、中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內(nèi)部無程序存儲器空間。如果是使用 8751 內(nèi)部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。</p><p><b> ALE/PROG:</b></p><p> ALE是英文"Address L
39、atch Enable"的縮寫,表示地址鎖存器啟用信號。ATAT89S51可以利用這支引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進鎖存器中,因為ATAT89S51是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。</p>&
40、lt;p><b> PSEN:</b></p><p> 此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。ATAT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與程序存儲
41、器可以合并在一起而共用64K的定址范圍。</p><p> PORT0(P0.0~P0.7):</p><p> 端口0是一個8位寬的開路電極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當作I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低
42、電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設計者必須外加一個鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲器空間。</p><p> PORT2(P2.0~P2.7):</p><p> 端口2是具有內(nèi)部提升電路的雙向I/O端口,每
43、一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當作一般I/O端口使用外,若是在ATAT89S51擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當作I/O來使用了。</p><p> PORT1(P1.0~P1.7):</p><p> 端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出
44、緩沖器可以推動4個LS TTL負載,同樣地,若將端口1的輸出設為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)引腳。</p><p> PORT3(P3.0~P3.7):</p><p> 端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時
45、還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p><b> 其引腳分配如下:</b></p><p> P3.0:RXD,串行通信輸入。</p><p> P3.1:TXD,串行通信輸出。</p><p> P3.2:INT0,外部
46、中斷0輸入。</p><p> P3.3:INT1,外部中斷1輸入。</p><p> P3.4:T0,計時計數(shù)器0輸入。</p><p> P3.5:T1,計時計數(shù)器1輸入。</p><p> P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。</p><p> P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。</
47、p><p><b> 74LS47芯片</b></p><p><b> 74LS47芯片</b></p><p> 74LS47是BCD-7段數(shù)碼管譯碼器/驅(qū)動器, 74LS47的功能用于將BCD碼轉(zhuǎn)化成數(shù)碼塊中的數(shù)字,通過它解碼, 可以直接把數(shù)字轉(zhuǎn)換為數(shù)碼管的顯示數(shù)字, 從而簡化了程序。</p><
48、;p> 74LS47譯碼器原理:譯碼為編碼的逆過程。它將編碼時賦予代碼的含義“翻譯”過來。實現(xiàn)譯碼的邏輯電路成為譯碼器。譯碼器輸出與輸入代碼有唯一的對應關系。74LS47是輸出低電平有效的七段字形譯碼器,它在這里與數(shù)碼管配合使用,</p><p> 下表列出了74LS47的真值表,表示出了它與數(shù)碼管之間的關系。</p><p> 輸 入 輸 出 顯示數(shù)字符號 </p&g
49、t;<p> LT RBI A3 A2 A1 A0 BI RBO a b c d e f g1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 X 0 0 0 1 1 1 0 0 1 1 1 1 1 1 X 0 0 1 0 1 0 0 1 0 0 1 0 2 1 X 0 0 1 1 1 0 0 0 0 1 1 0 3 1
50、 X 0 1 0 0 1 1 0 0 1 1 0 0 4 1 X 0 1 0 1 1 0 1 0 0 1 0 0 5 1 X 0 1 1 0 1 1 1 0 0 0 0 0 6 1 X 0 1 1 1 1 0 0 0 1 1 1 1 7 1 X 1 0 0 0 1 0 0 0 0 0 0 0 8 1 X 1 0 0
51、1 1 0 0 0 1 1 0 0 9 X X X X X X 0 1 1 1 1 1 1 1 熄滅 1 0 </p><p><b> 74LS138芯片</b></p><p><b> 74LS138</b></p><p> 74HC138:74LS138 為3 線-8
52、 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路結(jié)構型式,其74LS138工作原理如下當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平譯出。</p><p> 74LS138的作用:利用 G1、/(G2A)和/(G2B)可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 3
53、2 線譯碼器。 若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器</p><p> 無論從邏輯圖還是功能表我們都可以看到74LS138的八個輸出引腳,任何時刻要么全為高電平1—芯片處于不工作狀態(tài),要么只有一個為低電平0,其余7個輸 出引腳全為高電平1。如果出現(xiàn)兩個輸出引腳同時為0的情況,說明該芯片已經(jīng)損壞。</p><p> 71LS138有三個附加的控制端、和。
54、當、時,輸出為高電平(S=1),譯碼器處于工作狀態(tài)。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平,如表3.3.5所示。這三個控制端也叫做“片選”輸入端,利用片選的作用可以將多篇連接起來以擴展譯碼器的功能。 </p><p> 用與非門組成的3線-8線譯碼器74LS138</p><p> 帶控制輸入端的譯碼器又是一個完整的數(shù)據(jù)分配器。在下圖電路中如果把作為“數(shù)據(jù)”輸入端(同時),而將
55、作為“地址”輸入端,那么從送來的數(shù)據(jù)只能通過所指定的一根輸出線送出去。這就不難理解為什么把叫做地址輸入了。例如當=101時,門的輸入端除了接至輸出端的一個以外全是高電平,因此的數(shù)據(jù)以反碼的形式從輸出,而不會被送到其他任何一個輸出端上。</p><p> 3線-8線譯碼器74LS138的功能表</p><p><b> 晶振電路</b></p><
56、;p> 下圖所示為時鐘電路原理圖,在AT89S51芯片內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構成一個穩(wěn)定的自激振蕩器。時鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進行二分頻之后,才成為單片機的時鐘脈沖信號。</p><p><b> 晶振電路</b></p><
57、p><b> 復位電路</b></p><p> 單片機復位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12 MHz,每機器周期為1μs,則只需2μs以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機器周期執(zhí)行復位。單片機常見的復位如圖所示。電路為上電復位電路,它是利用電容充電來實現(xiàn)的。在接電瞬間,RESET
58、端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時間大于兩個機器周期,便能正常復位。該電路除具有上電復位功能外,若要復位,只需按圖中的RESET鍵,此時電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復位高電平。</p><p><b> 單片機復位電路</b></p><p><b> 數(shù)碼顯示模塊
59、設計</b></p><p><b> 數(shù)碼顯像管</b></p><p> 數(shù)碼管是一種把多個LED顯示段集成在一起的顯示設備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。通
60、常的數(shù)碼管又分為8段,即8個LED顯示段,這是為工程應用方便如設計的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點位段。而多位數(shù)碼管,除某一位的公共端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起,共同占用8
61、位段引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,在此同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當全段掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。</p><p><b> 共陰數(shù)碼管</b></p><p> 系統(tǒng)采用動態(tài)顯示方式,用P0口來控制LED數(shù)碼管的段控線,而用P2口來控制其位控線。動態(tài)顯示通常都是
62、采用動態(tài)掃描的方法進行顯示,即循環(huán)點亮每一個數(shù)碼管,這樣雖然在任何時刻都只有一位數(shù)碼管被點亮,但由于人眼存在視覺殘留效應,只要每位數(shù)碼管間隔時間足夠短,就可以給人以同時顯示的感覺。</p><p><b> 數(shù)碼管的引腳圖</b></p><p><b> 按鍵模塊</b></p><p> 時間計數(shù)電路由秒個位和秒
63、十位計數(shù)器、分個位和分十位計數(shù)器、時個位和時十位計數(shù)器及星期計數(shù)器電路構成,其中秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器為60進制計數(shù)器,時個位和時十位計數(shù)器為24進制計數(shù)器。</p><p> 按鍵模塊電路原理圖。</p><p> 第四章 軟件系統(tǒng)設計</p><p> 基本的程序流程應該是:在主程序中檢測各個時間按鈕是否有動作若有,就儲存并修改相關的
64、的時間寄存器的值,若沒有,就繼續(xù)檢測。在計時子程序中將各時間寄存器的值逐個加1,每加一次就要檢查是否已超過顯示的上限值,這樣在后面就便于處理,在掃描顯示子程序中,將掃描位數(shù)指針與20H相加,從而得到相應的顯示數(shù)據(jù);然后按照顯示的位數(shù)加顯示數(shù)就的格式,將數(shù)據(jù)從P1口輸出到數(shù)碼管上去顯示,當然還有定時中斷子程序,在這里,它實現(xiàn)計時1S的時間延時。</p><p> 第五章 系統(tǒng)仿真與實驗測試</p>
65、<p><b> 5.1系統(tǒng)仿真</b></p><p> 運用proteus軟件進行仿真現(xiàn)在proteus軟件中建立一個新的文件,再根據(jù)自己的要求選擇所需的器件,把器件進行適當?shù)呐盼缓筮M行連接,連接后運行軟件進行仿真。</p><p><b> 5.2實驗測試</b></p><p> 電子時鐘主要的
66、設計要求是能夠?qū)崿F(xiàn)時鐘的一般功能,以及包括時間的調(diào)整功能,這個基于單片機的電子時鐘基本上實現(xiàn)了上述功能,能夠通過時間調(diào)整電路對時間進行調(diào)整以及復位。下述為仿真圖:</p><p> 12:00:00時刻的仿真效果圖</p><p><b> 實驗心得</b></p><p> 單片機作為我們主要的專業(yè)課程之一,我覺得單片機課程設計很有必要
67、,而且很有意義。但當拿到題目時,確實不知道怎么著手,有些迷茫,上網(wǎng)查資料,問老師,在老師的幫助下,歷時兩個星期,解決一個又一個的困難,終于完成任務。</p><p> 在這次課程設計中,運用到了很多以前的專業(yè)知識,雖然過去從未獨立應用過它們,但在學習的過程中帶著問題去學我發(fā)現(xiàn)效率很高,這是我做這次課程設計的一大收獲。另外,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內(nèi)部結(jié)構有一個系統(tǒng)的了解,知
68、道該單片機內(nèi)有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經(jīng)之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設計課程過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設計結(jié)束了,但是從中學到的知識會讓我受益終身。
69、發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。設計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,不能靈活運用。通過這次設計,我懂得了學習的重要性</p><p> 通過這次課程設計,我感覺收獲了很多:我逐步加深了對單片機系列知識及其系統(tǒng)的認識。
70、這個設計題目并不怎么新穎,但從中體現(xiàn)到了個系統(tǒng)開發(fā)設計的過程,足以讓我們受益匪淺。讓我更進一步的提高了動手能力,也重新復習了一次單片機的程序編程能力,在這期間,讓我更加深刻了體會到了匯編程序的思路,加強了對編程能力的理解和對相應資料的查閱我學會對困難無所畏懼,以及對問題的一些很重要的思考方法。</p><p><b> 第七章 參考文獻</b></p><p>
71、 1.安徽工程大學微型計算機及接口技術實驗指導書</p><p> 2.賈金鈴 《微型計算機原理及應用——理論、實驗、課程設計》</p><p><b> 重慶大學出版社</b></p><p> 3.殷代紅 《微型計算機原理及應用實驗》 化學工業(yè)出版社</p><p> 4. 劉樂善 《微型計算機接
72、口技術及應用》華中科技大學出版社</p><p> 5. 李敬兆 《匯編語言程序設計》 中國科學技術大學出版社</p><p> 6.劉樂喜 微機計算機接口技術及應用[M].華中科技大學出版社.</p><p> 7.石東海 單片機數(shù)據(jù)通信技術從入門到精通.[M].西安電子科技大學出版社.</p><p> 8.
73、謝自美等 電子線路設計、實驗、測試.[M].華中科技大學出版社</p><p><b> 附錄</b></p><p><b> 源程序代碼</b></p><p> ORG 00H;主程序起始地址</p><p> JMP START;主程序START</p><
74、p> ORG 0BH;定時器T0中斷起始地址</p><p> JMP TIM0;定時器T0中斷子程序TIM0</p><p> START: MOV SP;#70H;設置堆棧指針</p><p> MOV 28H,#00;設置顯示位數(shù)掃描指針初值為0</p><p> MOV 2AH,#12H;設置時鐘顯示寄存器初值為12
75、H</p><p> MOV 2BH,#00;設置分鐘顯示寄存器初值為00H</p><p> MOV 2CH,#00;設置秒鐘顯示寄存器初值為00H</p><p> MOV TMOD,#01H;設置定時器T0工作在方式1</p><p> MOV TH0,#0F0H;定時4ms的初值,即0F060H</p><
76、p> MOV TL0,#60H;初值的低位</p><p> MOV IE,#82H;定時器T0中斷允許</p><p> MOV R4,#250;保證后面實現(xiàn)中斷250次,即1s的延時</p><p> SETB TR0;啟動定時器T0</p><p> LOOP: JB P0.0,N2;若秒沒有按鍵,就轉(zhuǎn)去下一步檢查分
77、</p><p> CALL DELAY;延時5ms消除抖動</p><p> MOV A,2CH;將秒寄存器的值載入累加器A </p><p> ADD A,#01H;A的內(nèi)容加1</p><p> DA A;十進制調(diào)整</p><p> MOV 2CH,A;A 的值存入秒寄存器</p>&l
78、t;p> CJNE A,#60H,N1;看是否已經(jīng)是60秒,若不是就繼續(xù)檢查</p><p> MOV 2CH,#00;已經(jīng)是60秒,就清空秒寄存器的值</p><p> N1: JNB P0.0,$;秒按鍵還沒有放開就循環(huán)等待</p><p> CALL DELAY;延時5ms,消除抖動</p><p> N2:
79、 JB P0.1,N4;若分沒有按鍵,就轉(zhuǎn)去下一步檢查時鐘</p><p> CALL DELAY;延時5ms,消除抖動</p><p> MOV A,2BH;將分寄存器的值載入累加器A</p><p> ADD A,#01H;A的內(nèi)容加1</p><p> DA A;十進制調(diào)整</p><p> MOV
80、 2BH,A;A的值存入分寄存器</p><p> CJNE A,#60H,N3;看是否已經(jīng)是60分</p><p> MOV 2BH,#00;已經(jīng)是60分,就清空秒寄存器的值</p><p> N3: JNB P0.1,$;分按鍵還沒有放開就循環(huán)等待</p><p> CALL DELAY;延時5ms,消除抖動</p&
81、gt;<p> N4: JB P0.2,LOOP;若時沒有按鍵,就轉(zhuǎn)回去繼續(xù)檢查看是否秒有按鍵</p><p> CALL DELAY;延時5ms,消除抖動</p><p> MOV A,2AH;將時寄存器的值載入累加器A</p><p> ADD A,#01H;A的內(nèi)容加1</p><p> DA A;十進制
82、調(diào)整</p><p> MOV 2AH,A;A的值存入時寄存器</p><p> CJNE A,#24H,N5;看是否已經(jīng)是24時,若不是就繼續(xù)檢查</p><p> MOV 2AH,#00;已經(jīng)是24時,就清空寄存器的值</p><p> N5: JNB P0.2,$;時鐘按鍵還沒有放開就循環(huán)等待</p>&l
83、t;p> CALL DELAY;延時5ms,消除抖動</p><p> JMP LOOP;返回重新檢查看是否有按鍵</p><p> ;*******定時器T0中斷子程序*******</p><p> TIM0: MOV TH0,#0F0H;定時初值重設</p><p> MOV TL0,#60H</p>
84、<p> PUSH ACC;將累加器A的值暫存于堆棧</p><p> PUSH PSW;將PSW的值暫存于堆棧</p><p> DJNZ R4,X2;計時中斷不滿1s就退出繼續(xù)中斷</p><p> MOV R4,#250;計時1s</p><p> CALL CLOCK;調(diào)用計時子程序CLOCK</p>
85、<p> CALL DISP;調(diào)用顯示子程序DISP</p><p> X2: CALL SCAN;調(diào)用掃描子程序SCAD</p><p> POP PSW;到堆棧取回PSW的值</p><p> POP ACC;到堆棧取回累加器ACC的值</p><p> RETI;返回主程序;</p><
86、p> ??;****掃描子程序****</p><p> SCAN: MOV R0,#28H</p><p> INC @R0;顯示位數(shù)掃描值加1</p><p> CJNE @R0,#6,X3;掃描位數(shù)不為6就準備控制輸出</p><p> MOV @R0,#0;掃描位數(shù)為6,就另其值為0</p><p&g
87、t; X3:MOV A,@R0;掃描位數(shù)載入A</p><p> ADD A,#20H;A加上20H(顯示寄存器地址)=各時間顯示區(qū)地址</p><p> MOV R1,A;各時間顯示區(qū)地址存入A</p><p> MOV A,@R0;掃描位數(shù)存入A</p><p> SWAP A;將A的高低4位交換(其高4位為掃描</p&g
88、t;<p> ;的位數(shù),低4位為顯示數(shù)據(jù)值)</p><p> ORL A,@R1;將掃描值與顯示數(shù)據(jù)組合</p><p> MOV P1,A;顯示輸出</p><p><b> RET</b></p><p> ;******計時子程序******</p><p> C
89、LOCK: MOV A,2CH;秒寄存器值載入A</p><p> ADD A,#1;加1秒</p><p> DA A;十進制調(diào)整</p><p> MOV 2CH,A;A的值存入秒寄存器</p><p> CJNE A,#60H,X4;A不等于60秒,就跳出程序去顯示</p><p> MOV 2CH,#
90、00;已經(jīng)是60秒,就清0</p><p> MOV A,2BH;分寄存器值載入A</p><p> ADD A,#1;加1分</p><p> DA A;十進制調(diào)整</p><p> MOV 2BH,A;A的值存入分寄存器 </p><p> CJNE A,#60H,X4;A不等于60分,就跳出程序去顯示&
91、lt;/p><p> MOV 2BH,#00;已經(jīng)是60分就清0</p><p> MOV A,2AH;時寄存器值載入A</p><p> ADD A,#1;加1小時</p><p> DA A;十進制調(diào)整</p><p> MOV 2AH,A;A的值存入是寄存器</p><p> CJ
92、NE A,#24H,X4;A不等于24時,就跳出程序去顯示</p><p> MOV 24H,#00;已經(jīng)是24時,就清0</p><p> X4: RET</p><p> ;******顯示子程序******</p><p> DISP: MOV R1,20H;20H為顯示寄存器單元</p><p>
93、; MOV A,2CH;將秒寄存器的內(nèi)容存入A</p><p> MOV B,#10H;設B累加器的值為10H</p><p> DIV AB;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))</p><p> MOV @R1,B;將顯示的個位數(shù)存入20H顯示寄存器單元</p><p><b> INC R1</b&g
94、t;</p><p> MOV @R1,;A將顯示的十位數(shù)存入21H顯示寄存器單元</p><p><b> INC R1</b></p><p> MOV A,2BH;將分寄存器的內(nèi)容存入A</p><p> MOV B,#10H;設B累加器的值為10H</p><p> DIV AB
95、;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))</p><p> MOV @R1,B;將顯示的個位數(shù)存入22H顯示寄存器單元</p><p><b> INC R1</b></p><p> MOV @R1,A;將顯示的十位數(shù)存入23H顯示寄存器單元</p><p><b> INC R1</b
96、></p><p> MOV A,2AH;將時寄存器的內(nèi)容存入A</p><p> MOV B,#10H;設B累加器的值為10H</p><p> DIV AB;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))</p><p> MOV @R1,B;將顯示的個位數(shù)存入24H顯示寄存器單元</p><p>&
97、lt;b> INC R1</b></p><p> MOV @R1,A;將顯示的十位數(shù)存入25H顯示寄存器單元</p><p><b> RET</b></p><p> ;******延時5ms消除抖動******</p><p> DELAY: MOV R6,#60</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程論文設計電子鐘設計
- 電子鐘課程設計--基于單片機的電子鐘設計
- 電子鐘單片機課程設計
- 單片機課程設計--電子鐘
- 單片機課程設計(電子鐘)
- 《單片機技術》電子鐘課程設計---數(shù)字電子鐘
- 單片機課程設計——數(shù)字電子鐘
- 單片機課程設計--數(shù)字電子鐘
- 單片機課程設計--數(shù)字電子鐘
- 單片機課程設計--簡單電子鐘設計
- 單片機課程設計---智能電子鐘
- 單片機原理課程設計--電子鐘
- 單片機數(shù)字電子鐘課程設計
- 單片機課程設計報告---單片機的電子鐘設計
- 單片機課程設計--數(shù)字電子鐘
- 單片機課程設計-智能電子鐘
- 單片機課程設計--數(shù)字電子鐘設計
- 單片機課程設計---電子鐘的設計
- 單片機課程設計報告-電子鐘設計
- 單片機課程設計--數(shù)字鐘電子鐘
評論
0/150
提交評論