(論文)單片機電子表 課程設(shè)計最新優(yōu)秀畢業(yè)論文資料搜集嘔血奉獻_第1頁
(論文)單片機電子表 課程設(shè)計最新優(yōu)秀畢業(yè)論文資料搜集嘔血奉獻_第2頁
(論文)單片機電子表 課程設(shè)計最新優(yōu)秀畢業(yè)論文資料搜集嘔血奉獻_第3頁
(論文)單片機電子表 課程設(shè)計最新優(yōu)秀畢業(yè)論文資料搜集嘔血奉獻_第4頁
(論文)單片機電子表 課程設(shè)計最新優(yōu)秀畢業(yè)論文資料搜集嘔血奉獻_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

武漢理工大學(xué)華夏學(xué)院單片機原理與接口技術(shù)課程設(shè)計單片機原理與接口技術(shù)課程設(shè)計題 目: 數(shù)字電子表設(shè)計 學(xué)院(系): 信息工程系 年級專業(yè): 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 基于單片機數(shù)字電子表的設(shè)計 摘 要 隨著電子技術(shù)的發(fā)展,計算機在現(xiàn)代科學(xué)技術(shù)的發(fā)展中起著越來越重要的作用。多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、智能信息處理技術(shù)、自適用控制技術(shù)、數(shù)據(jù)挖掘與處理技術(shù)等都離不開計算機。本課程設(shè)計是基單片機原理與接口技術(shù)的簡單應(yīng)用。運用所學(xué)的單片機原理和接口技術(shù)知識完成數(shù)字電子表的設(shè)計。電子表已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個人家庭以及辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使電子表具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。盡管目前市場上已有現(xiàn)成的電子表集成電路芯片出售,價格便宜、使用也方便,但鑒于電子表電路的基本組成包含了數(shù)字電路的主要組成部分,因此進行電子表的設(shè)計是必要的,用C語言設(shè)計電子表顯示程序,要求根據(jù)輸入程序顯示電子表畫面。研究電子表及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。關(guān)鍵詞 LED,定時/計器數(shù), C語言,調(diào)試,運行。 目錄前言5第一章 數(shù)字電子表的設(shè)計要求與設(shè)計方案61.1 課程設(shè)計的目的61.2 要求完成的主要任務(wù)61.3 設(shè)計方案6第二章 數(shù)字電子表的硬件設(shè)計82.1 電子表的硬件框圖82.2 輸入、輸出顯示電路設(shè)計92.3 系統(tǒng)總電路圖 9第三章 數(shù)字電子表的軟件設(shè)計103.1 主程序流程圖103.2 中斷程序設(shè)計103.3 顯示處理程序設(shè)計123.4 電子表主程序設(shè)計13第四章 數(shù)字電子表的安裝與調(diào)試174.1 硬件調(diào)試17 4.2 軟件調(diào)試174.3 調(diào)試過程17第五章 設(shè)計體會與小結(jié)18 5.1 總結(jié)設(shè)計體會與心得18附錄19參考文獻213前言單片機課程設(shè)計是電子技術(shù)學(xué)習(xí)中非常重要的一個環(huán)節(jié),是將理論知識和實踐能力相統(tǒng)一的一個環(huán)節(jié),是真正鍛煉學(xué)生能力的一個環(huán)節(jié)。在生活中,數(shù)字電子表的優(yōu)點受到人們的歡迎,在很多場合得到了廣泛的應(yīng)用。單片原理及應(yīng)用是一門技術(shù)性、應(yīng)用性很強的學(xué)科,實踐教學(xué)是它的一個極為重要的環(huán)節(jié)。不論是硬件擴展、接口應(yīng)用還是編程方法、程序調(diào)試,都離不開實驗教學(xué)。如果不在切實認真地抓好學(xué)生的實踐技能的鍛煉上下功夫,單憑課堂理論課學(xué)習(xí),勢必出現(xiàn)理論與實踐脫節(jié)的局面。任隨書本上把單片機技術(shù)介紹得多么重要、多么實用多么好用,同學(xué)們?nèi)匀粫械侥侵皇强罩袠情w,離自己十分遙遠,或者會感到對它失去興趣,或者會感到它高深莫測無從下手,這些情況都會令課堂教學(xué)的效果大打折扣。本次仿真設(shè)計的目的就是讓同學(xué)們在理論學(xué)習(xí)的基礎(chǔ)上,通過完成一個涉及MCS52單片機都種資源應(yīng)用并具有綜合功能的數(shù)字電子表的設(shè)計與編程應(yīng)用,使學(xué)生不但能夠?qū)⒄n堂上學(xué)到的理論知識與實際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐?、電子元器件、印制電路板等方面的知識進一步加深認識,同時在軟件編程、排版調(diào)試、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高,為今后能夠獨立進行某些單片機應(yīng)用系統(tǒng)的開發(fā)設(shè)計工作打下一定的基礎(chǔ)。該電子時鐘不但具有定時作用還有溫度采集作用。定時部分可以顯示時、分、秒,月,日,而且用按鍵還可以實現(xiàn)時間和日期的調(diào)整。在這次單片機課程設(shè)計中,同學(xué)們完成了單片機數(shù)據(jù)采集與定時系統(tǒng)的硬件電路設(shè)計。本次綜合實踐是在此基礎(chǔ)上,完成該系統(tǒng)的軟件設(shè)計與調(diào)試。待仿真成功后,再將程序燒寫入單片機中。第一章 數(shù)字電子表的設(shè)計要求與設(shè)計方案1.1 課程設(shè)計的目的 (1)鞏固,加深和擴大單片機應(yīng)用的知識面,提高綜合及靈活運用所學(xué)知識解決工業(yè)控制的能力; (2)培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊,圖標及文獻資料的自學(xué)能力,提高組成系統(tǒng),編程,調(diào)試的動手能力; (3)通過對課題設(shè)計方案的分析,選擇,比較,熟悉單片機用系統(tǒng)開發(fā),研制的過程,軟件硬件設(shè)計的方法,內(nèi)容及步驟。1.2要求完成的主要任務(wù):(1)成數(shù)字電子表的設(shè)計和調(diào)試。 (2)要求采用四位八段數(shù)碼管顯示時間和日期,并且可以用按鍵修改時間和日期。1.3 設(shè)計方案(1)系統(tǒng)結(jié)構(gòu) 整個電子時鐘系統(tǒng)電路可分為五大部分:中央處理單元(CPU)、電源電路部分、顯示部分、鍵盤輸入部分。(2)顯示部分顯示部分是整個電子時鐘最為重要的部分,它為時間的顯示的顯示,共需要8位LED顯示器。采用動態(tài)顯示方式,所謂動態(tài)顯示方式是時間(或溫度)數(shù)字在LED上一個一個逐個顯示,它是通過位選端控制在哪個LED上顯示數(shù)字,由于這些LED數(shù)字顯示之間的時間非常的短,使的人眼看來它們是一起顯示時間數(shù)字的,并且動態(tài)顯示方式所用的接口少,節(jié)省了CPU的管腳。由于端口的問題以及動態(tài)顯示方式的優(yōu)越性,在此設(shè)計的連接方式上采用共陰級接法。顯示器LED有段選和位選兩個端口,首先說段選端,它由LED八個端口構(gòu)成,通過對這八個端口輸入的不同的二進制數(shù)據(jù)使得它的時間顯示也不同,從而可以得到我們所要的時間顯示。(3)實現(xiàn)數(shù)字時鐘原理為:在單片機內(nèi)部存儲器設(shè)三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,沒產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1:;若秒值達到60,則將其清零,并將相應(yīng)的分字節(jié)值加1若分值;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將時字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。第二章 數(shù)字電子表的硬件設(shè)計2.1 電子表的硬件框圖電子表電路的核心是AT89C52單片機,其內(nèi)部帶有4KB的Flash ROM,無需外擴程序存儲器;電子表沒有大量的運算和暫存數(shù)據(jù),現(xiàn)有的128B片內(nèi)RAM已滿足要求,也不必外擴片外RAM。系統(tǒng)配備6位LED顯示,采用單片機的并行口作為鍵盤,顯示器接口電路。利用P0口作為8位LED顯示的位選口,其中,P0.0P0.7分別對應(yīng)為LED0LED7,P1口則作為段選口,P2口的低3位為鍵盤輸入口,對應(yīng)02行,P0口同時用作鍵盤的掃描口由于采用公陰極數(shù)碼管,因此P0口輸出低電平選中相應(yīng)的位,而P1口輸出高電平點亮相應(yīng)的段。單片機晶振手動復(fù)位數(shù)碼管顯示時間調(diào)整按鍵日期調(diào)整按鍵2.2 輸入、輸出顯示電路設(shè)計串行口 AT89C52P1口4位獨立式鍵盤移位寄存器移位寄存器LED1LED22.3 系統(tǒng)總電路圖第三章 數(shù)字電子表的軟件設(shè)計3.1 主程序流程圖在編程,首先進行了初始化,定義程序的入口地址以及中斷的入口地址,自主程序開始定義了一組固定單元用來存儲計數(shù)的時、分、秒,在顯示初值之后,進入主循環(huán)。在主程序中,對不同的按鍵進行掃描,實現(xiàn)秒表,時間調(diào)整,復(fù)位清零等功能。系統(tǒng)總流程圖如下圖:/*/* 3.2 中斷程序設(shè)計 */*/void time1_isr(void) interrupt 3 using 0/定時器1中斷;定時器1用來動態(tài)掃描 static unsigned char num; TH1=0xF8;/重入初值 TL1=0xf0; switch (num) case 0:P2=0;P0=StrTabnum;break; /分別調(diào)用緩沖區(qū)的值進行掃描 case 1:P2=1;P0=StrTabnum;break; case 2:P2=2;P0=StrTabnum;break; case 3:P2=3;P0=StrTabnum;break; case 4:P2=4;P0=StrTabnum;break; case 5:P2=5;P0=StrTabnum;break; case 6:P2=6;P0=StrTabnum;break; case 7:P2=7;P0=StrTabnum;break; default:break;num+; /掃描8次,使用8個數(shù)碼管if(num=8) num=0;void tim(void) interrupt 1 using 1/定時器0中斷static unsigned char count;/定義內(nèi)部靜態(tài)變量TH0=0xd8; /重新賦值TL0=0xf0;count+; switch (count) case 0: case 20: case 40: case 60: case 80:Displaypro(); /隔一定時間調(diào)用顯示處理 break; default:break; if (count=100) count=0; second+; /秒加1 if(second=60) second=0; minute+; /分加1 if(minute=60) minute=0; hour+; /時加1 if(hour=24) hour=0; day+; if(day=28)&(month=2) day=1;month+; if(month7) if(month%2=0) month+;day=1; /*/* 3.3 顯示處理程序設(shè)計 */*/void Displaypro(void) if(!KEY2) /按鍵1去抖以及動作 if(!KEY2) delay(40000); t+; if(t%2=0) if(!KEY1) /按鍵1去抖以及動作 if(!KEY1) delay(40000); hour+;if(hour=24)hour=0; if(!KEY3) /按鍵1去抖以及動作 if(!KEY3) delay(40000); minute+;if(minute=60)minute=0; if(!KEY4) /按鍵去抖以及動作 delay(15000); if(!KEY4) if(minute=1) minute-; Displaypro(); i=hour;j=minute;k=second; if(t%2=1) i=month;j=day;k=0; StrTab0=tabi/10; /顯示小時十位 StrTab1=tabi%10; /顯示小時個位 StrTab2=0x40; /顯示- StrTab3=tabj/10; /顯示分鐘十位 StrTab4=tabj%10; /顯示分鐘個位 StrTab5=0x40; /顯示- StrTab6=tabk/10; /顯示秒鐘十位 StrTab7=tabk%10; /顯示秒鐘個位 /*/* 3.4 電子表主程序設(shè)計主函數(shù) */*/main()/主函數(shù) TMOD |=0x01;/定時器0 10ms in 12M crystal 用于計時 TH0=0xd8; /初值 TL0=0xf0; ET0=1; TR0=1; TMOD |=0x10; /定時器1用于動態(tài)掃描 TH1=0xF8; /初值 TL1=0xf0; ET1=1; TR1=1; EA =1; /總中斷允許if(t%2=0)while(1)/主循環(huán) if(!KEY1) /按鍵1去抖以及動作 if(!KEY1) delay(40000); hour+;if(hour=24)hour=0; /正常時間 小時 加1 Displaypro(); if(!KEY3) /按鍵去抖以及動作 delay(20000); if(!KEY3) minute+;if(minute=60)minute=0;/分加1 Displaypro(); if(!KEY4) /按鍵去抖以及動作 delay(15000); if(!KEY4) if(minute=1) minute-; Displaypro(); if(t%2=1)while(1)/主循環(huán) if(!KEY1) /按鍵1去抖以及動作 delay(20000); if(!KEY1) month+;if(month=13)month=1; /正常時間 小時 加1 Displaypro(); if(!KEY3) /按鍵去抖以及動作 delay(20000); if(!KEY3) day+;if(day=29)&(month=2)day=1; if(month7) if(month%2=0) if(day=32) day=1; if(month%2=1) if(day=31) day=1; Displaypro(); 第四章 數(shù)字電子表的安裝與調(diào)試4.1 硬件調(diào)試單片機基礎(chǔ)電路包括電源,單片機,外部時鐘振蕩電路,復(fù)位電路和外部接口電路。調(diào)試過程注意一下幾點:1 檢查電源是否完好。2 單片機電源要連接正確,并且保證AT89C52的P1口輸出高電平。3 如果使用P0口做I/O口,要接上拉電阻。4.2 軟件調(diào)試在硬件調(diào)試完畢的基礎(chǔ)上,需要進一步完善程序,也就是進入軟件調(diào)試階段。在本次設(shè)計中,軟件調(diào)試的主要部分是時鐘子程序的調(diào)試,在硬件調(diào)試階段,已經(jīng)將時鐘程序調(diào)試完畢了,只需在主程序中調(diào)用即可。具體步驟:通過Keil軟件編寫程序,燒寫AT89C52芯片中,在上電的情況下,8個LED數(shù)碼管顯示的是01-01-00,當(dāng)按鍵S2有按下的時候,啟動時鐘,當(dāng)再次檢測到按鍵S2按下時,就會顯示月日;當(dāng)按鍵S1有按下的時候,時進行加1操作;當(dāng)按鍵S3有按下的時候,分進行加1操作;當(dāng)按鍵S4有按下的時候,分進行減1操作;通過S1,S2,S3,S4的配合調(diào)節(jié),可以顯示當(dāng)前正確的時間和日期,達到了設(shè)計要求的目的。4.3 調(diào)試過程1 硬件調(diào)試完成后,將編寫好的程序燒寫在AT89C52芯片中,在上電的情況下,8個LED數(shù)碼管顯示的是01-01-00,然后調(diào)節(jié)S1,S2,S3,則初步達到了設(shè)計的要求,但是當(dāng)調(diào)節(jié)分的時候調(diào)的超過了當(dāng)前的時間,則需要重新按下60次S3,經(jīng)過考慮后,添加了一段分鐘減一程序,相應(yīng)的增加按鍵S4;當(dāng)時間調(diào)超過后,可以按下S4進行減操作,大大方便了時間校正的操作。2 在調(diào)試的過程中,按下按鍵時,LED顯示都會閃爍一下,理想的應(yīng)該是要調(diào)節(jié)時間或日期時,所要調(diào)節(jié)的值的LED會閃爍,這一點在調(diào)試的過程中沒能實現(xiàn)。第五章 設(shè)計體會與小結(jié)5.1 總結(jié)設(shè)計體會與心得本次做的電子表是以單片機(AT89C52)為核心,結(jié)合相關(guān)的元器件(共陰極LED數(shù)碼顯示器、鎖存/譯碼等),再配以相應(yīng)的軟件,達到實現(xiàn)時鐘日期顯示的功能,也具有顯示和時鐘、日期的校準,以及多路開關(guān)定時輸出等功能,在軟件調(diào)試的過程中,遇到了很多困難,第一次是只實現(xiàn)了時間的調(diào)試,未能實現(xiàn)日期的顯示,后來經(jīng)過調(diào)試后達到了日期顯示的效果,唯一有一點遺憾的是按鍵按下去之后總會閃爍一下,但整體上這次單片機的課程設(shè)計自我感覺還是很完美的,經(jīng)過自己的努力制作出了數(shù)字電子表,第一次做編寫單片機的程序能有成功,也讓自己對單片機有了更大的興趣。通過這次的設(shè)計使我認識到我對單片機方面的知識知道的太少了,對于書本上的很多知識還不能靈活運用,有很多我們需要掌握的知識在等著我去學(xué)習(xí),我會在以后的學(xué)習(xí)生活中彌補我所缺少的知識。本次的設(shè)計使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識運用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識,而我們應(yīng)把所學(xué)的用到我們現(xiàn)實的生活中去,此次的電子時鐘設(shè)計給我奠定了一個實踐基礎(chǔ),我會在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競爭。通過兩周的學(xué)習(xí),我對單片機的硬件設(shè)計,軟件設(shè)計掌握,對硬件電路的工作原理有了新一層的理解。這是我第一次編寫單片機的程序,通過把課本上的理論與生活中的實際問題結(jié)合起來,使我學(xué)到很多東西。把程序拆分成幾部分一一進行編寫、調(diào)試,在編程中出現(xiàn)問題時,嚴格謹慎,仔細分析、調(diào)試,一定會從中發(fā)現(xiàn)錯誤,克服困難。附錄一部分源程序在軟件設(shè)計的章節(jié)中,已經(jīng)介紹了中斷程序設(shè)計,顯示處理程序設(shè)計,電子表主程序設(shè)計,在此附錄中介紹頭文件,端口定義,以及延時函數(shù)等內(nèi)容;#include /包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義sbit KEY1=P30; /定義端口參數(shù)sbit KEY2=P31;sbit KEY3=P32;sbit KEY4=P33;sbit LED=P12; /定義指示燈參數(shù)code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共陰數(shù)碼管 0-9unsigned char StrTab8; /定義緩沖區(qū)unsigned char minute=00,hour=00,second=00; /定義并且初始化值 00:00:00unsigned char month=01, day=01,t=1,j,i,k; /定義變量并設(shè)置月日初

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論