單片機(jī)秒表實訓(xùn)論文
單片機(jī)實訓(xùn)論文廣州鐵路職業(yè)技術(shù)專業(yè):應(yīng)用電子技術(shù)學(xué)號:050509021905050902130505090247
姓名:陳燕黃利平李劍鋒
成績評定:
1.引言
近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機(jī)的數(shù)字電子秒表的設(shè)計。
本設(shè)計的數(shù)字電子秒表系統(tǒng)采用AT89C52單片機(jī)為中心器件,利用其定時器/計數(shù)器定時和計數(shù)原理,結(jié)合顯示電路,LED數(shù)碼管以及外部中斷電路來設(shè)計計時器。將軟件、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)四位LED顯示,能正確地進(jìn)行計時。其中軟件系統(tǒng)采用匯編語言編寫的程序,包括顯示程序,定時中斷服務(wù),外部中斷服務(wù)程序,延時程序等,并在KEIL中調(diào)試運(yùn)行硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實現(xiàn),簡單且易于觀察,在仿真中就可以觀察到實際的工作狀態(tài)。
關(guān)鍵字:單片機(jī);數(shù)字電子秒表;仿真
本文主要內(nèi)容包括三部分:第一部分介紹硬件部分的設(shè)計思路及方案;第二部分介紹軟件部分的設(shè)計思路和設(shè)計;最后一部分則是整個系統(tǒng)的安裝及調(diào)試過程。
2.硬件設(shè)計
2.1總體方案的設(shè)計
數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計時中廣泛應(yīng)用。本設(shè)計用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單。
設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器、計時與顯示電路和復(fù)位電路等。主控制器用AT89C52,顯示電路采用共陽極LED數(shù)碼管顯示計時時間。
本設(shè)計利用AT89C52單片機(jī)的定時器/計時器定時和計數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P3.0,P3.1,RST開口接四個按鈕開關(guān),分別實現(xiàn)開始,暫停,復(fù)位的功能。電路原理圖設(shè)計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求完美。硬件電路圖按照圖1.1進(jìn)行設(shè)計。
圖1.1數(shù)字秒表硬件電路的基本原理圖
根據(jù)要求知道秒表設(shè)計主要是實現(xiàn)的功能是計時和顯示。因此設(shè)置了三個按鍵和四位的數(shù)碼管顯示時間,這三個按鍵分別是開始、暫停、復(fù)位的時間按鍵。四個按鍵均采用觸點(diǎn)式按鍵。
2.2顯示電路的選擇與設(shè)計
對于數(shù)字顯示電路,通常才用液晶顯示或數(shù)碼管顯示。對于一般的段式液屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠(yuǎn)距離觀看;而數(shù)碼管作為一種主動顯示器件,具有亮度高、響應(yīng)速度快等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或是遠(yuǎn)距離操作。因此,本設(shè)計的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。
數(shù)碼管顯示分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設(shè)計需要采用四位數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動態(tài)顯示。
動態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式成為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一位8位的I/O口控制;各位的公共陽極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時刻顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時顯示的感覺。數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種。
這次實訓(xùn),我們組所使用的就是共陽極的數(shù)碼管。共陽極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起。通常。共陽極接高電平(一般接電源),其他管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端位低電平時,則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。
2.3按鍵電路的選擇與設(shè)計
本設(shè)計中有三個按鍵,分別實現(xiàn)開始\\暫停、復(fù)位的功能。這三個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。本設(shè)計中,對復(fù)位鍵采用查詢的方式,而對于開始和暫停鍵采用挖補(bǔ)中斷。按鍵電路由于采用了外部中斷,所以需要用到P3口的第二功能。P3引腳的第二功能如表1.2
2.4時鐘電路的選擇與設(shè)計
單片機(jī)的時鐘信號用來提供單片機(jī)內(nèi)各種微操作的時間基準(zhǔn),89c52片內(nèi)設(shè)有一個由反向放大器所構(gòu)成的震蕩電路,XTAL1和XTAL2分別為振蕩電路輸入和輸出端。89C52單片機(jī)的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩方式。一般情況,采用內(nèi)部振蕩,只要將XTAL1和XTAL2接到外部振蕩器級行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。
2.5復(fù)位電路的選擇與設(shè)計
關(guān)于單片機(jī)的置位和復(fù)位,都是為了把電路初始到一個確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個例如狀態(tài)初始化到空狀態(tài)。但單片機(jī)本身是不能自動進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實現(xiàn)。常見的復(fù)位電路如圖1.3所示:
本設(shè)計采用上電且開關(guān)復(fù)位,如圖1.4所示上電后,由于電容充電,使RST持續(xù)一段高電平時間。當(dāng)單片機(jī)已在運(yùn)行之中時,按下復(fù)位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關(guān)復(fù)位的操作。通常選擇C=30uF,R=1K的電阻。
2.6系統(tǒng)總電路設(shè)計
系統(tǒng)總電路由以上設(shè)計的顯示電路,時鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。
3軟件設(shè)計
3.1程序設(shè)計思想
本設(shè)計采用了匯編語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了匯編過程。匯編語言的特點(diǎn)是用符號代替了機(jī)器指令密碼,而且助記符與指令代碼一一對應(yīng),基本是、保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。
3.2主程序設(shè)計
本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個程序的主體,可以對各個中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個子程序之間的聯(lián)系。
擴(kuò)展閱讀:單片機(jī)秒表實訓(xùn)論文
單片機(jī)秒表實訓(xùn)論文
指導(dǎo)老師:王先彪小組成員:李凱輝
李翠珠王晶晶
應(yīng)用電子09-2班
摘要:近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向
深入,同時帶動著傳統(tǒng)控制檢測日新月異更新。在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,僅單片機(jī)方面的知識是不夠的,還要根據(jù)具體的硬件結(jié)構(gòu),以及針對具體的應(yīng)用對象的軟件結(jié)合,加以完善。
本次實訓(xùn)采用了AT89C51芯片、LED四位數(shù)碼管、三極管、電容、開關(guān)、晶振及若干電阻實現(xiàn)了秒表。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)顯示,可謂功能強(qiáng)大。其中軟件系統(tǒng)采用匯編語言編寫程序,包括顯示程序,加減計數(shù)程序,快加快減程序,中斷,延時程序,按鍵消抖程序等,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態(tài)。
關(guān)鍵字:單片機(jī)、AT89C51芯片、設(shè)計。
一、實訓(xùn)目的及要求2頁二、硬件系統(tǒng)設(shè)計2頁三、試驗程序:4頁四:電路設(shè)計5頁五、實驗結(jié)果2頁六、調(diào)試10頁七、實物電路圖11頁八、實訓(xùn)總結(jié):12頁
一、實訓(xùn)的目的及要求:
1、本次實主要采用AT89C51芯片進(jìn)行對整個產(chǎn)品的控制,其中包括對數(shù)碼管的位碼和段碼的送顯控制,以及對送顯時間的控制等主要部分功能控制。
2、數(shù)碼管是采用了四位共陽極的,有獨(dú)立的電源提供,保證了送顯的效果。
3、三極管是用了S9015型號的,PNP型,保證了電流的提供。4、通過四兩位數(shù)碼管來顯示秒表的時間,三個按鍵對秒表實現(xiàn)啟動、停止及復(fù)位的功能。
二、硬件系統(tǒng)設(shè)計:
1、本系統(tǒng)采用AT89C51芯片,有40個引腳
40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。1)電源:(1)VCC(40腳):片電源,接+5V;(2)VSS(20腳):接地端;
2)時鐘:XTAL1、XTAL2-晶體振蕩電路反相輸入端和輸出端。3)控制線:RST(Reset)功能:復(fù)位信號輸入端。4)I/O線
A、AT89C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于串行口,中斷輸入源,計時器,片內(nèi)RAM選通。
B、本系統(tǒng)有三個按鍵,包括一個復(fù)位鍵,一個調(diào)零鍵,一個啟動(暫停)鍵。第1次按下SP1后單片機(jī)秒表就開始計;第2次按SP1后,計時停止;第3次按SP1后,計時歸零。最小可以計時0.1s,最大可以計時255s,有四位LED數(shù)碼管動態(tài)顯示。
C、系統(tǒng)采用12MHZ晶振,方便定時。用的是BT-A5461RB四位顯示管,使用前,先用萬用表檢測出它的各個管腳(a,b,c,d,,e,f,g,dp),將它的各個管教設(shè)置成低電平(即“0”)。通過單片機(jī)往指定地址寫入數(shù)據(jù)后,就能在屏上對應(yīng)的地方顯示所需顯示的數(shù)字。
原理圖:
ORG00H
AJMPSTART
三、試驗程序:
DISIEQU34H;分十位
DIEREQU32H;秒十位
COUEQU35H;軟計數(shù)器
DISANEQU33H;分個位
ORG0BH;定時器0中斷入口
DIYIEQU31H;定義秒個位位寄存器
AJMPTIME0;跳轉(zhuǎn)到定時器0的服務(wù)程序
ORG30H
START:MOVDIYI,#0;清0MOVDIER,#0;清0MOVDISAN,#0MOVDISI,#0MOVCOU,#0
MOVTMOD,#01H;設(shè)定時器模式為16位定時器MOVTH0,#3CH;裝初值MOVTL0,#0B0H;裝初值SETBET0;開定時器0中斷允許SETBTR0;開定時器CLREA;關(guān)總中斷
MAIN:LCALLANJIAN;調(diào)用按鍵檢測子程序LCALLXIANSHI;調(diào)用顯示子程序AJMPMAIN
ANJIAN:MOVA,P3;讀入P3口的值
JNBP3.1,KAI;P3.4為0,轉(zhuǎn)到定時開JNBP3.0,GUAN;P3.1為0轉(zhuǎn)到定時關(guān)
RET;子程序返回KAI:SETBEA;開總中斷RET;返回GUAN:CLREA;關(guān)總中斷
RET;返回
XIANSHI:MOVDPTR,#TABLE;獲得表數(shù)據(jù)MOVR1,#20LOOP:MOVA,DIYI
MOVCA,@A+DPTR;獲得相應(yīng)地址MOVP2,#7FH;開第一位顯示MOVP0,A;送出段碼LCALLDELY1MS;延時1毫秒MOVP2,#0FFH;關(guān)顯示,防止鬼影MOVA,DIERMOVCA,@A+DPTRMOVP2,#0BFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHMOVA,DISANMOVCA,@A+DPTRMOVP2,#0DFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHMOVA,DISIMOVCA,@A+DPTRMOVP2,#0EFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHDJNZR1,LOOPRET
TIME0:INCCOU;軟計數(shù)器加一MOVA,COU;數(shù)據(jù)轉(zhuǎn)移
CJNEA,#2,OVER;看COU內(nèi)的值是否為2,是的話向下執(zhí)行,不是的話,退出中斷。MOVCOU,#0;清0INCDIYI;毫秒位加一MOVA,DIYI;數(shù)據(jù)轉(zhuǎn)移CJNEA,#10,OVER;比較判斷MOVDIYI,#0;清0INCDIERMOVA,DIERCJNEA,#10,OVERMOVDIER,#0INCDISANMOVA,DISANCJNEA,#10,OVERMOVDISAN,#0INCDISIMOVA,DISICJNEA,#10,OVERMOVDISI,#0
OVER:MOVTH0,#3CH;裝初值MOVTL0,#0B0H;裝初值RETI;中斷返回
DELY1MS:MOVR7,#300;賦值50DL1:NOP;空指令NOP
DJNZR7,DL1;減一非0轉(zhuǎn)RET;返回
TABLE:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
四、電路設(shè)計:
五、實驗結(jié)果:
流程圖:
開始外部中斷0外部中斷1定時器T0初始設(shè)置LED顯示延時程序+重裝初值停止T0TR=0重裝初值啟動T0返回計數(shù)值計算返回TR=1
返回
六、實訓(xùn)實物圖:
七、調(diào)試:
調(diào)試的過程是一個頗為重要的過程,調(diào)試所指的是:硬件和軟件。而在進(jìn)行實物調(diào)試之前,可以用軟件仿真和硬件仿真,來檢測出了問題的是程序還是所焊接硬電路板;當(dāng)軟件和硬件都仿真成功的時候,并不能說明,用在實物上時,就一定成功的。我們這組就遇到這方面的問題,硬件的最小系統(tǒng)連接錯誤,使得接通電源時,電路會不停地復(fù)位,而無法正常工作;而在軟件調(diào)試方面復(fù)位發(fā)生錯誤,經(jīng)老師指點(diǎn)之后,是因為寫錯了復(fù)位程序,而導(dǎo)致數(shù)碼管一直顯示從9又返回8。在調(diào)試過程中,大體上是,檢測電路有沒有通,斷路、虛焊和斷路等;特別要檢測最系統(tǒng),程序與仿真之間的相同點(diǎn)與不同點(diǎn)。進(jìn)而改進(jìn)程序。
八、實訓(xùn)總結(jié):
在這次的實訓(xùn)中,
友情提示:本文中關(guān)于《單片機(jī)秒表實訓(xùn)論文》給出的范例僅供您參考拓展思維使用,單片機(jī)秒表實訓(xùn)論文:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。