久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長(zhǎng)、見賢思齊
當(dāng)前位置:公文素材庫(kù) > 報(bào)告體會(huì) > 心得體會(huì) > 單片機(jī)實(shí)驗(yàn)心得體會(huì)

單片機(jī)實(shí)驗(yàn)心得體會(huì)

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-28 22:13:23 | 移動(dòng)端:單片機(jī)實(shí)驗(yàn)心得體會(huì)

單片機(jī)實(shí)驗(yàn)心得體會(huì)

單片機(jī)實(shí)驗(yàn)心得體會(huì)

時(shí)間過得真快,不經(jīng)意間,一個(gè)學(xué)期就到了尾聲,進(jìn)入到如火如荼的期末考試階段。

在學(xué)習(xí)單片機(jī)這門課程之前,就早早的聽各種任課老師和學(xué)長(zhǎng)學(xué)姐們說過這門課程的重要性和學(xué)好這門課程的關(guān)鍵~~多做單片機(jī)實(shí)驗(yàn)。

這個(gè)學(xué)期,我們除了在課堂上學(xué)習(xí)理論知識(shí),還在實(shí)驗(yàn)室做了7次實(shí)驗(yàn)。將所學(xué)知識(shí)運(yùn)用到實(shí)踐中,在實(shí)踐中發(fā)現(xiàn)問題,強(qiáng)化理論知識(shí)。

現(xiàn)在,單片機(jī)課程已經(jīng)結(jié)束,即將開始考試了,需要來好好的反思和回顧總結(jié)下了。

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

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

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

還有一次實(shí)驗(yàn)是調(diào)出電腦里的程序,讓它在試驗(yàn)箱上實(shí)現(xiàn)其功,讓我們?nèi)ンw會(huì)別人編程的技巧和程序邏輯美感?戳酥,不得不說我目前的水平簡(jiǎn)直太小兒科了。還有連線也是個(gè)問題,對(duì)試驗(yàn)箱內(nèi)部結(jié)構(gòu)功能的不懂,以至于不知道如何連線讓程序?qū)崿F(xiàn)其功能。這讓我意識(shí)到單片機(jī)是軟件和硬件的結(jié)合,兩者是一個(gè)整體。所以必須把硬件方面加強(qiáng)。

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

擴(kuò)展閱讀:單片機(jī)實(shí)驗(yàn)總結(jié)

單片機(jī)實(shí)驗(yàn)總結(jié)(小老師)

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

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

在第一個(gè)實(shí)驗(yàn)之前便對(duì)小老師集中進(jìn)行了一次授課,主要是對(duì)實(shí)驗(yàn)的內(nèi)容作一個(gè)基本的了解。在這次課后我便開始提前做完實(shí)驗(yàn)。第一個(gè)實(shí)驗(yàn)主要內(nèi)容是寫幾個(gè)匯編程序。在實(shí)驗(yàn)之前我花了一天時(shí)間將所有程序?qū)懗鰜恚⒔o出了詳細(xì)的注釋。由于當(dāng)時(shí)對(duì)匯編語(yǔ)言還不是非常熟悉,所以程序的冗余度相當(dāng)高。當(dāng)時(shí)所用的程序中最多的是MOV、MOVX,在涉及到循環(huán)時(shí)一般用到的都是DJNZ,而CJNE等指令極少用到,這必然使程序太過冗長(zhǎng),而且在各處跳轉(zhuǎn)時(shí)要用比較巧妙的方法才能使循環(huán)的次數(shù)不出現(xiàn)錯(cuò)誤。在這些程序中沒有很好地使用程序的調(diào)用,也使程序變得復(fù)雜,不便于理解。

當(dāng)時(shí)為了便于觀察程序運(yùn)行的結(jié)果,在程序開始時(shí)對(duì)相關(guān)量進(jìn)行了賦值,而在程序結(jié)尾處又將相關(guān)量調(diào)出觀察效果。

下面舉幾個(gè)例子說明(下面的序號(hào)對(duì)應(yīng)《單片微型計(jì)算機(jī)與接口技術(shù)(第2版)》的253頁(yè)程序設(shè)計(jì)選題的序號(hào)):

(1)將外部數(shù)據(jù)存儲(chǔ)器0001H和0002H單元內(nèi)容互換。ORG0000H;程序起始位置

MOVA,#0D3H;將一個(gè)數(shù)先送進(jìn)A,以便后面觀察效果MOVDPTR,#0001H;將外部存儲(chǔ)器地址0001H送入DPTRMOVX@DPTR,A;將A中的數(shù)據(jù)送入0001H中MOVA,#34H;同上

MOVDPTR,#0002H;同上

MOVXMOVMOVXMOVMOVMOVMOVXMOVXXCHMOVX成

MOVXMOVXSJMPEND

A,@DPTR;觀察外部存儲(chǔ)器0001H中的內(nèi)容A,@R1;觀察外部存儲(chǔ)器0002H中的內(nèi)容$;動(dòng)態(tài)暫停;匯編結(jié)束

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

P2,#00H;得到第二個(gè)外部存儲(chǔ)器地址0002H的高位地址00HR1,#02H;得到第二個(gè)外部存儲(chǔ)器地址0002H的低位地址02HA,@R1;將外部存儲(chǔ)器0002H中的數(shù)據(jù)送入A中

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

@R1,A;將原外部存儲(chǔ)器0001H中的內(nèi)容送入外部存儲(chǔ)器0002H中,交換完

這本來是個(gè)簡(jiǎn)單的程序,但由于將具體的數(shù)送進(jìn)和送出而使程序較為冗長(zhǎng)。在前面送數(shù)部分可以寫得更為有條理,這樣可以使程序更加容易理解。

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

MOVA,#9DH;送入一個(gè)數(shù)到A中,以觀察后面效果

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

MOVR1,#10H;將最后存儲(chǔ)數(shù)據(jù)的低位起始地址送入R1中;轉(zhuǎn)換子程序

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

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

MOVE2:MOVXA,@R0;將外部存儲(chǔ)器中的內(nèi)容送入A中ANLA,#0F0H;取A的高位進(jìn)行轉(zhuǎn)換中

INCR1INCR0DJNZMOVMOVSJMP

NUM1:MOVNUM2:

MOVXINCR1SJMPMOV

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

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

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

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

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

A,B;將B中的內(nèi)容送回A中,不能直接把B送回@R1中

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

ADDA,#07H;將其轉(zhuǎn)換成ASCII碼的A-F中的一個(gè)

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

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

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

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

END;匯編結(jié)束這里將程序復(fù)雜化了,是將每個(gè)單元中的十六進(jìn)制數(shù)轉(zhuǎn)換成兩個(gè)ASCII碼后送回指定單元中。而這里由于用到的指令的類型很少,使程序很復(fù)雜,特別是為了不致出現(xiàn)沒有轉(zhuǎn)換到的錯(cuò)誤而使這個(gè)子程序的順序要安排得相當(dāng)巧妙才可以。而且在適當(dāng)?shù)奈恢蒙线要加上“SJMPSTOP”這樣的語(yǔ)句,使程序不致進(jìn)入死循環(huán)。當(dāng)然這題不是實(shí)驗(yàn)中要求。拿出這題只是來說明一下當(dāng)時(shí)的情況。

單片機(jī)書上也有類似的程序,比較簡(jiǎn)潔,可以作為參考。

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

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

對(duì)于實(shí)驗(yàn)一的思考題,我的認(rèn)識(shí)如下:

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

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

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

在提前完成這個(gè)實(shí)驗(yàn)的過程中,我們小老師也進(jìn)行了交流,對(duì)于可能出現(xiàn)的問題也盡量去解決,這樣才能更好地作為小老師幫助其他同學(xué)。

以上主要是以第一個(gè)實(shí)驗(yàn)為例說明在實(shí)驗(yàn)之前的情況。下面將結(jié)合著實(shí)驗(yàn)說說遇到的一些問題和解決辦法。

在本次單片機(jī)實(shí)驗(yàn)中,我是作為生醫(yī)0804班鄭卿杭和朱舟的小老師,當(dāng)然在實(shí)際操作中,各位小老師還經(jīng)常互相幫助,互相探討問題的。

在第一次實(shí)驗(yàn)中,我們主要讓同學(xué)們用Keil進(jìn)行編程。部分同學(xué)對(duì)于Keil的使用還不是非常熟悉,我們和他們講解了一下基本的使用和應(yīng)該注意的問題。

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

2、建立工程時(shí)的問題。我們使用的一般是Atmel公司的AT89C51,在新建工程時(shí)還是將STARTUP.A51添加進(jìn)去比較好。雖然在后面可能因?yàn)樗霈F(xiàn)3個(gè)警告,但有時(shí)沒有它卻可能導(dǎo)致目標(biāo)無法創(chuàng)建。建立工程后記得將自己寫好的ASM或C文件添加到工程中。

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

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

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

后面三次實(shí)驗(yàn)有著很多共同之處,主要是要求同學(xué)們?cè)诶斫獾幕A(chǔ)上,對(duì)照著給出的電路圖來畫出電路圖,利用已給出的程序進(jìn)行運(yùn)行調(diào)試,觀察實(shí)驗(yàn)的效果。因?yàn)檫@一點(diǎn),后面三次的實(shí)驗(yàn)將放在一起進(jìn)行總結(jié)。

因?yàn)樵趯?shí)驗(yàn)之前我們?cè)谧鰡纹瑱C(jī)作業(yè)時(shí)已經(jīng)多次使用Proteus,所以大家對(duì)于Proteus的基本使用已經(jīng)比較熟悉了。先看看實(shí)驗(yàn)中的思考題。

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

答:SHOW:MOVP1,20HRET

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

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

對(duì)于實(shí)驗(yàn)三的思考題,我的認(rèn)識(shí)如下:

1、分析用中斷和查詢方式編寫的鍵盤程序在運(yùn)行時(shí)會(huì)出現(xiàn)什么區(qū)別?

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

2、當(dāng)單片機(jī)進(jìn)入中斷后,其SP、PC等特殊功能寄存器的內(nèi)容會(huì)發(fā)生什么變化?答:由于要進(jìn)入中斷子程序,則要保護(hù)現(xiàn)場(chǎng),因?yàn)樽詈笠祷刂鞒绦。保護(hù)現(xiàn)場(chǎng)就是將程序中的一些內(nèi)容送入棧中,這時(shí)SP就要作相應(yīng)的改變,以指向新的地址,以使最后能夠正確地返回。而根據(jù)指令的跳轉(zhuǎn),PC的內(nèi)容也要作相應(yīng)的改變,以使子程序能夠得到正確地執(zhí)行。

3、中斷程序保護(hù)現(xiàn)場(chǎng)有何意義?

答:保護(hù)現(xiàn)場(chǎng)是指將主程序中需要保護(hù)的寄存器內(nèi)容進(jìn)行保護(hù),這樣在中斷程序執(zhí)行完畢之后就可以正確地恢復(fù)現(xiàn)場(chǎng),返回主程序。這樣一來就不會(huì)因?yàn)橹袛喑绦蚨绊懫渌绦虻恼_\(yùn)行。

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

答:因?yàn)樽铋_始時(shí)端口都是高電平,這樣得出的數(shù)值并不是我們所想要的,而取反之后,正好與它們對(duì)應(yīng)的數(shù)字相等,這樣就可以更好地進(jìn)行程序的編寫。(最開始端口是高電平是使讀入操作時(shí)不致出現(xiàn)誤讀。)

5、兩種鍵盤輸入電路中數(shù)碼管的硬、軟件驅(qū)動(dòng)有何不同?

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

下面結(jié)合實(shí)驗(yàn)中大家遇到的一些問題進(jìn)行總結(jié)。

由于實(shí)驗(yàn)中主要是畫出電路圖,所以也主要是針對(duì)這方面的一些問題:

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

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

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

4、有時(shí)候程序說沒有載入代碼,這時(shí)候應(yīng)該是還沒有添加hex文件。有時(shí)CPU無法實(shí)時(shí)、正確的仿真,可能需要我們?cè)诔绦蛑屑右恍﹥?nèi)容來調(diào)節(jié)一下。有時(shí)程序運(yùn)行較快,我們可能需要將延時(shí)子程序延時(shí)的時(shí)間改得更長(zhǎng)一點(diǎn)。

以上便是作為單片機(jī)實(shí)驗(yàn)小老師時(shí)同學(xué)們遇到的一些問題和解決方法,以及我自己的一點(diǎn)感想。

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

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

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。


單片機(jī)實(shí)驗(yàn)心得體會(huì)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/626170.html
相關(guān)文章