




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
課程設計說明書課程:單片機應用技術課程設計題目:基于AT89C51單片機的電子表設計姓名:學號:1專業(yè):機械設計制造及其自動化班級:2023級機院系:工學院機械系指導老師:朱煜鈺課程設計時間:2023.10.27至2023.11.10黃河科技學院課程設計任務書工學院機械系機械設計制造及其自動化專業(yè)11級3班學號姓名指導教師朱煜鈺題目:基于AT89C51單片機的電子表設計課程:單片機應用技術課程設計課程設計時間2023年10月27日至2023年11月10日共2周課程設計工作內(nèi)容與基本規(guī)定(設計規(guī)定、設計任務、工作計劃、所需相關資料)(紙張不夠可加頁)1.設計規(guī)定運用AT89C51單片機作為微控制器,在數(shù)碼管通過一個控制鍵轉換來顯示的時間和日期;能通過多個控制鍵用來實現(xiàn)時間和日期的調(diào)節(jié)。2.設計任務與規(guī)定2.1系統(tǒng)硬件電路設計根據(jù)該系統(tǒng)設計的功能規(guī)定選擇所用元器件,設計硬件電路。規(guī)定用Proteus繪制整個系統(tǒng)電路原理圖。2.2軟件設計根據(jù)該系統(tǒng)規(guī)定的功能進行軟件設計,繪制整個系統(tǒng)的軟件流程圖;根據(jù)流程圖編寫程序并匯編調(diào)試通過;列出軟件清單,軟件清單規(guī)定逐條加以注釋。2.3Proteus仿真用Proteus對系統(tǒng)軟硬件進行仿真調(diào)試并通過。2.4編寫設計說明書內(nèi)容涉及任務書、設計方案分析、硬件部分設計、軟件部分設計、調(diào)試結果整理分析、設計調(diào)試的心得體會等,字數(shù)不少于5000字;硬件部分設計要繪制整個系統(tǒng)電路原理圖,對各部分電路設計原理做出說明;軟件設計部分要(用visio2023畫圖軟件)繪制整個系統(tǒng)框圖及各部分的軟件流程圖,列出程序清單,逐條加以注釋,并注明各程序功能塊的功能。3.工作計劃序號設計內(nèi)容所用時間1布置任務及調(diào)研4天3制作與調(diào)試8天4撰寫設計報告書2天合計14天4.重要參考資料單片機課程設計指導書 皮大能 北京理工大學出版社 2023.78051單片機實踐與應用 吳金戎 清華大學出版社 2023.8單片機技術基礎教程與實踐夏路易 電子工業(yè)出版社 2023.1單片機原理及應用 張毅剛高等教育出版社2023.11基于Proteus的單片機系統(tǒng)設計與仿真實例蔣輝平機械工業(yè)出版社2023.7…指導老師簽字:日期: 目錄 第1章概述…………41.1內(nèi)容摘要……4 1.2實驗基本原理………………4第2章設計思緒及框圖……………52.1設計思緒……5 2.2設計框圖……5第3章硬件的設計…………………6 3.1主控制部件…………………6 3.2顯示模塊…………………73.3晶振模塊……73.4按鍵模塊……83.5驅動模塊……8第4章電路設計原理圖……………9第5章程序的設計…………………105.1程序流程圖…………………10 5.2源程序……12第6章系統(tǒng)驗證及調(diào)試……………23第7章總結…………24第8章參考文獻……25
第1章概述1.1內(nèi)容摘要本次課程設計基于單片機原理技術介紹了一款于AT89C51芯片作為核心控制器的單片機電子表的設計與制作,重要有兩個功能:時鐘和秒表。其制作流程重要涉及硬件電路原理的實現(xiàn)方案設計、軟件程序編輯的實現(xiàn)、電子表正常工作的流程、原理圖仿真實現(xiàn)、硬件實物的調(diào)試過程。該單片機數(shù)字電子表采用LED數(shù)碼管可以準確顯示時間(顯示格式為:時時,分分,秒秒),可隨時進行時間調(diào)整,時間可采用24小時制顯示,還可實現(xiàn)時鐘與秒表的切換,暫停與調(diào)時調(diào)分調(diào)秒,可按自己的規(guī)定設立擴展其它的功能。1.2實驗基本原理運用AT89C51單片機定期器完畢計時功能,定期器0計時中斷程序每隔0.01s中斷一次并當作一個計數(shù),設定定期1秒的中斷計數(shù)初值為0,每中斷一次中斷計數(shù)初值加1,當加到100時,則表達1s到了,秒變量加1,同理再判斷是否1min鐘到了,再判斷是否1h到了。為了將時間在6位LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動態(tài)顯示法,由于靜態(tài)顯示法需要譯碼器,數(shù)據(jù)鎖存器等較多硬件,可采用動態(tài)顯示法實現(xiàn)LED顯示,通過對每位數(shù)碼管的依次掃描,使相應數(shù)碼管亮,同時向該數(shù)碼管送相應的字碼,使其顯示數(shù)字。由于數(shù)碼管掃描周期很短,由于人眼的視覺暫留效應,使數(shù)碼管看起來總是亮的,從而實現(xiàn)了各種顯示。
第2章設計思緒及框圖2.1設計思緒針對要實現(xiàn)的功能,采用AT89S51單片機進行設計,AT89S51單片機是一款低功耗,高性能CMOS8位單片機,第一,熟悉AT89S51單片機,在編程之前必須了解硬件結構特別是各引腳的用法,以及內(nèi)部寄存器、存儲單元的用法,否則,編程無從下手,電路也無法設計。這是前期準備工作。第二,設計硬件部分:依據(jù)想要的功能分塊設計設計,比如輸入需要開關電路,輸出需要顯示驅動電路和數(shù)碼管電路等。第三,畫圖部分:設計好電路后進行畫圖。第四,軟件部分:先學習理解匯編語言的編程方法再根據(jù)設計的硬件電路進行分塊的編程調(diào)試,最終完畢程序設計。第五部分是軟件仿真部分:軟硬件設計好后將軟件載入芯片中進行仿真,仿真無法完畢時檢查軟件程序和硬件電路并進行修改直到仿真成功。第六部分是硬件實現(xiàn)部分:連接電路并導入程序檢查電路,實現(xiàn)想要的功能。2.2設計框圖本次設計重要是應用單片機來設計電子時鐘,硬件部分重要分以下電路模塊:顯示電路用8個共陰極數(shù)碼顯示管、按鍵模塊、晶振模塊。顯示管分別顯示:小時、分鐘和秒,通過動態(tài)掃描進行顯示。電路的總體設計框架如下:LED顯示模塊LED顯示模塊單片機模塊時鐘模塊按鍵模塊晶振模塊驅動模塊 圖1第3章硬件的設計3.1主控制部件89C51是一個8位單片機,片內(nèi)ROM所有采用FLASHROM技術,晶振時鐘為12MHz。89C51是標準的40引腳雙列直插式集成電路芯片,有4個八位的并行雙向I/O端口,分別記作P0、P1、P2、P3。第31引腳需要接高電位使單片機選用內(nèi)部程序存儲器;第40腳為電源端VCC,接+5V電源,第20引腳為接地端VSS,通常在VCC和VSS引腳之間接0.1μF高頻濾波電容。硬件原理圖如圖2所示圖2
3.2顯示模塊方案一:靜態(tài)顯示。靜態(tài)顯示,即當顯示器顯示某一字符時,相應的發(fā)光二極管恒定導通或截止。該方式每一位都需要一個8位輸出口控制。靜態(tài)顯示時較小電流能獲得較高的亮度,且字符不閃爍。但因當所需顯示的位數(shù)較多時,靜態(tài)顯示所需的I/O口數(shù)較大,導致資源的浪費。方案二:動態(tài)顯示。動態(tài)顯示,即各位數(shù)碼管輪流點亮,對于顯示器各位數(shù)碼管,每隔一段延時時間循環(huán)點亮一次。運用人的視覺暫留功能可以看到整個顯示,但須保證掃描速度足夠快,人的視覺暫留功能才可察覺不到字符閃爍。顯示器的亮度與導通電流、點亮時間及間隔時間的比例有關。調(diào)整參數(shù)可實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,減少了能耗。從節(jié)省單片機芯片I/O口和減少能耗角度出發(fā),本數(shù)字電子鐘數(shù)碼管顯示選擇設計采用方案二。3.3晶振模塊單片機芯片可使用內(nèi)部時鐘電路和外部時鐘電路兩種方式產(chǎn)生電路所需的時鐘脈沖,內(nèi)部時鐘電路實現(xiàn)可用石英晶體和微調(diào)電容外接即可達成,外部時鐘電路實現(xiàn)需要一個外部脈沖源引入脈沖信號以保證個單片機之間時鐘信號的同步。從硬件實現(xiàn)難易角度考慮,內(nèi)部時鐘電路的實現(xiàn)比外部時鐘電路的實現(xiàn)更簡易。既本數(shù)字電子鐘設計所需的時鐘源采用內(nèi)部時鐘電路實現(xiàn)。所用定期方式為工作方式1,石英晶振為12M,即最小定期時間為1us,最大定期時間約為65.5ms,其電路圖如下圖2所示。圖33.4按鍵模塊本數(shù)字電子鐘設計所需按鍵用于進行顯示時間的調(diào)整與設立擴展的小鍵盤。單片機芯片4個I/O口可與按鍵直接相連,通過編程,單片機芯片即可控制按鍵接口電平的高低,即按鍵的開與關,以達成用按鍵進行顯示時間的調(diào)整與設立擴展的小鍵盤的設計規(guī)定,本電路采用P1口與按鍵相連。其電路圖如圖4所示:圖43.5驅動模塊從實物制作簡易限度與驅動數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘設計采用數(shù)碼管段碼與AT89C51P0口相連,單片機AT89C51的P2口控制數(shù)碼管的片選信號,通過編程,單片機芯片即可控制段碼電平的高低的方式實現(xiàn)數(shù)碼管段碼控制。
第4章電路設計原理圖圖5第5章程序設計程序流程圖在主程序的開始定義了一組固定單元用來存儲計數(shù)的分、秒、時的存儲單元。在主程序中,對不同的按鍵進行掃描,實現(xiàn)秒表,時間調(diào)整。系統(tǒng)總體流程圖如圖6所示。圖6T0中斷入口T0中斷入口通過查表方式顯示數(shù)據(jù)位選數(shù)值=0秒計數(shù)加1秒計數(shù)=1000秒計數(shù)=0Seconds加1中斷返回開始系統(tǒng)子程序流程圖如圖7所示:是否滿24h?是否滿24h?顯示緩沖單元清0返回NY是否滿60m?小時加1分值加1N計數(shù)器重新加載循環(huán)次數(shù)加1是否滿1s?是否滿60s?秒值加1N開始源程序程序清單如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint//七段共陰數(shù)碼顯示管段碼表//ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定義初始化變量////秒表部分//ucharDecisec=0;//分秒//ucharSec=0;//秒//ucharMint=0;//分////時鐘部分//ucharSeconds=0;ucharMinutes=0;ucharHours=0;ucharCount=0;ucharNumb=0;//按鍵部分//sbitCHANGE=P1^0; //切換:可實現(xiàn)跑表與時鐘互切//sbitSTART=P1^1; //開始//sbitSTOP=P1^2; //暫停//sbitRST=P1^3; sbitrst=P1^4;sbitjia1=P1^5;sbitjia2=P1^6;sbitjia3=P1^7; //復位////函數(shù)聲明//voiddelay(ucharms);//延遲函數(shù)//voidtime_pro1();//秒表解決函數(shù)//voidtime_pro2();//時鐘解決函數(shù)//voidkeyscan(); //鍵盤掃描//voiddisplay1();//數(shù)碼管顯示秒表//voiddisplay2();//數(shù)碼管顯示時鐘///*******************/// 主函數(shù)///*******************/voidmain(){ P1=0xff; TMOD=0x11; TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=(65536-10000)/256; TL1=(65536-10000)%256; EA=1; ET0=1; ET1=1; TR0=1; while(1) { keyscan(); if(Numb==1) { display1(); } if(Numb==0) { display2(); if(rst==0) { Hours=0; Seconds=0; Minutes=0; } if(jia1==0) { delay(5); if(jia1==1) { Hours++; if(Hours==24) {Hours=0;} } } if(jia2==0) { delay(5); if(jia2==1) { Minutes++; if(Minutes==60) {Minutes=0;} } } if(jia3==0) { delay(5); if(jia3==1) { Seconds++; if(Seconds==60) {Seconds=0;} } } } }}/*******************///延遲函數(shù)///*******************/voiddelay(ucharms){ uchari,j; for(i=ms;i>0;i--) for(j=500;j>0;j--);}/*******************///秒表解決函數(shù)///******************/voidtime_pro1(){ if(Decisec==100) { Decisec=0; Sec++; if(Sec==1000) { Sec=0; } }}/*******************///時鐘解決函數(shù)///******************/voidtime_pro2(){ if(Seconds==60) { Seconds=0; Minutes++; if(Minutes==60) { Minutes=0; Hours++; if(Hours==24) { Hours=0; } } }}/*******************///鍵盤掃描函數(shù)///******************/voidkeyscan(){ //秒表/時鐘切換// if(CHANGE==0) { delay(5); if((CHANGE==0)&&(Numb==0)) { display1(); Numb=!Numb; while(!CHANGE) { display1(); } } if((CHANGE==0)&&(Numb==1)) { Numb=!Numb; while(!CHANGE) { display2(); } } } //開始計時// if((START==0)&&(Numb==1)) { delay(5); if(START==0) { TR1=1; while(!START) { display1(); } } } //暫停計時// if((STOP==0)&&(Numb==1)) { delay(5); if(STOP==0) { TR1=0; while(!STOP) { display1(); } } } //重新計時// if((RST==0)&&(Numb==1)) { delay(5); if(RST==0) { Hours=0; Seconds=0; Minutes=0; Decisec=0; Sec=0; while(!RST) { Decisec=0; Sec=0; display1(); } } }}/********************///數(shù)碼管顯示秒表///********************/voiddisplay1(){ P2=0x7f; P0=dispcode[Decisec/10];//顯示分秒// delay(1); P2=0xbf; P0=dispcode[(Sec%100)%10]|0x80;//顯示秒個位// delay(1); P2=0xdf; P0=dispcode[(Sec%100)/10];//顯示秒十位// delay(1); P2=0xef; P0=dispcode[Sec/100]; delay(1); }/*********************///數(shù)碼管顯示時鐘///*********************/voiddisplay2(){ P2=0x7f; P0=dispcode[Seconds%10];//顯示秒個位// delay(1); P2=0xbf; P0=dispcode[Seconds/10];//顯示秒十位// delay(1); P2=0xdf; P0=dispcode[Minutes%10]|0x80;//顯示分個位// delay(1); P2=0xef; P0=dispcode[Minutes/10];//顯示分十位// delay(1); P2=0xf7; P0=dispcode[Hours%10]|0x80;//顯示時個位// delay(1); P2=0xfb; P0=dispcode[Hours/10];//顯示時十位// delay(1);}/*********************///定期器T1中斷服務程序///********************/voidtime_T1()interrupt3{ TH1=(65536-10000)/256; TL1=(65536-10000)%256; Decisec++; time_pro1();//秒表時間解決函數(shù)//}/**********************///定期器T0中斷服務程序///**********************/voidtime_T0()interrupt1{ TH0=(65536-10000)/256; TL0=(65536-10000)%256; Count++; if(Count==100) { Seconds++; time_pro2();//時鐘時間解決函數(shù)// Count=0; }}
第6章系統(tǒng)的驗證及調(diào)試時鐘調(diào)試:秒表調(diào)試:第7章總結這兩周的課程設計學到了不少的東西,剛開始的時候我感覺毫無頭緒,又要忙著安裝軟件,又要學習Proteus,以前沒有用過,緊張忙但是來,做完之后才明白本來用單片機做一個實物也不是想象中的那樣困難重重,在這整個的設計過程中,不僅復習了書本上的理論知識,提高了自己的動手能力,并且還強化了自己的編程水平,總的來感覺效果還是挺不錯的
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 接受理論角度下《凱渚維保協(xié)會》(節(jié)選)英譯漢翻譯實踐報告
- 2025年度包裝設計師作品原創(chuàng)性鑒定合同
- 2025年度辦公室文員團隊協(xié)作與管理合同
- 女士襪子企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 岐黃天使中醫(yī)藥理論和中醫(yī)護理技術專項培訓考核答案
- 2025年度制造業(yè)主管述職述德述廉報告范文
- 自動化生產(chǎn)線建設合同
- 企業(yè)數(shù)字化轉型合作合同
- 電力購售電交易合同
- 戶外運動活動安全責任豁免協(xié)議
- 磚數(shù)量自動計算、換算表
- 【課題】《中學道德與法治法治意識培養(yǎng)策略的研究》中期檢查表
- 《十萬個為什么》推進課(小學課件)
- 發(fā)展?jié)h語初級綜合1:第28課《長城有八千八百五十多公里》
- YY/T 1619-2018牙科學種植體系統(tǒng)及相關過程的術語
- GB/T 18838.1-2002涂覆涂料前鋼材表面處理噴射清理用金屬磨料的技術要求導則和分類
- GA/T 1162-2014法醫(yī)生物檢材的提取、保存、送檢規(guī)范
- 紅金大氣商務風領導歡迎會PPT通用模板
- 例談小組合作學習在小學英語教學中的有效開展(講座)課件
- 產(chǎn)品質量法培訓講義課件
- 民政局業(yè)務工作流程圖
評論
0/150
提交評論