07電科電子檔涂志二稿_第1頁
07電科電子檔涂志二稿_第2頁
07電科電子檔涂志二稿_第3頁
07電科電子檔涂志二稿_第4頁
07電科電子檔涂志二稿_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄摘要IIAbstractIII第一章緒論 .11.1研究目的及意義.11.2國內外研究的現狀.11.3數字鐘.2第二章 硬件設計 .32.1單片機介紹.32.2LED 顯示器 .52.3蜂鳴器.62.4 鍵盤 .72.5 譯碼電路 .7第三章 電路介紹 .83.1 時鐘電路: .83.2 復位電路 .83.3 計數器/定時器原理.9第四章硬件電路 .104.1 設計介紹 .104.2 硬件電路圖.14第五章程序 .175.1 程序流程圖 .175.2 匯編語言.18參考文獻 .19附錄 .20附錄 1數字鐘硬件電路圖 .20附錄 2程序 .21致謝 .32基于 AT89C51 單片機數字鐘

2、摘要隨著現活節奏的逐漸加快,人們對時間的運用和把握顯得越發的重要。能更為高效的解決事情會使在競爭激烈的社會中取得先機。本文研究的重點在于通過 MCS-51 單片機控制的數字鐘。對 AT89C51 單片機為主的控制器,整個單片機系統,LED 顯示,鍵盤,蜂鳴器等附件進行深入的學習,研究后,再對各個硬件模塊分析,調試,安裝,最后編寫一段相關的匯編語言程序輸入單片機中,使單片機數字鐘,完成整個設計。設計出來的電子鐘能夠實現的功能為時間的修改,顯示當前時間,鬧鈴,通過鍵盤來實現對時間的調校和鬧鈴的設置。將多種功能集于一身,是單片機的主要優勢之一,除此外,它相對的運算速度和精確度都比較高,能夠滿足對時鐘

3、的一切要求。本系統中大部分功能都是由程序控制完成,硬件電路的復雜性降低了很多。采用此種方法來實現數字鐘,也符合當代數字鐘設計的主流趨勢。關鍵字:數字鐘 ;AT89C51 單片機 ;LED 顯示 ;鬧鈴AT89C51 microcontroller based digital clockAbstractNowadays the tempo of our life ising faster and faster. Its important to us to goodat using time. Ifwe can make things more efficient solution to our

4、 societyodays highlycompetitive head start.The focus of this pr is the digital clock which is controlled by MCS-51 MCU. ByAT89C51 microcontroller-based controller, the microcontroller in the system, LED display,keyboard, buzzer-depth look at other acsories for study, research, and thenysis of thevar

5、ious hardware modules, debugging, installation, and finally write a related to enter the microcontroller assembly language program to complete the entire design.The time clock designed by us can achieve such as change, display, alarm, through thekeyboard to adjust and set the alarm time. One of the

6、main advantages of microcontroller isthere are a variety of functions rolledo one. Besides , it is relatively the speed and highaccuracy, we can meet all the requirements on the clock. Most of the functionality of thesystem are procedures complete control, do reduce the complexity of the circuit a l

7、ot. So theuse of suethods to achieve this digital clock combined contemporary design trends.Keywords :digital clock ,AT89C51 microcontroller ,LED display ,alarm第一章緒論1.1研究目的及意義數字鐘的設計方法是多種多樣的,用小規模集成電路組成,利用電子時鐘DS1308 等配上顯示電路,還有就是利用單片機通過程序控制。基于單片機的數字鐘設計看似是對數字鐘來進行制作,實際上主角確是單片機,整篇也是圍繞著單片機在數字鐘系統中的運用來進行研究的。

8、如今的電子產品都逐漸在向著智能化,輕便,簡潔等方面發展。單片機由于其集成度高,體積小,高功率,高性能等特點集于一身,使得它將會在以后成為各類電子產品主要的控制工具。伴隨著這種趨勢的發展,對單片機更深入的研究和學習都顯得很有必要了,通過基于單片機數字鐘的設計能使對 51 型單片機能有更進一步的了解,可以從中找到許多單片機的特性和優點。單片機在各類電子產品中都有被使用,從航空航天事業到汽車上各種儀表的控制,從計算機的數據傳輸到工業自動化過程的控制和數據處理,以及生活中廣泛使用的各種儲蓄卡、取款機等,這些都離不開單片機工作。單片機的使用將會讓的生活更加的多姿多彩并且更加的智能化。所以,現在對單片機的

9、研究和學習都是很有意義的,本次的也是希望通過電子鐘的設計能對單片機有更為直觀的認識和體會,最終從實踐中鞏固理論知識。1.2國內外研究的現狀1976 年EL 公司研制出 MCS-48 系列 8 位單片機,這標志著第一臺單片機的問世。在 20 世紀 80 年代初期,el 公司在原有 MCS-48 系列單片機的基礎上,推出了 MCS-51 系列 8 位高檔單片機。MCS-51 系列單片機無論是片內 I/O 口功能,RAM容量和系統擴展方面都有了很大的提高。隨著單片機的發展趨勢,現在研究的基于單片機的數字鐘也擺脫了原有的功能單一,體積龐大,走時不精確的缺點逐漸變得低功耗,功能更為的完善,體積變小,成本

10、也在降低。現在所見到的數字鐘已經能夠顯示的信息,也增添了許多的功用,如:電子的日歷,電子的鬧鐘,溫度計,濕度計等。這些都和單片機的升級是分不開的。1.3數字鐘數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,一般由振蕩器、分頻器、譯等幾部分組成。其中, 振蕩器和分頻器組成標準的秒信號發生器, 由不同進制的計數器、譯和顯示器組成計時系統。把秒信號送入計數器進行計數, 把累積的結果以“時”、“分”、“秒”的數字顯示出來。“小時”的顯示由二十四進制計數器、譯和顯示器,“分”、“秒”的顯示分別由六十進制計數器、譯和顯示器組成1。高精度的計時工具大多數都使用了石英晶體振蕩器產生原始的時鐘頻率,例如:電

11、子鐘、石英鐘、石英表都采用了石英技術,因此走時精度高,穩定性好,使用方便,不需要經常調試,數字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差 2。在進入電子時代后,相對于機械時鐘,更為直觀,準確的電子鐘得到了廣大人群的青睞,無數大小不一,外觀不同的電子式時鐘充斥著大街小巷,這給人們的生活帶來了不小的便利。由于數字集成電路和石英晶體振蕩器的使用的日趨成熟與廣泛,都使數字鐘無論從使用還是從精確等角度都將超過老式的時鐘。現如今,電子鐘的使用率是越來越高,它給人們帶來的便利也越來越多,使人們的生活也越來越離不開它了。第二章 硬件設計2.1單片機介紹

12、單片機具有體積小,價格便宜,可靠性高等特點,除了沒有 I/O 系統外,幾乎可以稱之為計算機。它把計算機的基本微型化,并集成到一塊上,通常片內都含有處理器(CPU),數據器(RAM),程序器(ROM、EPROM、FLASHROM)、還有定時器/計數器,總線如 RS-232 串行通信口、系統時鐘、中斷控制、系統總線等3。但在功能性方面比家用機要弱了不少,相對的價格也低廉了不少,適合大量的生產和使用。單片機從采用 PMOS 工藝逐漸發展到現在的 CMOS 半導體工藝技術。慢慢的提高了其集成度,使其功耗大大的降低,工作電壓的范圍也在隨之加寬。伴隨著電子時代的到來,身邊被各種電子產品充斥著,琳瑯滿目的電

13、子儀器、儀表,洗衣機、電視機等,在其中都多少的加入了單片機的成分,除此外在的社會對電子產品的要求逐漸向小,快,靈發展,由于其價格低廉,體積小等特點,更加推動了單片機將會在今后大有可為。單片機系統結構簡單,使用方便,實現功能模塊化,更主要的是其更適合系統,所謂的系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的計算機系統4。AT89C51單片機為很多控制系統提供了一種靈活性高且價廉的方案。這些優勢都使單片機的使用更加廣泛。AT89C51 是一種帶 4K 字節閃存可編程可擦除只讀器的低電壓、高性能 CMOS8 位微處理器,俗稱單片機

14、。單片機的可擦除只讀器可以反復擦除 1000 次。該器件采用 ATMEL 高密度非易失器制造技術制造,與工業標準的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍器組合在單個中,ATMEL 的AT89C51 是一種高效微控制器5。除此外,它還是一款單片封裝的微控制器,適合多要求高集成度、低成本的場合。各端口功能:VCC:用于電壓的提供GND:用于接地P0 口:P0 口為一個 8 位漏級開路雙向 I/O 口,每個引腳可吸收 8TTL 門電流。當P0 口的管腳第一次寫 1 時,被定義為輸入。P0 能夠用于外部程序數據器,它可以被定義為數據/地址的第八位。在 FIASH

15、編程時,P0 口作為原碼輸,當 FIASH進行校驗時,P0 輸出原碼,此時P0 外部必須被拉高。P1 口:P1 口是個帶上拉電阻的 8 位雙向 I/O 口,P1 口的緩沖器能夠接收輸出 4 個 TTL 門電流。當 P1 口的管腳被寫入“1”,當 P1 口被外部下拉為低電平時,輸出電流,由于和校驗時,P1 口將會作為第八位的地址來接收。上拉會為高,可被用作為輸入,上拉的緣故。在 FLASH 編程P2 口:P2 口為一個上拉電阻的 8 位準雙向口,P2 口的緩沖器能接收,輸出4 個 TTL 門電流,當 P2 口被寫入“1”時,其管腳被上拉電阻拉高,且作為輸入。并作為輸入時,P2 口的管腳會被外部拉

16、低,將輸出電流。由于上拉的緣故。P2器或 16 位地址外部數據器進行存取時,P2 口輸出地址口當用于外部程序的高八位。在給出地址“1”時,它將會利用上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內容。P3 口:P3 口是一個帶有上拉電阻的 8 為準雙向 I/O 口,且是個雙功能口。當作為第能口使用時,工作原理和 P1,P2 口差不多,但第二輸出功能線保持為,使與非門 N3 對鎖存器輸出(Q 端)暢通。RST:復位輸入。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的時間。XTAL1:反向振蕩放大器的輸入及XTAL2:來自反向振蕩器的輸出。時鐘工作電路的輸入。

17、運算器:實現 4 位、8 位、16 位數據完成算術和邏輯運算。累加器:8 位的寄存器,其中控制器:計算機的控制指揮存放一個操作數、中間結果和運算結果。,使計算機的每個能協調工作。寄存器:用于存放程序和數據。處理器:MCS-51 的 CPU 能處理 8 位二進制數或代碼。定時器/計數器:8051 有 2 個 16 位的定時器/計數器,用于實現定時或計數的功能,并以其定時或計數的結果對計算機進行控制。定時的時候靠分頻時鐘頻率計數實現,做計數器時,對P3.4(T0)或P3.5(T1)端口的低電平脈沖計數。中斷:MCS-51有 5 個中斷源,其中外中斷 2 個,定時中斷 2 個,串行中斷 1個,全部中

18、斷分為高級和低級共兩個優先級別。表 2.1P3 口還能作為 AT89C51 的第二功能端口引腳第二功能P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6P3.7RXD(串行輸)TXD(串行輸出口) 0(外部中斷 0)1(外部中斷 1) T0(記時器 0 外部輸入)T1(記時器 1 外部輸入)WR(外部數據RD(外部數據器寫選通)器讀選通)2.2 LED 顯示器本次設計的數字鐘將采用 7 段 LED 顯示。它的圓點發光二極管組成。可以顯示從 0-9 等 10 個數字。由 7 個條形發光二極管和一個LED 即發光二極管,英文全稱為 Light Emitting Diode。單獨的

19、發光二極管便是一個最簡單的 LED, LED 數碼管是由若干個發光二極管組成的顯示字段的顯示器件,一般簡稱為數碼管。在 7 段 LED 中通常分為靜態顯示原理和動態顯示原理,靜態顯示是指,當數碼管顯示某個字符的時候,相應的字段的發光二極管恒定的導通或截至,燈的亮、滅不變,在這種情況下,多個 LED 是同時顯示的。動態顯示原理是指逐個循環點亮各位顯示器,雖然在任一時刻只有一位顯示器被點亮,但由于時間間隔較短,且人眼具有視覺暫留效應,因此看起來與全部顯示器一次持續點亮完全一樣。為了實現LED動態掃描,除了要給顯示器提供段(字形代碼)的輸入,還要對顯示器加位選擇控制,即段選和位選5。程序中采用掃描顯

20、示的方式,即在同一時刻,只使用到一個LED顯示數據。通過為共陰極LED或是共陽極LED的公共引腳引入低電平或,從而選擇某個LED顯示。如此循環,使每個LED顯示預先設定好的應顯示的數據,并進行適當的延時,形成視覺暫留效果。這樣便可以達到動態顯示的目的。LED 數碼有共陽極和共陰極兩種,當把這些 LED 發光二極管的正極接到一起(拼成一個 “8”字的形狀再加上一個小數點“dp”)而作為一個引腳,就叫共陽的,相反的,負極接到一起,就叫共陰的。當應用時,這個引腳就分別的接 VCC 和 GND。把多個這樣的數碼管字裝在一起就成了多位的數碼管了。圖 2.1 共陽數碼管引腳圖 2.2 共陰數碼管引腳本次設

21、計采用的是 6 位 7 段 LED 共陽數碼管,通過動態顯示來完成數字鐘系統的顯示模塊,通常的 7 段顯示器的有 8 個發光二極管,在應用時將公共接地線 GND上,當某一字段發光二極管的陽極為低電平時,相應字段就點亮,當某一字段的陽極為時就會熄滅。通過編程的方式來控制發光二極管陽極的電平狀況,控制數碼管的相應字段的亮和滅。2.3蜂鳴器蜂鳴器是一種結構的電子訊響器,采用直流電壓供電,被廣泛的用于、器、定時器等產品中。蜂鳴器分為有源蜂鳴器和無源蜂鳴器,有源蜂鳴器直接接上額定電源(新的蜂鳴器在上都有注明)就可連續;而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能。蜂鳴器的工作電流一般比較大

22、,導致單片機的I/O 口是無法直接驅動的,所以要利用放大電路來驅動,一般使用三極管來放大電流就可以了。此設計采用的是有源蜂鳴器,這樣可以簡化的設計,只要將其的倆個引腳接上工作電壓便可,聲音的頻譜范圍在幾十到幾千HZ。蜂鳴器接著P1.7的引腳上,該腳接上上拉電阻,并由三極管作放大,當設定的時間到達時P1.7給出使三極管導通,蜂鳴器通電后就發出有節奏的提示音,未到達時間,P1.7給出低電平,蜂鳴器不發音6。2.4鍵盤設計中能采取兩種鍵盤方式,一種是用采用矩陣式的鍵盤,在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。式

23、采用獨立式鍵盤。獨立式按鍵是直接用I/O 口線另的單個按鍵電路,其特點是每個按鍵單獨占用一根 I/O 口線,每個按鍵的工作不會影響其它 I/O 口線的狀態。但當所需按鍵數量多,會占用過多的I/O 口線。本次設計因為所用到的鍵的數量不多,只需要用到 5 個按鍵,所以采用第二種獨立式的鍵盤。2.5 譯碼電路為了區分一系列不同的事物,將其中的每一個事物用一個二進制代碼表示的過程稱為編碼。實現編碼功能的電路稱為譯。在二值邏輯電路中,信號都是以高、低電平的形式給出的。因此,編的邏輯功能就是把輸入的每一個高、低電平信號編成一個對應的二進制代碼7。它可以將輸入的代碼狀態轉換成相應的輸出信號,再以高或者低電平

24、的形式在各自的輸出端口用于送出,以表示 CPU 所發出的信息。要通過譯碼電路將單片機中所需顯示的信號轉成 7 段數碼管字型的輸出信號,再由數碼管將它們顯示出來,以便了解。此次設計中,所采用的譯為 74LS47,它是輸出低電平有效的 7 段字型譯,并且可以用于驅動共陽極數管,再在其中加以電阻,以防電流過大將數碼管燒壞,譯碼電路。第三章電路介紹3.1時鐘電路:時鐘電路 時鐘電路在計算機系統中起著非常重要的作用,是保證系統正常工作的基礎。一個單片機應用系統中,時鐘有兩方面的含義:一是指為保障系統正常工作的基準振蕩定時信號,主要由晶振和電路組成,晶振的作用是產生時間信號,數字鐘的頻率和確保穩定度,晶振

25、頻率的大小決定了單片機系統工作的快慢;二是指系統的標準定時時鐘,即定時時間8。本設計的時鐘電路采用的是時鐘方式,既是在 XTAL1 和 XTAL2 兩端接上晶體或陶瓷振蕩器。這次的設計中將采用在 XTAL1 和 XTAL2 兩端跨接 12MHZ 晶體振蕩器,振蕩電路就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶振能在 1.2MHZ-12MHZ 之間選擇,電容的大小在 30PF 左右,電容的大小可起頻率微調的作用9。在 AT89C51出端為引腳 XTAL2。而有一個高增益反向放大器,其輸入端為引腳 XTAL1,輸,XTAL1 和 XTAL2 之間跨接晶體振蕩器和微調電容,在

26、從而一個穩定的自激振蕩器。時鐘電路產生的振蕩脈沖經過觸發器進行二分頻之后,才成為單片機的時鐘脈沖信號。3.2復位電路為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第能是上電復位,一般微機電路正常工作需要供電電源為 5V5%,即 4.755.25V。由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,只有當VCC 超過 4.75V 低于 5.25V 以及晶體振蕩器穩定工作時,復位信號才被撤除,微機電路開始正常工作10。單片機復位的條件是在 RESET 輸入端出現時實現復位和初始化。在振蕩器運行的情況下,要實現復位操作,必須使 RST/VPD 或 RST

27、引腳加上持續兩個機器周期(即 24 個振蕩周期)的。若時鐘頻率為 12 MHz,每機器周期為 1s,則只需 2s以上時間的,在 RST 引腳出現后的第二個機器周期執行復位。電路為上電復位電路,它是利用電容充電來實現的。在接電瞬間,RESET 端的電位與VCC 相同,隨著充電電流的減少,RESET 的電位逐漸下降。只要保證RESET 為的時間大于兩個機器周期,便能正常復位。該電路除具有上電復位功能外,若要復位,只需按 RESET鍵,此時電源 VCC 經電阻 R1、R2 分壓,在RESET 端產生一個復位。加電自動復位是加電瞬間,RST 端的的電位與 Vcc 相同,隨著 RC 電路充電電流的減小,

28、RST 端的電位逐漸下降。只要 RST 端保持 10ms 以上的就能使MCS-51 單片機有效的復位。復位電路中的 RC 參數通常由實驗調。當振蕩頻率用 12MHZ 時,C選 22F、R 選 2k 便能可靠的實現加電自動復位。開關復位電路:3.3計數器/定時器原理在 51 單片機中有 2 個 16 位的定時器/計數器分別是 T0 和 T1 它由加法計數器、方式寄存器 TMOD、控制寄存器 TCON 等組成。方式寄存器用于設定定時計數器 T0 和 T1 的工作方式,控制寄存器用于對定時計數器啟動、停止進行控制。每個定時計數器既可以對系統時鐘計數實現定時,也可以外部信號計數實現計數功能通過編程設定

29、來實現。每個定時計數器都有多種工作方式,其中 T0 有四種工作方式,T1 有三種工作方式, T2 有三種工作方式。通過編程可設定工作于某種方式。四種工作方式為:13 位定時計數器、16 位定時計數器、8 位自動重置定時計數器、兩個 8 位定時計數器(只有 T0有)每一個定時計數器定時計數時間到時產生溢出,使相應的溢出位置位,溢出可通過查詢或中斷方式處理。第四章硬件電路4.1設計介紹本次設計的數字鐘是以 AT89C51 為主要控制單元,在硬件電路采用的是 P0 口作為6 位 LED 數碼管的驅動接口,這是由于 P0 輸出驅動電路工作處于開漏狀態,它的驅動74LS04 來驅動數碼管的段碼,用三極管

30、 PNP 來驅動數碼管的能力很強 ,并接入位碼,所以只需要外接上上拉電阻便能把 LED 數碼管點亮。在 6 位 LED 數碼管顯示時, 6 個LED 顯示器共用一個8 位的I/O口,6 位LED 數碼管的位選線分別由相應的P2.0P2.5來控制,而將其相應的段選線并聯在一起,由一個 8 位的I/O 口控制。此電子鐘的時間以24小時為一個時間周期,顯示時、分、秒,有校時的功能,可以分別對小時和分鐘進行校時,使其到標準時間,可以設置鬧鈴,到達所設定的時間會通過蜂鳴器提醒。整個設計以AT89C51單片機為,配上其他硬件電路,用匯編語言設計的程序來控制實現。設計將根據C51單片機的接口的特點擴展相應的

31、硬件電路。本文主要介紹用單片機的定時/計數器來實現電子時鐘的方法,本設計由單片機AT89c51和LED數碼管為,輔以必要的電路,了一個單片機電子時鐘。利用鍵盤對數字鐘進行校時和鬧鐘的設定,在設計中有5個鍵盤分別是從S0到S4,這幾個按鍵是對整個數字鐘進行設置的唯一途徑。它們各是用于鬧鐘設定,退出和進入鬧鐘設定,鬧鐘小時部分,鬧鐘分鐘部分,時鐘的小時和分鐘部分。該電子時鐘由89C51,鍵盤,六段數碼管等,采用晶振電路作為驅動電路,由延時程序和循環程序產生的1秒定時,達到時、分、秒的計時,60秒為1分鐘,60分鐘為1小時,滿24小時為一天。本次設計的方案完全用實現數字時鐘。原理為:在單片機器設三個

32、字節分別存放時鐘的時、分、秒信息。利用定時器與結合實現1秒定時中斷,每產生一次中斷,器內相應的秒的值加1;若秒的值達到60,則將其清0,并將相應的分字節值加1;若分值達到60,則清字節,并將時字節值加1;若時值達到24,則將時字節清0。該方案具有硬件電路簡單的特點。但由于每次執行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是實現,當單片機不上電,程序不執行時,時鐘將不工作。圖 4.1 硬件連接圖如圖 4.1,為整個單片機數字鐘的硬件圖,時鐘振蕩電路接在 XTAL1 和 XTAL2 上,這兩個引腳反向放大器的輸入和輸出。這種反向放大器可以連接大片的振蕩器,除此外,還能連接石英振蕩

33、器和陶瓷振蕩器。不能接外部時鐘源驅動期間。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。分頻器接收到晶體振蕩器產生的脈沖信號送到后,分頻器將振蕩器輸出的脈沖信號分成每秒鐘為一次(1HZ)的并把累計的結果通過 74LS47 譯作為秒脈沖,秒脈沖信號被送入計數器來進行計數,譯碼為十進制數字并且分別以 “時鐘”、“分鐘”、“秒鐘”顯示到 7 段數碼管上。 “秒鐘”位和“分鐘”位的計數均由兩級計數器組成的六十進制計數電路實現。“小時”位的計數由兩級計數器組成的 24 進制計數電路來實現。振蕩器是計時器的重要組成部分。它主要用來產生

34、時間標準信號,經分頻后得到秒時間脈沖。因此數字鐘的精度取決于石英晶體振蕩器。從數字鐘的精度考慮,晶振頻率越高,數字鐘的計時準確度就愈高,但這將使振蕩器的耦電量增大,分頻電路的級數也要增加。振蕩電路由石英晶體、微調電容與集成門電路等元器件。C1 是溫度特性校正電容,一般取 20-40PF,電容C2 中頻微調電容,取 30PF, 電容C1、C2 與晶體共 網絡,完成正反饋選頻。數字鐘的秒信號是利用 AT89C51 單片機定時器T0 產生的。晶振的頻率為 12MHZ 使得 T0 的最大定時時間遠遠的小于 1S,因此,在設計時采用了硬件蜂鳴器聲 音驅 動電 路復 位電路譯 碼電路時分秒AT89c51單

35、片機鍵盤調 時電路時鐘電路和的相結合在一起的方法,通過計數器T0 產生 0.1S 的時間基本信號,然后再利用程序進行計數,從而產生 1S 的時間信號。本次設計,定時器/計數器的 T0 采用了中斷方式。當定時的時間到了后,定時器向 CPU 發出中斷請求,CPU 相應了中斷后轉入中斷服務,在 T0 的中斷服務程序中實現時、分鐘、秒鐘的累加。每產生一次中斷,0.1S時基單元的內容加 1,當其等于 10 的時候,便產生 1S 的信號,使秒計數單元的內容加 1,并將 0.1S 時基單元的內容清 0;當秒的計數單元計滿了 60S 后,向分計數單元進位,使分的計數單元中的內容加 1,再將秒計數單元的內容清

36、0;當計滿 60 后,再向時計數單元進位,時時計數單元中的內容加 1,并將分計時單元中的內容清 0;時計數單元在計到 24 后清 0。在對各單元計數的同時,把它們的值放到單元的指定位置。經過分頻器得到的 1HZ 的秒脈沖信號被送到計時電路,計時電路由六級計數器構成。完成“時”、“分”、“秒”計數。其中 “秒”、“分”計數均為六十進制,“時”為二十四進制。由于集成電路的發展,人們不再用觸發器去設計這些計數電路,而是使用中規模計數器,采用反饋歸零的方法去實現,即當計數狀態達到所需模值后,經門電路或觸發器譯碼,反饋產生“復位”脈沖,使計數器清零,然后重新進行下一個循環。“分”、“秒”計數電路是 60

37、 進制計數器,一般采用兩只十進制計數器,其中一只用反饋歸零法實現 60 進制計數器,即當 CP 端第六觸發脈沖輸入時它的四級觸發器狀態為“0110”,這時QB、QC 均呈,將它們取出,變換為適當的電平(或脈沖邊沿)送到計數器的清零端,使計數器歸零。復位電路:復位電路主要是使整個設計初始化,其功能是將程序計數器 PC 的內容初始化為 00000H,使單片機從 0000H 單元開始執行,并且使 CPU 及其他的功能都從一個確定的初始狀態開始工作。除了系統上電時需要進行正常的初始化外,當數字鐘系統出現錯誤或故障時也可以通過復位系統來從新啟動數字鐘。當復位后,PC=0000H, SP=07H,從P0-

38、P3 為 0FFH。在數字鐘系統中使用的是上電復位,通過電容充電來實現。當電源Vcc 接通時只要電壓上升時間不超過 1ms,就可以實現自動上電復位。鍵盤:在電路中的4個按鍵S1、S2、S3、S4用于對時鐘進行修改和鬧鐘設置,當時鐘的1鍵被按下管就會顯示鬧鐘,再松開后顯示當前時間;當按下S4鍵后進入時鐘修改模式,就能對時間進行調整,再按下S4鍵,時間的小時就能加1,按S2后分鐘加1,當調整結束后按下S1就恢復正常顯示;按下S3鍵進入鬧鐘修改的模式,這時就能設定鬧鐘了,再按S3鍵鬧鐘的小時部分加1,按S2鍵分鐘部分加1,在調整結束后按下S1恢復正常顯示。分別接在單片機的從P1.0到P1.3口,還有

39、一個S0的鍵盤按鍵是用于進入和退出鬧鐘的。蜂鳴器:的設計是數字鬧鐘,所以在整個系統中就需要一個,當設定的時間到時要有個聲音提醒信號的產生,蜂鳴器就是能起到這個作用的,這次 的設計采用的是壓電式蜂鳴器,在其工作時需要 10MA 的驅動電流。蜂鳴器的一端接入 單片機的 P1.7 口,另外的一端接上+5V 的,當 P1.7 的引腳上為低電平時蜂鳴器就不會發出聲音了。當設定的時間到了的時候,單片機中的計時器就會發出信號給 CPU,CPU 發出響應,使P1.7 為,就開始。LED7段數碼管顯示:這次的數字鐘設計使用的是7段的共陽極數碼管來顯示,由于要顯示“時”,“分”和“秒”,要使用6位的數碼管,再采用

40、動態顯示來驅動,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM 端電路的控制,所以只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM 端,就使各個數碼管輪流受控顯示,這就是動態驅動。動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O 端口,而且功耗更低。在6位的數碼管中,6個數碼管的顯示筆畫從“a”到“dp”的同名端都是連在一起的,當的程序從P0口輸出字型的時候,所有的數碼管都會在同時接到相同的字型碼信號。為了避免6個數碼管都顯示同一個數字的情況出現,就是采

41、用動態顯示驅動的最主要原因。6個數碼管逐個顯示,但每位的點亮時間極短(大1ms),要小于視覺的暫留時間0.1s,所以就不會產生閃爍的感覺,能夠完整的清楚的看到數碼管上的內容。以上是簡單的介紹了下整個數字鐘電路中各模塊的功能和所工作的情況,只要將各部分與單片機的各個引腳連在一起,再將匯編程序輸入進去,就能做出了個完整數字鐘系統。4.2硬件電路圖圖 4.289C51 引腳圖圖 4.3復位電路圖 4.4此次設計按鍵圖 4.5此次設計時鐘電路圖 4.6蜂鳴器圖 4.7譯電路圖 4.87 段數碼管顯示第五章程序5.1 程序流程圖圖 5.1程序流程圖如流程圖所示,程序開始后定義程序塊的起始地址,接著初始化

42、程序,對各進行初始化,定義時鐘和鬧鐘的小時和分鐘。給計數器賦初值。啟動 T016 位計數器。接著是主程序的編寫S0 鍵用于控制時鐘和鬧鐘界面的轉換,如果 S0 閉合就利用跳轉指令N進入鬧鐘的顯示,斷開就是時鐘的界面。當 S4 鍵按下后就會進入到時間的設置,再按一下小時數字就能加 1,當斷開的時候,CPU 就會檢查 S3 是否是閉合的,如果是就進入到鬧鐘的設置,顯示鬧鐘的界面,再按下一次就能加 1。S2 鍵用于修改鬧鐘和時鐘的分鐘,當S2 按下后,分鐘就能加 1。最后當設置完成后就還可以通過按下S1 來重新回到時鐘的顯示狀態。5.2匯編語言匯編語言是一種面向 CPU 指令系統的程序設計語言,它采

43、用指令系統的助記符來表示操作碼和操作數,用符號地址表示操作數地址,因而易記、易讀、易修改,給匯編帶來了很大方便。匯編語言源程序在輸入計算機后,需要將其翻譯成目標程序,計算機才能執行相應指令,這個翻譯的過程稱為匯編,完成匯編任務的程序稱為匯編程序11。匯編語言比機器語言易于讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。匯編語言的特點:面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。保持了機器語言的優點,具有直接和簡捷的特點。3.可有效地、控制計算機

44、的各種硬件設備,如磁盤、器、CPU、I/O 端口等。目標代碼簡短,占用內存少,執行速度快,是高效的程序設計語言。經常與高級語言配合使用,應用十分廣泛。參考文獻.基于Proteus的數字鐘設計及仿真J.西安工程大學學報,2009,23(3):5962.數字電子鐘的設計J.長春大學學報,2004,14(4):79.12趙3.MCS-51 系列單片機系統及其應用M.,2004.118.:高等教育4劉立新,.移動數據庫研究J.微計算機信息,2006,22(2):4548.569092.7891011.基于 AT89S52 單片機數字鐘的實現J.導刊,2008,7(10):120122.,.基于單片機的

45、數字式電子鐘的設計與制作J.重慶工學院學報,2006,20(8):.數字電子技術基礎M.:電子科技大學,2009.6364.基于單片機的車載時鐘控制系統研究D.大連:大連理工大學,2008.基于TC35模塊的無線LED顯示屏的設計D.:工業大學,2006. 激光微加工系統中電控系統的設計D.鄭州:鄭州大學.2004.微機原理與匯編語言程序設計M.,2005.133134.:中國水力水電附錄附錄 1數字鐘硬件電路圖附錄 圖 1附錄 2程序0000H LJMP START000BHLJMP TIME偽指令 定義程序塊起始地址跳轉開始;*初始化*START:MOV SP, #50H MOV 20H,

46、#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#01H MOV 24H,#01HMOV 25H,#00H MOV 26H,#01H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,#00HMOV TMOD,#01HMOV TH0, #03CH MOV TL0, #0B0HSP 指令指針寄存器;定義秒;定義分;定義時;定義鬧鐘分鐘;定義鬧鐘

47、小時;按鍵次數;16 位計數器;賦初值MOV IE,#87H;中斷允許 IE 功能寄存器SETB TR0 MOV R2, #14H MOV P2, #0FFH;*主程序*;啟動T0置位 1MAIN:JB P1.4, GB LCALL TIMEPRO LCALL DISPLAY1 JB P1.3,M1 LCALL SETTIME LJMP MAINJB P1.2,M2;調用鬧鐘判斷;調用時間顯示;P1.3=1 時轉移GB:S4 沒有按下;調用 SETTIME 調時子程序M1:;P1.2=1 時轉移;調用 SES3IME 子程序LCALL SELJMP MAIN JB P1.0,M4IMEM2:;

48、P1.01 時轉移 S1;調用LOOKATIME 顯示鬧鐘子程序LCALL LOOKATIMELJMP MAINM4:;*延時子程序*DELAY:DL00:MOV R4,#030HMOV R5,#0FFHDL11:DL12:MOV R6,#9H DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00RET無參數返回;*時間調整*SETTIME:;設置時間L0:LCALL DISPLAY1MM1:JB P1.3,L1;P1.3=1 時轉移MOV C, P1.3 JC MM1LCALLDELAY1 JC MM1MOV C,P1.3JNC MSTOP1 LCALL DELAY1

49、;延時MSTOP1:;P1.3 為 0 時轉移;延時MOV A,50H INC 50HCJNE A,#00H,HJ1 LJMP L0MOV C,P1.3 JNCMSTOP1 INC 22HMOV A,22HCJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00HMOV 35H,#00HLJMP L0INC+1 指令HJ1:;小時自加一;小時計數循環;復位L1:JB P1.1,L2MOV C,P1.1 JC L1;P1.1=1 時轉移LCALLDELAY1 JC L1MOV C,P1.1 JNC MSTOP2 LCALL DELAY1MOVC,P1.1;延時MSTOP

50、2:;P1.10 時轉移;延時JNCMSTOP2INC 21H MOV A,21HCJNE A,#3CH,GO11MOV 21H,#00H MOV 32H,#00HMOV 33H,#00HLJMP L0;分鐘加一;分鐘計數循環;復位GO11:MOV B,#0AH DIV ABMOV 32H,B MOV 33H,A LJMP L0MOV B,#0AHDIV AB MOV 34H,B MOV 35H,A LJMP L0JB P1.0,L0 MOV C,P1.0 JCL2LCALLDELAY1 MOVC,P1.0JCL2MOVC,P1.0 JNC STOP1 LCALLDELAY1 MOVC,P1.

51、0 JNC STOP1MOV 50H,#00HDIV 除法將A 的低 4 位存入 32 單元將A 的高 4 位存入 33 單元;GO12:;將A 的低 4 位存入 34 單元;將A 的高 4 位存入 35 單元L2:;P1.01 時轉移;延時STOP1:; P1.00 時轉移;延時LJMPMAIN;*設置鬧鐘*SEN0: MM2:IME:LCALL DISPLAY2 LCALL DISPLAY2 JB P1.2,N1MOV C,P1.2 JC MM2LCALLDELAY1JC MM2; 調用DISPLAY2 顯示鬧鐘;P1.2=1 時轉移;延時MSTOP3:MOV C,P1.2JNC MSTO

52、P3 LCALL DELAY1; P1.20 時轉移; 延時MOV A,50H INC 50HCJNE A,#00H,HJ2 LJMP N0MOVC,P1.2 JNCMSTOP3 INC 24HMOV A,24HHJ2:;小時加一CJNE A,#24,GO22MOV 24H,#00H MOV 38H,#00H MOV 39H,#00HLJMP N0;小時計數循環;復位N1:JB P1.1,N2 MOV C,P1.1 JC N1LCALLDELAY1JC N1;P1.11 時轉移;延時MSTOP4:MOV C,P1.1;P1.10 時轉移JNC MSTOP4 LCALL DELAY1 MOVC,

53、P1.1 JNCMSTOP4 INC 23HMOV A,23H CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00HLJMP N0MOVB,#0AH;延時;分鐘加一;分鐘計數循環;復位GO21:DIV MOVMOVAB36H,B37H,A;將 A 的低 4 位存入 36 單元;將 A 的高 4 位存入 37 單元LJMP N0MOVB,#0AHGO22:DIV MOVMOVAB38H,B39H,A;將 A 的低 4 位存入 38 單元;將 A 的高 4 位存入 39 單元LJMP N0 JB P1.0 ,N0MOV C,P1.0 JCN2

54、LCALLDELAY1 MOVC,P1.0JCN2MOVC,P1.0 JNC STOP2N2:;P1.01 時轉移;延時STOP2:LCALLDELAY1MOVC,P1.0JNC STOP2 MOV 50H,#00HLJMP MAIN;*鬧鐘判斷* TIMEPRO: MOV A,21HMOV B,23HCJNE A,B,BK MOV A,22H MOV B,24H CJNE A,B,BK SETB 25H.0 MOV C,25H.0LCALL TIMEOUTBK:RET;判斷定時鬧鐘的分鐘;判斷定時鬧鐘的小時;調用TIMEOUT;*喇叭 TIMEOUT:X1: LCALL BZCLR 25H.0LCALL CLR 25H.0*;調用喇叭響應程序;調用喇叭響應程序結束;延時DELAYLJMP DISPLAY1 BZ:MOV C,25H.1MOV P1.6,C CLR P1.7MOV R7,#0FFH T2: MOV R6,#0FFH T3: DJNZ R6,T3DJNZ R7,T2;喇叭響應時間SETB P1.7 RET;*顯示鬧鐘時間*LOOKATIME

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論