




已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
武漢理工大學華夏學院單片機原理與接口技術課程設計單片機原理與接口技術課程設計題 目: 數(shù)字電子表設計 學院(系): 信息工程系 年級專業(yè): 學 號: 學生姓名: 指導教師: 基于單片機數(shù)字電子表的設計 摘 要 隨著電子技術的發(fā)展,計算機在現(xiàn)代科學技術的發(fā)展中起著越來越重要的作用。多媒體技術、網(wǎng)絡技術、智能信息處理技術、自適用控制技術、數(shù)據(jù)挖掘與處理技術等都離不開計算機。本課程設計是基單片機原理與接口技術的簡單應用。運用所學的單片機原理和接口技術知識完成數(shù)字電子表的設計。電子表已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個人家庭以及辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術的發(fā)展和采用了先進的石英技術,使電子表具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領域。盡管目前市場上已有現(xiàn)成的電子表集成電路芯片出售,價格便宜、使用也方便,但鑒于電子表電路的基本組成包含了數(shù)字電路的主要組成部分,因此進行電子表的設計是必要的,用C語言設計電子表顯示程序,要求根據(jù)輸入程序顯示電子表畫面。研究電子表及擴大其應用,有著非?,F(xiàn)實的意義。關鍵詞 LED,定時/計器數(shù), C語言,調(diào)試,運行。 目錄前言5第一章 數(shù)字電子表的設計要求與設計方案61.1 課程設計的目的61.2 要求完成的主要任務61.3 設計方案6第二章 數(shù)字電子表的硬件設計82.1 電子表的硬件框圖82.2 輸入、輸出顯示電路設計92.3 系統(tǒng)總電路圖 9第三章 數(shù)字電子表的軟件設計103.1 主程序流程圖103.2 中斷程序設計103.3 顯示處理程序設計123.4 電子表主程序設計13第四章 數(shù)字電子表的安裝與調(diào)試174.1 硬件調(diào)試17 4.2 軟件調(diào)試174.3 調(diào)試過程17第五章 設計體會與小結18 5.1 總結設計體會與心得18附錄19參考文獻213前言單片機課程設計是電子技術學習中非常重要的一個環(huán)節(jié),是將理論知識和實踐能力相統(tǒng)一的一個環(huán)節(jié),是真正鍛煉學生能力的一個環(huán)節(jié)。在生活中,數(shù)字電子表的優(yōu)點受到人們的歡迎,在很多場合得到了廣泛的應用。單片原理及應用是一門技術性、應用性很強的學科,實踐教學是它的一個極為重要的環(huán)節(jié)。不論是硬件擴展、接口應用還是編程方法、程序調(diào)試,都離不開實驗教學。如果不在切實認真地抓好學生的實踐技能的鍛煉上下功夫,單憑課堂理論課學習,勢必出現(xiàn)理論與實踐脫節(jié)的局面。任隨書本上把單片機技術介紹得多么重要、多么實用多么好用,同學們?nèi)匀粫械侥侵皇强罩袠情w,離自己十分遙遠,或者會感到對它失去興趣,或者會感到它高深莫測無從下手,這些情況都會令課堂教學的效果大打折扣。本次仿真設計的目的就是讓同學們在理論學習的基礎上,通過完成一個涉及MCS52單片機都種資源應用并具有綜合功能的數(shù)字電子表的設計與編程應用,使學生不但能夠將課堂上學到的理論知識與實際應用結合起來,而且能夠對電子電路、電子元器件、印制電路板等方面的知識進一步加深認識,同時在軟件編程、排版調(diào)試、相關儀器設備的使用技能等方面得到較全面的鍛煉和提高,為今后能夠獨立進行某些單片機應用系統(tǒng)的開發(fā)設計工作打下一定的基礎。該電子時鐘不但具有定時作用還有溫度采集作用。定時部分可以顯示時、分、秒,月,日,而且用按鍵還可以實現(xiàn)時間和日期的調(diào)整。在這次單片機課程設計中,同學們完成了單片機數(shù)據(jù)采集與定時系統(tǒng)的硬件電路設計。本次綜合實踐是在此基礎上,完成該系統(tǒng)的軟件設計與調(diào)試。待仿真成功后,再將程序燒寫入單片機中。第一章 數(shù)字電子表的設計要求與設計方案1.1 課程設計的目的 (1)鞏固,加深和擴大單片機應用的知識面,提高綜合及靈活運用所學知識解決工業(yè)控制的能力; (2)培養(yǎng)針對課題需要,選擇和查閱有關手冊,圖標及文獻資料的自學能力,提高組成系統(tǒng),編程,調(diào)試的動手能力; (3)通過對課題設計方案的分析,選擇,比較,熟悉單片機用系統(tǒng)開發(fā),研制的過程,軟件硬件設計的方法,內(nèi)容及步驟。1.2要求完成的主要任務:(1)成數(shù)字電子表的設計和調(diào)試。 (2)要求采用四位八段數(shù)碼管顯示時間和日期,并且可以用按鍵修改時間和日期。1.3 設計方案(1)系統(tǒng)結構 整個電子時鐘系統(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)越性,在此設計的連接方式上采用共陰級接法。顯示器LED有段選和位選兩個端口,首先說段選端,它由LED八個端口構成,通過對這八個端口輸入的不同的二進制數(shù)據(jù)使得它的時間顯示也不同,從而可以得到我們所要的時間顯示。(3)實現(xiàn)數(shù)字時鐘原理為:在單片機內(nèi)部存儲器設三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現(xiàn)1秒定時中斷,沒產(chǎn)生一次中斷,存儲器內(nèi)相應的秒值加1:;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1若分值;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將時字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。第二章 數(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分別對應為LED0LED7,P1口則作為段選口,P2口的低3位為鍵盤輸入口,對應02行,P0口同時用作鍵盤的掃描口由于采用公陰極數(shù)碼管,因此P0口輸出低電平選中相應的位,而P1口輸出高電平點亮相應的段。單片機晶振手動復位數(shù)碼管顯示時間調(diào)整按鍵日期調(diào)整按鍵2.2 輸入、輸出顯示電路設計串行口 AT89C52P1口4位獨立式鍵盤移位寄存器移位寄存器LED1LED22.3 系統(tǒng)總電路圖第三章 數(shù)字電子表的軟件設計3.1 主程序流程圖在編程,首先進行了初始化,定義程序的入口地址以及中斷的入口地址,自主程序開始定義了一組固定單元用來存儲計數(shù)的時、分、秒,在顯示初值之后,進入主循環(huán)。在主程序中,對不同的按鍵進行掃描,實現(xiàn)秒表,時間調(diào)整,復位清零等功能。系統(tǒng)總流程圖如下圖:/*/* 3.2 中斷程序設計 */*/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 顯示處理程序設計 */*/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ù) */*/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)試單片機基礎電路包括電源,單片機,外部時鐘振蕩電路,復位電路和外部接口電路。調(diào)試過程注意一下幾點:1 檢查電源是否完好。2 單片機電源要連接正確,并且保證AT89C52的P1口輸出高電平。3 如果使用P0口做I/O口,要接上拉電阻。4.2 軟件調(diào)試在硬件調(diào)試完畢的基礎上,需要進一步完善程序,也就是進入軟件調(diào)試階段。在本次設計中,軟件調(diào)試的主要部分是時鐘子程序的調(diào)試,在硬件調(diào)試階段,已經(jīng)將時鐘程序調(diào)試完畢了,只需在主程序中調(diào)用即可。具體步驟:通過Keil軟件編寫程序,燒寫AT89C52芯片中,在上電的情況下,8個LED數(shù)碼管顯示的是01-01-00,當按鍵S2有按下的時候,啟動時鐘,當再次檢測到按鍵S2按下時,就會顯示月日;當按鍵S1有按下的時候,時進行加1操作;當按鍵S3有按下的時候,分進行加1操作;當按鍵S4有按下的時候,分進行減1操作;通過S1,S2,S3,S4的配合調(diào)節(jié),可以顯示當前正確的時間和日期,達到了設計要求的目的。4.3 調(diào)試過程1 硬件調(diào)試完成后,將編寫好的程序燒寫在AT89C52芯片中,在上電的情況下,8個LED數(shù)碼管顯示的是01-01-00,然后調(diào)節(jié)S1,S2,S3,則初步達到了設計的要求,但是當調(diào)節(jié)分的時候調(diào)的超過了當前的時間,則需要重新按下60次S3,經(jīng)過考慮后,添加了一段分鐘減一程序,相應的增加按鍵S4;當時間調(diào)超過后,可以按下S4進行減操作,大大方便了時間校正的操作。2 在調(diào)試的過程中,按下按鍵時,LED顯示都會閃爍一下,理想的應該是要調(diào)節(jié)時間或日期時,所要調(diào)節(jié)的值的LED會閃爍,這一點在調(diào)試的過程中沒能實現(xiàn)。第五章 設計體會與小結5.1 總結設計體會與心得本次做的電子表是以單片機(AT89C52)為核心,結合相關的元器件(共陰極LED數(shù)碼顯示器、鎖存/譯碼等),再配以相應的軟件,達到實現(xiàn)時鐘日期顯示的功能,也具有顯示和時鐘、日期的校準,以及多路開關定時輸出等功能,在軟件調(diào)試的過程中,遇到了很多困難,第一次是只實現(xiàn)了時間的調(diào)試,未能實現(xiàn)日期的顯示,后來經(jīng)過調(diào)試后達到了日期顯示的效果,唯一有一點遺憾的是按鍵按下去之后總會閃爍一下,但整體上這次單片機的課程設計自我感覺還是很完美的,經(jīng)過自己的努力制作出了數(shù)字電子表,第一次做編寫單片機的程序能有成功,也讓自己對單片機有了更大的興趣。通過這次的設計使我認識到我對單片機方面的知識知道的太少了,對于書本上的很多知識還不能靈活運用,有很多我們需要掌握的知識在等著我去學習,我會在以后的學習生活中彌補我所缺少的知識。本次的設計使我從中學到了一些很重要的東西,那就是如何從理論到實踐的轉化,怎樣將我所學到的知識運用到我以后的工作中去。在大學的課堂的學習只是在給我們灌輸專業(yè)知識,而我們應把所學的用到我們現(xiàn)實的生活中去,此次的電子時鐘設計給我奠定了一個實踐基礎,我會在以后的學習、生活中磨練自己,使自己適應于以后的競爭。通過兩周的學習,我對單片機的硬件設計,軟件設計掌握,對硬件電路的工作原理有了新一層的理解。這是我第一次編寫單片機的程序,通過把課本上的理論與生活中的實際問題結合起來,使我學到很多東西。把程序拆分成幾部分一一進行編寫、調(diào)試,在編程中出現(xiàn)問題時,嚴格謹慎,仔細分析、調(diào)試,一定會從中發(fā)現(xiàn)錯誤,克服困難。附錄一部分源程序在軟件設計的章節(jié)中,已經(jīng)介紹了中斷程序設計,顯示處理程序設計,電子表主程序設計,在此附錄中介紹頭文件,端口定義,以及延時函數(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; /定義變量并設置月日初
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DBJ04-T282-2025 《行道樹栽植技術規(guī)程》
- 汽車傳感器與檢測技術電子教案:柴油機煙度傳感器
- 推進中國政治文化現(xiàn)代化之基本路徑論析
- 佛山顏峰高科技農(nóng)業(yè)生態(tài)園項目建議及可行性研究報告
- 介紹民族大聯(lián)歡活動方案
- 倉儲團隊激勵活動方案
- 倉鼠訓練活動方案
- 代理補貨活動方案
- 以色列旅游跨年活動方案
- 儀隴縣工會活動方案
- 一體化污水處理設備采購安裝及運維 投標方案(技術方案)
- 晉升品質主管述職報告
- 雷火灸技術操作流程圖及考核標準
- 北師大版三年級下冊數(shù)學全冊教案(完整版)教學設計含教學反思
- 電力安全生產(chǎn)十大禁令
- 基于機器學習算法的泰坦尼克生還預測
- 農(nóng)村自建房流程
- 組織內(nèi)外部環(huán)境因素的相關方需求和期望分析與風險和機遇識別評價分析
- 資產(chǎn)處置培訓課件
- 醫(yī)院安全生產(chǎn)培訓內(nèi)容
- 《乳腺癌外科治療》課件
評論
0/150
提交評論