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