国产精品色无码视频,国产av毛片影院精品资源,亚洲人成网站77777·c0m,囯产av无码片毛片一级,夜夜操www99视频,美女白嫩胸交在线观看,亚洲a毛片性生活

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 報告體會 > 心得體會 > 單片機實驗心得體會

單片機實驗心得體會

網站:公文素材庫 | 時間:2019-05-28 22:13:23 | 移動端:單片機實驗心得體會

單片機實驗心得體會

單片機實驗心得體會

時間過得真快,不經意間,一個學期就到了尾聲,進入到如火如荼的期末考試階段。

在學習單片機這門課程之前,就早早的聽各種任課老師和學長學姐們說過這門課程的重要性和學好這門課程的關鍵~~多做單片機實驗。

這個學期,我們除了在課堂上學習理論知識,還在實驗室做了7次實驗。將所學知識運用到實踐中,在實踐中發(fā)現問題,強化理論知識。

現在,單片機課程已經結束,即將開始考試了,需要來好好的反思和回顧總結下了。

第一次是借點亮LED燈來熟悉keil軟件的使用和試驗箱上器材。第一次實驗體現了一個人對新事物的接受能力和敏感度。雖然之前做過許多種實驗。但依舊發(fā)現自己存在一個很大的問題,對已懂的東西沒耐心聽下去,容易開小差;在聽老師講解軟件使用時,思路容易停滯,然后就跟不上老師的步驟了,結果需要別人再次指導;對軟件的功能沒有太大的熱情去研究探索,把一個個圖標點開,進去看看。所以第一次試驗相對失敗。鑒于此,我自己在宿舍下載了軟件,然后去熟悉它的各個功能,使自己熟練掌握。

在做實驗中,第二個問題應該是準備不充分吧。一開始,由于沒有課前準備的意識,每每都是到了實驗室才開始編程,完成作業(yè),導致每次時間都有些倉促。后來在老師的批評下,認識到這是個很大的問題:老師提前把任務告訴我們,就是希望我們私下把程序編好。于是我便在上機之前把程序編好,拷到U盤,這樣上機時只需調試,解決出現的問題。這樣就會節(jié)約出時間和同學討論,換種思路,換種方法,把問題給吃透。發(fā)現、提出、分析、解決問題和實踐能力是作為我們這個專業(yè)的基本素質。

三是我的依賴性很大,剛開始編程序時喜歡套用書上的語句,卻對語句的理解不夠。于是當程序出現問題時,不知道如何修改,眼前的程序都是一塊一塊的被拼湊整合起來的,沒法知道哪里錯了。但是編程是一件很嚴肅的事情,容不得半點錯誤。于是便只能狠下決心,堅持自己編寫,即使套用時,也把每條語句弄懂。這也能激發(fā)了學習的興趣。

還有一次實驗是調出電腦里的程序,讓它在試驗箱上實現其功,讓我們去體會別人編程的技巧和程序邏輯美感?戳酥,不得不說我目前的水平簡直太小兒科了。還有連線也是個問題,對試驗箱內部結構功能的不懂,以至于不知道如何連線讓程序實現其功能。這讓我意識到單片機是軟件和硬件的結合,兩者是一個整體。所以必須把硬件方面加強。

五是基礎知識的薄弱,也是最基礎的問題吧!在用C語言編程時,才發(fā)現自己C語言真的太差勁了,雖然這門課程早就學過,但是就目前所掌握的C語言知識,對于單片機編程遠遠不夠。C語言也是我們以后學各種語言的基礎,必須要花大量的時間溫習強化。通過這個學期的單片機實驗,我發(fā)現了自己很多問題,也從中學到了很多。它不是物理實驗時,只需要記住老師說的步驟,順次做完就可以了;并不是matlab實驗,只需要你知道一些語句表達,然后在不違背語法的情況下,組合好就可以了;它不是EDA實驗,把一節(jié)課混下去就行了,反正大家都不知道,都是混,都跟不上老師的節(jié)奏思路。他需要我們在掌握硬件的基礎上,用單片機語言在keil軟件上寫出一定的程序,然后利用stcisp燒到試驗箱上,實現其特定的功能。而在編程時需要邏輯力,創(chuàng)新力,知識組合力,知識搜索。單片機在電子技術應用領域中,單片機的應用愈來愈多地應用到各行各業(yè)。要開發(fā)單片機的應用,不但要掌握單片機硬件和軟件方面的知識,而且還要深入了解各應用系統(tǒng)的專業(yè)知識,融會貫通和有機結合,才能設計出優(yōu)良的應用系統(tǒng)。并且需要與時俱進,不斷了解各公司最新芯片的結構和應用,在實際應用中找到最好的性能價格比。培養(yǎng)自己接受新知識的自學能力,掌握芯片發(fā)展動態(tài)。培養(yǎng)自己的創(chuàng)新精神,在原有的基礎上進行改進,使之功能不斷完善。當然,最重要到還是態(tài)度,無論做什么事情,足夠認真,足夠堅強,足夠毅力,足夠決心,足夠勇氣,就一定能辦到。

擴展閱讀:單片機實驗總結

單片機實驗總結(小老師)

班級:生物醫(yī)學工程0803姓名:王俊學號:u201*12657日期:201*.12.20-201*.01.06

在實驗之前便收到單片機需要小老師的通知,仔細想了一下相關的問題,也對照著之前的生物化學與分子生物學的小老師的情況,最終決定報名作為小老師。一方面自己對這方面的興趣比較大,通過這種方式應該可以給自己一些壓力,讓自己能夠學得更好;另一方面,在作為小老師的過程中可以幫助別人,也可以發(fā)現更多的問題,這樣可以互相促進,共同進步。所以一開始便覺得作為一名小老師是非常有意義的。

在第一個實驗之前便對小老師集中進行了一次授課,主要是對實驗的內容作一個基本的了解。在這次課后我便開始提前做完實驗。第一個實驗主要內容是寫幾個匯編程序。在實驗之前我花了一天時間將所有程序寫出來,并給出了詳細的注釋。由于當時對匯編語言還不是非常熟悉,所以程序的冗余度相當高。當時所用的程序中最多的是MOV、MOVX,在涉及到循環(huán)時一般用到的都是DJNZ,而CJNE等指令極少用到,這必然使程序太過冗長,而且在各處跳轉時要用比較巧妙的方法才能使循環(huán)的次數不出現錯誤。在這些程序中沒有很好地使用程序的調用,也使程序變得復雜,不便于理解。

當時為了便于觀察程序運行的結果,在程序開始時對相關量進行了賦值,而在程序結尾處又將相關量調出觀察效果。

下面舉幾個例子說明(下面的序號對應《單片微型計算機與接口技術(第2版)》的253頁程序設計選題的序號):

(1)將外部數據存儲器0001H和0002H單元內容互換。ORG0000H;程序起始位置

MOVA,#0D3H;將一個數先送進A,以便后面觀察效果MOVDPTR,#0001H;將外部存儲器地址0001H送入DPTRMOVX@DPTR,A;將A中的數據送入0001H中MOVA,#34H;同上

MOVDPTR,#0002H;同上

MOVXMOVMOVXMOVMOVMOVMOVXMOVXXCHMOVX成

MOVXMOVXSJMPEND

A,@DPTR;觀察外部存儲器0001H中的內容A,@R1;觀察外部存儲器0002H中的內容$;動態(tài)暫停;匯編結束

@DPTR,A;同上DPTR,#0001H;得到外部存儲器地址0001H存入DPTRA,@DPTR;將外部存儲器0001H中的數據送入A中R2,A;將數據再存入R2中,以保留

P2,#00H;得到第二個外部存儲器地址0002H的高位地址00HR1,#02H;得到第二個外部存儲器地址0002H的低位地址02HA,@R1;將外部存儲器0002H中的數據送入A中

@DPTR,A;將存在A中的外部存儲器0002H中的內容送入外部存儲器0001H中A,R2;將A與R2中的內容交換,使A得到原外部存儲器0001H中的內容

@R1,A;將原外部存儲器0001H中的內容送入外部存儲器0002H中,交換完

這本來是個簡單的程序,但由于將具體的數送進和送出而使程序較為冗長。在前面送數部分可以寫得更為有條理,這樣可以使程序更加容易理解。

(6)將外部數據存儲器0~05H單元中的十六進制數轉換成ASCII碼放回原單元。ORG0000H;程序起始位置MOVP2,#00H;將程序中的高位地址送入P2中MOVR7,#06H;將子程序的循環(huán)次數6送入R7中MOVR0,#00H;將程序中的低位起始地址送入R0中;MOVXA,@Ri或MOVX@Ri,A中i=0或1;為R0指示的外部存儲器賦值子程序

MOVA,#9DH;送入一個數到A中,以觀察后面效果

MOVR0:MOVX@R0,A;將數據送入R0中存放的地址指示的外部存儲器INCR0;R0中存放的地址自加1INCA;將A自加1,以使效果明顯DJNZR7,MOVR0;循環(huán)執(zhí)行子程序MOVR7,#06H;將子程序的循環(huán)次數6送入R7中MOVR0,#00H;將程序中的低位起始地址送入R0中

MOVR1,#10H;將最后存儲數據的低位起始地址送入R1中;轉換子程序

MOVE1:MOVXA,@R0;將外部存儲器中的內容送入A中ANLA,#0FH;先取A的低位進行轉換ADDA,#30H;將A中的內容轉完ASCII碼,即與30H相加,4位進行一次MOVB,A;將A中的內容暫時存入B中SUBBA,#3AH;判斷A中的內容是否小于10JCNUM1;小于10,則跳轉到數字子程序1MOVA,B;將B中的內容送回A中ADDA,#07H;將其轉換成ASCII碼的A-F中的一個MOVX@R1,A;將轉換后的內容送回R1中存放的地址指示的外部存儲器中

INCR1;R1中存放的地址自加1

MOVE2:MOVXA,@R0;將外部存儲器中的內容送入A中ANLA,#0F0H;取A的高位進行轉換中

INCR1INCR0DJNZMOVMOVSJMP

NUM1:MOVNUM2:

MOVXINCR1SJMPMOV

;R1中存放的地址自加1;R0中存放的地址自加1

R7,MOVE1;循環(huán)執(zhí)行子程序

R7,#0CH;將子程序的循環(huán)次數12送入R7中

R1,#10H;將最后存儲數據的低位起始地址送入R1中MOVA;跳到顯示子程序

A,B;將B中的內容送回A中,不能直接把B送回@R1中@R1,A;小于10則直接送到外部存儲器中;R1中存放的地址自加1MOVE2;跳到變換子程序2

A,B;將B中的內容送回A中,不能直接把B送回@R1中

ADDA,#30H;將A中的內容轉完ASCII碼,即與30H相加,4位進行一次MOVB,A;將A中的內容暫時存入B中SUBBA,#3AH;判斷A中的內容是否小于10JCNUM2;小于10,則跳轉到數字子程序2MOVA,B;將B中的內容送回A中

ADDA,#07H;將其轉換成ASCII碼的A-F中的一個

MOVX@R1,A;將轉換后的內容送回R1中存放的地址指示的外部存儲器MOVX@R1,A;小于10則直接送到外部存儲器中INCR1;R1中存放的地址自加1INCR0;R0中存放的地址自加1DJNZR7,MOVE1;循環(huán)執(zhí)行子程序

MOVR7,#0CH;將子程序的循環(huán)次數12送入R7中

MOVR1,#10H;將最后存儲數據的低位起始地址送入R1中;觀察效果子程序

MOVA:MOVXA,@R1;將R1中存放的地址指示的外部存儲器中的數據送入A中INCR1;R1中存放的地址自加1DJNZR7,MOVA;循環(huán)執(zhí)行子程序STOP:SJMPSTOP;停止子程序SJMP$;動態(tài)暫停

END;匯編結束這里將程序復雜化了,是將每個單元中的十六進制數轉換成兩個ASCII碼后送回指定單元中。而這里由于用到的指令的類型很少,使程序很復雜,特別是為了不致出現沒有轉換到的錯誤而使這個子程序的順序要安排得相當巧妙才可以。而且在適當的位置上還要加上“SJMPSTOP”這樣的語句,使程序不致進入死循環(huán)。當然這題不是實驗中要求。拿出這題只是來說明一下當時的情況。

單片機書上也有類似的程序,比較簡潔,可以作為參考。

在這里我為了觀察效果而送進和送出具體的內容,那么有沒有什么辦法可以直接觀察呢?

實驗中雖然要求使用Proteus,但實驗一完全是匯編程序,所以我當時主要是在Keil中進行的。通過查閱資料,對于單片機中的CODE、DATA、IDATA、SFR、XDATA作了初步的了解,而在Keil中也可以通過以“C:”、“D:”、“I:”、“X:”開頭再加上相應的地址的方式觀察指定的單元中的內容,這樣便可以更方便地觀察程序運行的結果。

對于實驗一的思考題,我的認識如下:

1、為什么程序結束用“STOP:SJMPSTOP”指令?有沒有其他的停止方式?51單片機啟動后,是否一直不斷地在執(zhí)行指令?

答:程序的結束還可以使用“SJMP$”,題中的結束指令和這個作用是類似的,是通過循環(huán)而使程序停留在此處,其實“SJMP$”是動態(tài)暫停,等待中斷的到來。51單片機啟動后,最后如果執(zhí)行到此條指令,還是在不斷地執(zhí)行的,只不過看不出具體的效果。

2、比較“跟蹤”、“單步”和“斷點”調試方式的特點。答:“跟蹤”和“單步”的調試方式有很多相似之處,在大多數時候,它們都是一步步執(zhí)行程序,但在調用子程序的過程中,“跟蹤”會進入子程序,然后依然一步步地執(zhí)行程序,而“單步”會將子程序一次執(zhí)行完,相當于沒有進入子程序內部;“斷點”主要是指在某句程序處設置斷點,這樣程序便可一次執(zhí)行到此處,觀察運行的結果,在Keil中“斷點”有很多使用方法,都是很好的調試手段,由于涉及到的內容較多,此處不再贅述。

在提前完成這個實驗的過程中,我們小老師也進行了交流,對于可能出現的問題也盡量去解決,這樣才能更好地作為小老師幫助其他同學。

以上主要是以第一個實驗為例說明在實驗之前的情況。下面將結合著實驗說說遇到的一些問題和解決辦法。

在本次單片機實驗中,我是作為生醫(yī)0804班鄭卿杭和朱舟的小老師,當然在實際操作中,各位小老師還經;ハ鄮椭ハ嗵接憜栴}的。

在第一次實驗中,我們主要讓同學們用Keil進行編程。部分同學對于Keil的使用還不是非常熟悉,我們和他們講解了一下基本的使用和應該注意的問題。

下面對部分人在編程后無法創(chuàng)建目標進行歸納:1、要養(yǎng)成良好的習慣。建立一個屬于自己的單獨的文件夾,一般以英文命名比較好,有些軟件不兼容中文文件名,而且最好也不要出現純數字命名的文件夾,在新建工程或ASM程序時命名也最好這樣去做。另外命名中除擴展名前的“.”,其它地方最好不要再出現。

2、建立工程時的問題。我們使用的一般是Atmel公司的AT89C51,在新建工程時還是將STARTUP.A51添加進去比較好。雖然在后面可能因為它而出現3個警告,但有時沒有它卻可能導致目標無法創(chuàng)建。建立工程后記得將自己寫好的ASM或C文件添加到工程中。

3、編程問題。很多時候無法創(chuàng)建目標都是因為在寫具體的程序時出現了錯誤。最常見的錯誤是指令寫錯了。比如將SETB寫成了STEB,這需要我們在編程時要十分細心,另外還要將指令的拼寫記清楚。這種錯誤一般程序是不提示的。還有種類似的錯誤是可能將數字0和字母O混淆了。以上都是拼寫的錯誤中。還有另一種錯誤是指令不匹配,比如說MOV和MOVX的混用,在作為地址時將地址值送入了除R0或R1之外的寄存器中,比如說R2。最后還有一種錯誤,這種錯誤會提示你某一句有語法錯誤,這時候我們也許會很奇怪:這么簡單的句子,我都檢查不下十遍了,哪里有錯?這時你可以試著拖動橫向的滾動條,看看很遠的地方是不是還有一個句子,如果有,那就是它導致錯誤了。

4、如果你確定以上錯誤都排除了,但還是無法創(chuàng)建目標,那么可以從頭來過,從新建一個英文文件夾開始。

在第一次編程中還遇到過其它問題,但由于是具體編程的問題,在過程中都有解決,而且編程主要還是要靠自己平時多寫程序,所以在此處不再贅述。當時部分人沒有提前進行很好地預習,在實驗過程中無法寫出其中某些程序,但在對照書上的例子后還是可以模仿著寫出來,這也是一種學習的方法,但還是要注意預習和堅持去學習,不能寫過之后就又全都放下了,要在模仿中學會編程,掌握方法。

后面三次實驗有著很多共同之處,主要是要求同學們在理解的基礎上,對照著給出的電路圖來畫出電路圖,利用已給出的程序進行運行調試,觀察實驗的效果。因為這一點,后面三次的實驗將放在一起進行總結。

因為在實驗之前我們在做單片機作業(yè)時已經多次使用Proteus,所以大家對于Proteus的基本使用已經比較熟悉了。先看看實驗中的思考題。

對于實驗二的思考題,我的認識如下:1、在七段LED顯示中,如果設置20H為顯示緩沖區(qū),要顯示的字段碼送入顯示緩沖區(qū),反復調用顯示子程序即可,試編寫該顯示子程序。

答:SHOW:MOVP1,20HRET

這個程序與前面的例子并沒有什么本質上的區(qū)別。有時候可能還要添加延時程序。2、能否顯示“H”、“L”、“P”、“U”的字形,試寫出它們的字段碼。

答:字出它們的字段碼實際就是對照七段LED顯示的每段的位置,以及是共陰極型還是共陽極型,將相應位置0或置1,然后用十六進制數表示出來。則“H”、“L”、“P”、“U”的共陰十六進制代碼分別為76H、38H、73H、3EH;共陽十六進制代碼分別為:89H、0C7H、8CH、0C1H。

對于實驗三的思考題,我的認識如下:

1、分析用中斷和查詢方式編寫的鍵盤程序在運行時會出現什么區(qū)別?

答:中斷方式編寫的鍵盤程序會等待中斷的到來,然后執(zhí)行相應的中斷子程序;而查詢方式是一直在運行程序,不斷地進行掃描,如果達到條件便執(zhí)行相應的子程序。同時中斷方式還可能要將相應的內容送入和送出棧中,以保護現場。查詢方式相對來說要簡單一些,但是中斷方式更加合理實用。當然這些東西都是相對來說的,沒有絕對的說法。

2、當單片機進入中斷后,其SP、PC等特殊功能寄存器的內容會發(fā)生什么變化?答:由于要進入中斷子程序,則要保護現場,因為最后要返回主程序。保護現場就是將程序中的一些內容送入棧中,這時SP就要作相應的改變,以指向新的地址,以使最后能夠正確地返回。而根據指令的跳轉,PC的內容也要作相應的改變,以使子程序能夠得到正確地執(zhí)行。

3、中斷程序保護現場有何意義?

答:保護現場是指將主程序中需要保護的寄存器內容進行保護,這樣在中斷程序執(zhí)行完畢之后就可以正確地恢復現場,返回主程序。這樣一來就不會因為中斷程序而影響其他程序的正常運行。

4、在程序中,讀入按鍵端口狀態(tài)后為什么要取反?

答:因為最開始時端口都是高電平,這樣得出的數值并不是我們所想要的,而取反之后,正好與它們對應的數字相等,這樣就可以更好地進行程序的編寫。(最開始端口是高電平是使讀入操作時不致出現誤讀。)

5、兩種鍵盤輸入電路中數碼管的硬、軟件驅動有何不同?

答:中斷方式的電路中數碼管和單片機之間只用了RX8,相當于加了電阻,起到限流的作用。查詢方式中在RX8和單片機之間又加了74LS244,主要是增加電路的驅動能力。在程序中分別在送入數據到指定端口之前和之后進行了延時去抖動。

下面結合實驗中大家遇到的一些問題進行總結。

由于實驗中主要是畫出電路圖,所以也主要是針對這方面的一些問題:

1、首先最基本的是查找器件和連線。在Proteus的庫中查找器件比較方便,只要輸入相應的單詞或其一部分就能快速定位。在連線時注意不要將兩個元件的端腳直接相連,這樣在很多時候實際上是沒有連接上的。在連線時也要注意不要將不相干的線相交了或者將兩條線完全重合了。

2、使用元器件一些注意事項。對于電阻、電容或者是它們的其他形式,如RX8等,要記得為它們設定值,否則系統(tǒng)可能將其設為默認值,大多數時候這樣可能導致電路無法正常工作。要使用系統(tǒng)可以仿真的元件,如某些人在本來要用74LS系列的元件的地方使用了74ALS系列的元件,這樣會導致無法進行仿真,也就看不出程序運行的結果。一些人在使用BUTTON時可能無法正常使用,一般情況下是將BUTTON鎖定了,這時需要先將其解除鎖定。很多時候感覺一切連接正常,但是無法得到理想的結果,這時候可以逐步排查,鎖定某個元件,因為可能是因為你某個不經意的操作改變了元件的屬性。

3、一些技巧。這里先以總線為例。使用總線時需要將其所連接的兩端連線進行標號,并且需要一一對應,當然我們可以通過放置網絡標號的方式進行,但這樣效率太低了。我們可以在對總線相關部分操作后,點擊:工具屬性設置工具,在字符串中輸入“NET=P1#”(這里以對P1口連接的線進行分配為例,其它類似),先對某一邊的連線進行分配,然后再重新點擊,再進行另一邊的連線的分配工作。在連接線路時,如果連接的線和上一次的相同,這時直接左鍵雙擊元件的端腳即可。這樣的技巧還有很多,就不再一一贅述,這需要我們在實驗中不斷發(fā)現、總結、運用,如果掌握了這些技巧可以大大提高我們連接電路的速度。

4、有時候程序說沒有載入代碼,這時候應該是還沒有添加hex文件。有時CPU無法實時、正確的仿真,可能需要我們在程序中加一些內容來調節(jié)一下。有時程序運行較快,我們可能需要將延時子程序延時的時間改得更長一點。

以上便是作為單片機實驗小老師時同學們遇到的一些問題和解決方法,以及我自己的一點感想。

對于這種小老師的教學方式,同學們的交流更多了,在這過程中互相促進,共同進步了。但同學們對于自己的要求應該不僅僅局限于完成實驗中的內容,而是要在實驗中發(fā)現更多的問題,并且進行深層次的了解,最后進行總結、交流。只有這樣才能達到實驗的目的,只有這樣這種教學方式才能發(fā)揮它的最大作用。

友情提示:本文中關于《單片機實驗心得體會》給出的范例僅供您參考拓展思維使用,單片機實驗心得體會:該篇文章建議您自主創(chuàng)作。

來源:網絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。


單片機實驗心得體會》由互聯(lián)網用戶整理提供,轉載分享請保留原作者信息,謝謝!
鏈接地址:http://m.hmlawpc.com/gongwen/626170.html
相關文章