課程設(shè)計(jì)---基于單片機(jī)的數(shù)字式秒表的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)</b></p><p>  課題名稱(chēng): 基于單片機(jī)秒表課程設(shè)計(jì) </p><p>  設(shè)計(jì)時(shí)間: 2011.10.12 — 2010.12.28 </p><p>  系 部: 電氣工程系 </p&

2、gt;<p>  班 級(jí): 電信S2009-2-24 </p><p><b>  總 目 錄</b></p><p>  第一部分 任務(wù)書(shū)</p><p>  第二部分 開(kāi)題報(bào)告</p><p>  第三部分 畢業(yè)設(shè)計(jì)正文</p

3、><p>  基于單片機(jī)的數(shù)字式秒表的設(shè)計(jì)</p><p>  第 一 部 分</p><p><b>  任</b></p><p><b>  務(wù)</b></p><p><b>  書(shū)</b></p><p><b

4、>  畢業(yè)設(shè)計(jì)任務(wù)書(shū)</b></p><p>  第 二 部 分</p><p><b>  開(kāi)</b></p><p><b>  題</b></p><p><b>  報(bào)</b></p><p><b>  告

5、</b></p><p>  畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告書(shū)</p><p>  第 三 部 分</p><p><b>  畢</b></p><p><b>  業(yè)</b></p><p><b>  設(shè)</b></p>

6、<p><b>  計(jì)</b></p><p><b>  正</b></p><p><b>  文</b></p><p>  1.1設(shè)計(jì)任務(wù)及功能要求說(shuō)明</p><p>  由單片機(jī)接收小鍵盤(pán)控制遞增計(jì)時(shí),由LED 顯示模塊計(jì)時(shí)時(shí)間,顯示格式為 XX(分):

7、XX(秒).XX,精確到0.01s的整數(shù)倍。繪制系統(tǒng)硬件接線圖,并進(jìn)行系統(tǒng)仿真和實(shí)驗(yàn)。畫(huà)出程序流程圖并編寫(xiě)程序?qū)崿F(xiàn)系統(tǒng)功能。</p><p>  使用單片機(jī)AT89S52作為主要控制芯片,以四位一體共陽(yáng)極數(shù)碼顯示管通過(guò)三極管驅(qū)動(dòng)作為顯示部分,設(shè)計(jì)一個(gè)具有特定功能的數(shù)字式秒表。該數(shù)字式秒表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。該數(shù)字式秒表通過(guò)按鍵控制可實(shí)現(xiàn)開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、連續(xù)計(jì)時(shí)、清零

8、和停止功能。</p><p>  1.2數(shù)字式秒表的方案介紹及工作原理說(shuō)明</p><p>  使用AT89S52單片機(jī)作為核心控制部件,采用12M晶體振蕩器及微小電容構(gòu)成振蕩電路;采用S8550作為數(shù)碼管的驅(qū)動(dòng)部分;用兩個(gè)四位一體共陽(yáng)極或共陰極數(shù)碼顯示管作為顯示部分,構(gòu)成數(shù)字式秒表的主體結(jié)構(gòu),配合獨(dú)立式鍵盤(pán)和復(fù)位電路完成此秒表的復(fù)位、計(jì)時(shí)、連續(xù)、清零、停止各項(xiàng)功能。</p>

9、<p>  對(duì)于時(shí)鐘,它有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),但誤差很大,主要用在對(duì)時(shí)間精度要求不高的場(chǎng)合;二是用專(zhuān)門(mén)的時(shí)鐘芯片實(shí)現(xiàn),在對(duì)時(shí)間精度要求很高的情況下,通常采用這種方法。</p><p&g

10、t;  LED數(shù)碼顯示器有如下兩種連接方法:共陽(yáng)極接法:把發(fā)光二極管的陽(yáng)極連在一起構(gòu)成公共陽(yáng)極,使用時(shí)公共陽(yáng)極接+5V,每個(gè)發(fā)光二極管的陰極通過(guò)電阻與輸入端相連。共陰極接法:把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極,使用時(shí)公共陰極接地。每個(gè)發(fā)光二極管的陽(yáng)極通過(guò)電阻與輸入端相連。</p><p>  鍵盤(pán)部分方案:鍵盤(pán)控制采用獨(dú)立式按鍵,每個(gè)按鍵的一端均接地,另一端直接和P1口相連,在按鍵和P1口之間通過(guò)10K電阻與

11、+5V電源相連。鍵盤(pán)通過(guò)檢測(cè)輸入線的電平狀態(tài)就可以很容易地判斷哪個(gè)鍵被按下了,這種方法操作速度高而且軟件結(jié)構(gòu)很簡(jiǎn)單,比較適合按鍵較少或操作速度較高的場(chǎng)合,這種獨(dú)立式接口的應(yīng)用很普遍。</p><p>  顯示部分方案:顯示部分采用動(dòng)態(tài)顯示。數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為

12、每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。動(dòng)態(tài)顯示是利用人眼視覺(jué)暫留特性來(lái)實(shí)現(xiàn)顯示的。事實(shí)上,顯示器上任何

13、時(shí)刻只有一個(gè)數(shù)碼管有顯示。由于各數(shù)碼管輪流顯示的時(shí)間間隔短、節(jié)奏快,人的眼睛反應(yīng)不過(guò)來(lái),因此看到的是連續(xù)顯示的現(xiàn)象。為防止閃爍延時(shí)的時(shí)間在1ms左右,不能太長(zhǎng),也不能太短。本設(shè)計(jì)可采用P0口直接驅(qū)動(dòng)八段數(shù)碼管顯示。此方案成本低,而且單片機(jī)的I/O口占用較少,可以節(jié)約單片機(jī)接口資源,而且功耗更低。</p><p>  此電路采用單片機(jī)的P0口作為數(shù)碼顯示管的段控,采用P2口作為數(shù)碼管的位控。8個(gè)獨(dú)立式鍵盤(pán)分別接在單

14、片機(jī)的P1口上,以及其他部分構(gòu)成數(shù)字式秒表的硬件電路。通過(guò)編寫(xiě)程序使用單片機(jī)的定時(shí)計(jì)數(shù)器,以及軟件延時(shí),中斷資源來(lái)實(shí)現(xiàn)秒計(jì)時(shí)和相關(guān)控制。此數(shù)字式秒表的硬件整體結(jié)構(gòu)如圖1-1所示。</p><p>  圖 1-1數(shù)字式秒表的硬件結(jié)構(gòu)圖第2章 數(shù)字式秒表硬件系統(tǒng)的設(shè)計(jì)</p><p>  2.1數(shù)字式秒表硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹</p><p>  2.1.1 AT8

15、9S52簡(jiǎn)介</p><p>  (1) 與MCS-51產(chǎn)品相兼容;</p><p>  (2) 具有8KB可改寫(xiě)的Flash 內(nèi)部程序存儲(chǔ)器,可寫(xiě)/擦1000次;</p><p>  (5) 256字節(jié)內(nèi)部RAM;</p><p>  (6) 32根可編程I/O口;</p><p>  (7)3個(gè)16位定時(shí)器/計(jì)數(shù)

16、器。 </p><p>  (8) 8個(gè)中斷源;</p><p>  (9)可編程中串行口;</p><p>  (10) 低功耗空閑和掉電方式。</p><p>  它的價(jià)格便宜,功能強(qiáng)大,能耗低。很大程度上減少總電路的復(fù)雜性,提高了所設(shè)計(jì)系統(tǒng)的穩(wěn)定性。其芯片引腳圖如圖2-1所示。</p><p>  圖2-1 單

17、片機(jī)AT89S52引腳圖</p><p><b>  2.1.2時(shí)鐘電路</b></p><p>  時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。在AT89S52芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳TXAL2,在芯片

18、的外部通過(guò)這兩個(gè)引角跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。 此電路采用12MHz的石英晶體。時(shí)鐘電路如圖2-2:</p><p><b>  圖2-2 時(shí)鐘電路</b></p><p><b>  2.1.3鍵盤(pán)電路</b></p><p>  本設(shè)計(jì)使用獨(dú)立式鍵盤(pán)接在單片機(jī)的P1口上但通過(guò)

19、軟件賦予其中三個(gè)按鍵功能,其中S2是計(jì)時(shí)開(kāi)始按鍵,第二功能為停止,S3為計(jì)時(shí)暫停按鍵,第二功能為繼續(xù)計(jì)時(shí)按鍵,S4是清零按鍵。注意使用時(shí)只有在暫停狀態(tài)下才能繼續(xù)計(jì)時(shí),只有在停止?fàn)顟B(tài)下才能清零,在停止時(shí)不能繼續(xù)計(jì)時(shí),在暫停時(shí)不能清零。鍵盤(pán)電路如圖2-3:</p><p>  圖2-3獨(dú)立式鍵盤(pán)電路圖</p><p><b>  2.1.4復(fù)位電路</b></p&g

20、t;<p>  復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤是系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需要按復(fù)位鍵以重新啟動(dòng)。</p><p>  RST引腳是單片機(jī)復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即2個(gè)機(jī)器周期)以上,若使用頻率為6MHz的晶振,則復(fù)

21、位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的。在本設(shè)計(jì)中采用了按鍵電平復(fù)位方式,其復(fù)位電路如圖2-4所示:</p><p><b>  圖2-4 復(fù)位電路</b></p><p>  2.1.5 驅(qū)動(dòng)及顯示電路<

22、/p><p>  數(shù)碼管實(shí)際上是由二極管構(gòu)成發(fā)光二級(jí)管正常工作時(shí),其兩端正向壓降約為1.6v,正向電流約為10mA,為了使數(shù)碼管達(dá)到一定的亮度而又不至于由于電流過(guò)大而損壞,我們使用三極管S8550作為數(shù)碼管的驅(qū)動(dòng),同時(shí)在P0口和P2口上串上470歐姆的電阻。此處使用四位一體共陰極數(shù)碼管,由于驅(qū)動(dòng)電路決定了此處共陰極數(shù)碼管和共陽(yáng)極數(shù)碼管均可以采用而且均采用共陽(yáng)極代碼來(lái)編寫(xiě)顯示程序,具體電路如圖2-5所示。 </p

23、><p>  圖2-5 數(shù)碼管驅(qū)動(dòng)及顯示電路圖</p><p>  2.1.6 單片機(jī)下載口電路</p><p>  下載口主要是一個(gè)十芯的座子,可以通過(guò)使用USB下載線對(duì)單片機(jī)進(jìn)行程序下載。方便整個(gè)軟件的設(shè)計(jì),也能讓我們使用起來(lái)更加方便。</p><p>  圖2-6 單片機(jī)下載口電路圖</p><p>  2.2 數(shù)

24、字式秒表的硬件系統(tǒng)設(shè)計(jì)圖</p><p>  2.2.1 電路原理圖</p><p>  此處電路原理圖以及PCB原理圖的繪制均使用protel99軟件完成,Protel99是基于Win95/Win NT/Win98/Win2000的純32位電路設(shè)計(jì)制版系統(tǒng)。Protel99提供了一個(gè)集成的設(shè)計(jì)環(huán)境,包括了原理圖設(shè)計(jì)和PCB布線工具,集成的設(shè)計(jì)文檔管理,支持通過(guò)網(wǎng)絡(luò)進(jìn)行工作組協(xié)同設(shè)計(jì)功能

25、。根據(jù)硬件接線要求設(shè)計(jì)繪制電路原理圖及PCB。具體電路圖見(jiàn)附錄A與附錄B。</p><p>  2.2.2 PCB圖</p><p>  PCB圖設(shè)計(jì)時(shí),首先要使元器件盡量少,這樣既可以節(jié)約材料,又可以是布線更加短,減少干擾,同時(shí)還應(yīng)注意盡量減少線路之間的寄生電容和電感,</p><p>  布線時(shí)需要將線寬設(shè)置得比較寬這樣可以提高腐蝕電路板時(shí)的成功率,焊盤(pán)大小也

26、要設(shè)置的比較大,這樣在腐蝕環(huán)節(jié)和焊接環(huán)節(jié)比較容易成功。不易出現(xiàn)短線的現(xiàn)象和焊盤(pán)剝離的現(xiàn)象。雙面布線時(shí)芯片和針腳多的元件需將焊接點(diǎn)置于底層,這樣才能比較方便的焊接。</p><p>  制作電路板PCB圖見(jiàn)附錄B。</p><p>  第3章 數(shù)字式秒表軟件系統(tǒng)的設(shè)計(jì)</p><p>  3.1 數(shù)字式秒表使用單片機(jī)資源情況</p><p> 

27、 本次電子鐘設(shè)計(jì)除了了使用單片機(jī)工作所必須的硬件資源(如連接晶振的引腳XTAL1和XTAL2,復(fù)位引腳RESET)外,對(duì)單片機(jī)的硬件資源還做了具體的安排。</p><p>  (1).P0口:P0.0-P0.7作為數(shù)碼管顯示器的段控。</p><p>  (2).P1口:P1.0-P1.3作為獨(dú)立式鍵盤(pán)的輸入端。</p><p>  (3).P2口:P2.0-P2.

28、7分別控制數(shù)碼管LED0-LED7的位控碼驅(qū)動(dòng)。</p><p>  (4).定時(shí)/計(jì)數(shù)器:使用定時(shí)器0工作方式2實(shí)現(xiàn)數(shù)字式計(jì)數(shù)器的運(yùn)行。</p><p>  (5).專(zhuān)用寄存器:定時(shí)器控制寄存器TCON,通過(guò)設(shè)置該寄存器TR0位的狀態(tài)來(lái)控制定時(shí)/計(jì)數(shù)器0的啟動(dòng)/停止;中斷允許寄存器IE,通過(guò)設(shè)置該寄存器EA/ET0位的狀態(tài)來(lái)設(shè)置定時(shí)/計(jì)數(shù)器0中斷允許/禁止;定時(shí)/計(jì)數(shù)器工作方式寄存器TM

29、OD,設(shè)置定時(shí)/計(jì)數(shù)器0的工作方式。</p><p>  3.2 主程序流程圖</p><p>  圖3-1 主程序流程圖</p><p>  3.3中斷服務(wù)程序流程圖</p><p>  圖3-2 中斷服務(wù)程序流程圖3.4顯示程序流程圖</p><p>  圖3-3顯示程序流程圖</p><p&g

30、t;  3.5軟件系統(tǒng)程序清單</p><p>  按照流程圖應(yīng)用軟件keil匯編語(yǔ)言編程實(shí)現(xiàn)秒表功能。程序見(jiàn)附錄C。</p><p><b>  第4章 設(shè)計(jì)總結(jié)</b></p><p>  4.1 數(shù)字式秒表的設(shè)計(jì)結(jié)論及使用說(shuō)明</p><p>  通過(guò)設(shè)計(jì)和調(diào)試,數(shù)字式秒表能順利完成各項(xiàng)功能。上電或復(fù)位后顯示“P

31、.”提示符,此時(shí)按1鍵便可開(kāi)始計(jì)時(shí)。在計(jì)數(shù)狀態(tài)下,按下2鍵即可實(shí)現(xiàn)暫停,再次按下2鍵即可實(shí)現(xiàn)繼續(xù)計(jì)數(shù),在計(jì)數(shù)狀態(tài)下按下1鍵,實(shí)現(xiàn)計(jì)數(shù)停止,在停止?fàn)顟B(tài)下按下3鍵,便可實(shí)現(xiàn)計(jì)數(shù)清零。計(jì)數(shù)狀態(tài)下按下清零鍵,無(wú)效。</p><p>  4.2 調(diào)試軟件介紹</p><p>  本電子鐘的設(shè)計(jì)用的pretues仿真軟件設(shè)計(jì)電路并仿真。Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分

32、析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類(lèi)型有:68000系列、8051系

33、列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,功能極其

34、</p><p>  4.3 程序仿真與結(jié)果</p><p>  我們是在Keil軟件里編寫(xiě)程序并編譯通過(guò)才能被硬件電路所應(yīng)用。Keil的功能比較強(qiáng)大但還是有一定的缺點(diǎn)。他編譯過(guò)程中他只能檢查出所編寫(xiě)的語(yǔ)法錯(cuò)誤,所以我們一步一步的去在硬件電路里仿真去達(dá)到我們所設(shè)計(jì)要求的功能。經(jīng)仿真修改和完善均已達(dá)到設(shè)計(jì)要求.“P.”顯示,電子鐘準(zhǔn)備狀態(tài)與電子鐘自動(dòng)運(yùn)行狀態(tài)的仿真如下圖所示。</p&

35、gt;<p>  (1). “P.”顯示如圖4-1所示。</p><p>  圖4-1 “P”顯示圖</p><p>  (2). 數(shù)字式秒表準(zhǔn)備狀態(tài)仿真的顯示如圖4-2所示。</p><p>  圖4-2 準(zhǔn)備計(jì)時(shí)狀態(tài)</p><p>  (3). 數(shù)字式秒表運(yùn)行狀態(tài)的仿真如圖4-3所示。</p><p&g

36、t;  圖4-3 計(jì)時(shí)器狀態(tài)</p><p>  4.4 誤差分析及解決方法</p><p>  我們可以發(fā)現(xiàn)數(shù)字式秒表計(jì)數(shù)一段時(shí)間的我們的標(biāo)準(zhǔn)時(shí)間相比較出現(xiàn)了誤差,所設(shè)計(jì)的數(shù)字式秒表比我們的標(biāo)準(zhǔn)時(shí)間要慢,而且相比較的時(shí)間越長(zhǎng)他的時(shí)差越大。經(jīng)過(guò)分其主要原因與硬件和軟件都有關(guān)。</p><p>  軟件原因:我們從外部中斷請(qǐng)求有效到轉(zhuǎn)向中斷區(qū)入口地址所需的機(jī)器周期數(shù)

37、來(lái)計(jì)算中斷時(shí)間,51系列單片機(jī)最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期。在一般情況下中斷響應(yīng)時(shí)間通常無(wú)需考慮,但在精確定時(shí)的應(yīng)用場(chǎng)合需知道中斷響應(yīng)時(shí)間,以保證定時(shí)的精確控制。</p><p>  硬件原因:?jiǎn)纹瑱C(jī)的時(shí)鐘信號(hào)是由外部的振蕩電路所提供,在芯片的外部通過(guò)接X(jué)ATL1與XATL2這兩個(gè)引角跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。因?yàn)殡娮釉豢梢跃陀形覀兯O(shè)計(jì)的那么理想(電容的容量,振晶的

38、輸出頻率)所以會(huì)造成我們的時(shí)間準(zhǔn)確。</p><p>  針對(duì)這樣的問(wèn)題我們就能只能從上述兩個(gè)方面入手去解決。軟件方面我們可以通過(guò)計(jì)算設(shè)計(jì)子程序去減少響應(yīng)的時(shí)差。硬件部分我們可以采用一些穩(wěn)定,精確度比較高的電子元件去完善,但是在最后調(diào)試出的還是有誤差但我盡可能的減少差誤差接近理想。</p><p><b>  4.5 設(shè)計(jì)心得</b></p><

39、p>  通過(guò)對(duì)數(shù)字式秒表的設(shè)計(jì)與制作,我們把理論與實(shí)際相結(jié)合。加深了對(duì)理論知識(shí)的理解,也增強(qiáng)了我們的動(dòng)手能力。</p><p>  在電路設(shè)計(jì)過(guò)程中,我們學(xué)會(huì)了自己收集信息和處理信息的能力,為以后的學(xué)習(xí)和制作奠定了一定的基礎(chǔ),數(shù)字式秒表看似簡(jiǎn)單,但當(dāng)我們自己著手設(shè)計(jì)與制作的時(shí)候我們才發(fā)現(xiàn)是困難重重的。</p><p>  在元器件采購(gòu)過(guò)程中發(fā)現(xiàn)的問(wèn)題更大,在電路計(jì)算式我們根本沒(méi)有考慮

40、到元器件的型號(hào)和性能參數(shù),然而在實(shí)物購(gòu)買(mǎi)時(shí)我們就不得不開(kāi)始考慮其型號(hào)和性能參數(shù),這也是理論與實(shí)際的差別。還有,一些阻值的電阻與某些大小的電容根本就沒(méi)有這種型號(hào)的買(mǎi),這樣我們不得不考慮改變?cè)O(shè)計(jì)電路中的參數(shù),或者采用電路的等效方式來(lái)解決這樣的問(wèn)題。</p><p>  在制作PCB時(shí),發(fā)現(xiàn)一定要有細(xì)心、耐心和恒心才能做好事情,首先是線的布局上既要美觀又要實(shí)用和走線簡(jiǎn)單,兼顧到方方面面去考慮是很需要的。比如在做PCB板

41、時(shí),因?yàn)槿狈?jīng)驗(yàn)把板上的線畫(huà)得太細(xì)了,焊盤(pán)太細(xì)導(dǎo)致后面的腐蝕環(huán)節(jié)稍微有點(diǎn)失誤將使電路板出現(xiàn)斷線,打孔后無(wú)焊盤(pán)等問(wèn)題,把PCB板浸在三氯化鐵里浸得太久可能導(dǎo)致PCB板上的銅幾乎全都溶解了。雙面布線時(shí)必須做到兩面完全對(duì)齊,否則板子有可能無(wú)法使用,還有在有芯片的電路布線時(shí)不能將從芯片引腳引出的線布在兩面,否則將無(wú)法完成焊接任務(wù)。</p><p>  從剛剛接觸單片機(jī)開(kāi)始,此設(shè)計(jì)是我迄今為止,編寫(xiě)的最大的一個(gè)程序,在調(diào)試

42、過(guò)程中,我學(xué)會(huì)了怎樣去根據(jù)實(shí)驗(yàn)現(xiàn)象解決問(wèn)題,分析問(wèn)題的所在點(diǎn)。它不僅加強(qiáng)了我們解決問(wèn)題的能力,同時(shí)也鍛煉了我們的邏輯思維能力。</p><p>  此次課程設(shè)計(jì),學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨(dú)立思考解決問(wèn)題,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,使我們?cè)趯?shí)際動(dòng)手能力方面得到了較大的提高。</p><p><b>  4.6 教學(xué)建議</b></p><p>

43、;  希望學(xué)校能夠注重動(dòng)手能力的培養(yǎng),與生活實(shí)際相結(jié)合,把所學(xué)內(nèi)容應(yīng)用到生活中去,這學(xué)期我們通過(guò)結(jié)合實(shí)例講解程序,使我們更深刻的了解單片機(jī)的理論知識(shí),最重要的是通過(guò)實(shí)驗(yàn)課我們可以邊學(xué)邊實(shí)踐,從實(shí)踐中記住各種指令的用法和各種編程技巧,課本理論知識(shí)相對(duì)抽象而且散,如果僅僅靠看書(shū)根本無(wú)法熟練掌握單片機(jī)的軟硬件資源的運(yùn)用,而實(shí)驗(yàn)恰恰彌補(bǔ)了這個(gè)缺點(diǎn),感覺(jué)通過(guò)實(shí)驗(yàn)學(xué)習(xí)更有效率,更生動(dòng)有趣。故希望學(xué)校多多開(kāi)設(shè)實(shí)驗(yàn)課程。</p><

44、p><b>  參考文獻(xiàn)</b></p><p>  [1]李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1988.</p><p>  [1]Li Zhaoqing. SCM Theory and Interface Technology [M]. Beijing: Beijing Aerospace University Press, 1

45、988.</p><p>  [2]李勛等.單片機(jī)實(shí)用教程[M].北京:北京航空航天大學(xué)出版社,2000</p><p>  [2] Li Xun and so on. microcontroller Practical Guide [M]. Beijing: Beijing Aerospace University Press, 2000</p><p>  [3

46、]王幸之等.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,1999</p><p>  [3] Wangxing the other. microcomputer application system interference technology [M]. Beijing: Beijing Aerospace University Press, 1999</p><p>

47、;  [4]何為民.低功耗單片微型計(jì)算機(jī)系統(tǒng)設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社,1994</p><p>  [4] What the people. low-power single-chip micro-computer system design [M]. Beijing: Beijing Aerospace University Press, 1994</p><p>  

48、[5]李杏春等.8090單片機(jī)原理及實(shí)用接口技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,1996</p><p>  [5] Li Xingchun such .8090 SCM Theory and practical interface technology [M]. Beijing: Beijing Aerospace University Press, 1996</p><p>&

49、lt;b>  致 謝</b></p><p>  剛開(kāi)始接到課程設(shè)計(jì)任務(wù),認(rèn)為挺簡(jiǎn)單的,然而真正開(kāi)始動(dòng)手制作時(shí)才知道并不是那么簡(jiǎn)單,從初期的資料收集以及原理圖的繪制都受到了老師以及同學(xué)的幫助,在遇到困難時(shí)請(qǐng)教老師和同學(xué)都能得到耐心的解答,幫助我們少走彎路。感謝我的老師,以及我的同學(xué),在整個(gè)硬件電路的設(shè)計(jì)與制作過(guò)程中,他們都給了我很大的支持,是我從此次課程設(shè)計(jì)過(guò)程中獲益匪淺,本人對(duì)設(shè)計(jì)過(guò)程中給予

50、了通力合作,以及精神的支持,的老師和同學(xué)深表感謝。如果沒(méi)有他們我想我的設(shè)計(jì)不會(huì)這樣順利的完成。由于本人水平有限,在技術(shù)指標(biāo)和論文寫(xiě)作中可能存在一些缺陷,懇請(qǐng)各位老師和同學(xué)們批評(píng)指教。</p><p>  附 錄 A 原理圖</p><p>  附錄 B PCB圖</p><p>  附錄 C 程序清單</p><p>  ;*****

51、*************************************************************;</p><p><b> ??;項(xiàng)目名稱(chēng):秒表;</b></p><p><b> ?。辉O(shè)計(jì)者:蔣慧;</b></p><p> ?。辉O(shè)計(jì)日期:2011年01月;</p><p&g

52、t; ??;******************************************************************;</p><p>  ;LED數(shù)碼管顯示器設(shè)定;</p><p> ?。籔0.7---P0.0段控線,接LED的顯示段dp,g,f,e,d,c,b,a ;</p><p> ??;P2.7-P2.0位控線從左至右(LED7,

53、LED6,LED5,LED4,LED3,LED2,LED1,LED0);</p><p> ??;顯示緩沖區(qū)設(shè)定從左至右依次為78H,79H,7AH,7BH,7CH,7DH,7EH,7FH ;</p><p>  ;******************************************************************;</p><p> 

54、?。华?dú)立式鍵盤(pán)設(shè)定與功能;</p><p> ??;8個(gè)按鍵S1至S8分別依次接在P1.0至P1.7口線;</p><p> ?。籏0的功能為復(fù)位 </p><p> ??;K1的功能為啟動(dòng)/停止(標(biāo)識(shí)符為22H.0當(dāng)它為1時(shí)啟動(dòng),為0時(shí)停止)</p><p>  ;K2的功能為暫停/繼續(xù)(標(biāo)識(shí)符為22H.1當(dāng)它為1時(shí)暫停,為0時(shí)繼續(xù))</

55、p><p><b>  ;K3的功能為清零</b></p><p>  ;*******************************************************************;</p><p> ?。怀?shù)表格; </p><p>  ;DISBH(系統(tǒng)提示符P.字型代碼序號(hào)表)

56、;</p><p> ??;TAB(共陽(yáng)數(shù)碼管字型代碼表) ;</p><p>  ;*******************************************************************; </p><p><b>  ;子程序;</b></p><p> ?。籘IME_1MS(定時(shí)1

57、ms子程序);</p><p>  ;KEY(鍵掃描子程序);</p><p>  ;KEYCHULI(P1口數(shù)據(jù)處理子程序);</p><p>  ;DISP(數(shù)碼管顯示子程序);</p><p> ?。籇L(2毫秒延時(shí)子程序);</p><p> ??;ADD01(入口地址為R0)</p><p&

58、gt; ?。?******************************************************************;</p><p> ??;存儲(chǔ)器內(nèi)容的安排;</p><p>  ;堆棧棧底7FHH; ;</p><p> ?。?0H作為按鍵標(biāo)志(20H.0——20H.7分別對(duì)應(yīng)的是按鍵K1——K8);</p>&

59、lt;p> ??;專(zhuān)用寄存組1,用在顯示子程序中</p><p>  ;*******************************************************************;</p><p>  ;系統(tǒng)起始程序區(qū) </p><p>  ORG 0000H</p><p>  STA

60、RT: LJMP MAIN</p><p>  ORG 000BH</p><p>  LJMP PDJW</p><p> ??;****************************************************************;</p><p><b> ??;系統(tǒng)監(jiān)控程序區(qū)<

61、/b></p><p>  ORG 0030H</p><p>  MAIN: MOV PSW, #00H</p><p>  MOV SP, #7FH ;確立堆棧區(qū)</p><p>  MOV R0, #20H ;RAM區(qū)首地址<

62、;/p><p>  MOV R7, #96 ;RAM區(qū)單元個(gè)數(shù)</p><p>  MOVTMOD,#01H</p><p>  SETB EA</p><p><b>  SETBET0</b></p><p>  ML: MOV @

63、R0, #00H</p><p>  INC R0 </p><p>  DJNZ R7, ML</p><p>  TSF: MOV DPTR, #DISBH ;系統(tǒng)初始化后提示符“P.”字符代碼表首地址</p><p>  MOV R5,

64、 #08H </p><p>  MOV R0, #78H</p><p>  DISPTSF:CLR A</p><p>  MOVC A, @A+DPTR</p><p>  MOV @R0, A</p><p>  INC R0</p&g

65、t;<p>  INC DPTR</p><p>  DJNZ R5, DISPTSF</p><p>  KEY0:LCALLDISP</p><p>  LCALL KEY</p><p>  JB 20H.0, K1</p><p>  JB

66、20H.1, K2</p><p>  JB 20H.2, K3</p><p>  LJMP KEY0</p><p>  KEY00: LCALL KEY</p><p>  LCALL DISP</p><p>  JB 20H.2, K3</p>&

67、lt;p>  LJMP KEY00 </p><p>  K1: JB 22H.1, KEY0;如果此時(shí)為暫停狀態(tài),本次按鍵K1無(wú)效</p><p>  CPL 22H.0 </p><p>  JB 22H.0, K01 ;高電平則計(jì)時(shí) </p><p> 

68、 CLR TR0 ;低電平則停止</p><p>  LCALL DISP</p><p>  LJMP KEY00</p><p>  K01: MOV 7AH, #12H ;從零開(kāi)始計(jì)時(shí)</p><p>  MOV 7DH, #12H</p>

69、<p>  MOV 7FH, #10H</p><p>  MOV 78H, #00H</p><p>  MOV 79H, #00H</p><p>  MOV 7BH, #00H</p><p>  MOV 7CH, #00H</p>

70、<p>  MOV 7EH, #00H</p><p>  MOV 7FH, #00H </p><p>  LCALL DISP</p><p>  MOV TH0,#0D8H</p><p>  MOV TL0,#0F0H</p><p>

71、;  SETB TR0;啟動(dòng)定時(shí)器</p><p>  LJMP KEY0</p><p>  K2: JB 22H.0, K21 ;判斷秒表是否啟動(dòng),如不是啟動(dòng)狀態(tài)則此次按鍵無(wú)效</p><p>  LJMP KEY0</p><p>  K21: CPL22H.1<

72、;/p><p>  JB 22H.1, K22</p><p>  SETB TR0 ;繼續(xù)計(jì)時(shí)</p><p>  LJMP KEY0</p><p>  K22: CLR TR0 ;暫停秒表</p><p>  LCALL D

73、ISP</p><p>  LJMP KEY0</p><p>  K3:JB22H.0, KEY0 ;只有當(dāng)停止是,清零鍵才有效</p><p>  MOV R0, #79H ;秒表清零</p><p>  LCALL CLR00</p&g

74、t;<p>  MOV R0, #7CH</p><p>  LCALL CLR00</p><p>  MOV R0, #7FH</p><p>  LCALL CLR00</p><p>  LJMP KEY0</p><p>  PDJW: P

75、USH PSW</p><p>  PUSH ACC</p><p>  MOV TMOD, #01H ;定時(shí)器以工作方式1工作</p><p>  SETB RS1 ;設(shè)定組號(hào)為2組</p><p>  CLR RS0</p><p>  MOV

76、TH0,#0D8H</p><p>  MOVTL0,#0F0H</p><p>  MOV R0, #79H</p><p>  LCALL ADD01</p><p>  CJNE R2, #99, RETT ;判斷1秒到?jīng)]</p><p>  MOV

77、 R0, #7CH </p><p>  LCALL ADD01</p><p>  CJNE R2, #60, RETT ;判斷60毫秒到?jīng)]</p><p>  LCALL CLR00</p><p>  MOV R0, #7FH</p><p&g

78、t;  LCALL ADD01</p><p>  CJNE R2, #60H, RETT ;判斷60分到?jīng)]</p><p>  LCALL CLR00</p><p>  RETT: POP ACC</p><p>  POP PSW</p><p><

79、;b>  RETI</b></p><p> ?。?****************************************************************;</p><p> ??;常數(shù)表格區(qū)</p><p> ??;系統(tǒng)初始化后提示符“P.”字符代碼表;</p><p>  DISBH:

80、DB 10H,10H,10H,10H,10H,10H,10H,11H ;提示符“P.”字符序號(hào)</p><p>  ;顯示字符段選碼表(共陽(yáng)極代碼)</p><p>  TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8</p><p>  DB 90H, 88H,83H,0C6H,0A1H,

81、86H,8EH,0FFH,0CH,0BFH ;9,A,B,C,D,E,F,滅,p.,-</p><p>  ;*******************************************************************;</p><p><b> ?。蛔映绦騾^(qū);</b></p><p>  ADD01: MOVA,

82、 @R0</p><p>  DEC R0</p><p><b>  SWAP A</b></p><p>  ORL A, @R0</p><p>  ADD A, #01H</p><p><b>  D

83、A A</b></p><p>  MOV R2, A</p><p>  ANL A, #0FH</p><p>  MOV @R0, A </p><p>  MOV A, R2</p><

84、p>  ANL A, #0F0H</p><p><b>  SWAP A</b></p><p>  INC R0</p><p>  MOV @R0, A</p><p><b>  RET</b></p><p&

85、gt;  CLR00: MOV @R0, #00H</p><p>  DEC R0</p><p>  MOV @R0, #00H</p><p><b>  RET</b></p><p><b> ??;鍵掃描子程序</b></p>&

86、lt;p>  KEY:LCALL KEYCHULI;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ EXIT;沒(méi)有鍵按下,轉(zhuǎn)返回</p><p>  LCALLDISP ;調(diào)顯示子程序去抖動(dòng)</p><p>  LCALLDISP</p><p>  LCALL KEYCHULI

87、;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ EXIT;沒(méi)有鍵按下,轉(zhuǎn)返回</p><p>  MOVB,20H ;保存取反后的鍵值</p><p>  KEYSF:LCALLKEYCHULI;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZKEY1 ;鍵

88、釋放,轉(zhuǎn)恢復(fù)鍵值</p><p>  LCALLDISP</p><p>  LCALL DISP ;調(diào)顯示子程序延時(shí)</p><p>  LJMP KEYSF;等待釋放</p><p>  KEY1:MOV 20H,B;鍵值送20H保存</p><p><b

89、>  EXIT:RET</b></p><p><b>  ;子程序返回</b></p><p>  ;P1口數(shù)據(jù)處理子程序</p><p>  KEYCHULI:PUSH PSW;保護(hù)現(xiàn)場(chǎng)</p><p>  CLR RS1 ;改變當(dāng)前寄存器組為組1</

90、p><p><b>  SETB RS0</b></p><p>  MOV P1,#0FFH ;先向P1口寫(xiě)1</p><p>  MOV A,P1 ;讀P1口數(shù)據(jù)</p><p>  CPL A ;P1口數(shù)據(jù)取反</p>&l

91、t;p>  MOV 20H,A ;保存取反后的鍵值</p><p>  CLR RS1 ;恢復(fù)當(dāng)前寄存器組為組0</p><p><b>  CLR RS0</b></p><p>  POP PSW ;恢復(fù)現(xiàn)場(chǎng)</p><p>  RE

92、T ;子程序返回</p><p><b> ??;顯示子程序</b></p><p>  ;入口:78H,79H,7AH,7BH,7CH,7DH,7EH,7FH,</p><p>  DISP: PUSHDPH</p><p><b>  PUSHDPL</b&

93、gt;</p><p><b>  PUSHACC</b></p><p><b>  PUSHPSW</b></p><p>  CLR RS1 ;改變當(dāng)前寄存器組為組1</p><p>  SETB RS0</p><p>

94、;  MOV R1, #78H ;顯示緩沖存儲(chǔ)單元首地址</p><p>  MOV R2, #0FEH ;從右至左顯示</p><p>  MOV R5, #08H ;循環(huán)次數(shù),即驅(qū)動(dòng)數(shù)碼管的位數(shù)</p><p>  DISP1: MOVA, @R1</p>&

95、lt;p>  MOVDPTR, #TAB</p><p>  MOVCA, @A+DPTR</p><p>  MOVP0, A ;送段控</p><p>  MOVP2, R2 ;送位控</p><p>  LCALLDL

96、 ;延時(shí)1毫秒</p><p>  MOVA,R2 ;位控碼送A</p><p>  RLA ;獲得新的位控碼</p><p>  MOVR2, A ;保存新的位控碼</p><p>  INCR1

97、 ;獲得新的顯示緩沖單元地址</p><p>  DJNZR5,DISP1 ;循環(huán)沒(méi)有結(jié)束則繼續(xù)</p><p>  DISP2:POPPSW ;恢復(fù)當(dāng)前寄存器組的組號(hào)</p><p><b>  POPACC</b></p><p>&l

98、t;b>  POPDPL</b></p><p><b>  POPDPH</b></p><p><b>  RET</b></p><p> ??;延時(shí)1ms子程序(晶振頻率12MHz)DL</p><p>  DL:MOVR7, #02H</p>

99、<p>  DL1:MOVR6, #0FFH</p><p>  DL2:DJNZR6, DL2</p><p>  DJNZR7, DL1</p><p><b>  RET</b></p><p><b>  END</b></p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論