版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理與應(yīng)用課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 題 目: 秒表計(jì)時(shí)器 </p><p> 系 部: </p><p> 專 業(yè): </p><p>
2、 班 級(jí): </p><p> 學(xué)生姓名: 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 2011年 12月 15 日</p><p><b> 目
3、 錄</b></p><p> 1 設(shè)計(jì)任務(wù)與要求1</p><p> 1.1 課程設(shè)計(jì)的目的1</p><p> 1.2 課程設(shè)計(jì)的任務(wù)1</p><p> 1.3 課程設(shè)計(jì)的要求1</p><p><b> 2 設(shè)計(jì)方案2</b></p&g
4、t;<p> 2.1 設(shè)計(jì)思路2</p><p> 2.2 數(shù)字式秒表硬件系統(tǒng)各模塊功能2</p><p> 2.2.1 74LS1642</p><p> 2.2.2 MAX232簡(jiǎn)介3</p><p> 2.2.3 MAX813L4</p><p> 2.2.4 LE
5、D數(shù)碼管簡(jiǎn)介5</p><p> 3 硬件電路設(shè)計(jì)6</p><p> 3.1 發(fā)光二極管檢測(cè)電路6</p><p> 3.2 程序下載串行口電路6</p><p> 3.3 數(shù)碼管顯示電路7</p><p> 3.4 “看門(mén)狗”復(fù)位電路8</p><p> 3
6、.5 按鍵電路8</p><p><b> 4 軟件設(shè)計(jì)9</b></p><p> 4.1 數(shù)字秒表工作流程圖9</p><p> 4.2 源程序清單與注釋10</p><p> 4.2.1 程序初始化10</p><p> 4.2.2 主程序?qū)崿F(xiàn)秒表的計(jì)時(shí)10
7、</p><p> 5 調(diào)試過(guò)程14</p><p> 5.1 硬件的安裝14</p><p> 5.2 調(diào)試步驟14</p><p> 5.3 出現(xiàn)的問(wèn)題14</p><p> 5.4 解決的方法14</p><p><b> 6 結(jié)論15<
8、/b></p><p><b> 參考文獻(xiàn)16</b></p><p> 1 設(shè)計(jì)任務(wù)與要求</p><p> 1.1 課程設(shè)計(jì)的目的</p><p> 熟悉51系列單片機(jī)的使用;</p><p> 熟悉匯編語(yǔ)言或C語(yǔ)言的程序設(shè)計(jì)方法,了解基于Protel系列工具的電路板設(shè)計(jì)
9、流程;</p><p> 掌握單片機(jī)的內(nèi)部功能模塊的應(yīng)用,如定時(shí)器/計(jì)數(shù)器、中斷、I/O口、串行口通訊等功能;</p><p> 掌握單片機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn)。</p><p> 1.2 課程設(shè)計(jì)的任務(wù)</p><p> 本次課程設(shè)計(jì)的基本任務(wù)為完成一個(gè)秒表計(jì)時(shí)器的功能。</p><p>
10、 利用51單片機(jī)的定時(shí)計(jì)數(shù)器設(shè)計(jì)一個(gè)秒表,其中設(shè)有一個(gè)按鍵,定時(shí)器工作在方式1,當(dāng)?shù)谝淮伟聪掳存I時(shí),定時(shí)器開(kāi)始計(jì)時(shí)。第二次按下按鍵時(shí),停止計(jì)時(shí)并計(jì)算兩次按鍵的時(shí)間間隔,送顯示器顯示。第三次按下按鍵時(shí)定時(shí)器清零,等待下一次按鍵。</p><p> 1.3 課程設(shè)計(jì)的要求</p><p> 了解8051芯片的的工作原理和工作方式 ,使用該芯片對(duì)LED數(shù)碼管進(jìn)行顯示控制,實(shí)現(xiàn)用單片機(jī)的端口
11、控制數(shù)碼管,顯示分、秒,并能用按鈕實(shí)現(xiàn)秒表起動(dòng)、停止、清零功能。</p><p> 要求選用定時(shí)器的工作方式,畫(huà)出使用單片機(jī)控制LED數(shù)碼管顯示的電路圖,并在實(shí)驗(yàn)箱實(shí)現(xiàn)其硬件電路,并編程完成軟件部分,最后調(diào)試秒表起動(dòng)、停止、清零功能。</p><p><b> 2 設(shè)計(jì)方案</b></p><p><b> 2.1 設(shè)計(jì)思路
12、</b></p><p> 為實(shí)現(xiàn)數(shù)字秒表的計(jì)時(shí)、暫停、清零的功能,以 89C52單片機(jī)為中心器件,利用其定時(shí)器的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,程序下載電路,驅(qū)動(dòng)電路,以及一些按鍵電路等來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)地結(jié)合起來(lái)。其中軟件系統(tǒng)采用匯編語(yǔ)言編寫(xiě)程序,包括顯示程序,計(jì)時(shí)程序,中斷。 </p><p> 其中晶振振蕩電路以11.0592M
13、HZ晶振,看門(mén)狗復(fù)位電路以MAX813,程序下載電路以MAX232,單片機(jī)外數(shù)據(jù)傳輸以74LS164移位寄存器,驅(qū)動(dòng)電路以三極管,顯示電路以LED數(shù)碼管等器件為主,實(shí)現(xiàn)電路的設(shè)計(jì)。整體規(guī)劃結(jié)構(gòu)如下圖一所示。</p><p> 圖一 數(shù)字式秒表的整體規(guī)劃結(jié)構(gòu)圖 </p><p> 2.2 數(shù)字式秒表硬件系統(tǒng)各模塊功能</p><p> 2.2.1 74LS
14、164</p><p> 74LS164為8位移位寄存器,其主要電特性的典型值如下:</p><p> 54/74164 185mW 54/74LS164 80mW當(dāng)清除端(CLEAR)為低電平時(shí),輸出端(QA-QH)均為低電平。串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng)A、B任意一個(gè)為低電平,則禁止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當(dāng)A
15、、B有一個(gè)為高電平,則另一個(gè)就允許輸入數(shù)據(jù),并在CLOCK上升沿作用下決定Q0的狀態(tài)。 </p><p> 引腳功能:CLOCK :時(shí)鐘輸入端CLEAR: 同步清除輸入端(低電平有效) </p><p> A,B :串行數(shù)據(jù)輸入端QA-QH: 輸出端</p><p> 74LS164引腳如圖二所示</p><p> 圖二 74L
16、S164引腳圖</p><p> 2.2.2 MAX232簡(jiǎn)介</p><p> 圖三是MAX232的引腳結(jié)構(gòu)圖,MAX232芯片是美信公司專門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。</p><p> 圖三 MAX232引腳圖</p><p><b> 引腳介紹:</b>
17、</p><p> 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 </p><p> 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。 </p><p> 其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T
18、1OUT)為第一數(shù)據(jù)通道。 </p><p> 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 </p><p> TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 &l
19、t;/p><p> 第三部分是供電。15腳GND、16腳VCC(+5v)。</p><p> 2.2.3 MAX813L</p><p> MAX813L監(jiān)控電路可用于計(jì)算機(jī)、控制器、自動(dòng)化設(shè)備、智能設(shè)備及微處理器監(jiān)控中。它們有以下四方面的功能: </p><p> ?。?)上電、掉電狀態(tài)下的復(fù)位功能;</p><p&
20、gt; (2)MAX813L還有WATCHDOG輸出功能;</p><p> ?。?)內(nèi)有一個(gè)1.25V掉電告警門(mén)限檢測(cè)器;</p><p> (4)手動(dòng)復(fù)位輸入。</p><p> MAX813L當(dāng)供電電壓降至 4.65V以下將會(huì)產(chǎn)生一個(gè)復(fù)位脈沖,它有DIP、SO封裝。如下圖圖四為MAX813引腳結(jié)構(gòu)。</p><p> 圖四 M
21、AX813L引腳圖</p><p> ?。?)腳1(/MR):當(dāng)電壓降至 0.8V以下時(shí),手動(dòng)復(fù)位觸發(fā)一個(gè)復(fù)位脈沖。這個(gè)低電平為有效輸入提供一個(gè)內(nèi)部 250uA 的上拉電流。它能被TTL或CMOS邏輯電路來(lái)驅(qū)動(dòng)。</p><p> ?。?)腳2(VCC):+5V電源輸入端。</p><p> ?。?)腳3(GND):對(duì)所有信號(hào) 0V參考地。</p>&
22、lt;p> ?。?)腳4(PFI):電源失效監(jiān)督輸入端。當(dāng)PFI低于1.25V,/PFO為低電平。若PFI不用,可將其與GND或VCC相連。</p><p> ?。?)腳5(/PFO):當(dāng)PFI低于1.25V時(shí),電源失效輸出為低電平,且吸收電流。</p><p> ?。?)腳6(WDI):看門(mén)狗輸入端。當(dāng)WDI維持高電平或低電平達(dá)1.6S時(shí),其內(nèi)部WATCHDOG定時(shí)器完成計(jì)數(shù),且W
23、DO為低電平。WDI懸空或?qū)DI接到一個(gè)三態(tài)高阻緩沖器可使WACHTDOG失去作用。一旦證實(shí)復(fù)位發(fā)生,WDI 處于三態(tài)狀態(tài),或在WDI端檢測(cè)到一個(gè)上升沿或下降沿,內(nèi)部WATCHDOG定時(shí)器則被清零。</p><p> ?。?)腳7(RESET):高電平有效輸出端。</p><p> ?。?)腳8(/WDO):看門(mén)狗輸出端。當(dāng)內(nèi)部看門(mén)狗定時(shí)器完成1.6S計(jì)數(shù)后,/WDO為低電平,且直到WA
24、TCHDOG被清零,/WDO不變?yōu)楦唠娖健?WDO在低壓條件下為低電平。當(dāng)VCC低于復(fù)位門(mén)限時(shí),/WDO維持在低電平。然而與RESET不同,/WD0并沒(méi)有其最少脈寬。一旦VCC升至復(fù)位門(mén)限之上,/WDO 即刻變成高電平。</p><p> 2.2.4 LED數(shù)碼管簡(jiǎn)介</p><p> LED 數(shù)碼管在電子儀器中常用來(lái)顯示數(shù)字,符號(hào),顯示清晰,亮度高,價(jià)格便宜,廣泛低應(yīng)用在各種控制系
25、統(tǒng)中。</p><p> 1、LED 數(shù)碼管結(jié)構(gòu)</p><p> LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來(lái)表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。 </p><p> LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸
26、。小尺寸數(shù)碼管的顯示筆畫(huà)常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過(guò)30mA。發(fā)光二極管的陽(yáng)極連接到一起連接到電源正極的稱為共陽(yáng)數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。</p><p><b>
27、2、驅(qū)動(dòng)方式</b></p><p> ?。?)靜態(tài)顯示驅(qū)動(dòng): </p><p> 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O腳進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)位*器*進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O腳多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O腳來(lái)驅(qū)動(dòng),故實(shí)際應(yīng)用時(shí)必須增加*驅(qū)動(dòng)器進(jìn)
28、行驅(qū)動(dòng),增加了硬體電路的復(fù)雜性。 </p><p> ?。?)動(dòng)態(tài)顯示驅(qū)動(dòng): </p><p> 數(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 "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都
29、接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位元就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。</p><p><b> 3 硬件電路設(shè)計(jì)</b></p><p> 3.1 發(fā)光二極管檢測(cè)電路</p><p> 圖五所示為發(fā)光二極管檢測(cè)電路,將
30、三個(gè)發(fā)光二級(jí)管連入電路,主要用于對(duì)焊接電路板完成后的功能測(cè)試,檢查是否存在虛焊或者誤焊,以及檢查89C52單片機(jī)是否能夠正常工作。</p><p> 圖五 發(fā)光二極管檢測(cè)電路</p><p> 3.2 程序下載串行口電路</p><p> 串行口電路結(jié)構(gòu)圖如下圖圖六所示</p><p> 圖六 串行口電路圖</p>
31、<p> 為了實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信,從MAX232芯片中的兩路發(fā)送接收中選一路作為接口,要注意其發(fā)送與接收引腳對(duì)應(yīng),否則可能對(duì)器件或計(jì)算機(jī)串口造成永久性損壞。</p><p> 選他T1IN接單片機(jī)的發(fā)送端TXD,PC機(jī)的RS—232的接收端RD對(duì)應(yīng)接T1OUT引腳。同時(shí),R1OUT接單片機(jī)的接受端RXD引腳,則PC機(jī)的RS—232的發(fā)送端TD一定要對(duì)應(yīng)接R1IN引腳。</p&g
32、t;<p> 將MAX232的TXD、RXD分別與單片機(jī)的P3.0、P3.1相連接,實(shí)現(xiàn)單片機(jī)與PC機(jī)的通訊,能夠?qū)⒊绦蛳螺d到單片機(jī)里面。</p><p> 3.3 數(shù)碼管顯示電路</p><p> 圖七 數(shù)碼管顯示電路</p><p> 圖七采用的是數(shù)碼管顯示電路。用6個(gè)共陰極LED顯示,LED是七段式顯示器,內(nèi)部有7個(gè)條形發(fā)光二極管和1
33、個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。數(shù)碼管正常工作時(shí),其兩端正向壓降約為1.6v,正向電流約為10mA,為了使數(shù)碼管達(dá)到一定的亮度而又不至于由于電流過(guò)大而損壞,我們使用三極管S9015作為數(shù)碼管的驅(qū)動(dòng),同時(shí)在P0口和P2口串上302歐姆的電阻。</p><p> 在用數(shù)碼管顯示時(shí),采用LED動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。由于P0口的輸出級(jí)是開(kāi)漏電路,用它驅(qū)動(dòng)時(shí)需要外接上拉電阻才能輸出高電平。<
34、/p><p> 用74LS164采用邊沿觸發(fā)式,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過(guò)兩個(gè)輸入端(A 與 B)相連串行輸入;時(shí)鐘 (CP) 每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到 Q0, Q0 是數(shù)據(jù)輸入端(A和 B),它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長(zhǎng)度,從而對(duì)數(shù)碼管傳送數(shù)據(jù)來(lái)顯示。</p><p> 3.4 “看門(mén)狗”復(fù)位電路</p><p> 圖八 “看
35、門(mén)狗”復(fù)位電路</p><p> 圖八是MAX813L在單片機(jī)系統(tǒng)中的應(yīng)用線路圖。此電路可以實(shí)現(xiàn)上電、瞬時(shí)掉電以及程序運(yùn)行出現(xiàn)“死機(jī)”時(shí)的自動(dòng)復(fù)位和隨時(shí)的手動(dòng)復(fù)位;并且可以實(shí)時(shí)地*電源故障,以便及時(shí)地保存數(shù)據(jù)。</p><p> 本電路利用了MAX813L的上電復(fù)位輸入端。只要程序一旦跑飛引起程序“死機(jī)”, 端電平由高到低,當(dāng) 變低超過(guò)140 ms,將引起MAX813L產(chǎn)生一個(gè)200
36、ms的復(fù)位脈沖。同時(shí)使看門(mén)狗定時(shí)器清0和使引腳變成高電平。</p><p> 當(dāng)電源發(fā)生故障,PFI輸入端的電平低于1.25 V時(shí),電源故障輸出端 電平由高變低,引起單片機(jī) 中斷,CPU響應(yīng)中斷,執(zhí)行相應(yīng)的中斷服務(wù)程序,保護(hù)數(shù)據(jù),斷開(kāi)外部用電電路等。</p><p><b> 3.5 按鍵電路</b></p><p><b>
37、 圖九 按鍵電路</b></p><p> 圖九使用了獨(dú)立式鍵盤(pán)接在單片機(jī)的P1口上但通過(guò)軟件賦予其中兩個(gè)按鍵功能,其中SB1是計(jì)時(shí)開(kāi)始按鍵,第二功能為停止,SB2是清零按鍵。注意使用時(shí)只有在暫停狀態(tài)下才能繼續(xù)計(jì)時(shí),在計(jì)數(shù)和暫停過(guò)程中都可以清零。</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 4.1
38、數(shù)字秒表工作流程圖</p><p> 圖十 數(shù)字秒表工作流程圖</p><p> 4.2 源程序清單與注釋</p><p> 4.2.1 程序初始化</p><p> ?。挥糜诙x地址、字符等,便于以后程序的書(shū)寫(xiě) </p><p> CLK EQU P2.5 </p><p>
39、SIN EQU P2.4</p><p> S1 EQU P0.0</p><p> S2 EQU P0.1</p><p> S3 EQU P0.2</p><p> S4 EQU P2.6</p><p> S5 EQU P2.7</p><p> S6 EQU P0
40、.7</p><p> SB EQU P1.0</p><p> CLR_S EQU P1.1</p><p> TIMER_ON EQU 20H</p><p><b> ORG 0000H</b></p><p> SJMP START</p><p>&l
41、t;b> ORG 000BH</b></p><p> LCALL T0_S</p><p><b> RETI</b></p><p><b> ORG 0030H</b></p><p> 4.2.2 主程序?qū)崿F(xiàn)秒表的計(jì)時(shí)</p><p>
42、 START:;0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,段碼編碼</p><p> MOV 60H,#0E7H</p><p> MOV 61H,#05H</p><p> MOV 62H,#0E9H</p><p> MOV 63H,#0ADH</p>&
43、lt;p> MOV 64H,#00FH</p><p> MOV 65H,#0AEH</p><p> MOV 66H,#0EEH</p><p> MOV 67H,#85H</p><p> MOV 68H,#0EFH</p><p> MOV 69H,#0BFH </p><p
44、> MOV 6AH,#08H</p><p><b> ; 暫存</b></p><p> MOV 70H,#0AH</p><p> MOV 71H,#0AH</p><p> MOV 72H,#00H</p><p> MOV 73H,#00H</p><
45、p> MOV 74H,#0AH</p><p> MOV 75H,#0AH</p><p><b> CLR S1</b></p><p><b> CLR S2</b></p><p><b> CLR S3</b></p><p>&
46、lt;b> CLR S4</b></p><p><b> CLR S5</b></p><p><b> CLR S6</b></p><p> MOV 30H,#12H</p><p> CLR TIMER_ON</p><p> MOV T
47、MOD,#01H</p><p> MOV TH1,#00H</p><p> MOV TL1,#00H</p><p><b> SETB ET0</b></p><p><b> SETB EA</b></p><p><b> CLR TR0<
48、/b></p><p><b> MAIN:</b></p><p> JB CLR_S,NOT_CLR ;判斷是否按下清零鍵</p><p> MOV 73H,#00H</p><p> MOV 72H,#00H</p><p> CLR TIMER_ON</p>
49、<p><b> CLR TR0</b></p><p><b> NOT_CLR:</b></p><p> JB SB,SKIP ;開(kāi)始與停止,是否按下SB,是向下執(zhí)行,否跳到skip</p><p> JB TIMER_ON,OFF</p><p> ??;是否開(kāi)啟,為
50、0位沒(méi)有開(kāi)啟,向下執(zhí)行開(kāi)啟。否則關(guān)閉</p><p> SETB TIMER_ON</p><p><b> SETB TR0</b></p><p><b> SJMP SKIP</b></p><p> OFF:CLR TIMER_ON</p><p><
51、b> CLR TR0</b></p><p><b> SKIP:</b></p><p> MOV R1,#70H</p><p><b> CLR S1;</b></p><p> LCALL DIS_N</p><p><b>
52、INC R1</b></p><p><b> SETB S1;</b></p><p><b> CLR S2;</b></p><p> LCALL DIS_N</p><p><b> INC R1</b></p><p>&l
53、t;b> SETB S2;</b></p><p><b> CLR S3;</b></p><p> LCALL DIS_N</p><p><b> INC R1</b></p><p><b> SETB S3;</b></p>
54、<p><b> CLR S4;</b></p><p> LCALL DIS_N</p><p><b> INC R1</b></p><p><b> SETB S4;</b></p><p><b> CLR S5;</b>&l
55、t;/p><p> LCALL DIS_N</p><p><b> INC R1</b></p><p><b> SETB S5;</b></p><p><b> CLR S6;</b></p><p> LCALL DIS_N</p&
56、gt;<p><b> INC R1</b></p><p><b> SETB S6;</b></p><p><b> SJMP MAIN</b></p><p><b> DIS_N:</b></p><p> MOV A,#
57、0FFH;clear</p><p> LCALL PRINT_BYTE</p><p> MOV A,@R1 ;獲取暫存器內(nèi)數(shù)值</p><p> ADD A,#60H ;獲取碼值地址</p><p><b> MOV R0,A</b></p><p> MOV A,@
58、R0 ;獲取碼值</p><p> CPL A ;根據(jù)數(shù)碼管共陰共陽(yáng)情況,是否取反</p><p> LCALL PRINT_BYTE ;send data</p><p> LCALL DELAY</p><p><b> RET</b></p><p> ;向一位寄存器寫(xiě)
59、于一字節(jié)</p><p> PRINT_BYTE:</p><p> MOV R0,#08H;8個(gè)字節(jié)</p><p> RLA:RLC A ;右移1位</p><p><b> CLR CLK</b></p><p><b> MOV SIN,C</b>
60、;</p><p><b> SETB CLK</b></p><p> DJNZ R0,RLA</p><p><b> RET</b></p><p> DELAY:MOV R0,#0FFH</p><p> DE1:DJNZ R0,DE1</p>
61、;<p><b> RET</b></p><p> T0_S: ;T0中斷程序,用于計(jì)算秒表時(shí)間</p><p> MOV TH1,#00H</p><p> MOV TL1,#00H</p><p> DJNZ 30H,OUT_T0</p><p> ;定
62、時(shí)器是否跑完設(shè)定變數(shù) ,是就向下執(zhí)行,沒(méi)有只是各位加1</p><p> MOV 30H,#10H ;初始化遍數(shù)</p><p><b> MOV A,73H</b></p><p> CJNE A,#09H,INC_G ;各位是否為九</p><p> MOV 73H,#00H ;清零個(gè)位</p
63、><p> INC 72H ;十位加1</p><p> SJMP OUT_T0</p><p><b> INC_G:</b></p><p><b> INC 73H</b></p><p> OUT_T0:RET</p><p>
64、<b> END</b></p><p><b> 5 調(diào)試過(guò)程</b></p><p> 5.1 硬件的安裝</p><p> 按照我們?cè)O(shè)計(jì)的原理圖以及老師繪制的PCB板圖紙,將課程設(shè)計(jì)用到的器件逐個(gè)焊接到PCB板上。首先將用到的STC89C52、MAX813 、MAX232、74LS164器件焊接上座,以便
65、于電路在焊接過(guò)程中誤焊的修改和保護(hù)元器件。然后將數(shù)碼管、按鍵、電源開(kāi)關(guān)、保護(hù)器、發(fā)光二級(jí)管分別在對(duì)應(yīng)位置焊接上。最后將集成塊安裝到對(duì)應(yīng)的座上,檢查電路。</p><p><b> 5.2 調(diào)試步驟</b></p><p> 首先檢查電路焊接過(guò)程中是否存在虛焊或者誤焊的現(xiàn)象,經(jīng)檢查沒(méi)有。然后是對(duì)元器件功能的測(cè)試,看是否能夠正常工作,先編寫(xiě)一段小程序使發(fā)光二級(jí)管亮,
66、用于檢測(cè)單片機(jī)、下載程序電路,以及部分電路是否能夠正常工作。最后將編寫(xiě)好的程序下載到單片機(jī)中,進(jìn)行有關(guān)功能的調(diào)試。</p><p> 5.3 出現(xiàn)的問(wèn)題</p><p> 在調(diào)試過(guò)程中,出現(xiàn)的問(wèn)題是一個(gè)發(fā)光二級(jí)管不能正常發(fā)光,以及數(shù)碼管不能正常顯示,出現(xiàn)數(shù)字的誤顯示和計(jì)時(shí)速度過(guò)慢,比1秒稍長(zhǎng)些。</p><p> 5.4 解決的方法</p>
67、<p> 對(duì)于一個(gè)發(fā)光二級(jí)管不能正常發(fā)光,我們經(jīng)檢查發(fā)現(xiàn)這個(gè)二極管壞了,我們將它取下,重新焊接上一個(gè)新的發(fā)光二級(jí)管。</p><p> 對(duì)數(shù)碼管的修改比較麻煩,首先需要對(duì)數(shù)碼管段碼重新編寫(xiě)代碼,用于顯示正常的0—9數(shù)字,修改后發(fā)現(xiàn)能夠正常顯示。</p><p><b> 修改后代碼如下:</b></p><p> MOV 60
68、H,#0E7H</p><p> MOV 61H,#05H</p><p> MOV 62H,#0E9H</p><p> MOV 63H,#0ADH</p><p> MOV 64H,#00FH</p><p> MOV 65H,#0AEH</p><p> MOV 66H,#0E
69、EH</p><p> MOV 67H,#85H</p><p> MOV 68H,#0EFH</p><p> MOV 69H,#0BFH </p><p> MOV 6AH,#08H</p><p> 最后就是對(duì)計(jì)時(shí)速度的調(diào)試,經(jīng)計(jì)算(MOV 30H,#10H )我們調(diào)節(jié)好了速度,使它能夠按照1秒的速度來(lái)
70、計(jì)時(shí)。</p><p><b> 6 結(jié)論</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(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)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要
71、的。</p><p> 回顧起此次單片機(jī)課程設(shè)計(jì),仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在接近兩個(gè)星期的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自
72、己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)不懂一些元器件的使用方法,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好……通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。</p><p> 在做課程設(shè)計(jì)的日子里得到了老師的悉心指導(dǎo)和同學(xué)的幫助,在此向他們
73、致以誠(chéng)摯的謝意,感謝提供幫助的老師和同學(xué)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 吳金戎,沈慶陽(yáng),郭庭吉. 8051單片機(jī)實(shí)踐與應(yīng)用[M]. 北京:清華大學(xué)出版社,2002 </p><p> [2] 樓然苗,李光飛. 51系列單片機(jī)設(shè)計(jì)實(shí)例[M]. 北京:航空航天大學(xué)出版社,2003 </p>
74、<p> [4] 李鴻. 單片機(jī)原理及應(yīng)用[M]. 湖南:湖南大學(xué)出版社,2004</p><p> [5] 何立民. 單片機(jī)高級(jí)教程[M]. 第1版.北京:北京航空航天大學(xué)出版社,2001[6] 徐惠民、安德寧. 單片微型計(jì)算機(jī)原理接口與應(yīng)用[M]. 第1版. 北京:北京郵電大學(xué)出版社,1996[7] 肖洪兵. 跟我學(xué)用單片機(jī)[M]. 北京:北京航空航天大學(xué)出版社,2002.8[8]李廣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 數(shù)字秒表
- 課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字秒表設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- 簡(jiǎn)易數(shù)字秒表課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--數(shù)字秒表
- eda數(shù)字秒表課程設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 數(shù)字電子課程設(shè)計(jì)--秒表
- 數(shù)字秒表課程設(shè)計(jì) (2)
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---數(shù)字秒表
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- 簡(jiǎn)易數(shù)字秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---數(shù)字秒表設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論