




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄摘要 . 1關鍵詞 . 1Abstract . 1Key words . 1引言 . 21 電子時鐘設計概述 . 21.1 電子時鐘的原理 . 21.2 電子時鐘的設計思路 . 22 元器件介紹 . 32.1 主控芯片89C51 . 32.2 LED 數(shù)碼管 . 52.2.1 LED數(shù)碼管的結構原理 . 52.2.2 LED顯示器接口及顯示方式 . 63 硬件電路設計 . 73.1 硬件電路圖 . 73.2 復位電路 . 83.3 晶體振蕩電路 . 103.4 按鍵電路 . 104 軟件設計 . 114.1 程序設計步驟 . 114.2 電子時鐘的程序設計 . 114.2.1 主程序 .
2、 124.2.2 按鍵和中斷服務子程序 . 124.2.3 顯示和處理子程序 . 155 系統(tǒng)仿真 . 175.1 PROTUES軟件介紹 . 175.2 電子鐘系統(tǒng)PROTUES仿真 . 186 總結 . 20參考文獻 . 21附錄A 程序清單 . 22致謝 . 27電子時鐘的設計與實現(xiàn)電子時鐘的設計與實現(xiàn)摘要:本設計主要實現(xiàn)了一個基于89C51單片機并通過數(shù)碼管顯示相應的時間的電子時鐘。通過控制鍵來實現(xiàn)時間的調節(jié),并將電子時鐘小時、分鐘、秒采用24小時計時方式用八位LED數(shù)碼管顯示,并應用Proteus的ISIS軟件實現(xiàn)了單片機電子時鐘系統(tǒng)的仿真,該方法仿真效果真實、準確,節(jié)省了硬件資源。
3、本設計采用單片機原理實現(xiàn)的電子時鐘,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有硬件成本低、計時準確、更長的使用壽命等特點。關鍵詞:單片機;電子時鐘;LED數(shù)碼管The Design And Implementation of Electronic ClockAbstract:This design mainly realizes an electronic clock which is based on 89c51. And through digital tube, it displays the corresponding time of electronic clock
4、. Adjust the time through the control button, and the electronic clocks hours, minutes, seconds displays by 24 hour chronograph and eight LED digital tube. And the application of Proteus ISIS software simulation of single chip electronic clock system, the method of simulation results is true, accura
5、te and saving the hardware resources. This design uses the electronic clock monolithic integrated circuit principle. Compared with the mechanical clock, it has a higher accuracy and intuitive, and no mechanical device, it has low hardware cost, timing accuracy, longer service life etc. Key words: Si
6、ngle Chip Microcomputer;Electronic Clock;LED Digital Tube1引言1957年,Ventura發(fā)明了世界上第一個電子表,從而奠定了電子時鐘的基礎,電子時鐘開始迅速發(fā)展起來。20世紀末,電子技術獲得飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透到社會的各個領域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時現(xiàn)代電子產(chǎn)品性能也得到進一步提高,產(chǎn)品更新?lián)Q代的速度也越來越快。 時間對人們來說越來越寶貴,工作的繁雜性和忙碌性容易使人忘記當前的時間。忘記很多要做的事情,如果事情不是很重要的時候,這種遺忘可能無傷大雅。但是,一旦重要的事情,一時的耽
7、將能釀成大禍,因此電子時鐘得到了廣泛的應用。1 電子時鐘設計概述目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發(fā)展。還在于單片機應用的重要意義,傳統(tǒng)的控制系統(tǒng)設計方法和設計思想被單片機改變了。從前必須由數(shù)字電路或模擬電路實現(xiàn)的大部分功能,現(xiàn)在已能可以通過軟件用單片機來實現(xiàn)了。這種軟件代替硬件的控制技術稱為微控制技術,對傳統(tǒng)控制技術來說是一次革命。單片機模塊中最常見的是數(shù)字電子時鐘,數(shù)字電子時鐘是一種用數(shù)字電路技術實現(xiàn)時、分、秒計時的裝置,數(shù)字電子時鐘鐘用集成電路計時,譯碼代替機械式傳動,用LED顯示器代替指
8、針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。電子時鐘是一個將 時,分,秒顯示于人的視覺器官的計時裝置。它的計時周期為24小時,顯示滿刻度為23時59分59秒。因此,一個基本的電子時鐘電路主要由顯示器和單片機,還有校時電路組成。該電子時鐘由89C51,八段數(shù)碼管等構成,采用晶振電路作為驅動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時、分、秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中的四個控制鍵卻擁有多種不同的功能,K1實現(xiàn)小時加1,K2實現(xiàn)小時減1,K3實現(xiàn)分鐘加1,K4實現(xiàn)分鐘減1,通過調節(jié)時、
9、分從而使顯示時間更加準確。1.2 電子時鐘的設計思路此次設計主要是應用單片機來設計電子時鐘,硬件部分主要分為以下電路模塊:復位電路,按鍵電路,晶振電路,驅動電路和顯示電路五部分。其中顯示電路用8個共陽極數(shù)碼管分別顯示小時、分鐘和秒,通過三極管導通和截止的方式進行顯示,從而避免了譯碼器的使用,使編程更加簡單。單片計算機即單片微型計算機,由RAM ,ROM,CPU構成,定時,計數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產(chǎn)業(yè)和工業(yè)自動化上。而51系列單片機是各單片機中最為典型和最有代表性的一種。這種單片機應用簡單,適合電子時鐘設計。2 1.1 電子時鐘的原理電子時鐘的設計
10、與實現(xiàn)電路的總體設計框架如圖1-1所示,硬件電路分為復位電路,按鍵電路,晶振電路,顯示驅動和時間顯示五部分。圖1-1 硬件電路設計框圖2 元器件介紹本次電子時鐘的設計主要應用89C51內部的定時器和計數(shù)器來實現(xiàn)計時控制并通過七段數(shù)碼管進行顯示。以下是對兩種元器件的簡介:2.1 主控芯片89C5189C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存(FPEROMFalshProgrammable and Erasable Read Only Memory)的高性能、低電壓8位微處理器,又叫單片機。單片機的可擦除只讀存儲器是可以反復擦除100次的。單片機采用ATMEL非易失高密度存儲器制造技術制造的,
11、指令集和輸出管腳與工業(yè)標準的MCS-51相集兼容。由于要將多功能8位CPU和閃爍存儲器組合在單個芯片中,89C51是ATMEL的一種高效微控制器。主要特性:·與MCS-51 兼容·4K字節(jié)可編程閃爍存儲器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24MHz·三級程序存儲器鎖定·128×8位內部RAM·32可編程I/O線3P2口:P2口是一個8位內部提供上拉電阻的雙向I/O口,4TTL門電流可以通過P2口緩沖器接收輸出,P2口被置1時,被內部電阻上拉為高,可作為輸入。并因此為輸入
12、時,外部電阻將P2口的管腳拉低時,將輸出電流。P2口被用于16位地址外部數(shù)據(jù)存儲器或者外部程序存儲器時,高八位由P2口輸出地址輸出。在給出地址1時,它利用內部電阻的上拉優(yōu)勢,當對外部的八位地址數(shù)據(jù)存儲器進行讀寫時,P2口將輸出特殊功能寄存器的內容。4電子時鐘的設計與實現(xiàn)P3口:P3口管腳是雙向I/O口帶8個內部上拉電阻,被用于接收輸出4個TTL門電流。當P3口被寫入1后,被作為輸出,它們內部被上拉電阻置為高電平。當被外部電阻下拉為低電平時,用作輸出,因為上拉的緣故,P3口將輸出電流。P3口也可作為89C51的一些特殊功能口,如下所示:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)
13、P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,其地址鎖存允許的輸出電平將用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳將用于輸入編程脈沖。在平時,ALE端將以不變的頻率周期,輸出正脈沖信號,此頻率是振蕩器頻率的1/6。因此,它將用作用于定時目的或對外部輸出的
14、脈沖。尤其要注意的是:每次用作外部數(shù)據(jù)存儲器時,要跳過一個ALE脈沖。另外,該引腳要被略微拉高。如果微處理器將在外部執(zhí)行狀態(tài)ALE禁止時,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期將兩次/PSEN有效。但是在訪問外部數(shù)據(jù)存儲器時,這兩次有效/PSEN信號不出現(xiàn)。/EA/VPP:當/EA保持低電平時,該期間外部程序存儲器,不管有沒有內部程序存儲器。注意加密方式為1時,/EA將被內部鎖定為RESET。XTAL1:內部時鐘工作電路的輸入及反向振蕩放大器的輸入。XTAL2:反向振蕩器的輸出。2.2 LED 數(shù)碼管2.2.1 LED數(shù)碼管的結構原理 數(shù)碼管是
15、一種把多個LED顯示段集成在一起的顯示設備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共端。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。8個發(fā)光二極管組成一位顯示器,其中字型“8”的各個筆劃ag由7個發(fā)光二極管構成,第8個發(fā)光二極管為一個小數(shù)點。當一定的正向電壓被施加在某段發(fā)光二極管上時,該段筆劃即亮;不加電壓則暗。外加限流電阻是為了保護各段LED不被損壞。如圖2-2為數(shù)碼管的結構圖,從左向右依次為引腳配置外形結構圖、共陰極結構圖 5和共陽極結構圖。圖2-2 數(shù)碼管
16、結構圖共陰極與共陽極7段LED顯示數(shù)字0F、符號及滅的編碼(a段為最低位,dp點為最高位)如表2-1所列。表2-1 數(shù)碼管段選表本設計采用共陽極數(shù)碼管作為電子時鐘的顯示器。2.2.2 LED顯示器接口及顯示方式 LED顯示器有靜態(tài)顯示和動態(tài)顯示兩種方式。靜態(tài)顯示就是某個字符由顯示器顯示時,相應的段恒定地導通或截至,直到顯示另一個字符為止。LED顯示器處于靜態(tài)顯示方式時,各位的共陰極接地;若接+5V電源,則為共陽極。每位的段選線(adp)分別與一個8位鎖存器的輸出口相連,顯示器中的各位相互獨立,而且一經(jīng)確定各位的顯示字符,將維持相應鎖存的輸出不變。正因為如此,靜態(tài)顯示器的亮度較高。這種顯示方式編
17、程容易,管理也較簡單,但占用I/O口線資源較多。動態(tài)顯示是在多位LED顯示時,為了簡化電路,降低成本,將所有位的段選線并連在一起,有一個8位I/O口控制。而共陰(或共陽)極公共端K由相應的I/O線控制,實現(xiàn)各位的分時選通。由于LED所有段選線皆由一個8位I/O口控制,因此,在每一瞬時LED會先是相同的字符。要想每位顯示的字符不同,各位LED就必須采用掃描方法63.1 硬件電路圖 3 硬件電路設計 電子時鐘的設計與實現(xiàn) 件掃描顯示。本設計采用了數(shù)碼管動態(tài)顯示的方式進行設計的。 延時一段時間,以造成視覺暫留效果,給人看上去每個數(shù)碼管總在亮。這種方式稱為軟輪流點亮,即某一位顯示字符只在每一瞬間使用。
18、在此瞬間,段選碼由段選控制I/O輸因人眼的視覺暫留時間為0.1s(100ms),所以每位顯示的間隔不必超過20ms,并保持出相應字符,則選通電平由位選擇控制I/O口送入,以保證相應字符在該位顯示。如此圖3-1 電子時鐘硬件電路圖 輪流,是每位分時顯示該位應顯示相應的字符。段選碼、位選碼每送入一次后延時1ms,根據(jù)硬件結構框圖畫出電子時鐘的硬件電路圖,硬件電路設計圖如圖3-1所示1。7按鍵的作用:其中K1用于小時加1,K2用于將小時減1,K3用于將分鐘加1,K4用于將分鐘減1;數(shù)碼管用于實時顯示當前時間信息。關于電路的說明如下:按鍵:4個獨立按鍵占用單片機的P1.4、P1.5、P1.6、P1.7
19、引腳,并且每個引腳上都分別外加了上拉電阻,保證在按鍵釋放后引腳上為可靠的高電平以便區(qū)分按鍵的按下和釋放狀態(tài)。顯示電路采用8位一體的數(shù)碼管1個,采用動態(tài)顯示方式,P0口送顯示段碼決定數(shù)碼管上顯示什么數(shù)據(jù),P2口送位選碼指定數(shù)碼管顯示。P0口上接的470電阻為限流電阻,用于調節(jié)數(shù)碼管的亮度;10K電阻為P0口的上拉電阻。其中數(shù)碼管選擇的是共陽極8位一體的LED數(shù)碼管,每個上面有8個(這8個數(shù)碼管的各個同名段在內部是連接好的,只是8個COM公共端是分開的,如圖3-1所示),7因此能顯示8位數(shù)據(jù),三極管采用PNP型PN5138,所以當輸出是低電平時三極管導通,對應的數(shù)碼管點亮,當輸出是高電平時三極管截
20、至,對應的數(shù)碼管熄滅。顯示電路將時、分、秒通過七段顯示器顯示出來。3.2 復位電路復位電路的作用是控制CPU在上電或復位過程中的復位狀態(tài): CPU在這段時間保持復位狀態(tài),而不是剛復位或一上電完畢就工作,防止CPU指令發(fā)出錯誤、操作執(zhí)行錯誤,也可以提高電磁兼容性能。單片機在啟動時都將需要復位,為了使CPU和系統(tǒng)各部件從初始的狀態(tài)開始工作。單片機的復位信號是從RST口輸入到芯片內的施密特觸發(fā)器中的。如果振蕩器穩(wěn)定后,并且系統(tǒng)處于正常工作狀態(tài)時, RST引腳上將有一個維持兩個周期的高電平 (24個振蕩周期)以上,則CPU可以將系統(tǒng)復位并響應。單片機系統(tǒng)有兩種復位方式:手動按鈕復位方式和上電自動復位方
21、式。本設計采用上電自動復位方式2。圖3-2 上電自動復位方式 8電子時鐘的設計與實現(xiàn)如圖3-2為89C51的上電自動復位方式,只要在RST引腳上接一電容至Vcc端,下接一個上拉電阻到地就可以。對于CMOS型單片機,因為在RST端內部有一個下拉電阻,因此可將外部電阻去掉,如果將外接電容減至1µF。上電自動復位的工作過程是在加電過程時,復位電路將通過電容加給RST引腳一個短暫的高電平,此高電平信號將隨著Vcc對電容的充電過程而逐漸回落,因此RST端的電容的充電時間將決定高電平持續(xù)時間。為了整個系統(tǒng)可以保證可靠地復位,RST端的將必須維持足夠長時間的高電平。上電時,Vcc的上升時間約為10
22、ms,而振蕩器的振蕩頻率將決定振蕩時間,如晶振頻率為10MHz,起振時間則為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖3-2所示的復位電路中,當Vcc掉電時,RST端電壓將快速下降到0V以下,但是,因為內部電阻電路的限制作用,此負電壓將不會對器件產(chǎn)生任何損害。其次,端口引腳將在復位期間處于隨機狀態(tài),復位后,系統(tǒng)將引腳端口置為全l態(tài)。如果系統(tǒng)得不到有效的復位,則程序計數(shù)器PC將會沒有一個合適的初值,因此,CPU可能會開始執(zhí)行程序從一個未被定義的位置2。圖3-3手動按鈕復位方式 如圖3-3手動按鈕復位方式所示,手動按鈕復位方式要在復位輸入端RST上加入高電平,需要人為完成。一般將采用在
23、RST端和正電源Vcc之間接一個按鈕的辦法。當把人為按鈕按下時,則Vcc的+5V電平信號將會直接加到RST端口。由于人的動作再快也會保持接達數(shù)十毫秒,因此,完全能夠滿足復位的要求4。復位電路的作用非常重要,雖然起結構簡單。單片機系統(tǒng)能不能正常運行,首先要檢查能否復位成功。初步檢查可用示波器探頭監(jiān)視RES引腳,按下復位鍵,觀察有沒有足夠幅度的波形輸出(瞬時的),改變復位電路阻容值也可以進行實驗。93.3 晶體振蕩電路單片機的晶體振蕩電路分為內部振蕩和外部振蕩兩種方式。如圖3-4為晶體振蕩電路內部方式和外部方式,本設計采用晶振電路的內部方式。圖3-4晶體振蕩電路內部方式和外部方式片內振蕩器的反相放
24、大器輸入端是XTAL1,則輸出端是XTAL2。選用外部振蕩器時,應直接在XTAL1加上外部振蕩信號,而XTAL2懸空。用內部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振頻率為12MHz,則時鐘頻率為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30PF左右。時鐘電路設計是采用的是系統(tǒng)的內部方式,即利用芯片內部的振蕩電路。AT89系列單片機內部有一個構成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。此放大器和作為反饋元件的片外晶體諧振器一塊構成自激振蕩器。外接晶體諧振器和電容C1和C2構成并聯(lián)的振蕩電路,將接在放大器的反饋回路中。外接電容的值沒有
25、嚴格的要求,但是電容的大小會影響震蕩器的穩(wěn)定性、震蕩器頻率的高低、溫度的穩(wěn)定性和起振的快速性。因此,這個系統(tǒng)電路的晶體振蕩器的值為12MHz,電容將盡可能的選擇陶瓷電容,電容值約為22F。在焊接刷電路板時,晶體振蕩器和電容應盡可能與單片機靠在一起安裝,用于減少寄生電容,以及更好地保證震蕩器可靠和穩(wěn)定地工作9。3.4 按鍵電路考慮到調整時間的方便性以及時間誤差的存在,采用獨立式鍵盤。為提高CPU的工作效率,采用中斷工作方式。獨立式按鍵是指一條輸入數(shù)據(jù)線被各按鍵相互獨立地接通,如圖3-5所示。這是最簡單的鍵盤結構,該電路為查詢方式電路。鍵盤的工作過程可分為兩步:第一步是CPU首先檢測鍵盤上是否有按
26、鍵被按下,第二步是識別哪一個鍵按下。檢查鍵盤上有無鍵按下可采用查詢工作方式:鍵盤上有無鍵按下是有列線送出全掃描字,然后讀入行線狀態(tài)來識別的。其方法是P1口輸出00H,10電子時鐘的設計與實現(xiàn)將所有列線置為低電平,并將行線電平狀態(tài)讀入累加器A中,如果有鍵按下,將會有一根行線被拉為低電平,因而使行輸入狀態(tài)不全為1。鍵盤中哪一個鍵按下是有列線逐列被拉為低電平,檢查行輸入狀態(tài),稱為逐列掃描。方法是:從PC口輸入入行線狀態(tài),如果全為1,則所按下之鍵不在此列中,如果不全為1,則在此列,并且是與0電平行線相交的交點上的那個鍵。如圖3-5為獨立按鍵電路圖10。圖3-5獨立按鍵電路圖4 軟件設計4.1 程序設計
27、步驟(1)計算計數(shù)初值。電子時鐘的最小單位是秒,但使用單片機定時器/計數(shù)器進行定時,即使按方式1工作,其最長定時時間也只能達131ms。鑒于此,可以把定時器的定時時間定位100ms,這樣,計數(shù)溢出10次即得到時鐘的最小單位秒;而10次計數(shù)可用軟件方法實現(xiàn)。假定使用定時器T1,以工作模式1進行100ms的定時。如果單片機時鐘頻率為6MHz,為得到100ms定時,設計初值為X,則(216-X)12 -3=10010s6610 HzX=155536D=001110010110000B=3CB0H(2)采用中斷方式進行溢出次數(shù)的累計,計滿10次即可得到秒計時。從秒到分和從分到時的計時是通過累加和數(shù)值比
28、較實現(xiàn)的。3設計主程序、按鍵子程序、處理子程序、中斷子程序、延時子程序和顯示子程序(4)電子時鐘的顯示及顯示緩沖從端口輸出3。4.2 電子時鐘的程序設計電子時鐘分為主程序MAIN、按鍵子程序KEY、處理子程序PROCESS、顯示子程 11序DISPLAY、中斷服務子程序、延時子程序。下面分別介紹幾個子程序的程序設計過程:4.2.1 主程序 在程序執(zhí)行過程中,首先執(zhí)行初始化程序,將一切工作準備就緒之后,進去到一個循環(huán)執(zhí)行的主程序,如圖4-1所示為主程序流程圖圖4-1主程序流程圖 根據(jù)主程序流程圖編寫相應的主程序:MAIN: CALL KEY ;調按鍵子程序KEYCALL PROCESS ;調數(shù)據(jù)
29、處理子程序PROCESSCALL DISPLAY ;調顯示子程序DISPLAYSJMP MAIN ;跳轉到MAIN標號處4.2.2 按鍵和中斷服務子程序 下面分別介紹了按鍵子程序和中斷服務子程序的設計過程:(1)按鍵子程序:定時調用一個按鍵子程序,完成對按鍵是否按下的判斷工作,如果有按鍵按下,則根據(jù)按下的按鍵做相應的處理,如果沒有按鍵按下就繼續(xù)執(zhí)行其它程序,如顯示子程序。按鍵程序由KEY子程序完成。按鍵子程序接P1.4P1.7口,P1.412電子時鐘的設計與實現(xiàn)接K1表示小時加1,P1.5接K2表示小時減1,P1.6接K3表示分鐘加1,P1.7接K4表示分鐘減1。如圖4-2所示為按鍵子程序的流
30、程圖圖4-2按鍵子程序流程圖 根據(jù)流程圖編寫按鍵子程序如下所示:KEY:JNB P1.4,HOUURJIA ;P1.4引腳是低電平就跳轉到HOURJIA處JNB P1.5,HOUURJIAN ;P1.5引腳是低電平就跳轉到HOURJIAN處 JNB P1.6,MINUTEJIA ;P1.6引腳是低電平就跳轉到MINUTEJIA處 JNB P1.7, MINUTEJIAN ;P1.7引腳是低電平就跳轉到MINUTEJIN處FANHUI: RET ;子程序返回HOURJIA: CALL DELAY ;調用延時程序目的是跳過按鍵抖動期JB P1.4,FANGHUI ;如果P1.4是高電平就跳到FAN
31、HUI處JNB P1.4,$ ;如果P1.4是低電平就停在當前位置等鍵釋放INC HOUR ;把小時位加1RETHOURJIAN: CALL DELAY ;調用延時程序目的是跳過按鍵抖動期JB P1.5,FANGHUI ;如果P1.5是高電平就跳到FANHUI處JNB P1.5,$ ;如果P1.5是低電平就停在當前位置等鍵釋放DEC HOUR ;把小時位減113RETMINUTEJIA: CALL DELAY ;調用延時程序目的是跳過按鍵抖動期JB P1.6,FANGHUI ;如果P1.6是高電平就跳到FANHUI處JNB P1.6,$ ;如果P1.6是低電平就停在當前位置等鍵釋放INC MI
32、NUTE ;把分鐘位加1RETMINUTEJIAN: CALL DELAY ;調用延時程序目的是跳過按鍵抖動期JB P1.7,FANGHUI ;如果P1.7是高電平就跳到FANHUI處JNB P1.7,$ ;如果P1.7是低電平就停在當前位置等鍵釋放DEC MINUTE ;把分鐘位減1RET(2)中斷服務子程序:如圖4-3所示為中斷服務子程序流程圖,要求每隔1s秒位加1,且在到60s時要把秒位清零,同時分鐘位加1,如果分鐘位到了60min時要將時位加1,同時將分位清零,而且在時位到了24h要將時位清零。圖4-3中斷服務子程序流程圖 根據(jù)中斷服務子程序流程圖編寫程序如下:14電子時鐘的設計與實現(xiàn)
33、TIMER0: PUSH ACC ;把A中的數(shù)據(jù)壓入棧保護起來INC 30H ;把30H單元的數(shù)加1MOV A,30H ;30H單元中的數(shù)據(jù)復制給ACJNE A,#10,JIXU ;A中的數(shù)據(jù)與10比較不相等就跳轉到JIXU處MOV 30H,#0 ;(如果30H單元計滿10)給30H賦值0INC SECOND ;把SECOND單元的秒數(shù)加1MOV A,SECOND ;SECOND單元中的數(shù)據(jù)復制給ACJNE A,#60,JIXU ;A中的數(shù)據(jù)與60比較不相等就跳轉到JIXU處MOV SECOND,#0 ;給秒SECOND賦值0INC MINUTE ;把MINUTE單元的分數(shù)加1MOV A,MI
34、NUTE ;MINUTE單元中的數(shù)據(jù)復制給ACJNE A,#60,JIXU ;A中的數(shù)據(jù)與60比較不相等就跳轉到JIXU處MOV MINUTE,#0 ;給分MINUTE賦值0INC HOUR ;把HOUR單元的秒數(shù)加1MOV A,HOUR ;HOUR單元中的數(shù)據(jù)復制給ACJNE A,#24,JIXU ;A中的數(shù)據(jù)與24比較不相等就跳轉到JIXU處MOV HOUR,#0 ;給小時HOUR賦值0JIXU: POP ACC ;把剛才壓入棧中的數(shù)據(jù)還給AMOV TH0,#3CH ;給計數(shù)容器的高8位TH0賦初始值3CH MOV TL0,#B0H ;給計數(shù)容器的低8位TL0賦初始值B0HRETI ;中斷
35、子程序返回主程序4.2.3 顯示和處理子程序 下面分別介紹了顯示子程序和處理子程序的設計過程:(1)顯示子程序:由于在本設計中采用的是動態(tài)顯示方式,因此單片機在能夠完成前面的任務的情況下,還要去執(zhí)行一個顯示程序,保證數(shù)碼管不熄滅,看上去一直在顯示當前的時間信息,這部分由顯示子程序DISPLAY完成8。顯示子程序如下所示:DISPLAY: MOV A,HOURSHIWEI ;小時的十位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A MOV P0,A ;把顯示段碼送到P0CLR P2.7 ;把P2.7置低電平,對應的三極管導通 CALL DELAY ;調延時程序S
36、ETB P2.7 ;將P2.7置高電平,對應三極管截止對應數(shù)碼管滅MOV A,HOURGEWEI ;小時的個位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A 15MOV P0,A ;把顯示段碼送到P0CLR P2.6 ;把P2.6置低電平,對應的三極管導通 CALL DELAY ;調延時程序SETB P2.6 ;將P2.6置高電平,對應三極管截止數(shù)碼管滅 MOV P0,#0BFH ;給P0口送一個數(shù)據(jù)BFH,顯示一個橫杠 CLR P2.5 ;把P2.5置低電平,對應的三極管導通 CALL DELAY ;調延時程序SETB P2.5 ;將P2.2置高電平,對應三
37、極管截止數(shù)碼管滅MOV A,MINUTESHIWEI ;分鐘的十位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A MOV P0,A ;把顯示段碼送到P0CLR P2.4 ;把P2.4置低電平,對應的三極管導通 CALL DELAY ;調延時程序SETB P2.4 ;將P2.4置高電平,對應三極管截止數(shù)碼管滅MOV A,MINUTEGEWEI ;分鐘的個位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A MOV P0,A ;把顯示段碼送到P0CLR P2.3 ;把P2.3置低電平,對應的三極管導通 CALL DELAY ;調延時程
38、序SETB P2.3 ;將P2.3置高電平,對應三極管截止數(shù)碼管滅MOV P0,#0BFH ;給P0口送一個數(shù)據(jù)BFH,顯示一個橫杠 CLR P2.2 ;把P2.2置低電平,對應的三極管導通 CALL DELAY ;調延時程序SETB P2.2 ;將P2.2置高電平,對應三極管截止數(shù)碼管滅MOV A,SECONDSHIWEI ;秒的十位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A MOV P0,A ;把顯示段碼送到P0CLR P2.1 ;把P2.1置低電平,對應的三極管導通 CALL DELAY ;調延時程序SETB P2.1 ;將P2.1置高電平,對應三極
39、管截止數(shù)碼管滅MOV A,SECONDGEWEI ;秒的個位復制給AMOVC A,A+DPTR ;到A+DPTR對應的地方找顯示段碼復制給A MOV P0,A ;把顯示段碼送到P0CLR P2.0 ;把P2.0置低電平,對應的三極管導通CALL DELAY ;調延時程序16電子時鐘的設計與實現(xiàn)SETB P2.0 ;將P2.0置高電平,對應三極管截止數(shù)碼管滅 RET(2)處理子程序:要對最新的當前時鐘數(shù)據(jù)進行處理,就需要處理子程序。如當前時間為12 30 06,要實現(xiàn)這個數(shù)據(jù)在數(shù)碼管上顯示,需要將時、分和秒3個數(shù)據(jù)分拆成十位和個位2個數(shù),如秒位的06需要拆成0和62個數(shù),這部分由PROCESS子
40、程序完成,實現(xiàn)的原理是分別用時、分秒這3個數(shù)據(jù)除以10,將得到的十位和個位分別存在2個獨立的存儲器里,這樣就實現(xiàn)了將一個數(shù)據(jù)分開的目的。處理子程序PROCESS程序設計如下:PROCESS: MOV A,SECOND ;把SECOND中的秒值復制給AMOV B,#10 ;給寄存器B復制10DIV AB ;A除以B,結果存入A中,余數(shù)存入B中 MOV SECONDSHIWEI,A ;結果即秒的十位復制給SECONDSHIWEI MOV SECONDGEWEI,B ;結果即秒的個位復制給SECONDSHIWEIMOV A,MINUTE ;把MINUTE中的分值復制給AMOV B,#10 ;給寄存器
41、B復制10DIV AB ;A除以B,結果存入A中,余數(shù)存入B中 MOV MINUTESHIWEI,A ;結果即分的十位復制給MINUTESHIWEI MOV MINUTEGEWEI,B ;結果即分的個位復制給MINUTESHIWEIMOV A,HOUR ;把HOUR中的秒值復制給AMOV B,#10 ;給寄存器B復制10DIV AB ;A除以B,結果存入A中,余數(shù)存入B中 MOV HOURSHIWEI,A ;結果即時的十位復制給HOURSHIWEI MOV HOURGEWEI,B ;結果即時的個位復制給HOURSHIWEI RET程序清單見附錄A。5 系統(tǒng)仿真5.1 PROTUES軟件介紹Pr
42、oteus軟件是Labcenter Electronics公司的一款電路設計與仿真軟件,它具有和其他EDA工具一樣的原理圖編輯、印刷電路板設計及電路仿真功能,最大的特色是其電路仿真的交互化和可視化。通過Proteus的VSM(虛擬仿真模式),用戶可以對模擬電路、數(shù)字電路、模數(shù)混合電路、單片機以及外圍元器件等電子線路進行系統(tǒng)仿真。Proteus軟件由ISIS和ARES兩部分構成,其中ISIS是一款便捷的電子系統(tǒng)原理設計和仿真平臺軟件,ARES是一款高級的PCB布線編輯軟件。Proteus ISIS是一種操作簡單而又功能強大的原理圖編輯工具,它運行于Windows操作系統(tǒng)上,可以仿真、分析各種難過
43、模擬器件和集成電路,該軟件的特點有:實現(xiàn)單 17片機仿真和SPICE電路仿真的結合;支持主流單片機系統(tǒng)的仿真;提供軟件調試功能;具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和SPICE分析于一身的電路設計和仿真軟件,功能極其強大。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室5。5.2 電子鐘系統(tǒng)PROTUES仿真在硬件電路和電子時鐘的程序設計完成以后,然后在Proteus ISIS中繪制出電路原理圖。下面為電子時鐘的仿真步驟:(1)打開Keil,選擇Project/New project命令,在彈出的Create New project對話框新建K
44、eil項目shizhong.uv2。(2)選擇CPU為ATMEL中的AT89C51單片機。(3)編輯好源程序(見程序清單),編輯好后保存。(4)在Project Workspace窗口中,將shizhong.asm文件加入到Source Groupl中。(5)在 Project Workspace窗口中Target1文件夾上單擊右鍵,在彈出的窗口中選擇Output選項卡,并選中Cerate HEX File 選項。將Debug選項卡中的Use: Proteus VSM Simulator 選中,然后選中Proteus的Debug/Use Remote Debug Monitor 選項,以方便之
45、后的Keil與Proteus ISIS聯(lián)機調試。(6)在Keil菜單中選中Project/Build Target 選項,編譯匯編程序,并產(chǎn)生HEX文件。如果有提示錯誤,則修改后再編譯。(7)將Keil產(chǎn)生HEX文件加載到Proteus ISIS繪制的硬件電路中。雙擊AT89C51,在Program File 欄中選擇shizhong.hex文件6。單擊OK按鈕后,保存設計。實現(xiàn)的功能:按鍵調時、按鍵調分,通過共陽極數(shù)碼管顯示相對應的時間,當上電時,時鐘自動復位。元件清單:單片機:AT89C51按鍵:BUTTON電阻:RES電容:CAP晶振:CRYSTALLED數(shù)碼管:7SEG-MPX8-CA
46、-BLUE(CA:共陽)接地:GROUND電源:POWER三極管:PN513818電子時鐘的設計與實現(xiàn)單擊運行按鈕運行,得到如圖5-1所示為電子時鐘仿真圖截圖。圖5-1 電子時鐘仿真圖調節(jié)按鈕調節(jié)時間的顯示,從而使時間顯示的更加準確,因為本設計采用的是上電自動經(jīng)過仿真結果分析得到,本設計能夠實現(xiàn)最基本的時間顯示功能,并且能通過4個復位,所以每次啟動時的顯示時間為12-00-00,然后進行時間調節(jié)。196 總結本設計先從整體論述了設計電子時鐘的大致思路,然后分別介紹了幾個在本設計中應用到的元器件的結構和功能。然后繪制出整體的硬件電路圖,采用劃分模塊的方法,將硬件電路劃分為按鍵電路、復位電路、晶體
47、振蕩電路等,依次介紹了這幾種電路結構和功能,由于顯示電路部分為了編程的方便,采用了三極管截至和導通的方式,因此未做詳細介紹,只是在整體硬件電路圖下做了簡單介紹。而軟件部分,首先介紹整個程序介紹的步驟,然后依據(jù)要實現(xiàn)的功能,劃分為:主程序MAIN、按鍵子程序KEY、處理子程序PROCESS、顯示子程序DISPLAY、中斷服務子程序、延時子程序等。最后將各個子程序整合到一起,組成時鐘電路的程序。當硬件電路和時鐘電路的程序設計完畢之后,根據(jù)整體的硬件電路圖用Proteus中的ISIS繪制的硬件電路圖,然后將編譯好的程序輸入單片機中進行仿真。通過仿真使時間在數(shù)碼管上顯示出來,同時通過四個調時按鍵調節(jié)時
48、鐘得到想要的時間。本設計雖然最終實現(xiàn)了電子時鐘的基本功能,但是功能較為單一。20電子時鐘的設計與實現(xiàn)參考文獻:1 范紅剛,魏學海.51單片機自學筆記 M.1版.北京:北京航空航天大學出版社,2010:99-108.2 李朝清.單片機原理及接口技術 M.3版.北京:北京航空航天大學出版社,2012:17-39.3 朱紅,劉景萍.微機原理與接口技術M.1版.北京:清華大學出版社,2012:140-144.4 江志紅.51單片機技術與應用系統(tǒng)開發(fā)案例精選 M.1版. 北京:清華大學出版社,2008:58-85.5 朱清慧,張鳳蕊.Proteus教程電子線路設計、制版與仿真 M.1版.北京:清華大學出
49、版社,2008:36-40.6 蔣輝平,周國雄.基于Proteus的單片機系統(tǒng)設計與仿真 M.1版.北京:機械工業(yè)出版社,2009:11-17.7 閻石.數(shù)字電子技術基礎 M.5版.北京:高等教育出版社,2011:109-135.8 宋禮國.多功能電子時鐘的硬件設計 J.中國科技博覽,2009(1):208-217.9 馬慶勇.基于單片機的多功能時鐘電路 J.電子科技,2009(3):56-59.10 楊居義,楊堯.單片機課程設計指導 M.1版.北京:清華大學出版社,2009:117-128.21附錄A 程序清單SECOND EQU 40H ;給內存RAM空間40H單元起名SECONDMINU
50、TE EQU 41H ;給內存RAM空間41H單元起名MINUTEHOUR EQU 42H ;給內存RAM空間42H單元起名HOURSECONDGEWEI EQU 43H ;給43H單元起名SECONDGEWEI存秒的個位SECONDSHIWEI EQU 44H ;給44H單元起名SECONDSHIWEI存秒的十位 MINUTEGEWEI EQU 45H ;給45H單元起名MINUTEGEWEI存分的個位 MINUTESHIWEI EQU 46H ;給46H單元起名MINUTESHIWEI存分的十位 HOURGEWEI EQU 47H ;給47H單元起名HOURGEWEI存小時的個位HOURS
51、HIWEI EQU 48H ;給48H單元起名HOURSHIWEI存小時的十位ORG0000H ;復位時存續(xù)從此開始SJMP START ;跳到START進行初始化ORG 000BH ;定時器0中斷入口AJMP TIMER0 ;跳轉到TIMER0ORG 0030H ;初始化程序從30H開始-初始化 START- START: MOV SP,#60H ;設置堆棧MOV SECOUNT,#0 ;給秒存儲單元SECOND賦初始值0MOV MINUTE,#0 ;給分存儲單元MINUTE賦初始值0MOV HOUR,#12 ;給小時存儲單元HOUR賦初始值12MOV DPTR,#TAB ;給數(shù)據(jù)指針賦值,將DPTR指向TAB數(shù)據(jù)表頭處MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度食堂工作人員健康體檢及福利聘用合同
- 二零二五年度汽修廠與汽車維修配件研發(fā)中心合作協(xié)議
- 二零二五年度養(yǎng)老公寓入住與子女共同維護社區(qū)和諧協(xié)議
- 二零二五年度游艇俱樂部個人保潔合同
- 二零二五年度房地產(chǎn)項目銷售代理及客戶關系維護合同
- 綠茶茶園承包經(jīng)營合同(2025年度)含茶文化體驗項目
- 二零二五年度個人車輛抵押保險理賠合同
- 二零二五實習律師實習合同(反壟斷與反不正當競爭)
- 2025年度藝人經(jīng)紀違約金及違約行為處理合同
- 二零二五年度房產(chǎn)交易傭金糾紛解決合同
- 靜脈血栓栓塞病(VTE)防治體系建設
- 《體育保健學》課件-第七章 運動性疲勞
- 榮昌壩扶壁式擋土墻施工方案1
- 幼兒園多媒體課件設計與制作第2版(高職學前教育專業(yè))全套教學課件
- 動力電池包pack控制計劃
- 南寧水療市場調研分析報告
- 養(yǎng)老機構員工考核表
- GB/T 10058-2023電梯技術條件
- 重慶停電更換絕緣子施工方案
- 2023電化學儲能電站儲能協(xié)調控制器技術規(guī)范
- OHSMS職業(yè)健康安全專家講座
評論
0/150
提交評論