




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
西南大學工程技術學院課程設計(論文)電子技術課程設計題目:數(shù)字式電子時鐘課程設計學生姓名馬超專業(yè)_電子科學與技術學號22200732272043班級_2007級2班指導教師丁珠玉成績_工程技術學院2010年11月目錄1引言……………………11.1課程設計要求與目的……………11.1.1基本設計要求與原則……………………51.1.2設計的基本目的…………51.2設計構思…………71.2.電子時鐘簡介………………71.2.2時鐘的功能………………72電路設計………………82.1總體設計框架……………………82.1.1總體設計思路……………82.1.2總體流程圖………………82.2部分設計細節(jié)…………………102.2.1各部分的設計思路及電路圖…………103時鐘各功能分析及圖解………………143.1時鐘運行圖……………………143.2秒表運行圖……………………144電路控制C語言程序…………………165程序調(diào)試過程及相關問題……………175.1調(diào)試中已解決問題……………175.2相關分析………………………195.3方案存在的問題………………305.4調(diào)試心得體會…………………356小結……………………40附錄………………………42參考文獻…………………44致謝………………………48數(shù)字電子時鐘課程設計馬超西南大學工程技術學院07級(2)班電子科學與技術重慶北碚4007161引言隨著電子技術的迅猛發(fā)展,數(shù)字電路應用廣泛,電子技術深入各個領域。通過數(shù)字時鐘這一電子技術課程設計來讓我們熟悉理論知識與實踐相結合的綜合訓練,從而達到對我們運用能力進行檢查和綜合素質(zhì)的培養(yǎng)。1.1課程設計要求與目的1.1.1基本設計要求與原則本次課程設計的題目是數(shù)字電子時鐘與簡易水溫控制系統(tǒng)。我們小組選擇的是數(shù)字電子時鐘。基本要求:1、能夠根據(jù)設計任務和指標要求,綜合運用電子技術課程中所學到的理論知識與實踐技能獨立完成一個設計課題。2、根據(jù)課題需要選擇參考書籍,查閱手冊、圖表等有關文獻資料。要求通過獨立思考、深入鉆研課程設計中所遇到的問題,培養(yǎng)自己分析、解決問題的能力。3、進一步熟悉常用電子器件的類型和特性,掌握合理選用的原則。4、學會電子電路的安裝與調(diào)試技能,掌握常用儀器設備的正確使用方法。利用“觀察、判斷、實驗、再判斷”的基本方法,解決實驗中出現(xiàn)的問題。5、1、2班獨立設立小組,每小組2個成員。起止時間為:2010年10月28號開始至2010年11月12日結束。基本原則:小組團隊設計不能從網(wǎng)上下載,自己動手編排電路,流程圖,編寫程序。電路圖必須采用PROTEL軟件繪制,用multisim或者proteus軟件仿真,并提交程序及結果、課程論文電子版。(有違以上原則,取消課程成績)1.1.2設計的基本目的1.課程設計是教學中必不可少的重要環(huán)節(jié),通過課程設計鞏固、深化和擴展學生的理論知識與初步的專業(yè)技能,提高綜合運用知識的能力,逐步增強實際工程訓練的能力。2.注重培養(yǎng)學生正確的設計思想,掌握課程設計的主要內(nèi)容、步驟和方法。3.培養(yǎng)學生獲取信息和綜合處理信息的能力、文字和語言表達能力以及協(xié)作工作能力。4.提高學生運用所學的理論知識和技能解決實際問題的能力及其基本工程素質(zhì)。5.在知識傳授與能力和素質(zhì)培養(yǎng)的關系上,樹立注重素質(zhì)教育,融傳授知識、培養(yǎng)能力與提高素質(zhì)為一體。在理論與實踐的關系上,樹立理論聯(lián)系實際,提高綜合能力為目的。1.2設計構思1.2.1電子時鐘簡介1957年,ventura發(fā)明了世界上第一個電子表,從而奠定了電子鐘的基礎,電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時鐘是基于點偏激的一種計時工具,采用延時程序殘生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分進一,滿二十四小時清零。從而達到計時的功能,是人民日常生活不可缺少的工具。1.2.2時鐘的功能本次設計的時鐘,以AT89C51單片機芯片為中心的控制電路。單片機控制電路省去很多復雜電路,使得電路得到簡化。用C語言程序來控制時鐘顯示,更加簡化了時鐘的設計。由于單片機和C語言的控制能力較強,使得時鐘的功能有所提高。通過調(diào)整時間,秒表,時鐘暫停,返回時鐘五個按鍵可以完成兩個成套的功能:時鐘調(diào)整、秒表。表1詳細元件列表器件名稱單片機芯片八位共陽數(shù)碼管電容電阻歐姆電阻歐姆電阻數(shù)目115585規(guī)格AT89C517SED10410k5601002電路設計單片機控制電路省去很多復雜電路,使得電路得到簡化。用C語言程序來控制時鐘顯示,更加簡化了時鐘的設計。電路構思也比較簡單,用框架來描述分三個部分。每個部分的詳細設計用流程圖來展現(xiàn)。2.1總體設計框架此設計原理圖如圖所示,包括三個部分:單片機,鍵盤,顯示電路。獨獨立鍵盤AT89C51單片機芯片控制系統(tǒng)顯示系統(tǒng)圖1總體構思2.1.1總體設計思路設計的電路有三個模塊組成:單片機控制電路,顯示電路和校正電路。整個設計是由單片機為中心,單片機實現(xiàn)時鐘的運行,進制,循環(huán),中斷,初始化等等。軟件程序從開始執(zhí)行,先通過初始化各個寄存器,時鐘正常運行,經(jīng)過掃描按鍵來決定是否設定參數(shù)來執(zhí)行相應功能的程序,進而在數(shù)碼管上顯示。2.1.2總體流程圖開始定時器及中斷定時器初始化開始定時器及中斷定時器初始化是否設定參數(shù)執(zhí)行時鐘秒表設定程序執(zhí)行顯示程序YN圖2總體流程2.2部分設計細節(jié)1.單片機發(fā)送的信號通過程序控制最終在數(shù)碼管上顯示出來。通過寄存器里存儲的數(shù)據(jù)通過P2和P3端口來達到顯示在數(shù)碼管上的效果。2.單片機通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。單片機自帶的晶振電路使得單片機有很穩(wěn)定的脈沖信號輸出。3.為使時鐘走時與標準時間一致,校時電路時必不可少的,按鍵輸入的數(shù)據(jù)存入寄存器后與時鐘正常的時間數(shù)據(jù)相加來調(diào)節(jié)時間,鍵盤用來校正數(shù)碼管上顯示的。2.2.1各部分計思路及電路圖圖3電路圖設計采用C語言程序編程,使單片機控制數(shù)碼管顯示時、分、秒,當秒計數(shù)計滿60時就向分進位,分計數(shù)器計數(shù)滿60后向時計數(shù)器進位,小時計數(shù)器按“23到0”規(guī)律計數(shù),從0到23循環(huán)。時、分、秒的計數(shù)結果經(jīng)過數(shù)據(jù)處理可以直接送顯示器里顯示。當計時發(fā)生誤差時可以校時電路進行校正。設計采用的是時、分、秒顯示,單片機對數(shù)據(jù)進行處理同時在數(shù)碼管上顯示。(1)各個控制鍵的功能:可對時鐘時、分進行校準調(diào)節(jié)(只可累計加1);加時1、加分1鍵實在校準時間時對小時數(shù)或分鐘數(shù)調(diào)節(jié)而設置的;按下秒切換鍵就進入秒表模式,同時秒表開始計時,按下秒表暫停,復位鍵就暫停、歸零,如果要從新對秒表計時則可以按秒表開始、復位;(2)AT89C51單片機,通過編寫程序?qū)?shù)碼顯示進行控制。(3)八個7段數(shù)碼管顯示時鐘和秒表信號。3時鐘各功能分析及圖解3.1時鐘運行圖圖4圖5仿真運行開始后,時間顯示00-00-00并開始像復位時鐘一樣一秒跳動一次的運行。如圖所示一樣,調(diào)分鍵按一次,分鐘數(shù)個位數(shù)值增加一。調(diào)時鍵按一次,小時數(shù)個位數(shù)值增加一,暫停按鍵可以讓時鐘暫停下來,返回時鐘是用于進入秒表狀態(tài)后或暫停后返回時鐘界面用的。(圖4)簡單操作就是:啟動仿真,時鐘運行,用調(diào)時、調(diào)分鍵校正時間,暫停鍵用于調(diào)秒或秒表,暫停過后想回到時鐘界面就點擊返回時鐘按鍵。(如圖5)3.2秒表運行圖圖6當秒表按鍵被按下后,八位共陽極數(shù)碼管上顯示的是00-00-00,并且最小的跑秒是0.01秒,最后兩位(7、8)數(shù)字進位不再是60而是100,數(shù)碼管的4、5的進位是60進1,1、2位則是到60后又返回00的無進位循環(huán)。按鍵操作:當按動秒表鍵時,數(shù)碼管從00-00-00開始計數(shù),六秒后為00-06-48(圖6)。這時你按下暫停鍵時,時間就會一直顯示這個時間。返回時鐘鍵有復位的功能,當你按下后,會回到時鐘界面,回到你按秒表時的時間。當你再按秒表時又會重復上面的步驟。如(圖7)該數(shù)字鐘是用一片AT89C51單片機通過編程區(qū)去驅(qū)動8為數(shù)碼管顯示來實現(xiàn)的。通過5個開關控制,分別為調(diào)分、調(diào)時、秒表、暫停、返回時鐘,控制鍵分別對應P1.0到P1.4端口。AT89C51通過P2口和P3口區(qū)控制數(shù)碼管的顯示,P2口接數(shù)碼管的a-g端面試控制輸出編碼。P3口接數(shù)碼管的1-8端,是控制動態(tài)掃描輸出。圖74電路控制C語言程序根據(jù)實驗調(diào)試后的最終程序如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#definedelay_ime3/*宏定義*/uchark,dat[]={0,0,0,0,0,0,0,0};uinttcount,t,u;uchardat1[]={0,0,0,0,0,0,0,0};uchardat2[]={0,0,0,0,0,0,0,0};uchardis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};ucharcodeSEG7[11]={0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/ 0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/0xBF,/*-*/ };/*數(shù)字顯示數(shù)組*/sbittminute=P1^0;sbitthour=P1^1;sbitmiaobiao1=P1^2;sbitmiaobiao2=P1^3;sbitmiaobiao3=P1^4;/*端口定義*/ucharms=0;ucharflag=0;ucharsec=0;ucharminit=0;structtime{ucharsecond;ucharminute;ucharhour;}time1;ucharn,i;voidinit();//****************************************************voiddelay(n){ while(n--) { for(i=120;i>0;i--); }}/*延時子程序*///****************************************************voidmodify(void){ EA=0; if(thour==0) { if(flag==0) { dat1[6]++; time1.hour++; delay(280); if(dat1[6]>9) { dat1[6]=0; dat1[7]++; } else if((dat1[7]>1)&&(dat1[6]>3)) { dat1[7]=0; dat1[6]=0; } } }//數(shù)碼管3、4位(分鐘位輸出) if(tminute==0) { if(flag==0) { dat1[3]++; time1.minute++; //minute計數(shù)存儲 delay(280); //按鍵掃描延遲 if(dat[3]>=9) { dat1[4]++; dat1[3]=0; if(dat1[4]>5) { dat1[4]=0; } } } } if(miaobiao1==0) { //秒表按鍵設定 TR0=0; ET0=0; TR1=0; ET1=0; flag=1; dat[0]=0; dat[1]=0; dat[2]=0xbf; dat[3]=0; dat[4]=0; dat[5]=0xbf; dat[6]=0; dat[7]=0; TR0=1; ET0=1; TR1=1; ET1=1; } if(miaobiao2==0) { //暫停按鍵設定 TR0=0; ET0=0; TR1=0; ET1=0; } if(miaobiao3==0) //返回按鍵設定 { TR0=1; ET0=1; TR1=0; ET1=0; flag=1; ms=0; sec=0; minit=0; } EA=1;}/*按鍵掃描*///****************************************************voidinit(void){ TMOD=0x11; TH0=0xDB; TL0=0xFF; TH1=0xDB; TL1=0xFF; ET0=1; ET1=1; TR0=1; tcount=0; ms=0; sec=0; minit=0; EA=1;}/*初始化*///****************************************************voidtest(void){ for(k=0;k<8;k++) { P3=dis_bit[k]; P2=SEG7[dat[k]]; delay(1); P3=0X00; }}/*數(shù)字顯示*///****************************************************voidmain(){ init(); delay(10); while(1) { modify(); test(); }}/*主函數(shù)*///****************************************************voiddiplay()interrupt1{ ET0=0; TR0=0; TH0=0xDB; TL0=0xff; TR0=1; tcount++;//秒時間 if(tcount==100) { time1.second++; tcount=0; dat1[0]=(time1.second)%10; //dat1顯示輸出 dat1[1]=(time1.second)/10; }//分進位循環(huán) if(time1.second==60) { dat1[0]=0; // second顯示存儲清零 dat1[1]=0; time1.second=0; // second計數(shù)存儲清零 time1.minute++; dat1[3]=(time1.minute)%10; //second個位顯示 dat1[4]=(time1.minute)/10; }//時進位循環(huán) if(time1.minute==60) { dat1[3]=0; // minute顯示存儲清零 dat1[4]=0; time1.minute=0; //minute計數(shù)存儲清零 time1.hour++; dat1[6]=time1.hour%10; //hour個位顯示 dat1[7]=time1.hour/10; }// if(time1.hour>23) { dat1[6]=0; //hour顯示存儲清零 dat1[7]=0; time1.hour=0;//hour計數(shù)存儲清零 } dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0; P0=0x01; ET0=1;}//****************************************************//跑秒voidtime_2(void)interrupt3{ EA=0; TR0=0; TH1=0xDB; TL1=0xFF; TR1=1; ms++; dat2[0]=ms%10; dat2[1]=ms/10;// if(ms>=100) //跑秒進制100 { ms=0; sec++; dat2[3]=sec%10; dat2[4]=sec/10;// if(sec>=60) { sec=0; minit++; dat2[6]=minit%10; dat2[7]=minit/10; } } dat[5]=10; dat[2]=10; dat[0]=dat2[0]; dat[1]=dat2[1]; dat[3]=dat2[3]; dat[4]=dat2[4]; dat[6]=dat2[6]; dat[7]=dat2[7]; EA=1;}5程序調(diào)試過程及相關問題5.1調(diào)試中已解決問題在調(diào)試過程中出現(xiàn)過幾個問題。(1)仿真時,元器件選錯了:八位共陽極數(shù)碼管選成了八位共陰極數(shù)碼管,結果導入程序后出現(xiàn)的數(shù)字不是阿拉伯數(shù)字,而是反碼。后來在調(diào)試程序的過程中,很長一段時間內(nèi)沒發(fā)現(xiàn)程序的問題反過頭來找到了是元器件的選擇錯誤問題。(2)時鐘按鍵調(diào)整過后,在秒針沒有進位(沒走滿一分鐘)時鐘顯示是正確的,沒有任何延遲問題,數(shù)字顯示正確。但是一旦秒鐘走滿60后顯示的數(shù)字就出現(xiàn)問題,調(diào)分、調(diào)時按鍵校正的時間根本沒有加上去,時鐘按照調(diào)節(jié)前顯示的時間在運行和顯示。(3)使用秒表功能時,當鍵入復位功能鍵時出現(xiàn)了反碼,最后我們的解決方法是將秒表復位鍵同返回時鐘鍵設置成同一按鍵,有效地解決了秒表復位問題,也簡化了按鍵數(shù)量,節(jié)省了開支!(4)開始編寫的程序,用的匯編語言編寫的,寫得很雜亂沒有章法,在時鐘調(diào)試中出現(xiàn)了問題后不能及時,準確的找到問題的所在,不但暴露出匯編語言學習得不扎實,還暴露出自己在書寫程序時,缺少一種系統(tǒng),規(guī)范的方法。5.2相關分析出現(xiàn)以上問題后,經(jīng)過調(diào)試、請教同學、查資料等多種途徑基本都能解決問題。在組員的相互配合下,在同學的探討幫助下,共同解決了以下問題。解決方案:(1)換用了共陽極7段數(shù)碼管解決了原件配備問題。(2)這是由于數(shù)碼管的計數(shù)存儲和顯示存儲的問題,在計數(shù)存儲的數(shù)據(jù)里已經(jīng)計算好并把時鐘走的時間和按鍵校正的時間相加,但是顯示存儲沒相加導致了這個問題。解決辦法:把寄存器里的數(shù)據(jù)與按鍵校正的數(shù)據(jù)做加法后再放進數(shù)碼管里顯示出來,添加的語句為:time1.minute++。(3)這是由于按鍵多余造成,經(jīng)過按鍵整合2鍵合1很好的解決了這個問題。(4)由于用匯編有很大的難處,后來程序用C語言編寫,規(guī)范的按括號與括號相對,多加注解的方法,在調(diào)試中減輕了很大困難,為以后的編程找到了有效的書寫模板。5.3方案存在的問題雖說解決了上面的一些問題,但是最重要的,最困難的問題不是解決過的,而是還沒解決的。以下三個問題是本次設計依然存在的問題,提出來希望能進一步得到解決。(1)在秒表復位的電路中,結果是正確的,但是在你運行秒表程序又返回時鐘界面后,再進入秒表,上面顯示的數(shù)字不是00-00-00而是上次按返回時鐘鍵的秒表時間。但是并不是說沒復位,因為在1秒鐘后秒表又進入正常的開始運行,時間也是與按秒表后的時間一樣,在這個過程當中有個延遲,秒表要1秒鐘時間去消化上次的數(shù)據(jù)。這個問題不知道怎么去解決,程序中延遲,中斷部分都沒什么問題,復位時要1秒鐘的延遲來進入下次秒表運行的原因是?(2)在當初設定單獨復位鍵時出現(xiàn)了一個代碼問題,同樣的代碼0xBF程序中設定為/*-*/出現(xiàn)了不是橫線也不是數(shù)字的符號,不是反碼,怎么修改數(shù)碼管輸出的代碼數(shù)據(jù)都沒用,最后只好不設定單獨復位鍵。(3)最后一個問題,時鐘運行時,按秒表鍵,再按返回時鐘鍵后秒表跑的時間不能加到時鐘里,中間丟失了一段時間,經(jīng)過探討這是由于單片機只有一個處理器不能同時處理兩個問題,所以這個是暫時無法解決的問題。5.4調(diào)試心得體會經(jīng)過近一個星期的單片機電子時鐘課程設計,我們組已基本完成課程要求。功能上達到了:時鐘的顯示,秒表顯示,調(diào)時功能,秒表暫停及復位功能。精確度完全滿足日常生活需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- D打印技術在個性化教育資源的開發(fā)考核試卷
- 期刊出版論文的開源出版趨勢考核試卷
- 教育音像制品策劃與制作考核試卷
- 文具行業(yè)個性化服務考核試卷
- 工業(yè)園區(qū)電動汽車充電需求分析考核試卷
- 健康生活方式與營養(yǎng)健康考核試卷
- 個人培訓課件大全
- 買杭州新房合同范本
- 私人店鋪租賃合同范本
- 2025屆吉林省吉林地區(qū)高三上學期二模英語試題及答案
- 2024轉(zhuǎn)向節(jié)設計標準
- 一年級《讀讀兒歌和童謠》線上閱讀測試專項測試題附答案
- 強化學習在支付風控
- 工商企業(yè)管理畢業(yè)論文范文(4篇)
- 重癥醫(yī)學科相關技術規(guī)范與操作規(guī)程
- DB11∕T 1326-2016 中小學校晨午檢規(guī)范
- 北師大版(三起)(2024)三年級上冊英語Unit 2 School life單元測試卷(含答案)
- 兩癌篩查宣傳課件
- 《跨境直播運營》課件-跨境直播的概念和發(fā)展歷程
- 施工現(xiàn)場安全隱患檢查表
- DLT5461-2013 火力發(fā)電廠施工圖設計文件深度規(guī)定(第1-16部分)
評論
0/150
提交評論