單片機(jī)課程學(xué)習(xí)總結(jié)_第1頁(yè)
單片機(jī)課程學(xué)習(xí)總結(jié)_第2頁(yè)
單片機(jī)課程學(xué)習(xí)總結(jié)_第3頁(yè)
單片機(jī)課程學(xué)習(xí)總結(jié)_第4頁(yè)
單片機(jī)課程學(xué)習(xí)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《單片機(jī)》課程學(xué)習(xí)總結(jié)《單片機(jī)》這門課程我已經(jīng)學(xué)了一個(gè)學(xué)期了,在這一個(gè)學(xué)期的學(xué)習(xí)過程中,我一開始不怎么懂得編程,但慢慢的我現(xiàn)在已經(jīng)不僅會(huì)讀程序還會(huì)寫程序了。真為自己一個(gè)學(xué)期來努力學(xué)到的單片機(jī)知識(shí)只是而感到高興。怎么學(xué)單片機(jī)?也常看到有人說學(xué)了好幾個(gè)月可就是沒有什么進(jìn)展。當(dāng)然,受限于每個(gè)人受到的教育水平不同和個(gè)人理解能力的差異,學(xué)習(xí)起來會(huì)有快慢之分,但我感覺最重的就是學(xué)習(xí)方法。一個(gè)好的學(xué)習(xí)方法,能讓你事半功倍,這里說說我學(xué)習(xí)單片機(jī)的經(jīng)歷和方法。我覺得學(xué)習(xí)單片機(jī)首先要懂得C語(yǔ)言,因?yàn)閱纹瑱C(jī)大多說都是靠程序來實(shí)現(xiàn)的,如果看不懂程序或則不懂的編程是很難學(xué)會(huì)單片機(jī)的。學(xué)習(xí)單片機(jī)首先要明白一個(gè)程序是怎么走的,要完全懂得程序每一個(gè)步驟的意思。其次要懂得每一條指令的意思,不能盲目地去靠背指令,這是記得不牢靠的,最主要的還是靠了解。學(xué)習(xí)單片機(jī)最主要的對(duì)89C51芯片內(nèi)部結(jié)構(gòu)有全方面的,只要了解了89C51才能知道單片機(jī)實(shí)現(xiàn)什么樣的功能和作用,才能對(duì)單片機(jī)有更深一步的了解。通過一個(gè)學(xué)期《單片機(jī)》這門課程的學(xué)習(xí),我也從中有了不少心得和體會(huì)想和大家分享一下。萬(wàn)事開頭難、要勇敢邁出第一步。開始的時(shí)候,不要老是給自己找借口,不要說單片機(jī)的程序全是英文,自己看不懂。遇到困難要一件件攻克,不懂指令就要勤奮看書,不懂程序就先學(xué)它,這方面網(wǎng)上教程很多,隨便找找看一下,做幾次就懂了。然后可以參考別的人程序,抄過來也無(wú)所謂,寫一個(gè)最簡(jiǎn)單的,讓它運(yùn)行起來,先培養(yǎng)一下自己的感覺,知道寫程序是怎么一回事,無(wú)論寫大程序還是小程序,要做的工序不會(huì)差多少。然后建個(gè)程序,加入項(xiàng)目中,再寫代碼、編譯、運(yùn)行。必須熟悉這一套工序。個(gè)人認(rèn)為,一塊學(xué)習(xí)板還是必要的,寫好程序在上面運(yùn)行一下看結(jié)果,學(xué)習(xí)效果會(huì)好很多,仿真器就看個(gè)人需要了。單片機(jī)是注重理論和實(shí)踐的,光看書不動(dòng)手,是學(xué)不會(huì)的。知識(shí)點(diǎn)用到才學(xué),不用的暫時(shí)丟一邊。厚厚的一本書,看著人頭都暈了,學(xué)了后面的,前面的估計(jì)也快忘光了,所以,最好結(jié)合實(shí)際程序,用到的時(shí)候才去看,不必說非要把書從第一頁(yè)看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識(shí),專心把流水燈學(xué)好就是了,這是把整本書化整為零,一小點(diǎn)一小點(diǎn)的啃。程序不要光看不寫,一定要自己寫一次。最開始的時(shí)候,什么都不懂,可以抄人家的程序過來,看看每一句是干什么用的,達(dá)到什么目的,運(yùn)行后有什么后果。看明白了之后,就要自己寫一次,你會(huì)發(fā)現(xiàn),原來看明白別人的程序很容易,但到自己寫的時(shí)候卻一句也寫不出來,這就是差距。當(dāng)你自己能寫出來的時(shí)候,說明你就真的懂了。必須學(xué)會(huì)掌握調(diào)試程序的方法。不少人寫程序,把代碼寫好了,然后一運(yùn)行,不是自己想要的結(jié)果,就暈了,然后跑到論壇上發(fā)個(gè)帖子,把程序一貼,問:為什么我的程序不能正常運(yùn)行?然后就等別人來給自己分析。這是一種很不好的行為,應(yīng)該自己學(xué)會(huì)發(fā)現(xiàn)問題和學(xué)會(huì)如何解決問題。這就需要學(xué)習(xí)調(diào)試程序的方法,比如KEIL里,可以下斷點(diǎn)啦,查看寄存器內(nèi)容等等,這些都是調(diào)試程序的手段,當(dāng)你發(fā)現(xiàn)你寫的程序運(yùn)行結(jié)果和你想象中不一樣的時(shí)候,你可以單步,也可以下斷點(diǎn),然后跟蹤,查看各相關(guān)寄存器內(nèi)容,看看程序運(yùn)行過中是不是有什么偏差,找出影響結(jié)果的地方,改正過來。這一個(gè)過程非常重要,通過程序的排錯(cuò),你可以學(xué)到的知識(shí)是書上得不到的。找到解決問題思路比找到代碼更重要。我們用單片機(jī)來控制周邊器件,達(dá)到我們想到的目的,這是一個(gè)題目,而如何寫出一個(gè)程序,來控制器件按你想要的結(jié)果去運(yùn)作,這個(gè)就是解題的思路。要寫程序,就得先找到解決問題的思路,你學(xué)會(huì)找出這個(gè)解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復(fù)制到自己的程序中,可以說,這不是一種學(xué)習(xí)的態(tài)度,無(wú)助于你編程水平的提高。我?guī)缀醪辉趺纯慈思业拇a,多數(shù)時(shí)候是看別人的思路,有方框圖最好,沒有的話文字說明也可以。要從代碼中看出別人處理問題的思路,是相當(dāng)困難的,特別是大型的程序,看起來是非常的累人。所以現(xiàn)在我也明白了,以前讀書時(shí)說的程序流程圖很重要,現(xiàn)在算是知道了。當(dāng)你知道一個(gè)問題怎么去解決了,那么剩下的只是你安排代碼去完成,這就已經(jīng)不是什么問題了。開動(dòng)腦筋,運(yùn)用多種方法,不斷優(yōu)化自己的程序。想想用各種不同方法來實(shí)現(xiàn)同一功能。這是一個(gè)練習(xí)和提高的過程,一個(gè)問題,你解決了,那么你再想想,能不能換種寫法,也可以實(shí)現(xiàn)同一功能,或者說,你寫出來的代碼,能不能再精簡(jiǎn)一點(diǎn),讓程序執(zhí)行效率更高,這個(gè)過程,就是一個(gè)進(jìn)步的過程。很多知識(shí)和經(jīng)驗(yàn)的獲得,并不是直接寫在書讓你看就可以得到的,需要自己去實(shí)踐,開動(dòng)腦筋,經(jīng)驗(yàn)才能得到積累,編程水平才能有所提高??磩e人的程序,學(xué)習(xí)人家的思路。這個(gè)在學(xué)習(xí)初期是很有用,通過看別人的程序,特別是老師寫出的具有一定水平的程序,可以使自己編程水平得到迅速的提高。同時(shí),也可以結(jié)合別人的編程手法,與自己的想法融合在一起,寫出更高水平的程序,從中得到進(jìn)步。但要注意,切忌將學(xué)習(xí)變成抄襲,更不是抄襲完了就認(rèn)為自己學(xué)會(huì)了,這樣做只會(huì)使你退步。嘗試編寫一下綜合應(yīng)用的程序。從流水燈學(xué)起,到動(dòng)態(tài)掃描,再到中斷,那么,你可以試試寫一下時(shí)鐘這種綜合性應(yīng)用的程序,不要小看時(shí)鐘,要寫好它不是一件容易的事情,它包括了單片機(jī)大部分的知識(shí),比如有按鍵(IO讀?。?、動(dòng)態(tài)掃描"。輸出)、中斷等,如何協(xié)調(diào)好各功能模塊正常工作,才是編程者需要學(xué)習(xí)的地方,當(dāng)你單獨(dú)寫一個(gè)功能的時(shí)候,比如按鍵讀取,你可能感覺很容易,因?yàn)槟愕某绦蚴裁匆膊蛔?,只是讀按鍵。但把它和其它功能混合在一起,如何在整個(gè)程序運(yùn)行中使每一部分都正常工作,這就不是寫一個(gè)按鍵讀取這么容易的事情,功能模塊之間有可能會(huì)互相影響,比如你需要讓數(shù)碼管既能顯示,又要去處理按鍵讀取,怎么使這兩部分都正常工作,這就是一個(gè)協(xié)調(diào)過程。當(dāng)你有了這個(gè)處理協(xié)調(diào)能力,你就算是入門了。著重于培養(yǎng)解決問題的能力,而不是具體看自己編寫了多少程序或者做過什么?!皩W(xué)單片機(jī)重點(diǎn)在于學(xué)習(xí)解決問題的思路,而不是局限于具體的芯片類型和語(yǔ)言”這一直是我的座右銘,是我學(xué)單片機(jī)學(xué)習(xí)單片機(jī)之后感悟出來的。真正的能力不是你曾經(jīng)編寫過多少個(gè)可以實(shí)現(xiàn)的程序,而應(yīng)該是:“遇到?jīng)]有解決過的問題,能利用自己已學(xué)的知識(shí),迅速找到解決問題的方法?!边@個(gè)才是能力。面對(duì)一個(gè)新程序時(shí),多自己開動(dòng)腦筋,不要急于找別人的程序。有不少人面對(duì)一個(gè)新程序時(shí),第一步想到的就是網(wǎng)上找別人寫過的程序,然后抄一段,自己再寫幾句,湊在一起就完成任務(wù),這雖然可能是省時(shí)間,但絕對(duì)不利你的學(xué)習(xí)。當(dāng)你接到一個(gè)程序時(shí),應(yīng)該先自己構(gòu)思一下整個(gè)程序的架構(gòu),想想如何來完成。有可能的話,畫一個(gè)流程圖,簡(jiǎn)單的可以畫在腦子里,對(duì)程序中用到的數(shù)據(jù)、變量有一個(gè)初步的安排,然后自己動(dòng)手去寫,遇到實(shí)在沒辦法解決的地方,再去請(qǐng)教老師或同學(xué),或看別人是怎么處理的,這樣首先起碼你自己動(dòng)過腦想過,自己有自己的思路。如果你一開始就看別人的程序,你的思維就會(huì)受限在別人的思維里,自己想再創(chuàng)新就更難了,這樣你自己永遠(yuǎn)也沒辦法提高,因?yàn)槟闶亲咴趧e人的影子里。學(xué)會(huì)提問題。一般來說,學(xué)習(xí)過程中,你遇上的問題,多數(shù)人也有遇上的,所以如果有什么不懂,你可以去問老師。我覺得學(xué)習(xí)單片機(jī)最主要的要多提問,對(duì)于一個(gè)自己不是太懂的程序,自己一定要多提問幾遍,這樣不但有利于加深自己的印象還能從中學(xué)到不少別人的方法。經(jīng)過一個(gè)學(xué)期我對(duì)《單片機(jī)》這門課程的學(xué)習(xí),不僅讓我懂得了很多程序的編寫,還讓我學(xué)到了很多對(duì)自己有用的學(xué)習(xí)方法??偨Y(jié)這個(gè)學(xué)期來的我自己的學(xué)習(xí)情況,我覺得自己對(duì)編程進(jìn)步了不少,懂得運(yùn)用正確的學(xué)習(xí)方法學(xué)習(xí)單片機(jī)程序,不再去死記硬背指令了。所以我覺得學(xué)習(xí)要不斷總結(jié)學(xué)習(xí)方法,才能讓自己學(xué)習(xí)不斷進(jìn)步。交通信號(hào)燈設(shè)計(jì)報(bào)告實(shí)驗(yàn)?zāi)康模篜1口的使用方法,延時(shí)程序的編寫實(shí)驗(yàn)要求:在一個(gè)十字路口分為東西南北走向,信號(hào)等按以下的狀態(tài)順序工作:(1)初始狀態(tài)0,東西、南北紅燈全亮。延時(shí)一定時(shí)間;(2)狀態(tài)1,南北綠燈亮通車,東西紅燈,延時(shí)一定時(shí)間;(3)狀態(tài)2,南北綠燈閃爍幾次轉(zhuǎn)黃燈,東西仍然紅燈,延時(shí)一定時(shí)間;(4)狀態(tài)3,南北紅燈,東西綠燈通車,延時(shí)一定時(shí)間;(5)狀態(tài)4,南北仍然紅燈,東西綠燈閃爍幾次轉(zhuǎn)黃燈,延時(shí)一定時(shí)間;(6)循環(huán)至狀態(tài)1,繼續(xù)實(shí)驗(yàn)電路和流程框架圖:(1)硬件電路交通燈實(shí)訓(xùn)設(shè)備用最小系統(tǒng)板和信號(hào)燈組合而成。LED資源分配圖燈LED單片機(jī)控制引腳東西紅燈LED1P1.0東西黃燈LED2P1.1東西綠燈LED3P1.2南北紅燈LED6P1.5南北黃燈LED7P1.6南北綠燈LED8P1.72、軟件編程

若各路口燈亮滅的時(shí)間間隔為2s鐘,燈光閃爍時(shí)間間隔為0.5s。用軟件延時(shí)的方法,晶振頻率12MHz時(shí),一個(gè)機(jī)器周期為1us。編寫交通燈程序:編寫主程序,由R7做主程序的計(jì)數(shù)器,確定調(diào)用延時(shí)時(shí)間為0.5s,從而獲得交通燈的亮滅時(shí)間。程序如下:ORG0000HLJMPMAINORG0003HLJMPINTRU0ORG0030HMAIN:SETBEASETBET0CLRIT0LCALLS0;東西南北紅燈亮LCALLS1;南北綠燈東西紅燈LCALLS2;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈LCALLS3;南北紅燈,東西綠燈LCALLS4;南北紅,東西綠燈閃轉(zhuǎn)黃燈LJMPMAINS0:MOVP1,#00100001B;東西南北紅燈亮LCALLDELAYRETS1:MOVP1,#10000001B;南北綠燈,東西紅燈LCALLDELAYRETS2:MOVP1,#00000001B;南北綠燈滅,東西紅燈亮LCALLDELAY500MSMOVP1,100000001BLCALLDELAY500MSMOVP1,#01000001B;南北黃燈,東西紅燈LCALLDELAYRETS3:MOVP1,#00100100B;南北紅,東西綠LCALLDELAY500MSRETS4:MOVP1,#00100000BLCALLDELAY500MSMOVP1,#00100100BLCALLDELAY500MSMOVP1,#00100010B;南北紅東西黃LCALLDELAYRETORG0070HINTRU0:MOVP1,#10000001B;南北綠燈,東西紅燈MOVR5,#20;LOOP1:LCALLDELAY500MSDJNZR5,LOOP1DELAY500MS:MOVR7,#200DEL1:MOVR6,#123HNOPDEL2:DJNZR6,DEL2DJNZR7,DEL1RETDELAY:MOVR0,#8DJNZR0,DELAY500MSRETEND最小系統(tǒng)實(shí)驗(yàn)報(bào)告目錄:1最小系統(tǒng)的原理。2最小系統(tǒng)的構(gòu)成。3最小系統(tǒng)I\O口設(shè)計(jì)。4最小系統(tǒng)外圍系統(tǒng)的設(shè)計(jì)。最小系統(tǒng)的原理:最小系統(tǒng)主要由電源、復(fù)位、震蕩電路以及外圍顯示電路等組成一、電源供電模塊。對(duì)于一個(gè)完整的電子設(shè)計(jì)來講,首要問題就是為整個(gè)系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運(yùn)行的前提和基礎(chǔ)。51單片機(jī)雖然使用時(shí)間最早、應(yīng)用范圍最廣,但在實(shí)際應(yīng)用中,一個(gè)和典型的問題就是相比其他系統(tǒng)的單片機(jī),51單片機(jī)更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個(gè)最要手段就是為單片機(jī)系統(tǒng)配置一個(gè)穩(wěn)定可靠的電源供電模塊。此最小系統(tǒng)中的電源供電模塊的電源可以通過計(jì)算機(jī)的USB

口供給,也可以用外部穩(wěn)定的5V電源供電模塊供給。電源電路中接入了電源指示LED,二、復(fù)位電路單片機(jī)的置位和復(fù)位,都是為了把電路初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時(shí)候單片機(jī)是把一些寄存器以及存儲(chǔ)設(shè)備裝入廠商預(yù)設(shè)的一個(gè)值。單片機(jī)復(fù)位電路原理是在單片機(jī)的復(fù)位引腳RST上外接電阻和電容,實(shí)現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個(gè)機(jī)器周期以上時(shí)復(fù)位有效。復(fù)位電平的持續(xù)時(shí)間必須大于單片機(jī)的兩個(gè)機(jī)器周期。具體數(shù)值可以有RC電路計(jì)算出時(shí)間常數(shù)。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分。三、上電復(fù)位:STC89系列單片機(jī)即為高電平復(fù)位,通常在復(fù)位引腳RST上連接一個(gè)電容到VCC,再連接一個(gè)電阻到END,由此形成一個(gè)RC充放點(diǎn)回路保證單片機(jī)上電時(shí)RST腳上有足夠時(shí)間的高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常的工作狀態(tài),這個(gè)電阻和電容值為10K和10uf。四、按鍵復(fù)位:按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個(gè)開關(guān),當(dāng)開關(guān)按下時(shí)電容被放電、RST也被拉到高電平,而且由于電容的充電,會(huì)保

持一段時(shí)間的高電平來使單片機(jī)復(fù)位。持一段時(shí)間的高電平來使單片機(jī)復(fù)位。(1)(一)震蕩與時(shí)鐘電路在MC-51單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,反相放大器為XTAL1,輸出端為XTAL2,XTAL1和XTAL2之間跨接石英晶體振蕩器和兩個(gè)微調(diào)電容就構(gòu)成了振蕩器,這就是單片機(jī)的時(shí)鐘電路。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。單片機(jī)的晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。而且在實(shí)際電路中晶振要盡可能靠近單片機(jī)以免途中電路的干擾,我們這個(gè)最小系統(tǒng)J-aXXfYJ-■e=PTzr=15pTT主訂就是一個(gè)晶振。牝口五、MC-51單片機(jī)有4個(gè)雙向并行的I\O口;P0、P1、P2和P3每一個(gè)I\O口的結(jié)構(gòu)和使用方法有所不同。P0口是開漏輸出型電路,內(nèi)部沒有上拉電阻,而P1、P2和P3口內(nèi)部都有上拉電阻,因此我們?cè)谠O(shè)計(jì)時(shí)在P0口外安排了八個(gè)10K電阻左右的上拉電阻.而且,由于這些I\O口都是雙向的所以在進(jìn)行輸入輸出是要注意:輸出操作直接寫端口,而進(jìn)行輸入操作前,必須將口鎖存器置1,否則只能輸入端口寄存器的狀態(tài),而不能輸入引腳上的信號(hào)。六、擴(kuò)展部分:在另一塊電路板上按照MC-51的端口特點(diǎn),設(shè)計(jì)了一組八個(gè)發(fā)光二極管的顯示燈,有八個(gè)腳的插針與主板相連??梢愿鶕?jù)實(shí)際情況連接各個(gè)I\O口。八個(gè)發(fā)光二極管采用共陰級(jí)接法所以只有當(dāng)I\O口輸出是1是才會(huì)亮。七系統(tǒng)調(diào)試:1、運(yùn)用軟件和硬件的調(diào)試過程中,用交通信號(hào)程序?qū)ψ钚∠到y(tǒng)進(jìn)行調(diào)試,開始時(shí)要八個(gè)發(fā)光二極管全亮,然后確保東西南北紅黃綠能夠?qū)?yīng)顯示。實(shí)驗(yàn)時(shí),對(duì)P1.口的接線做了調(diào)整,即P1.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論