基于51單片機的秒表設(shè)計_第1頁
基于51單片機的秒表設(shè)計_第2頁
基于51單片機的秒表設(shè)計_第3頁
基于51單片機的秒表設(shè)計_第4頁
基于51單片機的秒表設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實訓(xùn)報告 題 目 秒表系統(tǒng)的設(shè)計 年 級 專 業(yè) 班 級 學(xué) 號 姓 名 地 點 日 期 目錄一,設(shè)計目標3二,系統(tǒng)硬件設(shè)計4三,系統(tǒng)軟件設(shè)計7四,系統(tǒng)調(diào)試與設(shè)計結(jié)果12五,單片機實訓(xùn)小結(jié)13設(shè)計目標 近年來隨著科學(xué)技術(shù)的發(fā)展,單片機的應(yīng)用范圍越來越廣,也成為很多專業(yè)的必修課。本文簡單闡述了基于單片機的秒表設(shè)計。本設(shè)計的主要特點是計時精度達到0.01秒,可以用來為各種體育競賽計時等。 本設(shè)計的數(shù)字秒表采用AT89才51單片機為主要器件,利用其定時器的原理,結(jié)LED數(shù)碼管以及外部中斷電路來設(shè)計計時器。將軟硬件結(jié)合起來,使得系統(tǒng)能實現(xiàn)099.99秒的計時,計時精度位0.0

2、1秒。當按下一個鍵1時,開始顯示數(shù)字,即計時開始,再按下鍵2時,暫停計時并顯示剛才的結(jié)果,這個時候如果再按鍵1,則繼續(xù)計時,也就是顯示的數(shù)字包括剛才的數(shù)據(jù)。按下鍵3時,數(shù)據(jù)清零。系統(tǒng)硬件設(shè)計 1、1 總體方案的設(shè)計數(shù)字秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛應(yīng)用。本設(shè)計中用單片機和數(shù)碼管組成數(shù)字秒,力求結(jié)構(gòu)簡單。 設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。硬件電路主要有主控制器、控制按鈕與顯示電路組成。主控制器采用單片機AT89才51,顯示電路采用四位共陰極數(shù)碼管顯示計時時間。本設(shè)計利用AT89才51單片機的定時器,使其能精確計時。利用鍵盤上的獨立按鍵實現(xiàn)開始計時和暫停以及清零。

3、P0口輸出段碼數(shù)據(jù),P2.0P2.2連上譯碼器作為位選。設(shè)計的基本要求是正確性。 計時器采用T0中斷實現(xiàn),定時溢出中斷周期為1ms,當溢出中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出10次中斷請求就對10ms位(即最后一位)加一,達到100次就對100ms位加一,以此類推,直到99.99s為止。1.2 單片機的選擇 本設(shè)計在選取單片機時,充分借鑒了許多成型產(chǎn)品使用單片機的經(jīng)驗。并根據(jù)自己的實際情況,選用了ATMEL公司的AT89才51。 ATMEL公司的89系列單片機以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作、低廉的價格完全替代了87C51/62和8751/52,低電壓、低功耗,有DIP、P

4、LCC、QFP封裝,是目前性能最好、價格最低、最受歡迎的單片機之一。AT89才51為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8XC52相同,其主要用于匯聚調(diào)整時的功能控制。功能包括對匯聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,匯聚調(diào)整控制,匯聚測試圖控制等。單片機外部結(jié)構(gòu)(1)主電源引腳Vss和Vcc:Vss接地,Vcc正常操作時為+5V接地。外接晶振引腳XTAL1和XTAL2a、XTAL1內(nèi)部振蕩電路反相放大器的輸出端,是外接晶體的一個引腳。當采用外部振蕩時,此引腳接地。b、XTAL2內(nèi)部振蕩電路反相放大器的輸出端,是外

5、接晶體的的另一端。當采用外部振蕩時,此引腳接外部振蕩源。(2)控制或與其他電源復(fù)用引腳a、RST/VPD 當振蕩器運行是,在此引腳上出現(xiàn)兩個機器周期的高電平(由低到高跳變),將使單片機復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。b、ALE/PROG 正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部存儲器,ALE引腳以不變的頻率(振蕩器頻率的1/6)周期性的發(fā)出正脈沖信號。因此,它可以用作對外輸出的時鐘,或用于定時目的。c、PSEN 外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,PSEN在每個機器周期

6、內(nèi)兩次有效。d、EA/Vpp 內(nèi)部程序存儲器和外部程序存儲器選擇端。當EA/Vpp位高電平時,訪問內(nèi)部程序存儲器,當EA/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM編程期間,此引腳上加21VEPROM編程電源(Vpp)。(3)a、P0口(P0.0P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負載。b、P1,P3口(P1.0P1.7)是一個帶有內(nèi)部上拉電阻的8位準雙向I/O口。能驅(qū)動四個LSTTL負載。c、P2口(P2.0P2.7)是一個帶有內(nèi)部上拉電阻的8位準雙向I/O口,在訪問外部存儲

7、器時,它輸出高8位地址。P2口可以驅(qū)動四個LSTTL負載。1.3 顯示電路的選擇與設(shè)計對于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠距離觀看;對于具有驅(qū)動電路和單片機接口的液晶顯示模塊,一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89S52單片機本身沒有專門的液晶驅(qū)動接口。而數(shù)碼管作為一種主動顯示器件,具有亮度高、響應(yīng)速度快、價格便宜、易于購買等優(yōu)點,而且有遠距離視覺效果,很適合夜間或者遠距離操作。因此在本設(shè)計中,我們采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示

8、兩種。由于本設(shè)計需要采用四位數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動態(tài)顯示。動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時顯示的

9、感覺。1.4系統(tǒng)總體電路的設(shè)計系統(tǒng)總體電路如下圖所示 AT89才51單片機為主電路的核心部分,各個電路均與單片機相連,由單片機統(tǒng)籌協(xié)調(diào)各個電路的運行工作。顯示電路由四位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,P0.0P0.7分別控制數(shù)碼管的a b c d e f g dp顯示。系統(tǒng)軟件設(shè)計2.1主程序設(shè)計本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、程序組成。主程序主要是對定時器賦初值,開總中斷、定時器溢出中斷。2.2定時器T0中斷服務(wù)程序當T0一處后,向CPU發(fā)出中斷請求信號。CPU跳轉(zhuǎn)到定時中斷程序執(zhí)行,當中斷次數(shù)為2時為10ms。具體流程如下:定

10、時器中斷入口重置計數(shù)初值 中斷次數(shù)加1 中斷次數(shù)等于2?中斷次數(shù)清零,0.01秒位加1 0.01秒位到10?0.01秒位清零,0.1秒位加10.1秒位到10?0.1秒位清零,1秒位加1 1秒位到10?1秒位清零,10秒位加110秒位到10?10秒位清零中斷返回。2.3 程序清單#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint); /延時程序sbit k1=P34;/定義開始鍵sbit k2=P35;/定義暫停鍵sbit k3=P36;/定義清零鍵sbit dula

11、=P26;sbit wela=P27;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar tt,i,j,k,l;void display(uchar i,uchar j,uchar k,uchar l); /數(shù)碼管顯示數(shù)void main()tt=0;i=0;j=0;k=0;l=0;/數(shù)碼管顯示0TMOD=0x01; /設(shè)置定時器為模式1TH0=(65536-5000)/256; /給定時器賦定時初值TL0=(65536-5000)%256;EA=1; /開總中斷ET0=1; TR0=0; while

12、(1) if(k1=0) /判斷是否按下開始鍵delay(10); /消抖if(k1=0) TR0=1;if(k2=0) /判斷是否按下暫停鍵delay(10); /消抖if(k2=0) TR0=0;if(k3=0) /判斷是否按下清零鍵 delay(10); if(k3=0) i=0;j=0;k=0;l=0; TR0=0;/清零display(i,j,k,l); /數(shù)碼管顯示void delay(uint z)uint x,y;for(x=100;x>0;x-)for(y=z;y>0;y-); /延時void exter0() interrupt 1 /定時器溢出中斷TH0=(6

13、5536-5000)/256; /重裝計時初值TL0=(65536-5000)%256;tt+;if(tt=2)tt=0;i+; /溢出兩次,0.01秒位加1if(i=10)i=0;j+; /0.01秒位到10,0.1位加1if(j=10)j=0;k+; /0.1秒位到10,1秒位加1if(k=10)k=0;l+;/1秒位到10,10秒位加1if(l=10)l=0;/10秒位到10,清零void display(uchar i,uchar j,uchar k,uchar l)dula=1;P0=tablei; /顯示數(shù)值dula=0;wela=1;P0=0xf7;/0.01秒位顯示wela=0

14、;delay(1);dula=1;/數(shù)值顯示P0=tablej;dula=0;wela=1;P0=0xfb; /0.1秒位顯示wela=0;delay(1);dula=1; /數(shù)值顯示P0=tablek|0x80; /始終在1秒位后面顯示小數(shù)點dula=0;wela=1;P0=0xfd; /1秒位顯示wela=0;delay(1);dula=1;P0=tablel; /數(shù)值顯示dula=0;wela=1;P0=0xfe; /10秒位顯示wela=0;delay(1);系統(tǒng)調(diào)試與設(shè)計結(jié)果利用開發(fā)板顯示結(jié)果:通過STC-ISP V29 Beta5,將程序與開發(fā)板連接起來,此時,數(shù)碼管前4位均顯示0

15、.按下鍵盤上獨立鍵中的P34鍵,開始計時。按下P35鍵,即暫停計時。此時若繼續(xù)按下P34鍵,則繼續(xù)計時,在此前數(shù)據(jù)基礎(chǔ)上計時。按下P36鍵,則表示清零,數(shù)碼管前四位均顯示0。當計數(shù)值到99.99時,接下來數(shù)碼管又會回到開始那樣,從0累加并顯示。單片機實訓(xùn)小結(jié)不知不覺,十天的單片機實訓(xùn)又結(jié)束了,不得不感慨,有事做了,時間也過的超快。此前的labview實訓(xùn),由于學(xué)的不那么難,就導(dǎo)致我不是很重視,上課的時候就盼著下課。而這個單片機實訓(xùn),一直在忙活,竟然就這樣結(jié)束了。很久以前就聽說過單片機,也嘗試過去圖書館借閱,可是借回來后,一直放到超期都沒動過,后來翻了一下正文第一頁,根本不知道說的什么,從那以后

16、,就一直認為單片機是個很難很難的東西。有了那個想法后,就一直排斥單片機,覺得自己肯定學(xué)不會。所以,在8月12號到14號實訓(xùn)期間,我什么都沒干,老師講課沒聽,別人在看視頻我在玩。當我開始看視頻的時候,別人已經(jīng)開始編程,然后用protues仿真了,這個時候我就意識到自己的問題大了。于是,開始狂追,我看的是郭天祥的51單片機視頻教程,也沒看書,沒看其他東西,就只依靠他的視頻,好在他講課的內(nèi)容也是一步一步從基本講起,在我的接受范圍之內(nèi)。剛看的時候,覺得自己當初的排斥太錯誤了,所以有點怠慢,越到后期越覺得,學(xué)單片機真耗時間,不能小覷。后來便開始認真對待。因此,到現(xiàn)在為止,也學(xué)到了很多東西。單板機也就是將

17、CPU芯片、存儲器芯片、I/O接口芯片和簡單的I/O設(shè)備(小鍵盤、LED顯示器)等裝配在一塊印刷電路板上,再配上監(jiān)控程序(固化在ROM中),就構(gòu)成了一臺單板微型計算機(簡稱單板機)。單片機的用途非常廣泛,主要有:一,實物展示、用到單片機的項目經(jīng)驗介紹、手持糧庫溫度尋檢設(shè)備、畢頁設(shè)計答辯打分器、電話臺燈、自動感應(yīng)水龍頭等等。二,工業(yè)自動化:數(shù)據(jù)采集、測控技術(shù)。三,智能儀器儀表:數(shù)字示波器、數(shù)字信號源、數(shù)字萬用表、感應(yīng)電流表等。四,消費類電子產(chǎn)品:洗衣機、電冰箱、空調(diào)機、電視機、微波爐、手機、IC卡、汽車電子設(shè)備等。五,通訊方面:調(diào)制解調(diào)器、程控交換技術(shù)、手機、小靈通等。六,武器裝備:飛機、軍艦、

18、坦克、導(dǎo)彈、航天飛機、魚雷制導(dǎo)、智能武器等。凡是與控制或簡單計算有關(guān)的電子設(shè)備都可以用單片機來實現(xiàn),可見單片機對科技發(fā)展的作用之大。學(xué)單片機需要的基礎(chǔ):與以前所學(xué)的知識關(guān)聯(lián)很少,只需要掌握很基本的數(shù)電模電知識,如二進制、十進制、十六進制之間的轉(zhuǎn)換,與、或、非邏輯關(guān)系等,對各種器件的概念基本上是從0開始,如果要用C語言編程,需具備簡單的C語言基礎(chǔ)。而我們之前都學(xué)過C語言,這也讓我們對單片機的學(xué)習(xí)稍微簡化了一點,這樣幾乎所有人都站在了同一起跑線上。其實到現(xiàn)在,我也只學(xué)到了鍵盤那里,看了接近5集視頻,平均每集都差不多3個小時,而且在看的過程中還要停下來,自己編程,再仿真。眼睛一直對著電腦,看的眼都花了,而且有些程序即使編對了,在protues仿真時也可能出錯。后來買了開發(fā)板,就頓時覺得興趣上來了,可以準確的看到自己的程序的效果,自豪感油然而生。,每天對著電腦,但是有所收獲,雖然身體受傷害,精神上卻非常開心。這也極大的提高了我對單片機的興趣。后來老師布置了作業(yè),題目是基于51單片機的秒表設(shè)計,當時聽到這個題目,憑想像再加上想到之前的labview就覺得這個設(shè)計應(yīng)該不難,因此,開始沒想著做題,還是依舊慢吞吞的看我的視頻,直到前天我企圖編程序的時候才發(fā)現(xiàn),我壓根不知道要用到哪些程序,或者說不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論