簡易秒表設(shè)計(jì)報(bào)告_第1頁
簡易秒表設(shè)計(jì)報(bào)告_第2頁
簡易秒表設(shè)計(jì)報(bào)告_第3頁
簡易秒表設(shè)計(jì)報(bào)告_第4頁
簡易秒表設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一.前言在電子科學(xué)技術(shù)高速發(fā)展的今天,高科技產(chǎn)品越來越多的應(yīng)用在我們的日常生活中,給我們的生活帶來了非常大的方便,每時(shí)每秒我們都能感受到產(chǎn)品的更新?lián)Q代。產(chǎn)品和技術(shù)革新的日新月異都讓人非常驚訝。像平常我們工作所用的電腦、手機(jī)和生活所用的電視機(jī),收音機(jī),Mp3等等,這些高科技產(chǎn)品給我們帶來了極大的方便,但這要?dú)w功于科學(xué)技術(shù)的高速發(fā)展。簡易秒表是我們的單片機(jī)課程設(shè)計(jì)題目。簡易秒表涉及到《模擬電子技術(shù)》和《電路分析》中的相關(guān)知識。本文介紹的簡易秒表電路設(shè)計(jì)新穎具有電路結(jié)構(gòu)簡單、成本較低、操作方便、靈敏可靠等優(yōu)點(diǎn),經(jīng)使用效果良好,具有較高的推廣價(jià)值。二.系統(tǒng)設(shè)計(jì)要求⑴硬件設(shè)計(jì):根據(jù)任務(wù)要求,完成單片機(jī)最小系統(tǒng)及其擴(kuò)展設(shè)計(jì)。⑵軟件設(shè)計(jì):根據(jù)硬件設(shè)計(jì)完成顯示功能要求,完成控制軟件的編寫與調(diào)試;利用單片機(jī)定時(shí)器中斷和定時(shí)器計(jì)數(shù)方式實(shí)現(xiàn)秒定時(shí)。通過LED顯示程序的調(diào)整,熟悉LED動(dòng)態(tài)顯示的控制過程。⑶功能要求:用PB1啟動(dòng)秒表和停止秒表,PB2鍵將秒表歸零,按一下PB1,即開始定時(shí),在數(shù)碼管上每秒加1,加到99,歸零,秒表在暫停狀態(tài)下,按下PB3鍵可對秒數(shù)加1,按下PB4鍵可對秒數(shù)減1。(4)通過閱讀和調(diào)試簡易秒表整體程序,學(xué)會(huì)如何編制含LED動(dòng)態(tài)顯示、鍵盤掃描和定時(shí)器中斷等多種功能的綜合程序,初步體會(huì)大型程序的編制和調(diào)試技巧。三.設(shè)計(jì)思路分析本設(shè)計(jì)以單片機(jī)為核心設(shè)計(jì)的簡易秒表方案是:用按鈕PB1啟動(dòng)秒表和停止秒表,開啟后立刻進(jìn)入計(jì)時(shí)狀態(tài),用定時(shí)器T0進(jìn)行1s的計(jì)數(shù),每隔1s就把預(yù)設(shè)時(shí)間加1,用一個(gè)兩位的LED數(shù)碼管顯示時(shí)間,按鈕PB2將秒表歸零,如果第二次按一下S1鍵,計(jì)時(shí)會(huì)立即停止,在數(shù)碼管上顯示當(dāng)前秒數(shù),這時(shí)如果按下PB2鍵,數(shù)碼管會(huì)顯示00,直到再次按下PB1鍵計(jì)時(shí)才會(huì)開始,當(dāng)秒數(shù)加到99后,下一秒數(shù)碼管會(huì)歸零,即從0開始重新每秒加1計(jì)時(shí)。另外在P1口的0和1引腳各連接一個(gè)按鈕,一個(gè)進(jìn)行加1,另一個(gè)進(jìn)行減1。四.系統(tǒng)硬件電路設(shè)計(jì)4.1簡易秒表顯示模塊顯示模塊主要是顯示秒表當(dāng)前秒數(shù),我考慮有以下兩種顯示方案。方案1:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高低溫,對外界環(huán)境要求低,易于維護(hù),同時(shí)其精度高,稱量快,精確可靠,操作簡單。數(shù)碼顯示是采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。根據(jù)以上的論述,采用方案二,如圖:4-1。方案2:使用液晶屏顯示時(shí)間。液晶顯示屏具有輕薄短小、低耗電量、無輻射危險(xiǎn),平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強(qiáng)的特點(diǎn)。但由于只需要顯示時(shí)間和組別的數(shù)字,信息量比較少,且由于液晶是以點(diǎn)陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時(shí)不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護(hù)。4.2控制器模塊單片機(jī)的選擇圖:4-1七段發(fā)光二極管ATMEL公司的89C52單片機(jī)是增強(qiáng)型RISC內(nèi)載Flash的單片機(jī),芯片上的Flash存儲(chǔ)器附在用戶的產(chǎn)品中,可隨時(shí)編程,再編程,使用戶的產(chǎn)品設(shè)計(jì)容易,更新?lián)Q代方便。89C52單片機(jī)采用增強(qiáng)的RISC結(jié)構(gòu),使其具有高速處理能力,在一個(gè)時(shí)鐘周期內(nèi)可執(zhí)行復(fù)雜的指令,每MHz可實(shí)現(xiàn)1MIPS的處理能力。89C52單片機(jī)工作電壓為2.7~6.0V,可以實(shí)現(xiàn)耗電最優(yōu)化。89C52的單片機(jī)廣泛應(yīng)用于計(jì)算機(jī)外部設(shè)備,工業(yè)實(shí)時(shí)控制,儀器儀表,通訊設(shè)備,家用電器,宇航設(shè)備等各個(gè)領(lǐng)域。由于單片機(jī)的種類很多,在選擇單片機(jī)時(shí)要依據(jù)實(shí)際設(shè)計(jì)要求選擇合適的單片機(jī)。例如當(dāng)設(shè)計(jì)僅僅需要一個(gè)單片機(jī)定時(shí)器那么選擇89C1051或89C2051即可,而不選擇89C52,因?yàn)楹笳叩膬r(jià)格較高一些。當(dāng)然若程序和數(shù)據(jù)區(qū)的要求較高那么選擇的單片機(jī)還要滿足程序空間的要求。下面我們來比較89C51和89C52。下表進(jìn)行51和52的比較數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器定時(shí)器中斷51系列128B4KB2552系列256B8KB38在本設(shè)計(jì)中,我們選用現(xiàn)在較為流行的51系列單片機(jī),即選用ATMEL公司的AT89C51,如圖4-2。圖4-2C51單片機(jī)行開始和暫停。本設(shè)計(jì)的PB2鍵與P3.3引腳連接,該按鈕被按下時(shí),就產(chǎn)生外部中斷,程序跳轉(zhuǎn)執(zhí)行外部中斷0,對秒表進(jìn)行清零。5.4顯示模塊電路設(shè)計(jì)該模塊由1個(gè)共陽極的兩位7段LED數(shù)碼管構(gòu)成,由P2口控制兩位7段LED數(shù)碼管的顯示,用來顯示當(dāng)前秒表的秒數(shù)六.簡易秒表軟件系統(tǒng)設(shè)計(jì)6.1定時(shí)模塊設(shè)計(jì)中,一開始不運(yùn)行定時(shí)器T0,只要按下PB1鍵,定時(shí)器T0立即運(yùn)行,進(jìn)行1s的計(jì)時(shí)。這里我們采用的是定時(shí)器T0工作方式1,定時(shí)0.05s,在中斷程序設(shè)置變量疊加的方法來得到一秒的基本定時(shí),定時(shí)器T1工作方式2,也是在中斷程序設(shè)置變量疊加的方法來得到定時(shí)8ms,每隔8ms兩位7段LED數(shù)碼管的兩個(gè)公共端會(huì)交替通電,動(dòng)態(tài)掃描當(dāng)前簡易秒表的秒數(shù),即定時(shí)器定時(shí)一秒之后,單片機(jī)立即就會(huì)通過兩位7段LED數(shù)碼管顯示出來。當(dāng)計(jì)時(shí)99s后,下一秒從0開始計(jì)時(shí)。·現(xiàn)把定時(shí)器T0,T1和外部中斷0,1中斷程序介紹如下:voidT0_1s(void)interrupt1//定時(shí)器T0中斷函數(shù){TH0=TH_M1;//給定時(shí)器T0裝入初值 TL0=TL_M1; if(++count_T0==20)//每0.05sT0中斷一次,重疊20次得到1s,對計(jì)時(shí)加1 {count_T0=0; seconds++; if(seconds==100) seconds=0; } disp[0]=TAB[seconds/10];//得到十位數(shù) disp[1]=TAB[seconds%10];//得到個(gè)位數(shù)}voidT1_8ms(void)interrupt3//定時(shí)器T1中斷函數(shù){if(++count_T1==32)//每0.25msT0中斷一次,重疊32次得到8ms {count_T1=0; if(++scan==3)scan=1; SEG=0xff; P1_6=!P1_6;P1_7=!P1_7;//對兩位LED數(shù)碼管進(jìn)行交替顯示 SEG=disp[scan-1];}}voidint0_sw(void)interrupt0//外部中斷0中斷函數(shù){TR0=!TR0;while(PB0==0); ys(10);}voidint1_RST(void)interrupt2//外部中斷1中斷函數(shù){while(PB1==0);ys(10); seconds=0;//對計(jì)數(shù)清零 disp[0]=disp[1]=0xc0;TH0=TH_M1;//給定時(shí)器T0裝入初值 TL0=TL_M1;}外部中斷1開始6.2外部中斷1開始外部中斷0開始主程序流程圖,如圖6-1所示。外部中斷0開始PB2鍵是否松開關(guān)閉定時(shí)器T0PB2鍵是否松開關(guān)閉定時(shí)器T0開始PB1鍵是否松開PB1鍵是否松開裝入初值,暫停并且PB1,PB2按下?裝入初值,暫停并且PB1,PB2按下?計(jì)數(shù)清零,定時(shí)器T0裝初值返回主函數(shù)數(shù)返回主函數(shù)NY返回主函數(shù)數(shù)返回主函數(shù)進(jìn)行加1進(jìn)行加1或減1處理圖6-1搶答器主程序流程圖七.系統(tǒng)的調(diào)試整個(gè)程序設(shè)計(jì)如下:#include<reg51.h>#defineSEGP2#definecount_M150000//宏定義#defineTH_M1(65536-count_M1)/256#defineTL_M1(65536-count_M1)%256intcount_T0=0;#definecount_M2250#defineTH_M2(256-count_M2)#defineTL_M2(256-count_M2)Charcount_T1=0;charcodeTAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,//定義字符型數(shù)組,裝入0到9的數(shù)字0x92,0x82,0xf8,0x80,0x90};chardisp[2]={0xc0,0xc0};charseconds=0;charscan=0;sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_6=P1^6;sbitP1_7=P1^7;sbitPB0=P3^2;sbitPB1=P3^3;voidys(inti){//消除抖的動(dòng)子函數(shù)定義intj; for(;i>0;i--)for(j=0;j<200;j++);}main(){P1=0x7f;IE=0x8f;//開啟KA總中斷開關(guān),允許外部中斷0、1和定時(shí)器0、1 TCON=0x00;//所有中斷響應(yīng)標(biāo)志位清零 TMOD=0x21;//定時(shí)器T0工作方式1,T2工作方式2 TH0=TH_M1;TL0=TL_M1;//給定時(shí)器T0裝入初值 TR0=0;//關(guān)閉定時(shí)器T0 TH1=TH_M2;//給定時(shí)器T1裝入初值 TL1=TL_M2; TR1=1;//關(guān)閉定時(shí)器T1 P3=0xff;//P3的八個(gè)引腳全為高電平 while(1)//判斷加1或減1語句{if((TR0==0)&(P1_1&P1_0)){ys(10);if((P1_1==0)&(seconds>0))seconds--;//對秒數(shù)減1if(P1_0==0)seconds++;//對秒數(shù)加1disp[0]=TAB[seconds/10];//顯示加1或減1后的秒數(shù) disp[1]=TAB[seconds%10];while((P1_0&P1_1)==0);}}}voidT0_1s(void)interrupt1//定時(shí)器T0中斷函數(shù){TH0=TH_M1;//給定時(shí)器T0裝入初值 TL0=TL_M1; if(++count_T0==20)//每0.05sT0中斷一次,重疊20次得到1s,對計(jì)時(shí)加1 {count_T0=0; seconds++; if(seconds==100) seconds=0; } disp[0]=TAB[seconds/10];//得到十位數(shù) disp[1]=TAB[seconds%10];//得到個(gè)位數(shù)}voidT1_8ms(void)interrupt3//定時(shí)器T1中斷函數(shù){if(++count_T1==32)//每0.25msT0中斷一次,重疊32次得到8ms {count_T1=0; if(++scan==3)scan=1; SEG=0xff; P1_6=!P1_6;P1_7=!P1_7;//對兩位LED數(shù)碼管進(jìn)行交替顯示 SEG=disp[scan-1];}}當(dāng)秒表走到6時(shí),按下PB1鍵暫停時(shí)的狀態(tài),即第二次按下PB1鍵voidint0_sw(void)interrupt0//外部中斷0中斷函數(shù){TR0=!TR0;while(PB0==0); ys(10);}voidint1_RST(void)interrupt2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論