課程設(shè)計實訓(xùn)報告-基于AT89C51單片機的電子秒表 的設(shè)計與制作_第1頁
課程設(shè)計實訓(xùn)報告-基于AT89C51單片機的電子秒表 的設(shè)計與制作_第2頁
課程設(shè)計實訓(xùn)報告-基于AT89C51單片機的電子秒表 的設(shè)計與制作_第3頁
課程設(shè)計實訓(xùn)報告-基于AT89C51單片機的電子秒表 的設(shè)計與制作_第4頁
課程設(shè)計實訓(xùn)報告-基于AT89C51單片機的電子秒表 的設(shè)計與制作_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE2PAGE2山東英才學(xué)院本科實訓(xùn)報告計算機學(xué)院實訓(xùn)報告題目:基于AT89C51單片機的電子秒表的設(shè)計與制作專業(yè):計算機科學(xué)與技術(shù)班級:姓名:學(xué)號:組長:目錄1單片機版圖及模塊簡介 21.1LED點陣屏(8*8點陣) 21.2單片機以及LED數(shù)碼管顯示 31.3EEPROM模塊時鐘模塊 41.4串口通信 41.5電源模塊 51.6下載線接口、蜂鳴器、按鍵模塊 52本項目組的設(shè)計 62.1實驗項目及要求 62.1.1項目原理及完成的功能 62.1.2模塊框圖 72.2電路圖的繪制 92.1.2元件的選取及元件功能簡介 92.2.2proteus電路圖及連線原因 112.3程序的編寫 122.3.1程序框圖(流程) 122.3.2keilc的使用步驟 133印刷板的焊接及流程 164調(diào)試及遭遇的問題解決方法 165總結(jié)體會 176附錄 176.1程序代碼 17內(nèi)容提要:本次實訓(xùn)通過電子秒表的設(shè)計與制作,學(xué)到了單片機最小系統(tǒng)的概念與設(shè)計,對單片機中斷、定時等功能模塊有了進(jìn)一步的了解,并利用這個實力對單片機的編程方法有了一定程度的深入了解,并對51單片機有了深入的了解。關(guān)鍵字:單片機、定時、中斷、數(shù)碼管顯示單片機版圖及模塊簡介1.1LED點陣屏(8*8點陣)LED顯示屏是由LED發(fā)光二極管以點陣的形式組合而成的。以64個發(fā)光二極管排成8*8的矩陣形式,由于具有多個LED而只適用于動態(tài)掃描方式,相當(dāng)于行列都是公共端,無共陰或共陽。 1.2單片機以及LED數(shù)碼管顯示89c51是一個40引腳的芯片,其中繼承了運算器、控制器、存儲器,是一個高度集成的芯片,可將編寫編譯后的程序下載到芯片中去,實現(xiàn)某一功能。n個LED數(shù)碼管可以構(gòu)成n位LED顯示器,有n根位選線(即公共端)和8n跟段選線。LED顯示器有靜態(tài)顯示和動態(tài)顯示兩種方式。該系統(tǒng)中采用8位的動態(tài)數(shù)碼顯示,控制數(shù)碼顯示的數(shù)據(jù)由兩部分組成,一部分為筆段亮滅控制的信號輸入由“ABCDEFGH”端口輸入,而控制位顯示的控制信號由“S1S2S3S4S5S6S7S8”端口輸入,同時該動態(tài)數(shù)碼顯示采用共陽數(shù)碼管;具體的電路原理圖如圖所示1.3EEPROM模塊時鐘模塊EEPROM是可擦可寫存儲器,可以對時鐘模塊的數(shù)據(jù)修改。時鐘模塊采用的是DS1302芯片,內(nèi)含一個實時時鐘/日歷邏輯,通過簡單的串行接口與單片機進(jìn)行通信,具有能計算2100年之前的秒、分、時、日、日期、星期、月和年的能力,還有閏年調(diào)整的能力,按秒刷新1.4串口通信在PC機內(nèi)接有EIA-TTL的電平轉(zhuǎn)換和RS-232C連接器,稱為COM口。由于單片機的串行發(fā)送線TXD和接收線RXD是TTL電平,而PC機的COM1和COM2等的RS-232C連接器是EIA電平,因此單片機需要加接MAX232芯片,通過串行電纜線和PC機相連。1.5電源模塊電源模塊為系統(tǒng)板上其它模塊提供+5V電源,電源輸入有兩種方式,一種為交直流電源從電源插座輸入,輸入的電壓要求,直流輸入應(yīng)大于7.5V,交流輸入應(yīng)大于5V,通過7805三端穩(wěn)壓器得到5V的直流電源供給系統(tǒng)其它模塊工作,另一種為從USB接口獲?。?V電源,只要用相應(yīng)配套的USB線從電腦主機獲取+5V直流電源,在電源模塊中加有保護(hù)電路,即電路中有短路,不會對7805三端穩(wěn)壓器及電腦主機電源有損害!1.6下載線接口、蜂鳴器、按鍵模塊該模塊完成源程序代碼下載到AT89S51或者是AT89S52芯片中,它需要和微機上的ISP下載器軟件配合使用來完成這樣的功能。具體的電路原理圖如圖所示:聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。如圖開關(guān)控制信號由“K0K1K2K3”端口輸出,具體的電路原理圖如圖所示2本項目組的設(shè)計2.1實驗項目及要求2.1.1項目原理及完成的功能系統(tǒng)功能分析:此次實訓(xùn)設(shè)計的電子秒表可以實現(xiàn)以下功能:用開關(guān)K0實現(xiàn)秒表的啟動,用開關(guān)K1實現(xiàn)秒表的數(shù)據(jù)保存,用開關(guān)K2實現(xiàn)秒表的數(shù)據(jù)的翻頁查看,用開關(guān)K3實現(xiàn)秒表的停止;將數(shù)據(jù)顯示在數(shù)碼管上,供使用者數(shù)取。2.系統(tǒng)分析與設(shè)計上述功能只要涉及到單片機定時器、鍵盤和LED的使用方法.此設(shè)計采用AT89C51單片機為核心控制元件,結(jié)合數(shù)碼管、三極管、發(fā)光二極管等器件構(gòu)成一個顯示值達(dá)99.99的電子秒表。利用了單片機的延時電路、按鍵復(fù)位電路、定時中斷等電路,實現(xiàn)了電子秒表的啟動、保存、翻頁查看、停止的功能和數(shù)碼管的動態(tài)顯示的功能。2.1.2模塊框圖本次實訓(xùn)電子秒表所使用到的模塊按鍵模塊K0:start啟動,K1:save保存數(shù)據(jù),K2:look查看數(shù)據(jù),K3:stop停止;將四個按鍵與P1.0、P1.1、P1.2和P1.3想接。通過掃描按鍵,讀取按鍵實現(xiàn)四個功能的控制。2.AT89C51單片機與數(shù)碼管的顯示模塊該部分由兩個四段的共陽極LED數(shù)碼管組成,用來顯示秒表的秒值,數(shù)碼管的使能端接到P2.4、P2.5、P2.6和P2.7上,其余8個引腳分別單片機P1口相連,根據(jù)單片機引腳與數(shù)碼管的連接關(guān)系,可以列出顯示不同數(shù)字的段選碼。從而準(zhǔn)確的輸出秒表的正確秒值和保存的數(shù)據(jù)秒值。3.時鐘模塊單片機必須在時鐘的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,外接晶體以及電容C1和C2構(gòu)成并聯(lián)諧振電路接在放大器的反饋回路中,決定單片機的工作速度。一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性,晶體頻率可在1.2MHz~12MHz之間任選,電容C1和C2的典型值在20pF~100pF之間選擇。C1,C2的典型值為30PF。4.復(fù)位模塊89S52的復(fù)位輸入引腳RST為89S52提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在89S52的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周期以上的高電平時,即可產(chǎn)生復(fù)位的操作。只要RST保持高電平,則單片機循環(huán)復(fù)位。只有當(dāng)RST由高電平變低電平以后,89S52才從0000H地址開始執(zhí)行程序。本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。如圖2.2電路圖的繪制2.1.2元件的選取及元件功能簡介AT89C51(如下圖)89c51是一個40引腳的芯片,其中繼承了運算器、控制器、存儲器,是一個高度集成的芯片,可將編寫編譯后的程序下載到芯片中去,實現(xiàn)某一功能。LED數(shù)碼管(如下圖)LED數(shù)碼管采用的是有發(fā)光二極管按一定的結(jié)構(gòu)組合起來的顯示器件。本次實訓(xùn)采用的是共陽極的方式。A—G因腳輸入不同的二進(jìn)制編碼可顯示不同的數(shù)字。而且本次實訓(xùn)采用的是軟件破譯方式,通過譯碼程序來得到要顯示的數(shù)字的字段碼。三極管(如下圖)三極管在此與P2.4P2.7相連,起到位選的作用。排阻(如下圖)

2.2.2proteus電路圖及連線原因電子秒表的電路圖

如圖:P0.0——P0.7作為數(shù)碼管顯示的輸入信號,作為數(shù)碼管A——G以及DP的輸入端,通過軟件破譯的方式并根據(jù)共陽極的數(shù)碼管成功顯示數(shù)字,同時破譯的數(shù)字為UcharcodeBCD_7[11]={0x02,0x9e,0xa0,0x88,0x1c,0x48,0x40,0x9a,0x00,0x08,0xff};//0,1,2,3,4,5,6,7,8,9,滅P2.4——P2.7作為位選信號,與數(shù)碼管的1,2,3,4相連,同事結(jié)合三極管的驅(qū)動完成數(shù)碼管的位選。P1.0——P1.3與K0,K1,K2,K3四個開關(guān)相連,同時結(jié)合程序的鍵盤掃描功能實現(xiàn)開關(guān)的控制功能。P1口可以實現(xiàn)I/O輸入輸出。2.3程序的編寫2.3.1程序框圖(流程)開始開始定時器計數(shù)器2初始化顯示緩沖區(qū)初始化開中斷鍵盤掃描是否有鍵盤輸入?鍵號送k判斷是否為start鍵判斷是否為stop鍵判斷是否為look鍵判斷是否為save鍵定時計數(shù)器2中斷停止計時將數(shù)據(jù)保存停止后查看數(shù)據(jù)顯示顯示YYYYNYNNNN2.3.2keilc的使用步驟打開桌面上的Keil軟件:(1)新建項目文件。點擊Project菜單,選擇彈出的下拉式菜單中的NewProject。在“文件名”中輸入您的第一個C程序項目名稱,“*****.uv2”?!氨4妗焙蟮奈募U展名為uv2,這是KEILuVision2項目文件擴展名2)選擇所要的單片機,常用Ateml公司的AT89C51。3)在項目中創(chuàng)建新的程序文件。點擊新建文件的快捷按鈕,出現(xiàn)一個新的文字編輯窗口,這個操作也可以通過菜單File-New或快捷鍵Ctrl+N來實現(xiàn)。好了,現(xiàn)在可以編寫程序了。4)點擊保存新建的程序,*****.c,保存在項目所在的目錄中,這時會發(fā)現(xiàn)程序單詞有了不同的顏色,說明KEIL的C語法檢查生效了。5)將程序文件加到項目中。在屏幕左邊的SourceGroup1文件夾圖標(biāo)上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。選“AddFiletoGroup‘SourceGroup1’”彈出文件窗口,選擇剛剛保存的文件,按ADD按鈕,關(guān)閉文件窗,程序文件加到項目中。這時在SourceGroup1文件夾圖標(biāo)左邊出現(xiàn)了一個小+6)設(shè)定創(chuàng)建HEX文件選項。上一步建立了單片機C語言項目,但為了讓編譯好的程序能通過編程器寫入51芯片中,要先用編譯器生成HEX文件。HEX文件格式是Intel公司提出的按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié),所有數(shù)據(jù)使用16進(jìn)制數(shù)字表示,常用來保存單片機或其他處理器的目標(biāo)程序代碼。它保存物理程序存儲區(qū)中的目標(biāo)代碼映象。一般的編程器都支持這種格式。我們先來打開項目,打開它的所在目錄,找到****.Uv2的文件就可以打開先前的項目了。然后右擊項目文件夾,彈出項目功能菜單,選OptionsforTarget’Target1’,彈出項目選項設(shè)置窗口,同樣先選中項目文件夾圖標(biāo),這時在Project菜單中也有一樣的菜單可選。打開項目選項窗口,轉(zhuǎn)到Output選項頁。設(shè)定:1選擇編譯輸出的路徑,2編譯輸出生成的文件名,3決定是否要創(chuàng)建HEX文件,選中3就可以輸出HEX文件到指定的路徑中。7)編譯運行。8)查錯并直至無錯誤。3印刷板的焊接及流程在老師的指導(dǎo)下,首先按照老師發(fā)給每個人的實驗指導(dǎo)熟悉這次實訓(xùn)的器件以及各個應(yīng)用軟件及硬件設(shè)施。按照各個元器件的擺放位置和擺放標(biāo)準(zhǔn),將印刷版的各個位置弄清楚之后,將元器件一一焊接好,并檢查是否正確焊接。流程:熟悉印刷版的各個方面的情況,將元器件的情況了解,首先焊接印刷版,然后全部焊接完后,將測試程序下載到芯片上測試印刷版時候有問題,有問題再重新檢查直到?jīng)]有問題了。 然后制作USB下載板,先進(jìn)行焊接然后再測試。將印刷版和USB下載板連接起來。然后就是將編寫的程序下載到實驗板上就行調(diào)試了。4調(diào)試及遭遇的問題解決方法將我們項目組所編寫的電子秒表的程序下載到芯片中,調(diào)試程序。遇到的問題就是數(shù)碼管不能正確的顯示。沒有正確編寫數(shù)碼管的顯示程序,將小數(shù)點的顯示位置改正,同時實驗板的數(shù)碼管采用的是共陽的數(shù)碼管顯示,因為0亮1不亮,必須嚴(yán)格按照這個來編寫程序。最后我們終于克服了這個困難,讓數(shù)碼管的后四個顯示00.00—99.99,完成了實訓(xùn)的項目。反復(fù)進(jìn)行測試,對四個按鍵分別進(jìn)行測試,檢查是否完成預(yù)定的四個功能:啟動、保存數(shù)據(jù)、查看數(shù)據(jù)、停止。是否實現(xiàn)了定時/計數(shù)器中斷。5總結(jié)體會通過這個為期三個周的單片機實訓(xùn)使我對AT89C51單片機有了更一層深入的了解,同時加強了動手實踐能力。了解了印刷版的組成及各個器件的知識。在這次實訓(xùn)中雖然也遇到了各種困難,但是一個組的人員一起克服了,大家一起才能完成項目,同時結(jié)合實踐進(jìn)一步鞏固了課本上的理論知識,將學(xué)習(xí)的理論基礎(chǔ)知識又加深了一遍,同時認(rèn)識到我們所學(xué)的知識還是遠(yuǎn)遠(yuǎn)不夠的,我們需要不斷學(xué)習(xí)提升自己的能力,不僅僅是動手能力,還有編程能力和考慮問題的全面性方面。6附錄6.1程序代碼#include"reg52.h"#defineucharunsignedchar#defineuintunsignedint//unsignedcharkey_times;#definestart0xfe#definesave0xfd#definelook0xfb#definestop0xf7uinttimes_10ms;idatauints[12];uchars_ptr;uchard[4];voiddelay(){uchari,j;for(i=0;i<10;i++)for(j=0;j<50;j++);}voiddisplay(uintt){uchari;ucharcodeBCD_7[11]={0x02,0x9e,0xa0,0x88,//0,1,2,30x1c,0x48,0x40,0x9a,0x00,0x08,0xff};for(;t>0;t--){for(i=0;i<4;i++){P0=BCD_7[d[i]];if(i!=2)P0|=0x01;P2|=0x80>>i;delay();P2&=0x00;}}}ucharRead_key(){uchark;P1=0xff;k=P1;if(k==0xff)return0xff;else{delay();k=P1;if(k==0xff)return0xff;elsereturnk;}}main(){uchari,k;uinttem;ucharrun_sign;TH2=RCAP2H=(65536-10000)/256;TL2=RCAP2L=(65536-10000)%256;EA=1;ET2=1;EX0=0;times_10ms=0;s_ptr=0;for(i=0;i<12;i++)s[i]=0;for(i=0;i<4;i++)d[i]=0;while

溫馨提示

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

最新文檔

評論

0/150

提交評論