【電氣設(shè)計(jì)自動(dòng)化論文】多功能秒表設(shè)計(jì)
【電氣設(shè)計(jì)自動(dòng)化論文】多功能秒表設(shè)計(jì),電氣設(shè)計(jì),自動(dòng)化,論文,多功能,秒表,設(shè)計(jì)
本科畢業(yè)論文(設(shè)計(jì))( 2015 屆)多功能秒表設(shè)計(jì)院 系 電子信息工程學(xué)院 專(zhuān) 業(yè) 電氣工程及其自動(dòng)化姓 名 指導(dǎo)教師 助教 2015 年 4 月學(xué)號(hào):I摘 要本次設(shè)計(jì)的內(nèi)容是以 STC89C52 單片機(jī)為控制核心的秒表。設(shè)計(jì)的主要內(nèi)容為計(jì)時(shí)器從 00~99 秒的計(jì)時(shí),每秒種自動(dòng)加 1,另外還設(shè)置有暫停鍵和復(fù)位鍵等按鍵,在任何情況下都可以實(shí)現(xiàn)暫停和復(fù)位功能。利用單片機(jī)定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED 數(shù)碼管以及外部中斷電路來(lái)設(shè)計(jì)的計(jì)時(shí)器。此次設(shè)計(jì)將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠?qū)崿F(xiàn) 2 位 LED 數(shù)碼管顯示,顯示時(shí)間為 00~99 秒,同時(shí)計(jì)時(shí)精度為1 秒,并且能夠正確地進(jìn)行計(jì)時(shí)。其中軟件系統(tǒng)采用 C 語(yǔ)言編寫(xiě)程序,包括顯示子程序、中斷服務(wù)、外部中斷服務(wù)子程序和復(fù)位子程序等。關(guān)鍵詞:?jiǎn)纹瑱C(jī); 數(shù)碼管; C 語(yǔ)言;合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))IIAbstractThis design content for the stopwatch with AT89C52 single-chip computer as the core. Design of the main characteristics of the timer timing from 00 to 99 seconds, automatically add 1 every second, and also set a pause button and reset button, under any circumstances can suspend and reset. Use of single-chip timer/counter timing and number of principles, combined with the display circuit, LED digital tube circuit to design the timer and external interrupt. The software and hardware organically, enables the system to realize the two LED display, display time is 00 ~ 99 seconds, timing accuracy for one second, time properly. Software system using C language program, including display program, interrupt service, external interrupt service routine, reset the program, etc.Keywords : MCU; LED; C language;III目 錄摘 要 IAbstract .II1 引 言 .- 1 -1.1 研究背景 .- 1 -1.2 研究的意義與方法 - 1 -2 電路方案論證 - 2 -2.1 單片機(jī)芯片的選擇方案和論證: .- 2 -2.1.1 采用 STC89C51 單片機(jī) .- 2 -2.1.2 采用 STC89C52 單片機(jī) .- 2 -2.2 顯示模塊選擇方案和論證: .- 2 -2.2.1 采用 LED 液晶顯示屏 .- 2 -2.2.2 采用 LED 數(shù)碼管顯示 .- 3 -2.3 小結(jié) - 3 -3 系統(tǒng)硬件電路設(shè)計(jì) - 3 -3.1 STC89C52 芯片 - 3 -3.1.1 概述 .- 3 -3.1.2 STC89C52 主要特性 - 3 -3.1.3 STC89C52 管腳說(shuō)明 - 4 -3.2 LED 數(shù)碼管顯示器概述 .- 5 -3.2.1 數(shù)碼管的分類(lèi) .- 5 -3.2.2 數(shù)碼管的連接方法 .- 5 -3.3 總體設(shè)計(jì)方案 - 6 -3.4 部分電路設(shè)計(jì) - 7 -3.4.1 晶振電路 - 7 -3.4.2 按鍵部分電路接線 .- 7 -3.4.3 顯示電路 .- 8 -3.4.4 復(fù)位電路 .- 8 -4 系統(tǒng)程序的設(shè)計(jì) - 9 -4.1 主程序設(shè)計(jì) - 9 -4.2 定時(shí)器 T0 子程序設(shè)計(jì) - 10 -5 聯(lián)調(diào)與調(diào)試 .- 10 -合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))IV5.1 仿真調(diào)試 - 10 -5.2 硬件調(diào)試 - 12 -結(jié)論與展望 .- 13 -致 謝 .- 14 -參考文獻(xiàn) .- 15 -附 錄 A 系統(tǒng)原理圖 .- 16 -附 錄 B 系統(tǒng)仿真圖與實(shí)物圖 .- 17 -附 錄 C 系統(tǒng) PCB 圖 .- 18 -附 錄 D 系統(tǒng)源程序 .- 19 -- 1 -1 引 言1.1 研究背景在生活和生產(chǎn)的各領(lǐng)域中,凡是有自動(dòng)控制要求的地方都會(huì)伴隨著單片機(jī)的身影出現(xiàn);從簡(jiǎn)單到復(fù)雜,從空中、地面到地下,只要是能想象到的地方幾乎都有使用單片的需求。現(xiàn)在盡管單片機(jī)的應(yīng)用已經(jīng)非常廣泛,但仍有許多可以用單片機(jī)控制而尚未實(shí)現(xiàn)的項(xiàng)目,因此,單片機(jī)的應(yīng)用大有想象和拓展空間。 簡(jiǎn)單的來(lái)說(shuō)單片機(jī)就是微型控制器,它是嵌入式系統(tǒng)中的非常重要且發(fā)展快速的組成部分。當(dāng)單片機(jī)接上晶振電路、復(fù)位電路和接口電路等且載入軟件后,就可以構(gòu)成單片機(jī)應(yīng)用系統(tǒng)。將單片機(jī)嵌入到形形色色的應(yīng)用系統(tǒng)中時(shí),它就會(huì)成為眾多產(chǎn)品、設(shè)備的智能化核心。所以,很多生產(chǎn)企業(yè)將單片機(jī)稱(chēng)為“微電腦”。單片機(jī)的廣泛應(yīng)用有利于產(chǎn)品的微型化、多功能化和智能化,有助于顯著提高勞動(dòng)生產(chǎn)效率,減輕勞動(dòng)強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動(dòng)環(huán)境,減少能源和材料消耗,保證安全等。 但是,單片機(jī)應(yīng)用的意義絕不僅限于它的廣闊的應(yīng)用范圍以及所帶來(lái)的經(jīng)濟(jì)效益上,更重要的意義還在于:?jiǎn)纹瑱C(jī)的應(yīng)用正在從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。以前,必須要模擬電路或數(shù)字電路才能實(shí)現(xiàn)的大部分功能,現(xiàn)在已能使用單片機(jī)通過(guò)軟件編程方法實(shí)現(xiàn)了。這種以軟件取代硬件并提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱(chēng)之為微控制技術(shù)。微控制技術(shù)是一種全新的概念,是對(duì)傳統(tǒng)控制技術(shù)的一次重大革命。隨著單片機(jī)應(yīng)用的推廣和普及,微控制技術(shù)一定將不斷發(fā)展、日益完善和更加充實(shí)。近年來(lái)隨著計(jì)算機(jī)在社會(huì)各領(lǐng)域的崛起, 單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用的。因此,僅有單片機(jī)方面知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象的特點(diǎn)等,實(shí)現(xiàn)軟、硬件的結(jié)合,以作完善。本篇論文討論了簡(jiǎn)單的計(jì)時(shí)器的設(shè)計(jì)與制作過(guò)程 ,對(duì)于計(jì)時(shí)器中的LED數(shù)碼顯示器來(lái)說(shuō),我為了簡(jiǎn)化線路、降低成本,采用以軟件為主的接口方法,即不使用專(zhuān)門(mén)的硬件譯碼器,直接由單片機(jī)驅(qū)動(dòng)數(shù)碼管。1.2 研究的意義與方法當(dāng)今社會(huì)在很多重要比賽中,都要用到時(shí)間的長(zhǎng)短來(lái)衡量比賽的結(jié)果,比如在藍(lán)球比合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 2 -賽中,球隊(duì)雙方控球的時(shí)間都不能超過(guò) 24s ,即進(jìn)攻方必須在 24s 內(nèi)一定要投藍(lán)出手,否則違例;另外知識(shí)比賽中必須在相應(yīng)的時(shí)間內(nèi)回答完所有提出的問(wèn)題等等。為了使參加比賽隊(duì)員和裁判都能夠準(zhǔn)確地掌握和控制好時(shí)間,必須在比賽場(chǎng)地邊豎起一個(gè)秒表計(jì)時(shí)器,以便讓比賽隊(duì)員和裁判以及觀眾都能夠清楚地看到時(shí)間。基于此種設(shè)想, 我們用 STC 公司生產(chǎn)的簡(jiǎn)化單片機(jī)(STC89C52) 加上少許的外圍電路就可以很容易做成一個(gè) 00 到99S 范圍內(nèi)的秒表計(jì)時(shí)器。本文的目的在于從硬件和軟件的基礎(chǔ)上具體分析其設(shè)計(jì)和制作方法。主機(jī)包括定時(shí)器輸入電路、時(shí)鐘電路、電源電路、按鍵控制電路、LED 顯示電路等。此外,主機(jī)的信息交換方式采用串行通信方式,設(shè)置三個(gè)簡(jiǎn)易按鍵分別控制時(shí)鐘的開(kāi)始/繼續(xù)、暫停和清零(復(fù)位);顯示 LED 采用 7 段共陰極數(shù)碼管,用來(lái)滿足較遠(yuǎn)距離清晰顯示。2 電路方案論證2.1 單片機(jī)芯片的選擇方案和論證:2.1.1 采用 STC89C51 單片機(jī)若采用 STC89C51 芯片作為硬件核心,其 ROM 存儲(chǔ)器采用 Flash ROM,內(nèi)部?jī)H具有4KB 的 ROM 存儲(chǔ)空間,可以于 3V 的超低壓下工作 ,并且與 MCS-51 系列單片機(jī)完全兼容,但是,由于運(yùn)用于電路設(shè)計(jì)中時(shí) STC89C51 單片機(jī)不具備 ISP 在線編程技術(shù), 且在對(duì)電路進(jìn)行調(diào)試時(shí),因?yàn)槌绦虻腻e(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦虻仍?,可能芯片的多次插拔?huì)對(duì)芯片造成一定程度的損壞。2.1.2 采用 STC89C52 單片機(jī)若采用 STC89C52,片內(nèi) ROM 全部都采用 Flash ROM 技術(shù);并且也可在 3V 的超底壓下工作;同時(shí)也與 MCS-51 系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為 8KB 的 ROM 存儲(chǔ)空間,同樣具有 STC89C51 的功能,而且具有在線編程可擦寫(xiě)技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的新增功能需要燒入程序或?qū)Τ绦虻腻e(cuò)誤修改時(shí),不需要再對(duì)芯片進(jìn)行多次拔插,因此不會(huì)對(duì)芯片造成較大損壞。綜上論證,所以我選擇采用 STC89C52 作為控制系統(tǒng)核心。2.2 顯示模塊選擇方案和論證:合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 3 -2.2.1 采用 LED 液晶顯示屏若采用 LED 液晶顯示屏,液晶顯示屏具有顯示功能強(qiáng)大且可顯示大量圖形、文字,顯示內(nèi)容多樣,清晰可見(jiàn),但是價(jià)格非常昂貴,需要的接口線較多,因此在此次設(shè)計(jì)中不會(huì)采用 LED 液晶顯示屏。2.2.2 采用 LED 數(shù)碼管顯示若采用 LED 數(shù)碼管靜態(tài)掃描顯示,LED 數(shù)碼管價(jià)格相對(duì)適中,對(duì)于顯示數(shù)字最合適,而且采用靜態(tài)掃描法與單片機(jī)連接時(shí),顯示穩(wěn)定且亮度較強(qiáng)。所以我采用了 LED 數(shù)碼管作為顯示器件。2.3 小結(jié)綜上各方案所述,對(duì)此次作品的方案選定: 我選擇采用 STC89C52 作為主控制系統(tǒng); LED 數(shù)碼管的靜態(tài)掃描作為顯示器件。3 系統(tǒng)硬件電路設(shè)計(jì)3.1 STC89C52芯片3.1.1 概述 STC89C52 是一款高性能,低功耗的 CMOS 8 位單片機(jī),且單片機(jī)內(nèi)部含有 8k Bytes ISP(In-system programmable)的可反復(fù)擦寫(xiě) 1000 多次的 Flash ROM,多數(shù)器件采用 STC公司的高密度、非易失性存儲(chǔ)技術(shù)制造,可兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 80C51 引腳的結(jié)構(gòu),芯片內(nèi)集成了通用的 ISP Flash 存儲(chǔ)單元和 8 位中央處理器。此種功能強(qiáng)大的微型計(jì)算機(jī) STC89C52 可以為大多數(shù)的嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方法。另外STC89C52 單片機(jī)也為很多的嵌入式控制系統(tǒng)提供了一種靈活性更高且價(jià)格低廉的設(shè)計(jì)方案。 其工作電壓一般在 4.5-5V,很多情況下我們選用+5V 電壓作為 STC89C52 的驅(qū)動(dòng)電壓。3.1.2 STC89C52 主要特性合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 4 -XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1STC89C52圖 3.1 STC89C52·具有8K字節(jié)可編程閃爍存儲(chǔ)器 ·壽命:100多次擦/寫(xiě)循環(huán)·數(shù)據(jù)保留時(shí)間:10年左右·全靜態(tài)工作:0Hz-24MHz·具有三級(jí)程序存儲(chǔ)器鎖定·128×8位的內(nèi)部隨機(jī)存儲(chǔ)器·32位可編程I/O線·含有兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源 、兩個(gè)中斷優(yōu)先級(jí)·具有可編程串行通道·低功耗的閑置和掉電模式·時(shí)鐘電路和片內(nèi)振蕩器等3.1.3 STC89C52 管腳說(shuō)明(1) 時(shí)鐘及電源引腳(4個(gè))Vcc: 為電源接入引腳;Vss:為接地引腳;XTAL1:晶振震蕩器接入的其中一個(gè)引腳(若采用外部振蕩器時(shí),此引腳接地);XTAL2:晶體振蕩器接入的另一個(gè)引腳(若采用外部振蕩器時(shí),此引腳作為外部振蕩器信號(hào)的輸入端);(2)控制線引腳(4個(gè))RST/Vpd:復(fù)位信號(hào)輸入引腳/備用電源輸入引腳;ALE:地址鎖存允許信號(hào)輸出引腳/編程脈沖輸入引腳:EA:內(nèi)外存儲(chǔ)器選擇引腳/片外EPROM編程電壓輸入引腳;PSEN:外部程序存儲(chǔ)器選通信號(hào)輸出引腳;合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 5 -(3)并行I/O引腳P0.0-P0.7:為一般I/O口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳,需上拉電阻;P1.0-P1.7:為一般I/O口引腳,不需上拉電阻;P2.0-P2.7:為一般I/O口引腳或高位地址總線引腳,不需上拉電阻;P3.0-P3.7:為一般I/O口引腳或第二功能引腳,不需上拉電阻;3.2 LED 數(shù)碼管顯示器概述本設(shè)計(jì)中采用的是 7SEG–COM –CATHODE 型號(hào)數(shù)碼管,它是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。實(shí)物如圖 2 所示:圖 3.2 7SEG–COM –CATHODE3.2.1 數(shù)碼管的分類(lèi)數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管等,八段數(shù)碼管比七段數(shù)碼管多了一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示位);數(shù)碼管按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;數(shù)碼管按發(fā)光二極管單元連接方式不同可分為共陰極數(shù)碼管和共陽(yáng)極數(shù)碼管等。共陽(yáng)極數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極連接到一起構(gòu)成公共陰極(COM)的數(shù)碼管。共陰極數(shù)碼管在應(yīng)用時(shí)必須將公共極(COM)接到地線GND上,當(dāng)某一字段發(fā)光二極管的合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 6 -陽(yáng)極為高電平時(shí),相應(yīng)字段就會(huì)被點(diǎn)亮;當(dāng)某一字段的陽(yáng)極為低電平時(shí),此時(shí)相應(yīng)字段就不會(huì)被點(diǎn)亮。共陽(yáng)極數(shù)碼管在應(yīng)用時(shí)要將公共極(COM)接到+5V電源上,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),此時(shí)相應(yīng)的字段就會(huì)被點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不會(huì)被點(diǎn)亮。3.2.2 數(shù)碼管的連接方法(1)共陽(yáng)極的連接方法。把發(fā)光二極管的陽(yáng)極全部連接在一起形成公共陽(yáng)極,使用時(shí)公共陽(yáng)極接到+5V電源上,每個(gè)發(fā)光二極管的陰極通過(guò)合適的電阻且與輸入端相連。 (2)共陰極的連接方法。把發(fā)光二極管的陰極連接在一起構(gòu)成公共陰極,使用時(shí)公共的陰極必須接地。每個(gè)發(fā)光二極管的陽(yáng)極應(yīng)通過(guò)相應(yīng)的電阻且與輸入端相連。圖 3.3 LED 數(shù)碼管連接方法3.3 總體設(shè)計(jì)方案本設(shè)計(jì)采用了 STC89C52 單片機(jī)為中心器件,利用其內(nèi)部定時(shí)器/計(jì)數(shù)器定時(shí)計(jì)數(shù)的原理,結(jié)合硬件電路如晶振電路,電源電路,顯示電路和復(fù)位電路等電路,以及一些按鍵電路等來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)的結(jié)合起來(lái),包括計(jì)數(shù)子程序,顯示子程序以及中斷子程序等。硬件系統(tǒng)利用 Protues 強(qiáng)大的仿真功能來(lái)實(shí)現(xiàn),簡(jiǎn)單且容易觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài),便于修改。其中軟件系統(tǒng)統(tǒng)一采用 C 語(yǔ)言來(lái)編寫(xiě)程序,利用 STC89C52 單片機(jī)來(lái)設(shè)計(jì)秒表計(jì)時(shí)器,通過(guò) LED 顯示器來(lái)顯示秒的十位和個(gè)位,在設(shè)計(jì)過(guò)程中用一個(gè)存儲(chǔ)單元作為秒的計(jì)數(shù)單元,當(dāng)一秒鐘到來(lái)時(shí),就讓秒計(jì)數(shù)單元加1,當(dāng)秒計(jì)數(shù)達(dá)到 99 時(shí),就自動(dòng)返回到 0,重新開(kāi)始秒計(jì)數(shù)。在設(shè)計(jì)秒表要求一秒定時(shí)時(shí),合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 7 -采用了定時(shí)器和 for 循環(huán)來(lái)定時(shí),其中一個(gè)軟件一個(gè)硬件,用單片機(jī)內(nèi)部的定時(shí)器 T0,先將時(shí)鐘初始化,賦入初值 50ms 定時(shí),循環(huán) 20 次來(lái)進(jìn)行 1 秒的定時(shí)。然后由定義的變量來(lái)進(jìn)行加一運(yùn)算,然后將其值通過(guò) STC89C52 的 P2、P3 口在數(shù)碼管上進(jìn)行顯示。其中在數(shù)碼管顯示時(shí),我在程序中首先定義了一個(gè)關(guān)于數(shù)碼管顯示的字形碼的定義,以便在顯示時(shí)直接調(diào)用即可。電路的結(jié)構(gòu)圖如下:時(shí)鐘電路復(fù)位電路單片機(jī)S T C 8 9 C 5 2顯示電路按鈕電路圖 3.4 結(jié)構(gòu)圖3.4 部分電路設(shè)計(jì)3.4.1 晶振電路STC89C52 單片機(jī)內(nèi)部的晶振電路是一個(gè)高增益的反相放大器,引用 XTAL1 和 XTAL2 分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來(lái)自反向振蕩器的輸出,該反向放大器可以設(shè)置為片內(nèi)振蕩器。這里,我們選用 STC89C52 單片機(jī) 12MHZ 的內(nèi)部振蕩方式。電路如下:電容器 C1、C2 起穩(wěn)定振蕩頻率和快速起振的作用,電容 C1 和 C2 可以在20-100PF 之間取值,這里取 22PF,接線時(shí)要使晶體振蕩器 X1 盡可能的接近單片機(jī)。C122pFC222pFX1CRYSTAL合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 8 -圖 3.5 晶振電路3.4.2 按鍵部分電路接線在按鍵電路中,我可以在 I/O 口上直接設(shè)置按鍵,或者通過(guò) I/O 口設(shè)計(jì)一個(gè)鍵盤(pán),然后通過(guò)鍵盤(pán)掃描程序判斷是否有按鍵按下等。此系統(tǒng)是一個(gè)小系統(tǒng),有足夠的 I/O 口可以使用,為了使程序簡(jiǎn)化,我采用按鍵電路并且用部分 P1 口做按鍵開(kāi)關(guān),P1.0 為開(kāi)始/繼續(xù)按鍵,P1.3 為暫停按鍵,P1.5 為清零按鍵。此外復(fù)位選擇上電復(fù)位。開(kāi) 始暫 停清 零圖 3.6 按鍵電路3.4.3 顯示電路顯示電路我采用的是 7 位數(shù)碼管顯示電路。即用 2 個(gè)共陰極 LED 顯示,LED 是七段式顯示器,內(nèi)部有 7 個(gè)條形發(fā)光二極管組成,其工作方式是根據(jù)各二極管的亮滅組合成相應(yīng)的字符。在用數(shù)碼管顯示時(shí),有靜態(tài)掃描和動(dòng)態(tài)掃描兩種選擇,靜態(tài)顯示程序簡(jiǎn)單,顯示穩(wěn)定,但是占用端口比較多;動(dòng)態(tài)顯示所使用的端口比較少,但可以節(jié)省單片機(jī)的I/O 口。此設(shè)計(jì)由于電路簡(jiǎn)單,有足夠的 I/O 口,為了簡(jiǎn)化程序我選擇靜態(tài)顯示連接方式。合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 9 -圖 3.7 數(shù)碼管顯示3.4.4 復(fù)位電路復(fù)位是將單片機(jī)進(jìn)行初始化的操作,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤是系統(tǒng)處于跑飛狀態(tài)時(shí),為了擺脫困境,也需要按復(fù)位按鍵以便重新啟動(dòng)單片機(jī)。復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。在本次設(shè)計(jì)中采用了按鍵電平復(fù)位的方式,其復(fù)位電路如圖所示:復(fù) 位R1220R2220C310uF圖 3.8 復(fù)位電路4 系統(tǒng)程序的設(shè)計(jì)本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷 1 服務(wù)程序組成。其中主程序是整個(gè)程序的主體,可以對(duì)各個(gè)中斷程序進(jìn)行調(diào)用,協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。4.1 主程序設(shè)計(jì)合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 10 -系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如下:開(kāi)始初始化開(kāi)始按鍵 ?啟動(dòng)定時(shí)器顯示當(dāng)前時(shí)間暫停按鍵 ?記錄當(dāng)前時(shí)間清零按鍵 ?返回開(kāi)始按鍵 ?N NNYYYYN圖 4.1 主程序流程圖4.2 定時(shí)器 T0 子程序設(shè)計(jì)定時(shí)器 T0 子程序主要功能是溢出中斷,其流程圖如下:合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 11 -開(kāi)始顯示單元清零T 0 設(shè)為 1 6 位計(jì)時(shí)器模式允許 T 0 中斷進(jìn)入功能程序按鍵按下 ?調(diào)用顯示子程序圖 4.2 定時(shí)器 T0 子程序流程圖5 聯(lián)調(diào)與調(diào)試5.1 仿真調(diào)試系統(tǒng)的調(diào)試開(kāi)始是把編譯生成的無(wú)錯(cuò)誤且后綴名為.hex 的文件加載到 STC89C52 單片機(jī)中,方法是雙擊單片機(jī)彈出一個(gè)對(duì)話框,在 program file 后選擇要添加文件,文件要求必須是 hex 文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,當(dāng)出現(xiàn)錯(cuò)誤時(shí),大多都是軟件出了問(wèn)題,經(jīng)過(guò)不斷的進(jìn)行改進(jìn)與調(diào)試。對(duì)按鍵檢測(cè)、加減時(shí)間與按鍵之間產(chǎn)生的不一致、倒計(jì)時(shí)子程序的調(diào)用等軟件的修改后,系統(tǒng)基本實(shí)現(xiàn)了所要設(shè)計(jì)的功能。(1) 經(jīng)過(guò)對(duì)程序的運(yùn)行,并用 keil 軟件編譯后,用 proteus 仿真軟件進(jìn)行仿真,按下“開(kāi)始”按鈕之前,可以看到數(shù)碼管上數(shù)字顯示為零。如圖所示:合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 12 -開(kāi) 始暫 停清 零復(fù) 位XTAL218XTAL119ALE3031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P1.011.2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T 1P3.2/INT0123./IT113P3.4/T014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A10232.3/124P2.4/A12252.5/13262.6/1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF圖 5.1 開(kāi)始(2)按下“開(kāi)始”按鈕計(jì)時(shí)圖:開(kāi) 始暫 停清 零復(fù) 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A10232.3/124P2.4/A1225P2.5/A1326P2.6/A1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF圖 5.2 計(jì)時(shí)(3)最大計(jì)數(shù)范圍 99 秒圖:開(kāi) 始暫 停清 零復(fù) 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF圖 5.3 最大計(jì)時(shí)數(shù)合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 13 -5.2 硬件調(diào)試1、檢查電路:無(wú)論焊接多好的電子電路,在通電之前,都一定要仔細(xì)檢查電路的接線是否有誤,是否有虛焊等情況。在仔細(xì)的對(duì)照電路原理圖的情況下,按照特定的次序逐步逐級(jí)一一對(duì)應(yīng)檢查,尤其需要注意的是,電源連接線是否會(huì)接錯(cuò),電源和地之間是否有短接等情況,二極管方向是否接反,電解電容的極性是否接錯(cuò)等,集成電路和晶體管的引腳是否接錯(cuò),稍微碰一碰元器件,仔細(xì)查看它的焊點(diǎn)是否足夠牢固等。2、通電觀察:在給元器件接通電源之前,必須要調(diào)試好電源所需要電壓數(shù)值,并確定電路板電源接線端是否有短路的現(xiàn)象,若得出無(wú)短路現(xiàn)象的結(jié)論,就能給電路接通電源了。電源一經(jīng)接通,必須要趕快去測(cè)試它的特征,像波形、數(shù)據(jù)等可以稍后再測(cè),首要的是觀察接通后元器件有沒(méi)有不正常現(xiàn)象,如冒煙、異常氣味、放電、元器件發(fā)燙等現(xiàn)象。如果有應(yīng)要立即關(guān)斷電源,只有在故障排除后才方可重新接通電源。然后,再測(cè)量每個(gè)集成塊的電源引腳電壓是否正常,以確信集成電路是否已正常通電工作。合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 14 -結(jié)論與展望畢業(yè)設(shè)計(jì)是考察學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問(wèn)題、鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察的過(guò)程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中非?;钴S的領(lǐng)域,在生活中可以說(shuō)單片機(jī)是無(wú)處不在。因此,對(duì)于二十一世紀(jì)的大學(xué)來(lái)說(shuō),掌握單片機(jī)的開(kāi)發(fā)技術(shù)與方法是十分重要的?;仡櫰鸫舜萎厴I(yè)設(shè)計(jì)的種種,我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在這些日子里,可以說(shuō)是苦多于甜,但是在設(shè)計(jì)的過(guò)程中,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次畢業(yè)設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不能滿足以后發(fā)展要求的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)是困難重重,難免會(huì)遇到各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中也發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)不懂一些元器件的使用方法等。通過(guò)這次設(shè)計(jì),把以前所學(xué)過(guò)的知識(shí)又重新溫習(xí)了一遍。另外,在做畢業(yè)設(shè)計(jì)的過(guò)程中我也進(jìn)一步認(rèn)識(shí)到全面專(zhuān)業(yè)知識(shí)以及邏輯思考方式對(duì)研究問(wèn)題的重要性,同時(shí)我也更加具體的掌握了畢業(yè)設(shè)計(jì)的基本方法。經(jīng)過(guò)不斷的的努力與嘗試我最終圓滿完成了這次畢業(yè)設(shè)計(jì)??偟膩?lái)說(shuō),我學(xué)到了不少的東西,在設(shè)計(jì)過(guò)程中遇到了很多的困難,但沒(méi)放棄,查閱了許多相關(guān)的書(shū)籍,自己獨(dú)立思考和借鑒了前人的許多優(yōu)秀成果,并與所學(xué)的知識(shí)緊密的結(jié)合了起來(lái)。我們相信這過(guò)程對(duì)今后的學(xué)習(xí)和工作給有著積極的影響。合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 15 -致 謝這次畢業(yè)設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程和硬件電路問(wèn)題,最后在老師的辛勤指導(dǎo)下,終于完成了設(shè)計(jì)要求。同時(shí),從老師和同學(xué)那里我學(xué)得到很多實(shí)用的知識(shí),在此我對(duì)給予我?guī)椭^(guò)的所有同學(xué)和各位指導(dǎo)老師再次表示衷心的感謝!此外,從這次的畢業(yè)設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高。最后,再次向幫助過(guò)我的所有人真誠(chéng)的道一聲謝謝!合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 16 -參考文獻(xiàn)[1] 李朝清.單片機(jī)原理及口技術(shù)[M].北京航空航天大學(xué)出版社.2005.[2] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大出版社,1995.[3] 王守中. 51 單片機(jī)應(yīng)用開(kāi)發(fā)速查手冊(cè)[Z].人民郵電出版社.2009.[4] 張毅剛.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008:029-535. [5] 張毅剛,彭喜元, 彭宇. 單片機(jī)原理及應(yīng)用[M].北京: 高等教育出版社, 2010.[6] 陳忠平.單片機(jī)原理及接口[M].北京:清華大學(xué)出版社,2007.[7] 張毅剛.基于 Proteus 的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì) [M].北京:人民郵電出版社,2012:032-159.[8] 張毅剛,彭喜元, 彭宇. 單片機(jī)原理及應(yīng)用[M].北京: 高等教育出版社, 2010.[9] 樓然苗, 李光飛. 單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.[10] 石秀民.嵌入式系統(tǒng)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007[11] 陳汝全.實(shí)用微機(jī)與單片機(jī)控制技術(shù)[M].北京:電子科技大學(xué)出版社,1998.[12] 譚浩強(qiáng).C 程序設(shè)計(jì)[M](第三版).北京:清華大學(xué)出版社,2005.合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 17 -附 錄 A 系統(tǒng)原理圖P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0 10P3.1 11P3.2 12P3.3 13P3.4 14P3.5 15P3.6 16P3.7 17P2.0 21P2.1 22P2.2 23P2.3 24P2.4 25P2.5 26P2.6 27P2.7 28XTAL119XTAL218RST20PSEN29ALE30EA31U1AT89c51U2CAPU3CAPU4CRYSTALU7RES2U6RES2+C1CAPACITOR POL+5S1SW-PBS3SW-PB4SW-PBS2W-PB1234567abcdefg8GNDabfcgdeDS1REDCC1234567abcdefg8GNDabfcgdeDS2REDCC位位\位位位位位位位位合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 18 -附 錄 B 系統(tǒng)仿真圖與實(shí)物圖開(kāi) 始暫 停清 零復(fù) 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C12pFC22pFX1CRYSTALR120R220C310uF合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 19 -附 錄 C 系統(tǒng) PCB 圖合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 20 -附 錄 D 系統(tǒng)源程序#include //頭文件#define uchar unsigned char //宏定義#define uint unsigned int //宏定義//定義位sbit kai=P1^0;sbit zanting=P1^2;sbit fuwei=P1^4;void keyscan(); //函數(shù)聲明uchar a,i;uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint z) //延時(shí)程序{uchar i,j;for(i=z;i0;i--) //i=z 即延時(shí)約 z 毫秒for(j=2;j0;j--);}void main() //主程序{a=0;i=0;TMOD=01; //設(shè)置定時(shí)器 0 為工作方式 1TH0=(65536-50000)/256; //裝初值 50ms 一次中斷TL0=(65536-50000)%256; TR0=0;ET0=1; //開(kāi)定時(shí)器 0 中斷EA=1; //開(kāi)總中斷P2=table[0];P3=table[0];while(1) //循環(huán)檢測(cè)是否有按鍵按下{keyscan();}}合肥師范學(xué)院 2015 屆畢業(yè)生本科論文(設(shè)計(jì))- 21 -void keyscan() //鍵盤(pán)掃描程序{delay(10); //去抖動(dòng)if(!kai) //開(kāi)始按鍵按下TR0=1;delay(10);if(!zanting ) //暫停按鍵按下TR0=0;delay(10);if(!fuwei) //清零按鍵按下{P2=table[0];P3=table[0];a=0;i=0;TR0=0;}}void time0() interrupt 1{TH0=(65536-50000)/256; //重裝初值TL0=(65536-50000)%256;i++;if(i==20) //如果到了 20 次,說(shuō)明 1 秒時(shí)間到{i=0; //把 i 清零重新再計(jì) 20 次a++;if(a==100) //如果計(jì)時(shí)到 99 秒,從新從 0 開(kāi)始a=0;P2=table[a/10];P3=table[a%10];}
收藏