基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)_第1頁
基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)_第2頁
基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)_第3頁
基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)_第4頁
基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄1 引言1.1 單片機(jī)的發(fā)展概況單片機(jī)以其高可靠性、高性價(jià)比、低電壓、低功耗等一系列優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于工業(yè)控制系統(tǒng),數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表,及通訊設(shè)備、日常消費(fèi)類產(chǎn)品、玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個(gè)環(huán)節(jié)以及人民生活的各層次中,如車間流水線控制、自動(dòng)化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。管腳圖如圖1所示。圖1 89C52單片機(jī)引腳圖(1) 電源地組Vcc和Vss;VCC(40)腳接+5V電壓;VSS(20)腳接地(2) 時(shí)鐘電路組XTAL1和XTAL2(3) 控制信號(hào)組RST/ALE/PSEN和EA(4) I/O端

2、口P0, P1, P2和P3近來,單片機(jī)的發(fā)展尤為迅猛,并且趨于高智能化、存儲(chǔ)器大量化、更多的外圍電路內(nèi)裝化以及工藝上的多元化等方向,廣泛應(yīng)用于單機(jī)應(yīng)用領(lǐng)域、多機(jī)應(yīng)用領(lǐng)域、自動(dòng)控制領(lǐng)域和智能化控制領(lǐng)域等。單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)通常分為三個(gè)層次,即單片機(jī)、單片機(jī)系統(tǒng)和單片機(jī)應(yīng)用系統(tǒng)。單片機(jī)通常指應(yīng)用系統(tǒng)主處理機(jī),即所選擇的單片機(jī)器件等。單片機(jī)系統(tǒng)指按照單片機(jī)的技術(shù)要求和嵌入對(duì)象的資源要求而構(gòu)成的基本系統(tǒng)。時(shí)鐘電路、復(fù)位電路和擴(kuò)展存儲(chǔ)器等與單片機(jī)共同構(gòu)成了單片機(jī)系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)指能滿足嵌入對(duì)象要求的全部電路系統(tǒng)。在單片機(jī)系統(tǒng)的基礎(chǔ)上加上面向?qū)ο蟮慕涌陔娐罚缜跋蛲ǖ?、后向通道、人機(jī)交互通道(鍵盤

3、、顯示器、打印機(jī)等)和串行通信口(RS232)以及應(yīng)用程序等。單片機(jī)應(yīng)用系統(tǒng)層次關(guān)系如圖2所示。向后通道單片機(jī)單片機(jī)系統(tǒng)單片機(jī)應(yīng)用系統(tǒng)向前通道人機(jī)交互通道應(yīng)用程序串行通信口圖2 單片機(jī)應(yīng)用系統(tǒng)三個(gè)層次的關(guān)系1.2數(shù)字秒表的描述與分析1.21問題描述設(shè)計(jì)一個(gè)秒表,第一次按鍵,開始計(jì)數(shù),數(shù)碼管顯示從00.00每10毫秒自動(dòng)加1;第兩二次按鍵,系統(tǒng)暫停計(jì)數(shù),數(shù)碼管顯示當(dāng)前的計(jì)數(shù);第三次按鍵系統(tǒng)清零,數(shù)碼管顯示00.00 。1.22設(shè)計(jì)要求1使用四位數(shù)碼管顯示,顯示時(shí)間00.0099.99秒;2正常計(jì)數(shù)時(shí),每10毫秒自動(dòng)加1;3一個(gè)按鍵(包括開始、暫停、清零),一個(gè)復(fù)位按鍵;4實(shí)現(xiàn)計(jì)數(shù)、復(fù)位、清零功能

4、;5單片機(jī)通電后,首先初始化。第一次按鍵用來控制秒表工作的開始;第二次按鍵用來暫停程序的運(yùn)行;第三次按鍵用來進(jìn)行顯示器清零;復(fù)位鍵是用來對(duì)程序復(fù)位用的,當(dāng)程序出現(xiàn)死循環(huán)或想從00.00開始重新計(jì)時(shí),按下復(fù)位鍵可返回程序開始,重新執(zhí)行。 2 設(shè)計(jì)目的及要求2.1 設(shè)計(jì)目的1建立數(shù)字電子電路系統(tǒng)的基本概念;2通過本次課程設(shè)計(jì)加深對(duì)單片機(jī)課程的全面認(rèn)識(shí)復(fù)習(xí)和掌握,對(duì)單片機(jī)課程的應(yīng)用進(jìn)一步的了解。3掌握定時(shí)器、外部中斷的設(shè)置和編程原理。4通過此次課程設(shè)計(jì)能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來,對(duì)程序進(jìn)行編輯,校驗(yàn)。 2.2 設(shè)計(jì)要求設(shè)計(jì)一個(gè)數(shù)字電子秒表,該秒表具有顯示功能和清零、開始計(jì)時(shí)、停止計(jì)時(shí)等功能。設(shè)計(jì)的要

5、求如下:1.以10毫秒為最小單位進(jìn)行顯示;2.秒表可顯示00.0099.99秒的量程;3.該秒表具有清零、開始計(jì)時(shí)、停止計(jì)時(shí)功能;3 系統(tǒng)硬件電路設(shè)計(jì)3.1數(shù)字秒表電路原理數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,計(jì)時(shí)與顯示電路和回零、啟動(dòng)等。主控制器采用單片機(jī)89C52,顯示電路采用四位共陽極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。由于本實(shí)驗(yàn)有四位數(shù)碼管,如果采用靜態(tài)顯示要占用全部的I/O端口,所以本次試驗(yàn)采用靜態(tài)顯示,共使用12個(gè)引腳,即簡(jiǎn)化了電路又節(jié)

6、省了原料。本設(shè)計(jì)利用89C52單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始和復(fù)位的功能。P2口輸出段碼數(shù)據(jù),74HC573用作驅(qū)動(dòng)輸出,P1.0口接一個(gè)按鈕開關(guān),分別實(shí)現(xiàn)開始、暫停、清零功能。電路原理圖設(shè)計(jì)最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。秒表原理圖如圖3所示。圖3 秒表原理圖3.2數(shù)字秒表電路設(shè)計(jì)圖4 秒表設(shè)計(jì)圖 4 軟件設(shè)計(jì)4.1編程環(huán)境的介紹KeilSoftware公司推出的uVision3是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時(shí)也是PK51及其它開發(fā)套件的一個(gè)重要組件。除增加了

7、源代碼、功能導(dǎo)航器、模板編輯以及改進(jìn)的搜索功能外,uVision3還提供了一個(gè)配置向?qū)Чδ?,加速了啟?dòng)代碼和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號(hào)等。uVision3提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。uVision3提供對(duì)多種最新的8051類微處理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等4.2設(shè)計(jì)思想本設(shè)計(jì)采用了C語言編寫,由于C語言編程靈活,可移植性強(qiáng)。在一定程度上簡(jiǎn)化了編程過程。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人

8、更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。 4.3主程序設(shè)計(jì) 本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖5所示。當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。K=1Temp+圖5 主程序流程圖開開始始 程序初始化Temp=0K=2Temp=tempK=0Temp=0顯示數(shù)據(jù)開始4.4 外部中斷程序設(shè)計(jì)中斷的概念:CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(

9、中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷 。圖6 中斷程序子流程圖否K=2是K+INT0中斷K=04.5 定時(shí)中斷程序設(shè)計(jì)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu): 定時(shí)/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器組成。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。定時(shí)/計(jì)數(shù)器的原理加1計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來源,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個(gè)是T0或T1引腳輸入的外部脈沖源。每來一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)

10、器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。 可見,由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加1計(jì)數(shù)器的計(jì)數(shù)值。否是中斷返回定時(shí)器T0入口地址調(diào)用數(shù)碼顯示子程序Temp加1置初值定時(shí)器溢出中斷圖7定時(shí)器T0子程序流程圖4.6實(shí)驗(yàn)程序4.61主函數(shù)設(shè)計(jì)void main()init();/初始化子程序while(1)if(k=0)init();/初始化子程序wela=1;/初始設(shè)置顯示00.00P2=0XFF;wela=0

11、;P0=0xc0; if(k=1)/第二次按鍵開始計(jì)數(shù)if(temp=9999)/當(dāng)計(jì)數(shù)超過99.99秒時(shí)清零 temp=0; qian=temp/1000;/計(jì)算數(shù)碼管第一位bai=temp%1000/100;/計(jì)算數(shù)碼管第二位shi=temp%1000%100/10;/計(jì)算數(shù)碼管第三位ge=temp%10;/計(jì)算數(shù)碼管第四位display(qian,bai,shi,ge);/顯示時(shí)間Else/第二次按鍵時(shí)停止qian=temp/1000;bai=temp%1000/100;shi=temp%1000%100/10;ge=temp%10;display(qian,bai,shi,ge); i

12、f(k=3)/第三次按鍵時(shí)清零k=0; 4.62中斷子程序設(shè)計(jì)void time0() interrupt 0/中斷子程序k+;4.61延時(shí)子函數(shù)設(shè)計(jì)4.61顯示子程序設(shè)計(jì)void display(uint qian,uint bai,uint shi,uint ge)/顯示子函數(shù)wela=1;/顯示數(shù)碼管第一位P2=0x01;wela=0;P0=tableqian;delay(1); wela=1;/顯示數(shù)碼管第二位P2=0x02;wela=0;P0=table1bai;delay(1);wela=1;/顯示數(shù)碼管第三位P2=0x04;wela=0;P0=tableshi;delay(1);

13、wela=1;/顯示數(shù)碼管第四位P2=0x08;wela=0;P0=tablege;delay(1);4.61初始化子程序設(shè)計(jì)void init()/初始化子程序wela=0;temp=0;TMOD=0x01; /設(shè)置定時(shí)器0為工作方式1TH0=0xc8;TL0=0xf0;EA=1;/開總中斷ET0=1; /開定時(shí)器0中斷TR0=1; /啟動(dòng)定時(shí)器0EX0=1;IT0=1;5 仿真結(jié)果仿真環(huán)境Proteus 是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)仿真和SPICE

14、電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、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

15、uVision2、MPLAB等軟件。具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。本實(shí)驗(yàn)采用protues7.4版本。運(yùn)行開始前,數(shù)碼顯示管顯示為00.00。按下開關(guān),秒表程序運(yùn)行,數(shù)碼管開始跑動(dòng)。再次按下開關(guān),秒表程序運(yùn)行停止,數(shù)碼管顯示時(shí)間不變。第三次按鍵,數(shù)碼管清零。圖10仿真圖總結(jié)通過本次設(shè)計(jì),復(fù)習(xí)鞏固我們以前所學(xué)習(xí)的單片機(jī)原理及應(yīng)用等課程知識(shí),加深對(duì)各門課程及相互關(guān)系的理解,使理論知識(shí)系統(tǒng)化、實(shí)用化,系統(tǒng)地掌握微機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,培養(yǎng)較強(qiáng)的編程能力、開發(fā)能力。同時(shí),在設(shè)計(jì)的過程中,我也發(fā)現(xiàn)了本系統(tǒng)的許多不足和可以改進(jìn)的地方

16、。本設(shè)計(jì)的數(shù)字電子秒表缺少對(duì)多次計(jì)時(shí)時(shí)間進(jìn)行記錄的功能。應(yīng)給在單片機(jī)的內(nèi)部存儲(chǔ)區(qū)多設(shè)置一些存儲(chǔ)空間,用來存儲(chǔ)多次計(jì)時(shí)時(shí)間。并在程序中編入對(duì)多次計(jì)時(shí)時(shí)間的調(diào)用顯示。雖然存在不足,但本設(shè)計(jì)的數(shù)字電子秒表仍具有它的實(shí)用性。本設(shè)計(jì)的數(shù)字電子秒表是由89C52單片機(jī)、共陽數(shù)碼顯示管、控制按鍵等器件構(gòu)成的,設(shè)有四位計(jì)時(shí)顯示,復(fù)位按鍵以及一個(gè)開始、暫停、清零按鈕。計(jì)時(shí)精度能到達(dá)10ms,設(shè)計(jì)精簡(jiǎn),使用簡(jiǎn)單易懂。系統(tǒng)設(shè)計(jì)合理,線路簡(jiǎn)單、功能先進(jìn),性能穩(wěn)定,程序精簡(jiǎn)。并給出了詳細(xì)的電路設(shè)計(jì)方法。在此,感謝老師對(duì)我們的精心指導(dǎo),耐心講解,才能夠使我們較成功地完成這次課程設(shè)計(jì)。參考文獻(xiàn)1 李華,王思明,張金敏.單片

17、機(jī)原理及應(yīng)用M.蘭州:蘭州大學(xué)出版社,2001.5.2吳蓉,梁龍學(xué),崔用明.數(shù)字電子技術(shù)M.蘭州:蘭州大學(xué)出版社,2006.7.3 顧濱,李勛.單片微計(jì)算機(jī)原理開發(fā)與應(yīng)用M.北京:高等教育出版社,2000.2.附錄1程序代碼#include#define uint unsigned int#define uchar unsigned charuint temp,bai,shi,ge,qian;sbit wela=P10;/定義驅(qū)動(dòng)控制端口static uint k=0;/聲明全局變量uchar code table=/數(shù)碼管顯示0到90xc0,0xf9,0xa4,0xb0,0x99,0x92,

18、0x82,0xf8,0x80,0x90;uchar code table1=/第二位數(shù)碼管顯示(包含小數(shù)0x40,0x79,0x24,0x30,/點(diǎn))0x19,0x12,0x02,0x78,0x00,0x10;void display(uint qian,uint bai,uint shi,uint ge);/聲明顯示函數(shù)void delay(uint z);/聲明延時(shí)函數(shù)void init();void main()init();/初始化子程序while(1)if(k=0)init();/初始化子程序wela=1;/初始設(shè)置顯示00.00P2=0XFF;wela=0;P0=0xc0; if(k=1)/第二次按鍵開始計(jì)數(shù)if(temp=9999)/當(dāng)計(jì)數(shù)超過99.99秒時(shí)清零 temp=0; qian=temp/1000;/計(jì)算數(shù)碼管第一位bai=temp%1000/100;/計(jì)算數(shù)碼管第二位shi=temp%1000%100/10;/計(jì)算數(shù)碼管第三位ge=temp%10;/計(jì)算數(shù)碼管第四位display(qian,bai,shi,ge);/顯示時(shí)間Else/第二次按鍵時(shí)停止qian=temp/1000;bai=temp%1000/100;shi=temp%1000%100/10;ge=temp%10;display(qian,bai,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論