選題背景
在當下這個信息科技迅猛發展的時代,各領域對于時間精確要求越來越高,比如在物理界,做實驗需要精確的計時工具來測量時間參數;在體育界,比賽場上需要精確的計時工具來區分運動員速度之間的細微差距;在IT行業,時間的要求更是越來越高;最基本的在生活中,計時工具也是常被人使用。所以電子秒表實用域廣,性價比高,實用性強,市場前景一片光明。
1.2 單片機簡單介紹、單片機微型計算機簡稱單片機,是典型的嵌入式微控制器,常用英文字母MCU表示單片機,它最早是被用在工業控制領域。單片機由芯片內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片內,是計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種設計思想設計出的處理器,之后,單片機和專用處理器被分開。早期的單片機是8位或4位的,其中最成功的是8031,因為簡單可靠性能好而獲好評。之后在8031基礎上發展了MCS51系列單片機系統。但性價比不理想而未被廣泛應用。90年代隨著電子產品飛速發展,單片機技術大大提高,處理能力也提高了數倍。目前,高端32位單片機主頻已超過300MHZ,而且當代單片機系統已經不只在裸機環境下使用和發展,大量嵌入式操作系統被廣泛使用。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。單片機比專用處理器更適合于嵌入式系統,所以他得到了更廣泛的應用。其實單片機是世界上數量最多的計算機。現代生活的幾乎所有電子和機械產品都集成有單片機。手機,電話,計算機,家庭電器,醫療儀器,電子玩具,掌上電腦等等都會配有單片機。汽車上一般要配有50多部單片機,復雜的工業控制系統上甚至可能有數百臺單片機子同時工作!
因此,本次大作業設計以單片機為核心,設計簡單的電子秒表系統,是的系統能夠正確的運行,并且可以用數碼管顯示,在現實中生活中應用廣泛,既有實現意義。
1.3 設計的作用及目的本設計利用單片機原理,結合顯示電路,用以四位一體共陽極數碼顯示管及按鍵來實現0000-1000秒計時器。將軟硬件合理結合,以實現系統正常運行,數碼管正常顯示的最終目的。本論文是對電子秒表設計的設基本功能,軟件模塊硬件模塊的設計思路及如何實現功能的主要概述。 本次課程設計加深了對單片機課程的全面認識和對單片機課程的應用。 培養了自己運用所學基礎理論解決實際問題的能力。 學習到設計論文寫作方法和 用文與圖相結合直觀,詳細,具體地闡述設計成果。對數字電子秒表的設計、檢測、制作有了有更進一步的理解與操作,學會了把所學知識知識理論與動手實踐相結合。
第2章 設計主要任務
2.1 四位數碼管動態顯示0000-1000秒可以正確的顯示000.0……000.9……001.9……019.9……199.9……999.9之間的所有數,并且以每秒加以的形式顯示在數碼管上,其中要正確設置數碼管各個位上字模才能正確顯示000.0……000.9……001.9……019.9……199.9……999.9之間的所有數。所以設定好字模是實現數碼管動態顯示0000----1000秒這一主要任務的重點工作。
2.2 每秒自動加1要想電子秒表完成計數的功能就要實現系統可以每秒自動加1的功能,并且顯示到數碼管上。其中需要軟件編程來實現每秒自動加1的功能,所以軟件的正確編寫是實現每秒自動加1這一任務的重要工作。
2.3 開始按鍵,復位按鍵,暫停按鍵
功能按鍵是實現更智能,更多功能化的工具。按鍵可以讓使用者自如的操控秒表,當按下開始按鍵時秒表開始正常工作,開始計時,數碼管上開始以每秒加1的形式在數碼管上正確的顯示000.0……000.9……001.9……019.9……199.9……999.9之間的所有數。當按下暫停按鍵時秒表暫停工作,數碼管上顯示再按下按鍵時刻正在顯示的000.0……000.9……001.9……019.9……199.9……999.9之間的某個數,不在每秒加1.當按下復位按鍵時數碼管上無論顯示什么數字,再按下復位案件這一刻,數碼管上各個位現實的數字被清除,顯示的是----。當再次按下開始按鍵時,數碼管又開始從000.0開始計數。注意使用時只有在暫停狀態下才能繼續計時,只有在停止狀態下才能清零,在停止時不能繼續計時,在暫停時不能清零。 而這些功能都需要單片機和寫入控制的代碼來實現的,因此軟件編程,狀態機的使用是實現按鍵發揮功能這一任務的重要工作。
第3章 硬件模塊3.1 時鐘電路3.1.1圖的設計
3.1.2原理講解
單片機是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控 制下嚴格地按時序進行工作。而單片機的時間基準是由時鐘電路提供的。在單片機的XTAL1和TXAL2這兩個引角間跨接一只晶體振蕩器和兩只微調電容,形成反饋電路,就構成了一個穩定的自激振蕩器,即所謂的時鐘電路。電路中電容C7,C8對震蕩頻率有微調的作用,通常取(30±10)pF。石英晶體選擇6MHZ或12MHZ均可,此電路采用 12MHz 的石英晶體。時鐘電路如圖 3-1。
3.2 復位電路3.2.1圖的設計
3.2.2原理講解
復位電路的基本功能是:系統上電時提供復位信號,直至系統電源穩定后,撤銷復位信號。除了進入系統的正常初始化之外,當由于程序運 行出錯或操作錯誤是系統處于死鎖狀態時,為擺脫困境,也需要按復位鍵以重新 啟動。 為了可靠起見,電源穩定后還要經過一定延時再撤銷復位信號,以防電源開關或插頭分合過程引起的抖動影響復位。 復位操作有上電自動復位和按 鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的。 按鍵電平復位是通過使復位端經電阻與 Vcc 電源接通而實現的。 在本設計中采用 了按鍵電平復位方式,其復位電路如圖 3-2 所示:
3.3 按鍵電路3.3.1圖的設計
3.3.2原理講解
- SW1:復位鍵 按下數碼管全部初始化,顯示----
- SW2:啟動鍵 按下 數碼管停止數字
- SW2:停止鍵 再按下 數碼管運行數字
為了節省元器件,原理圖中的SW3作用歸結到SW2中。故實物中只需要兩個按鍵即可很好的完成目的。注意使用時只有在暫停狀態下才能繼續計時,只有在停止狀態下才能清零,在停止時不能繼續計時,在暫停時不能清零。 鍵盤電路如圖 3-3-1
3.4 顯示電路3.4.1圖的設計
3.4.2原理講解
對于數字顯示電路,通常采用液晶顯示或數碼管顯示。一般的段式液晶屏,需要專門的驅動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠距離觀看;對于具有驅動電路和單片機接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89C51單片機本身無專門的液晶驅動接口。而數碼管作為一種主動顯示器件,具有亮度高、響應速度快、防潮防濕性能好、溫度特性極性、價格便宜、易于購買等優點,而且有遠距離視覺效果,很適合夜間或是遠距離操作。因此,本設計的顯示電路采用8段數碼管作為顯示介質。顯示部分采用動態顯示當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通 COM 端電路的控制, 所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。動態顯示是利用人眼視覺暫留特性來實現顯示的。事實上,顯示器上任何時刻只有一個數碼 管有顯示。 由于各數碼管輪流顯示的時間間隔短,人的眼睛反應不過來, 因此看到的是連續顯示的現象。為防止閃爍延時的時間在 1ms 左右,不能太長, 也不能太短。本設計可采用 P3 口直接驅動八段數碼管顯示。此方案成本低,而且單片機的 I/O 口占用較少,可以節約單片機接口資源,而且功耗更低。 此電路采用單片機的 P3 口作為數碼顯示管的段控, 采用 P2 口作為數碼管的 位控。2個獨立式鍵盤分別接在單片機的 P1.0,P1.3 口上,以及其他部分構成數字式秒 表的硬件電路。通過編寫程序使用單片機的定時計數器,以及軟件延時,中斷資 源來實現秒計時和相關控制。此數字式秒表的硬件整體結構如圖 1-1 所示。由兩個SN74HC245DW作為數碼管驅動,U2、U3分別用于數碼管的顯示與位導通。顯示電路如圖3-4所示。
數碼管為四位共陰極數碼管。其中:
- 管腳11-18:分別連接8個1K歐姆電阻用以限流。
- 管腳1:VCC接5V電源正極。
- 管腳10、19:VSS為電源地。
- 管腳20:接兩個去耦電容。
3.5 USB接口電路3.5.1圖的設計
3.6 本章小結3.6.1整體硬件模塊框圖
3.6.2整體硬件模塊電路原理圖
3.6.3整體硬件模塊電路仿真圖
3.6.4 硬件模塊總結
電子秒表硬件的總體設計如圖3-6-1所示。本系統由單片機以及時鐘電路、復位電路、按鍵電路、顯示電路、電源電路組成。
電子秒表硬件的總體電路原理圖如圖3-6-2所示。
- 單片機管腳P1.0、P1.3與按鍵電路相連;
- 單片機管腳P2.0-2.7和P3.4-3.7分別與驅動電路相連;
- 單片機管腳9與復位電路相連;
- 單片機管腳10、11與下載電路相連;
- 單片機管腳18、19與時鐘電路相連;
- 單片機管腳40連入退耦電容。
第4章 軟件模塊4.1 啟動程序4.4.1 啟動程序流程圖
4.1.2 啟動程序設計原理
啟動程序由外部中斷進行判斷,當定時器TRO=1;ETO=1;后進入中斷。程序進行判斷啟動鍵是否被按下, 若flag=0則按鍵置于低電平程序進入下一步。啟動程序流程圖如圖4-1所示。
4.2 復位程序4.2.1 復位程序流程圖
4.2.2 復位程序設計原理
程序開始,進行按鍵掃描。當判斷出start按下時,計數器開始計時,當判斷出start按鍵再次按下時,停止計時。此時復位程序才可以使用。復位程序流程圖如圖4-2所示。
4.3 按鍵掃描程序4.3.1 按鍵掃描程序流程圖
4.3.2 按鍵掃描程序設計原理
按鍵掃描程序主要功能為持續掃描按鍵是否被按下,利用循環的方式,判斷按鍵是否被按下。判斷按鍵前后的兩次狀態,檢測到按鍵前為高電平,按鍵后為低電平。則判斷出為按鍵已經按下,從而進行按鍵所對應的功能。按鍵掃描程序流程圖如圖4-3所示。
4.4 數碼管顯示程序4.3.1 數碼管顯示程序流程圖
4.4.2 數碼管顯示程序設計原理
數碼管顯示驅動的主要工作過程為:首先將所對應的字模編碼存入相對應的存儲器中,然后將所要顯示字符編碼在上述存儲器中傳送給所用數組。通過對數組的調用最終實現數碼管的顯示。數碼管顯示驅動程序流程圖如圖4-4所示。
4.5 狀態機程序4.5.1 狀態機程序流程圖
4.5.2 狀態機程序設計原理
首先進行按鍵掃描,判斷flag狀態。如果若flag=0,進入第一個狀態循環,若為flag=1,進入第二個狀態循環。兩種狀態循環的差異為定義的數組不同。使數碼管顯示不同的數字。
4.6 本章小結 4.6.1 軟件模塊整體流程圖
4.6.1 軟件模塊總結
單片機程序由主程序,狀態機程序,按鍵掃描程序,數碼管顯示驅動程序,啟停程序,復位程序,計數程序組成。主程序主要完成各單元程序的初始化并調用各個子程序。數碼管顯示驅動程序是通過程序將驅動后的數碼管各個位顯示相應的數字。按鍵掃描程序是使單片機根據按下的按鍵,判斷并執行相應的功能。啟動程序是在啟動按鍵按下后,數碼管開始進行計時。復位程序是在復位按鍵按下后,數碼管顯示恢復初始狀態。啟停程序是根據按鍵使單片機進行計時或停止計時。計數程序是在按鍵掃描后記錄時間。總體軟件設計如圖4-所示。
第5章 調試體會
調試程序心得體會:在調試程序時,我決定把開啟鍵和暫停鍵放到一個功能鍵上實現,這樣做首先可以節省代碼,其次可以節省元器件。調試過程中遇到了一個棘手的問題就是字模。在仿真中字模是正確的,但是把程序寫入電路板時發現是亂碼的,所以我的心得就是知道了要更改程序來真正實現軟件和硬件的正確結合。仿真和真正實現還是有差異的。
制作過程中心得體會:在焊電路板時,單片機的引腳一定要焊好,要相對應的插入,不能插反,否則很麻煩。要仔細檢查是否有虛焊漏焊的引腳,還有就是電阻的大小要選準。否則不會實現電路板的正常功能。我出現的最大的錯誤就是把一個接地的引腳和接電源的引腳接到了一起,結果導致電路板短路。這是一個很嚴重的問題。很容易造成電路板損壞。還好及時發現沒有造成大的損壞,但給我的教訓就是一定要分清底線和電源線,不能把他們兩個接在一起。在焊完之后可以用萬用表仔細檢查之后在供電。
第6章 總結本設計的電子秒表是由AT89c51RC單片機,共陰數碼顯示管,控制按鍵,74HC245等元件構成。 設有四位計時顯示,啟動/暫停,復位按鍵。計時精度能達到0.1s,設計精簡合理,線路簡單,功能符合使用基本需求,性能穩定,程序精簡,簡單易懂。本論文中給出了詳細的電路設計方法,仿真電路的詳細知識,還有軟件的整體框圖及軟件各部分程序流程圖。本系以單片機為核心,但僅單片機方面知識是不夠的,還應根據具體硬件結構,針對具體應用對象特點的軟件結合作以完善。所以采用C語言來進行軟件設計,目標代碼短,占用內存少,功能性強。
通過本次大實驗設計,復習鞏固了我們以前學習的數字,模擬電子技術,單片機原理及接口等課程知識,加深對各門課程及相互關系的理解,并成功使用了Protel6.9,Altium Designer09,Proteus ISIS,Keil uvision4等軟件的使用。使理論知識系統化,實用化,系統地掌握微機應用系統的一般設計方法,培養較強的編程能力,開發能力。同時在設計過程中,我也發現了本系統的諸多不足和可以改進的地方。但因為時間緊迫等原因沒能更好的改進和擴展更多的功能。本設計的秒表可以外加一個語音報警裝置,當達到一定秒數時,語音報警裝置啟動,發揮提示功能。還可添加充電,顯示時間等功能。雖然存在不足,但是本次設計的電子秒表仍完成了對秒表的基本需求,并能很好的執行相應功能,所以它還是具有很好的實用性的, 較好的達到了本次設計的目的。
3. 參考文獻[1] 虞滄.微控制器與接口技術[M]電子工業出版社.2012.10
[2] 李朝青. 單片機原理及接口技術[M].北京:北京航空航天大學出版社.2005.10
[3] 夏繼強. 單片機實驗北京[M].北京:航空航天大學出版社.2001.
[4] 孫德輝,鄭士富. 微型計算機控制系統[M].北京:冶金工業出版社.2002
[5] 肖洪兵. 跟我學用單片機[M]北京:北京航空航天大學出版社.2002.8
[6] 陳汝全. 實用微機與單片機控制技術[M] 電子科技大學出版社.1995.7
[7] 王涌. 單片機與嵌入式系統應用[J],2002(3):58-61
[8] 羅亞非. 凌陽16位單片機應用基礎[M].北京:北京航空航天大學出版社.2003.5