




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機系統(tǒng)課程設(shè)計成績評定表設(shè)計課題:基于89c51的led數(shù)字秒表設(shè)計學院名稱: 電氣工程學院 專業(yè)班級:學生姓名:學號:指導教師:設(shè)計地點 :設(shè)計時間 :指導教師意見:成績: 簽名: 年 月 日單片機系統(tǒng)技術(shù)課程設(shè)計 課程設(shè)計名稱:基于89c51的led數(shù)字秒表設(shè)計專業(yè)班級:學生姓名:學號:指導教師:課程設(shè)計地點:課程設(shè)計時間: 單片機系統(tǒng) 課程設(shè)計任務(wù)書學生姓名專業(yè)班級學號題目課題性質(zhì)工程設(shè)計課題來源自擬指導教師主要內(nèi)容(參數(shù))利用89c51設(shè)計一個數(shù)字秒表,使其實現(xiàn)以下功能:1具有計時功能;2可通過按鍵設(shè)置,啟動計時;3. 可以實現(xiàn)數(shù)據(jù)清零設(shè)置;4設(shè)置按鍵能夠停止計時;5能夠?qū)崿F(xiàn)時間顯
2、示。任務(wù)要求(進度)第1-2天:熟悉課程設(shè)計任務(wù)及要求,查閱技術(shù)資料,確定設(shè)計方案。第3-4天:按照確定的方案設(shè)計單元電路。要求畫出單元電路圖,元件及元件參數(shù)選擇要有依據(jù),各單元電路的設(shè)計要有詳細論述。第5-6天:軟件設(shè)計,編寫程序。第7-8天:實驗室調(diào)試。第9-10天:撰寫課程設(shè)計報告。要求內(nèi)容完整、圖表清晰、文理流暢、格式規(guī)范、方案合理、設(shè)計正確,篇幅合理。主要參考資料1 張迎新單片微型計算機原理、應(yīng)用及接口技術(shù)(第2版)m北京:國防工業(yè)出版社,20042偉福lab6000系列單片機仿真實驗系統(tǒng)使用說明書3 閻石數(shù)字電路技術(shù)基礎(chǔ)(第五版)北京:高等教育出版社,20064 黃艷玲,計算機接口
3、技術(shù)試驗指導書,重慶大學出版社。審查意見系(教研室)主任簽字: 年月日目 錄1引言31.1研究背景31.2設(shè)計思想及基本功能42總體方案設(shè)計42.1方案選取42.2系統(tǒng)框圖52.3總體方案設(shè)計53硬件電路設(shè)計53.1 89c51單片機的引腳及模塊說明53.2晶體振蕩電路63.3復位電路73.4按鍵電路73.5顯示電路83.6引腳控制說明83.7繪制電路原理圖94系統(tǒng)軟件設(shè)計94.1程序流程圖94.2秒表的初始化104.3按鍵掃描檢測程序114.4開始計時114.5計時程序114.6顯示程序114.7暫停計時114.8秒表清零124.9延時程序125總結(jié)14參考文獻14附錄一系統(tǒng)總原理圖15附錄
4、二主程序151引言1.1研究背景自20世紀末期以來,電子技術(shù)的發(fā)展日新月異。電子技術(shù)在各個領(lǐng)域的運用也越來越廣泛,從而有力地推動了社會生產(chǎn)力的發(fā)展以及社會信息化程度的提高。其中,秒表計時器是工業(yè)自動化控制、國防、實驗室及科研單位理想的計時儀器,它廣泛應(yīng)用于各種繼電器、電磁開關(guān),控制器、延時器、定時器等的時間測試。在各種現(xiàn)代體育競技比賽中,秒表成為必不可少的工具之一。而隨著運動員的水平的不斷提高,他們之間的差距也在不斷縮小。因此,在某些運動中對時間精度的要求就會越來越高,也就需要高精度的秒表來記錄成績,從而保障比賽的公平性。在歷史上,鐘表大致有三個演變階段。首先是大時鐘演變到小時鐘、其次小時鐘過
5、渡到袋表、再之袋表發(fā)展到腕表。再這三個階段,每一次的改變都是和當時的技術(shù)水平和創(chuàng)造發(fā)明水平是息息相關(guān)的。本文則主要闡述了基于單片機89c51的led數(shù)字秒表設(shè)計。使其能夠利用定時器定時原理、各種電路來實現(xiàn)計時功能,按鍵有啟動計時、數(shù)據(jù)清零、停止、時間顯示的功能。1.2設(shè)計思想及基本功能本實驗利用單片機的定時器/計數(shù)器定時和計數(shù)的原理,通過采用proteus仿真軟件來模擬實現(xiàn)。模擬at89c51單片機、led數(shù)碼管以及控件來控制秒表的計數(shù)以及計時的開啟、暫停、繼續(xù)、與復位。其中有三個數(shù)碼管來顯示數(shù)據(jù),兩個數(shù)碼管顯示秒(兩位),另一個數(shù)碼管顯示十分之一秒,十分之一秒的數(shù)碼管計數(shù)從09,滿十進一后顯
6、示秒得數(shù)碼管的個位加一,并且十分之一秒顯示清零重新從零計數(shù)。同理當個位滿十進一后個位也清零重新計數(shù),當計時超過范圍(即超過99.9秒)后,所有數(shù)碼管則會全部清零重新計數(shù)。采用按鍵控制秒表的“開始”、“暫?!?、“復位”鍵,按下“開始”按鍵,則開始計時;按下“暫?!卑存I,則暫停計時;再次按下“開始”鍵,則繼續(xù)計時;數(shù)碼管顯示當前計時值;按下“復位”鍵,則系統(tǒng)清零。2總體方案設(shè)計2.1方案選取在這次課程設(shè)計中,主程序主要是通過at89c51和74ls373鎖存器來控制的,從而為所用的中斷程序的地址以及一些必要的標志提供賦值。其中在數(shù)字秒表的設(shè)計中運用了2個中斷號和2個中斷程序。at89c51的to端
7、口在工作方式1下由下降沿觸發(fā),然后產(chǎn)生方波脈沖,從而作為at89c51的中斷信號。復位電路2.2系統(tǒng)框圖at89c51晶體振蕩電路顯示電路按鍵控制電路圖2-22.3總體方案設(shè)計這次實驗所選用的實驗器材主要包括開關(guān)計時以及顯示,其中開關(guān)計時是與中斷t0相連的,用定時器t0用來計時,同時它也是中斷t0的申請中斷信號,就是設(shè)計要求中來負責秒表的計時;而開關(guān)顯示是與at89c51上的p2.6口相連,即設(shè)計記下時間,當記錄完成后,按下顯示按鈕,就會從最后一個人的順序倒起來顯示他們工作所用的時間(注意:先來后顯示)。本次設(shè)計的核心思想是:在運行中斷程序的時候,首先判斷中斷信號,然后再根據(jù)中斷信號來產(chǎn)生脈沖
8、來確定是否執(zhí)行中斷服務(wù)程序,待中斷結(jié)束后返回原程序,繼續(xù)執(zhí)行原程序。3硬件電路設(shè)計3.1 89c51單片機的引腳及模塊說明89c51作為89系列單片機中的典型代表,其基本模塊主要是由cpu、rom、ram、i/o口、中斷系統(tǒng)、定時/計數(shù)器、串行口、振蕩器、總線控制等幾個部分組成。1cpu:89c51是8位cpu,而且89c51內(nèi)部還包含有1個位處理器2r0m:包含4kb的片內(nèi)程序存儲器,用于存放開發(fā)以及調(diào)試完成的程序3ram:256b的片內(nèi)數(shù)據(jù)存儲器,雖然容量小,但作用很大。4i/o口:即p0-p3口,共4個口包含32條雙向且可位尋址的i/o口線。5中斷系統(tǒng):總共有5個中斷源,其中3個內(nèi)部中斷
9、和2個外部中斷。6定時/計數(shù)器:即2個16位的可編程定時/計數(shù)器。7串行口:全雙工通用異步接收器/發(fā)送器8振蕩器:由外接晶振以及內(nèi)部時鐘振蕩器來為cpu提供時鐘信號。9總線控制:對外提供若干條控制總線,以便于系統(tǒng)擴展。另附上引腳圖:如圖2圖3-13.2晶體振蕩電路89c51單片機內(nèi)部的振蕩電路是一個增益反相放大器,其中引線xyal1和xtal2分別為反相放大器的輸入和內(nèi)部時鐘電路輸入和來自反相放大器的輸出,該反相放大器可以配置為片內(nèi)振蕩器。然而單片機內(nèi)部雖然有震蕩電路,但要形成時鐘,外部還需要附加電路。其中石晶振蕩以及陶瓷振蕩均可采用,有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時
10、鐘信號的脈寬沒有任何要求,但是必須要保證脈沖的高低電平要求的寬度。本次選用的是89c51單片機12mhz的內(nèi)部振蕩方式,電路圖如下圖3所示。其中c1、c2主要起穩(wěn)定振蕩頻率以及快速起振的作用。圖3-23.3復位電路單片機系統(tǒng)主要采用上電自動復位和手動按鍵復位兩種方式實現(xiàn)系統(tǒng)的復位操作。其中上電復位要求接通電源后,能夠自動實現(xiàn)復位操作。手動復位則要求在接通電源后,如果在單片機運行期間發(fā)生死機,可以用按鈕開關(guān)操作使單片機復位。本次設(shè)計采用上電復位,再使單片機復位時還能使單片機的外設(shè)同時復位,而且當程序出現(xiàn)錯誤時,可以隨時使電路復位。電路圖如下圖4所示:圖3-33.4按鍵電路當按下按鍵后,對應(yīng)的引腳
11、就會被拉低,再經(jīng)過掃描后,則會獲得鍵值,然后執(zhí)行鍵功能程序。當按下不同的按鍵時,單片機就會執(zhí)行不同的功能程序。電路圖如下圖5所示:圖3-43.5顯示電路本次設(shè)計采用3個led數(shù)碼管。一位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆劃(段)ag,另一個為小數(shù)點發(fā)光二極管。當在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。在用數(shù)碼管顯示時,有靜態(tài)和動態(tài)兩種選擇,這次設(shè)計采用了led動態(tài)顯示,并用p0、p1、 p2口驅(qū)動顯示。為了保護各段led不被損壞,還需外加限流電阻。但由于p0口沒有上拉電阻,因此在p0口還需要外接上拉電阻才能輸出高電平,這里我們會使用8
12、個4.7k的電阻作為上拉電阻。電路圖如下圖6所示:圖3-53.6引腳控制說明p0口:p0.07、p1口:p1.07、p2口 p2.07對應(yīng)三個數(shù)碼管的a、b、c、d、e、f、g段和小數(shù)點位;p0用來控制數(shù)碼管十位的顯示,p2用來控制數(shù)碼管個位的顯示,p1則控制小數(shù)點后一位的顯示,p3.2、p3.3、p3.4分別接按鍵用來實現(xiàn)控制。3.7繪制電路原理圖利用proteus軟件畫出主電路圖如下圖7:圖3-74系統(tǒng)軟件設(shè)計4.1程序流程圖本次系統(tǒng)的軟件部分主要包括:主函數(shù)、初始化函數(shù)、顯示函數(shù)、定時器0中斷服務(wù)函數(shù)、外部中斷0中斷服務(wù)函數(shù)、拆數(shù)函數(shù)等。工作流程包括:秒表的初始化、按鍵檢測程序、開始計時
13、、計時程序、顯示程序、暫停計時、秒表清零、延時程序等8個部分。系統(tǒng)程序流程圖如下圖8所示:圖4-14.2秒表的初始化首先根據(jù)程序流程圖進行秒表的初始化。第一步:將i/o口p3全寫一,為秒表的控制輸入做好準備;第二步:將數(shù)碼管全部置零,使它處于秒表計時的初始狀態(tài);第三步:將工作寄存器r0至r2以及30h初始化,留待后面的計時程序備用;第四步:將定時器0置于工作方式1,并為其裝入計時預置數(shù)d8fe(因為程序運行過程中占用的時間會導致一定誤差,此為經(jīng)實物測試之后的修正值),即將定時器定為每10ms溢出;第五步:開總中斷允許和定時器0中斷允許。等初始化完成后,就開始進入之后的按鍵掃描程序。4.3按鍵掃
14、描檢測程序輪流檢測開始計時(p3.2)、暫停計時(p3.3)、秒表清零(p3.4)三個按鍵。若發(fā)現(xiàn)有一個按鍵出現(xiàn)低電平(可能被按下),則延時10ms(調(diào)用延時子程序delay),延時完成后,若發(fā)現(xiàn)低電平消失,則說明該按鍵實際上未被按下,此時轉(zhuǎn)回按鍵檢測處繼續(xù)檢測;若發(fā)現(xiàn)仍然是低電平,則說明此鍵確實被按下了,此時就跳轉(zhuǎn)至相應(yīng)的程序標號處,執(zhí)行相應(yīng)的功能。4.4開始計時若確認“開始計時”鍵被按下,則跳轉(zhuǎn)至程序標號“run”處,將定時器0計時允許控制位tr0置位,則定時器開始運行。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。4.5計時程序定時器0計時至10ms,溢出,引發(fā)中斷,程序跳轉(zhuǎn)至
15、定時器0中斷服務(wù)程序入口000bh處執(zhí)行。程序跳轉(zhuǎn)至中斷服務(wù)程序time0。由于秒表的最小計時單位是0.1s,即100ms,因此需加入軟件計時,使定時器0溢出10次之后才改變數(shù)碼管的顯示狀態(tài)。因此每來一次中斷就將30h中的數(shù)加1,若30h中的數(shù)沒有到10,則給定時器0重新裝入預置數(shù),之后中斷返回并繼續(xù)等待中斷;到10了,才進入顯示程序,改變數(shù)碼管的顯示狀態(tài),執(zhí)行完畢之后中斷返回并繼續(xù)等待中斷。4.6顯示程序?qū)?shù)碼管的段選碼放在數(shù)表tab中。每次100ms計時完成后,將r0中的值(初值為0)送入a,然后自加1。.若r0中的值沒到10,則使用累加器a查表,并將查得的數(shù)碼管段選碼送入毫秒位數(shù)碼管。之
16、后將30h中的數(shù)置零,中斷返回。若發(fā)現(xiàn)r0中的數(shù)到10了,則將r0置零,并轉(zhuǎn)入秒位進位子程序second,向秒位進位,之后,繼續(xù)照常向毫秒位送數(shù)。在秒位進位子程序second中,由于要用到累加器a,因此先將其推入堆棧保護。將r1中的值(初值為10)送入a,然后自加1。.若r1中的值沒到20,則使用累加器a查表,并將查得的數(shù)碼管段選碼送入秒位數(shù)碼管。若發(fā)現(xiàn)r1中的數(shù)到20了,則將r1重置為10,并轉(zhuǎn)入十秒位進位子程序second1,向十秒位進位,之后,繼續(xù)照常向秒位送數(shù)。完成后,彈出acc和psw,子程序返回。十秒位進位子程序與秒位進位子程序相似,只是沒有向下一位進位的功能。4.7暫停計時若確認
17、“暫停計時”鍵被按下,則跳轉(zhuǎn)至程序標號“pause”處,將定時器0計時允許控制位tr0置零,則定時器暫停運行。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。4.8秒表清零若確認“秒表清零”鍵被按下,則跳轉(zhuǎn)至程序標號“stop”處,將tr0置零,關(guān)閉定時器0運行。并且將數(shù)碼管、工作寄存器、定時器0預置數(shù)全部重置,使其處于秒表計時的初始狀態(tài)。此動作完成后,返回按鍵檢測程序,等待操作者的下一次指令。4.9延時程序主要用于按鍵延時防抖,并延時10ms。經(jīng)仿真調(diào)試后,程序正常運行,截圖如下圖9:圖4-95總結(jié)通過這次的課程設(shè)計,使我加深了對89c51 的功能以及它們的工作方式的了解,對電腦有了
18、個更新的認識,對中斷的工作方式,電腦芯片內(nèi)部的數(shù)據(jù)有了較清楚的認識。這次課程設(shè)計是基于芯片上的編程,由于對相應(yīng)芯片的各個端口的功能不熟悉,一開始并不知從何著手,但隨著對各個芯片端口的逐步了解,后面程序的編寫也變得容易多了。這次設(shè)計總的感想是:由于是基于芯片上編程,所以編寫程序之前必須對各個芯片有所了解,如芯片的各個端口的功能等。然后選擇要實現(xiàn)此程序功能的芯片以及怎樣接線,調(diào)試程序、修改錯誤之處。根據(jù)書本知識,我們一開始只給p0口加上了上拉電阻,但是實物做成后我們發(fā)現(xiàn)p1和p2口得輸出顯示非常暗,初步確定是驅(qū)動能力不足的問題后,我們給二者也加上了上拉電阻,結(jié)果使得顯示正常了。由此我們了解到,實踐
19、才是檢驗真理的唯一標準,有時候書本上的知識需要經(jīng)過實踐的改進,才能運用到實際中。此次課程設(shè)計鞏固了我的基礎(chǔ)知識,提高了我的應(yīng)用水平,鍛煉了我的動手能力,使我受益匪淺。然而,在吸取經(jīng)驗的同時,我也吃了不少教訓。在編程、仿真方面都走了不少彎路。但是,學則要有所收獲,經(jīng)過此次的鍛煉,我在很多方面都已經(jīng)有所提高,知識也掌握得更加扎實了。在今后的學習和實踐中,我將繼續(xù)努力鉆研,提高自己,爭取在學術(shù)和記憶上獲得更大的進步。參考文獻1 楊家成單片機原理與應(yīng)用及c51程序設(shè)計北京:清華大學出版社,20072 夏路易 石宗義protel 99se電路原理圖與電路板設(shè)計教程北京:北京希望電子出版社,20043 朱
20、玉璽計算機控制技術(shù)北京:電子工業(yè)出版社,20104 鄧興成單片機原理與實踐指導北京:機械工業(yè)出版社,20105 閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,2009.附錄一 系統(tǒng)總原理圖附錄二 主程序org 0000h ;程序開始ajmp start ;跳轉(zhuǎn)至主程序start org 000bh ;定時器0中斷的地址入口ajmp time0 ;定時器0溢出,跳轉(zhuǎn)到中斷程序time0start: ;主程序mov p3,#0ffh ;輸入端口p3全部寫為1mov p0,#3fh ;mov p1,#3fh ;mov p2,#0bfh ;將數(shù)碼管初始化mov 30h,#00h ;mov r0,#00
21、h ;mov r1,#0ah ;mov r2,#00h ;將工作寄存器初始化mov tmod,#01h ;使定時器0工作于方式1mov th0,#0d8h ;mov tl0,#0feh ;給定時器0預置數(shù)(d8feh=55550d)setb ea ;總中斷允許setb et0 ;定時器0中斷允許read: ;讀鍵程序l1:jb p3.2,l2 ;lcall delay ;按鍵延時防抖jb p3.2,l1 ;ajmp run ;確認計時鍵被按下,開始或繼續(xù)計時l2:jb p3.3,l3 ;lcall delay ;按鍵延時防抖jb p3.3,l2 ;ajmp pause ;確認暫停鍵被按下,暫停
22、計時l3:jb p3.4,l1 ;lcall delay ;按鍵延時防抖jb p3.4,l3 ;ajmp stop ;確認清零鍵被按下,秒表重置run: ;計時鍵按下,跳轉(zhuǎn)至此setb tr0 ;定時器0開始或繼續(xù)運行ajmp read ;pause: ;暫停鍵按下,跳轉(zhuǎn)至此clr tr0 ;ajmp read ; time0: ;定時器0溢出,中斷,跳轉(zhuǎn)至此inc 30h ;mov a,30h ;cjne a,#0ah,time1 ;30h單元中的值是否到10mov dptr,#tab ;若30h中的值到10了,順序執(zhí)行mov a,r0 ;inc r0 ;cjne r0,#0ah,get ;
23、r0中的值是否到10mov r0,#00h ;lcall second ;若已到10,則r0清零,并調(diào)用進位子程序second,向秒位進位get: ;若沒到,則跳過進位子程序movc a,a+dptr ;mov p1,a ;查表并向數(shù)碼管毫秒位送數(shù)mov 30h,#00h ;重置30h單元time1: ;mov th0,#0d8h ;mov tl0,#0feh ;給定時器0重新預置數(shù)reti ;中斷返回second: ;秒位進位子程序push acc ;push psw ;將acc和psw推入堆棧保護mov a,r1 ;inc r1 ;cjne r1,#14h,get1 ;r1中的值是否到20mov
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資項目可行性研究與項目評估
- 農(nóng)業(yè)觀光生態(tài)園
- 三農(nóng)產(chǎn)品物流配送手冊
- 綠色農(nóng)產(chǎn)品生產(chǎn)技術(shù)推廣與應(yīng)用實踐方案
- 車聯(lián)網(wǎng)及大數(shù)據(jù)應(yīng)用
- 電商行業(yè)直播帶貨模式創(chuàng)新與發(fā)展方案
- 校園廣播系統(tǒng)投標方案
- 針對公司運營挑戰(zhàn)的對策報告
- 電力設(shè)施節(jié)能減排操作規(guī)程
- 三農(nóng)村公共服務(wù)設(shè)施信息化管理方案
- 作業(yè)層隊伍建設(shè)重點業(yè)務(wù)課件
- DB31T 685-2019 養(yǎng)老機構(gòu)設(shè)施與服務(wù)要求
- 二年級下冊美術(shù)教案-第5課 美麗的花園|嶺南版
- 人類進化史精品課件
- 魯濱遜漂流記讀后感PPT
- 總包單位向門窗單位移交門窗安裝工程工作面交接單
- 設(shè)備供貨安裝方案(通用版)
- 公開招聘社區(qū)居委專職工作人員考試筆試、面試題集及相關(guān)知識(11套試題含答案)
- 《植物生理學》課件第三章+植物的光合作用
- 中國藥膳理論與實踐-藥膳基本理論和技能
- 華東師大版七年級初一數(shù)學下冊全套試卷(單元、期中、期末)
評論
0/150
提交評論