單片機電子萬歷課程方案_第1頁
單片機電子萬歷課程方案_第2頁
單片機電子萬歷課程方案_第3頁
單片機電子萬歷課程方案_第4頁
單片機電子萬歷課程方案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計姓名:學號:專業(yè)班級:機電四班一、單片機原理及應(yīng)用簡介隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數(shù)據(jù)存儲器、并行、串行I/O口、定時/計數(shù)器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機Single-ChipMicrocomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖相環(huán)、DMA、浮點運算單元等。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應(yīng)用系統(tǒng),如工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)、

2、萬年歷電子表等。二、系統(tǒng)硬件設(shè)計8052是標準的40引腳雙列直插式集成電路芯片,引腳分布請參照-單片機引腳圖圖1:Pl.0Fl*1Fl-2Fl.3Pl.4Pl”5P0.0P0.7P0:i;SET012345GP1.0P17戶TXD/P3.P2.0P2_.7P2IMT1/F3.P3.0P3.7P2T1ZF3.8052,V|孑8052:nXTAL?XTAL1P2.0VCCGND接地P0口:匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚pt口為一個nnnmnnnnnnnnnDnnnnr433333333332222222228VccFO.O/ADOFO.1/A口1PO.2/AD2PO.3/AD3FO”4/

3、AD4:-.號端子)FO.T/ADKea/vpd.b二3上號端子)FN+r/ADl5一號端仁P2.4/AD12P2,3/AD11F2.2/AD1OF2.1/AD級開路雙南i/o口每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為咼阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉咼。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流

4、,這是因為內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“T時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是因為內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“T時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉

5、電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,因為外部下拉為低電平,P3口將輸出電流vILL)這是因為上拉的緣故。P3口也可作為AT89C5啲一些特殊功能口,如表1所示:口管腳備選功能P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2/INTO外部中斷0P3.3/INT1外部中斷1P3.4TO記時器0外部輸入P3.5T1記時器1外部輸入P3.6/WR外部數(shù)據(jù)存儲器寫選通P3.7/RD外部數(shù)據(jù)存儲器讀選通表1特殊功能口P3口同時為閃爍編程和編程校驗接收一些控制信號。RST復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機

6、器周期的高電平時間。ALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。一般情況下,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOV,MOV指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PS

7、EN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,貝U在此期間外部程序存儲器0000H-FFFFH,不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源來實現(xiàn)電子萬年歷的功能。共具備兩個功能:1)顯示年月日及分秒信息2)具有可調(diào)整日期和時間功能。該電子萬年歷能夠成功實現(xiàn)時鐘運行,調(diào)整功能,且精確度經(jīng)調(diào)試一天的誤差在2S內(nèi)。1微處理器在設(shè)計過程中我使用12MHZ晶振與單片機8052相連接,通過軟件編程的方法實現(xiàn)了以24小時

8、為一個周期同時顯示小時,分鐘和秒的要求,該定時鬧鐘設(shè)有九個按鍵,使之具備了校時、定時功能。利用單片機定時器及計數(shù)器產(chǎn)生定時效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動態(tài)掃描顯示單片機內(nèi)部處理的數(shù)據(jù)。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實現(xiàn)不同功能。在PROTEU軟件環(huán)境下的8052芯片如圖4所示:圖4PROTEUS軟片2顯示電路就時鐘而言,示或數(shù)碼管顯示。晶屏,需要專門的晶顯示作為一種被對較差;對于具有器接口的液晶顯示陣),一般多采用理器的接口要求較1XTALIFDUfMODftSTPO.lrAOTP&EMALEEAPIDTT2pi.inzEX2PH3FlAFa-SfAl1F2

9、.4/A12FZSTA13IPZjSTAltFZ-TfAISFJflfRXDP3.inxiipMN/mDPI5pjsmpjj曰石帀-PIJF3.7/KbU1RS2衛(wèi)JT*s34333Z2:1lZZ口2+S2SZ?2IDin12O1+1516件環(huán)境下的8052芯通??刹捎靡壕э@因為一般的段式液驅(qū)動電路,而且液動顯示,可視性相驅(qū)動電路和微處理模塊IDRSENP2MI1ALEP2.4ft12苗P2SW13P2J6WHP2.mi6PJDfiKDM.W2KPS.IfTKDM2P321NTDPWikhRHPliP1J5PJJSTIP1J5P3WFP1IrawiAW52,jasr_2Lrs:二:rsr135

10、W囚:二:rg:二4:WCC1X1rccz9CLK60X2D5TH!I9IIIIieiIIinIWDI鼻町師亠興III12E:U2J1USDAA1曲圖8六、主程序流程圖設(shè)計硬件電路該設(shè)計主程序流程圖如圖9所示:圖9Liparrayown_array*jcleararrayunction_array主程序流程圖啟蟲時丨P代碼取得相應(yīng)的段碼、顯示段碼數(shù)據(jù)的CPU初始化,基本顯示模塊設(shè)計的重點是由顯示F串行發(fā)送,程時流程如始化-|11所示。其中時個位的段碼必須加上小數(shù)點,即帶小數(shù)點顯示時個位,冃的是以小數(shù)定時器1初始化軟件秒脈沖發(fā)生器其實質(zhì)是利用了,將它設(shè)殳定為100ms溢出中B串口初始化次中斷的時

11、間正好為1s。將新顯參數(shù)設(shè)計為10(因有兩個:ms的原顯示待位定時器最大定時時間為示符6M的2MM為機器周期設(shè)置里是茲斗,1)根據(jù)系統(tǒng)時特點,16位定時器即13ms取整秒指示00便于計次數(shù);65536X2)女如取的太短/如10ms則定時器頻繁中斷,干擾系統(tǒng)正常運行效果有了秒脈沖發(fā)設(shè)為1s,1,60后分變量單元加新1,如果為60分則時變量單尺燈閃Y1單元加顯示1,秒變量任何一個變星期顯示單元加量的變化,則顯示刷新一次更新)。上述思想的實現(xiàn)均集成在定時器0的中斷子程序中。該設(shè)計顯示模塊流程圖如圖10所示:七、仿真過程1、仿真:打開WAV過串0口將時十位段碼送入對應(yīng)的對程序進行編譯,在軟件Fl+t卞

12、尿盤甘rh氏i広比口.十iV+hQ右肓/【攵164苦厶臣&仲祖若盅誤以后對正確的源程序進時個存段碼送入對其命名了以便將來載入程序時容易找到。I2、打開PRoTe將分十位和個位段皿舉1643、檢查所畫電路運行圖,確保沒打開顯示基碼送(應(yīng)具體運行電路圖后,在|PROTEU下對原理圖進行加載WAVE600下的源程序。4、加載完成后,單擊電路圖框下的開始按鈕,進行仿真,觀察LED數(shù)碼管現(xiàn)實情況,此時LED數(shù)碼管開始顯示數(shù)字。調(diào)節(jié)開關(guān)進行時間的調(diào)節(jié)。當秒的顯示間隔快與或慢與實際間隔時,調(diào)節(jié)石英晶體震蕩器的頻率參數(shù),從而使秒的間隔達到標準。然后檢查電路其它問題,并對其的各參數(shù)進行調(diào)整,使之正確。丿八、仿真

13、結(jié)果通過在WAVE600下對源程序的編譯,改正了其中的很多錯誤,然后運行,保證源程序的正確性。然后按原理圖選擇正確合理的電器元件,畫出正確的電路圖,加載源程序運行,順利實現(xiàn)了單片機數(shù)字電子鐘的“小時”、“分鐘”、“秒”的顯示。該電子萬年歷的顯示效果及電子萬年歷時間和日期的調(diào)節(jié)效果分別如圖12和圖13所示:LCD!-iGHit2&insik朋年OB月3D口20時QO分14秒農(nóng)J7J02-05-27星期一旳.DP屈a-口DBO31IVK1KIB3E1凸凸凸已aa1=1aujW20*rrr3昂I-IUIEn-Q*h*H4U4T05i?aziLup_arraylXTAL29RSFU3sWCDQGNDA

14、LEpna口F0.WD1PD2AD2P0JftD3PD.DiPDJDSPQJEKD6ra.wDT量::pown_arrayarrayrloriLarray?圖12IP1DT2F1.1/T2KP1J忙F1EP1IP2UW8PFI泊貶那I口P23ft11P25ft13S譏P.TjAiSP3WXDF3.VDCDPJINfTP3JWRTTPiyrn呻釘1F3毎麗R3/RD-ffiLVCC1VCC1XIRSTSCLK沽K2ip1bii,顧:U2.-rpcT=-上互悔egIT亡耳:SKEDAAlHJP5*24CCBC-IEXTh電子萬年歷的運行效果-111.g21-怦2一.rhiMD11,1BTETO-L

15、CDT-苗和博*i諾諂GHDKTAL1PQAMiQ叩觸nPD2D2mt2PDJM3PDjUWSPDJfiMfiRSTpq.tjaqiP2JW嗆晦P22A1QP5J3Wi1lALEP2W12EAP2SA13陀砒!5Mj5ff2悶詠煩Mi/raecP3.VTO0MJPMflRTTriiPl.iiTHFISpzijemMjf閃誦Ji廠P1IsTiifflr_!2_衛(wèi)主:raac-s?pZZHcharF-|13own_array嚴孝ion_array1213I*IEts.ITJ2MCC1|CC2X11ST9CLK!C圖13電子萬年歷時間和日期的調(diào)節(jié)效果九、課程設(shè)計體會通過這一周的課程設(shè)計,我學到了不少

16、的知識。把以前沒有學好的模擬電路的知識進行了補充和加強。這使我受益很大。加深了我對于單片機和數(shù)字電路的認識,相信在以后的學習和工作中碰到這些基礎(chǔ)的元器件我會更加得心應(yīng)手。通過查閱大量的資料,我獲得了以前在課堂上學不到的東西,我想這對于以后的畢業(yè)設(shè)計,或者工作也好,都是很有幫助的。我很認真地對待這個過程中的每一個細節(jié),希望自己能做得更好。希望今后還有這樣的機會,能夠讓我學到更多的知識。在此次的數(shù)字鐘設(shè)計過程中,更進一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。在連接六進制,十進制,六十進制的進位及十二進制的接法中,要求熟悉邏輯電路及其芯片各引腳的功能,那么在電路出錯時便能準確

17、地找出錯誤所在并及時糾正了。在設(shè)計電路中,往往是先仿真后連接實物圖,但有時候仿真和電路連接并不是完全一致的,例如仿真的連接示意圖中,往往沒有接高電平的16腳或14腳以及接低電平的7腳或8腳,因此在實際的電路連接中往往容易遺漏。在設(shè)計電路的連接圖中出錯的主要原因都是接線和芯片的接觸不良以及接線的錯誤所引起的。對該設(shè)計的建議:此次的電子萬年歷設(shè)計重在于仿真和接線,雖然能把電路圖接出來,并能正常顯示,但對于電路本身的原理并不是十分熟悉.總的來說,通過這次的設(shè)計實驗更進一步地增強了實驗的動手能力。學無止境,我們現(xiàn)在所做的一切都還只是一個開始。附1源程序代碼#inelude#inelude#includ

18、e#inelude#inelude#inelude#inelude/*/*預(yù)定義*#defineueharunsignedehar#defineuintunsignedint*sbitbell=P2A0/定義蜂鳴器端口sbitin=P2A7。II定義紅外檢測端口/*名稱:Timer0_Service(inturrupt1功能:中斷服務(wù)程序整點報時3聲嘟嘟的聲音入口參數(shù):出口參數(shù):*/voidTimer0_Service(interrupt1staticucharcount=0staticucharflag=0。II記錄鳴叫的次數(shù)count=0。TR0=0。II關(guān)閉Timer0TH0=0 x3c

19、。TL0=0XB0。II延時50msTR0=1。II啟動Timer0count+。if(count=20II鳴叫1秒bell=bell。count=0。flag+。if(flag=6flag=0。TR0=0。II關(guān)閉Timer0I*名稱:Timer2_Servie(interrupt5功能:中斷服務(wù)程序整點報時一分鐘入口參數(shù):出口參數(shù):*IvoidTimer3_Service(interrupt5staticucharcountcount+。if(in=1count=0。/計算清0TR2=0。/關(guān)閉Timer2bell=1。/關(guān)閉蜂鳴器if(count=120/一分鐘后關(guān)閉報警count=0。/計算清0TR2=0。/關(guān)閉Timer2bell=1。/關(guān)閉蜂鳴器TF2=0/軟件清除中斷標志/*函數(shù)名稱:main(功能:入口參數(shù):出口參數(shù):*/voidmain(voiducharclock_time7=0 x00,0 x00,0 x02,0 x30,0 x06,0 x08義時間變量秒分時日月/ucharalarm_time2=0,0alarm_time1:小時。/鬧鐘設(shè)置alarm_time0:分鐘uchartemperature2temperature1高8位/定義溫度變量temperat

溫馨提示

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

評論

0/150

提交評論