2017 單片機(jī)及智能儀器實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《單片機(jī)及智能儀器》</p><p><b>  實(shí) 驗(yàn) 指 導(dǎo) 書(shū)</b></p><p><b>  楊明亮 梁應(yīng)選 編</b></p><p>  適應(yīng)專(zhuān)業(yè):測(cè)控技術(shù)與儀器</p><p>  陜西理工學(xué)院機(jī)械工程學(xué)院</p><p><b&

2、gt;  2012年4月</b></p><p><b>  前 言</b></p><p>  《單片機(jī)及智能儀器》是一門(mén)實(shí)踐性很強(qiáng)的課程。為了使學(xué)生更好的理解和掌握這些知識(shí),靈活應(yīng)用單片機(jī),使學(xué)生熟悉單片機(jī)實(shí)用技術(shù)的開(kāi)發(fā)過(guò)程,提高匯編語(yǔ)言的編寫(xiě)能力,提高對(duì)匯編語(yǔ)言的編輯、匯編、調(diào)試運(yùn)行等技能,設(shè)置了軟件類(lèi)、硬件類(lèi)和綜合應(yīng)用類(lèi)實(shí)驗(yàn),通過(guò)上機(jī)及接口實(shí)

3、驗(yàn),熟練地掌握單片機(jī)的編程結(jié)構(gòu)、工作模式、指令系統(tǒng);學(xué)會(huì)匯編語(yǔ)言程序設(shè)計(jì);掌握微機(jī)輸入/輸出接口的基本概念,主要模式和基本工作方法,掌握并行和串行接口的原理,學(xué)會(huì)并行輸入/輸出口的擴(kuò)展,并能夠進(jìn)行基本的接口設(shè)計(jì),提高其實(shí)踐能力;并培養(yǎng)學(xué)生實(shí)事求是、嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)和良好的實(shí)驗(yàn)習(xí)慣,為今后課程學(xué)習(xí)以及開(kāi)發(fā)應(yīng)用打下基礎(chǔ)。</p><p>  開(kāi)設(shè)“單片機(jī)綜合實(shí)驗(yàn)”的目的,是總結(jié)幾年來(lái)單片機(jī)教學(xué)中,用購(gòu)買(mǎi)的實(shí)驗(yàn)箱,雖然功

4、能很齊全,但基本上是黑箱結(jié)構(gòu),對(duì)初學(xué)者,不是從最簡(jiǎn)單的最小系統(tǒng)開(kāi)始,一步步深入,做完實(shí)驗(yàn)后,效果很差,大部分學(xué)生對(duì)單片機(jī)的系統(tǒng)沒(méi)有感性認(rèn)識(shí),最后在課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)中,連最簡(jiǎn)單的單片機(jī)最小系統(tǒng)都不清楚。因此該實(shí)驗(yàn)就是想讓學(xué)生從最簡(jiǎn)單的系統(tǒng)開(kāi)始,自己搭建,編程,調(diào)試和固化程序,循序漸進(jìn),逐步深入。</p><p>  本實(shí)驗(yàn)指導(dǎo)書(shū)是針對(duì)測(cè)儀專(zhuān)業(yè)《單片機(jī)與智能儀器》課程實(shí)驗(yàn)設(shè)置的,兩個(gè)2學(xué)時(shí)的驗(yàn)證實(shí)驗(yàn)和一個(gè)6學(xué)時(shí)的綜

5、合實(shí)驗(yàn)。 </p><p>  實(shí)驗(yàn)一:LED顯示實(shí)驗(yàn)</p><p><b>  實(shí)驗(yàn)學(xué)時(shí):2</b></p><p><b>  實(shí)驗(yàn)類(lèi)型:驗(yàn)證 </b></p><p><b>  實(shí)驗(yàn)要求:必做</b></p><p><b>  一、

6、實(shí)驗(yàn)?zāi)康模?lt;/b></p><p>  1、了解MCS51系列單片機(jī)匯編語(yǔ)言的設(shè)計(jì)和調(diào)試方法;</p><p>  2、掌握8032單片機(jī)通過(guò)8155擴(kuò)展I/O接口時(shí),LED顯示的連接方法和編程方法。</p><p>  3、了解LED動(dòng)態(tài)顯示原理及匯編語(yǔ)言編程。</p><p><b>  二、實(shí)驗(yàn)內(nèi)容:</b&

7、gt;</p><p>  1、觀察單片機(jī)實(shí)驗(yàn)系統(tǒng)(實(shí)驗(yàn)箱)結(jié)構(gòu)與原理;</p><p>  2、看懂附錄1中的程序,將程序輸入并調(diào)試;編譯、調(diào)試、運(yùn)行該程序,顯示結(jié)果應(yīng)為“”;</p><p>  3、修改該程序,讓LED交替顯示“”和“”,注意交替變化中間要有明顯的保持時(shí)間;也可以顯示任意兩個(gè)六位數(shù)字或字符(用七斷數(shù)碼管可以顯示的字符,如“H”、“L”等)。&l

8、t;/p><p><b>  三、實(shí)驗(yàn)原理:</b></p><p>  本次實(shí)驗(yàn)采用啟東計(jì)算機(jī)總廠生產(chǎn)的“DICE系列單片機(jī)實(shí)驗(yàn)系統(tǒng)”,該系統(tǒng)運(yùn)行的基本原理與一般的單片機(jī)系統(tǒng)是一樣的,但作為實(shí)驗(yàn)系統(tǒng),它的程序存儲(chǔ)器里面存儲(chǔ)的是監(jiān)控管理程序,實(shí)驗(yàn)所編寫(xiě)的程序,在計(jì)算機(jī)中進(jìn)行調(diào)試,編譯,生成可執(zhí)行文件,然后將實(shí)驗(yàn)程序存入實(shí)驗(yàn)系統(tǒng)中的擴(kuò)展數(shù)據(jù)存儲(chǔ)區(qū)。所以實(shí)驗(yàn)程序在斷電后就從實(shí)

9、驗(yàn)箱中消失了。</p><p>  在DICE系列單片機(jī)實(shí)驗(yàn)系統(tǒng)中,用8155芯片擴(kuò)展I/O口,顯示用LED數(shù)碼管,系統(tǒng)分配給顯示部分的端口:8155A口,連LED顯示的字位口,地址為FF21H; 8155B口,連LED顯示的字形口,地址為FF22H。</p><p><b>  四、實(shí)驗(yàn)組織運(yùn)行:</b></p><p>  采用集中授課形式

10、,分組進(jìn)行實(shí)驗(yàn)。</p><p><b>  五、實(shí)驗(yàn)條件:</b></p><p>  1、單片機(jī)實(shí)驗(yàn)系統(tǒng)一套;</p><p><b>  2、計(jì)算機(jī)一臺(tái);</b></p><p>  3、WIN51仿真軟件一套</p><p><b>  六、實(shí)驗(yàn)步驟:<

11、;/b></p><p>  1、打開(kāi)實(shí)驗(yàn)箱,查看單片機(jī)以及其它芯片的銘牌,記錄相關(guān)芯片的型號(hào);</p><p>  2、參照教材和實(shí)驗(yàn)指導(dǎo)書(shū),找出上述芯片的型號(hào),記錄各芯片的作用和引腳功能;</p><p>  3、打開(kāi)計(jì)算機(jī),進(jìn)入WIN51仿真軟件(執(zhí)行DICE51.EXE文件),打開(kāi)其工作界面;</p><p>  4、檢查計(jì)算機(jī)

12、與單片機(jī)是否連接就緒。即查看WIN51工作界面底邊狀態(tài)欄由“脫機(jī)就緒”變成“聯(lián)機(jī)就緒”,說(shuō)明聯(lián)機(jī)成功。否則對(duì)話框提示“單片機(jī)未連上”,要檢查硬件實(shí)際連接情況,在設(shè)置菜單下設(shè)定COM1或COM2。</p><p>  5、將自己編寫(xiě)的程序或提供的參考程序輸入,然后進(jìn)行調(diào)試,編譯,改正錯(cuò)誤。一直調(diào)到?jīng)]有錯(cuò)誤為止,然后讓程序單步運(yùn)行、連續(xù)運(yùn)行,查看程序運(yùn)行結(jié)果。</p><p><b>

13、;  七、思考題:</b></p><p>  1、LED顯示分為動(dòng)態(tài)顯示與靜態(tài)顯示,本次實(shí)驗(yàn)采用動(dòng)態(tài)還是靜態(tài)顯示,顯示的原理是什么?</p><p><b>  八、實(shí)驗(yàn)報(bào)告:</b></p><p>  實(shí)驗(yàn)報(bào)告內(nèi)容應(yīng)包括實(shí)驗(yàn)?zāi)康?、原理和?nèi)容以及結(jié)果,特別是修改程序的結(jié)果,做詳細(xì)記錄。應(yīng)對(duì)實(shí)驗(yàn)過(guò)程,程序調(diào)試中出現(xiàn)的問(wèn)題及解決方法

14、進(jìn)行記錄,對(duì)實(shí)驗(yàn)中出現(xiàn)的問(wèn)題應(yīng)進(jìn)行分析。</p><p>  必須對(duì)程序全部進(jìn)行注釋。</p><p><b>  八、附錄</b></p><p>  附錄1.1:LED顯示源程序</p><p>  說(shuō)明:在LED上實(shí)現(xiàn)字符顯示的方法,是將待顯示的字形碼,送入8155的字形口(B口)地址FF22H,顯示位置送入815

15、5的字位口(A口)地址FF21H。附錄2給出了本實(shí)驗(yàn)中的字形、字位表。一個(gè)字長(zhǎng)為8位的二進(jìn)制,要在兩個(gè)LED上顯示,因此程序中有如何將一個(gè)字拆分成兩個(gè)字。輸入程序時(shí)可以不輸注釋語(yǔ)句。</p><p><b>  ORG 0500H</b></p><p>  SE15: MOV SP,#53H</p><p>  LED: MOV

16、R0,#79H ;將字形存在RAM的79H-7EH</p><p>  MOV R6,#65H ;輸入待顯示的字符</p><p>  MOV R5,#43H</p><p>  MOV R4,#21H</p><p>  MOV A,R6 ;調(diào)用拆分程序?qū)?個(gè)字節(jié)拆成6個(gè)字節(jié)</p><p>  LCALL

17、PTDS</p><p><b>  MOV A,R5</b></p><p>  LCALL PTDS</p><p><b>  MOV A,R4</b></p><p>  LCALL PTDS</p><p>  LCALL SSEESJMP LED ;循環(huán)顯示&

18、lt;/p><p><b> ??;字節(jié)拆分程序</b></p><p>  PTDS: MOV R1,A</p><p>  ACALL PTDS1</p><p><b>  MOV A,R1</b></p><p><b>  SWAP A</b>

19、</p><p>  PTDS1: ANL A,#0FH</p><p><b>  MOV @R0,A</b></p><p><b>  INC R0</b></p><p><b>  RET</b></p><p><b> ??;字

20、節(jié)顯示程序</b></p><p>  SSEE: SETB RS1 ;換工作寄存器第三組</p><p>  MOV R5,#05H ;每個(gè)字顯示5次</p><p>  SSE2: MOV 30H,#20H ;字位碼初值</p><p>  MOV 31H,#7EH ;字形碼初地址</p><

21、;p>  MOV R7,#06H ;顯示位數(shù)</p><p>  SSE1: MOV R1,#21H ;輸入字位碼</p><p><b>  MOV A,30H</b></p><p>  MOVX @R1,A</p><p>  MOV R0,31H ;查表、輸入字形碼</p><

22、p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#DDFF</p><p>  MOVC A,@A+DPTR</p><p>  MOV R1,#22H </p><p>  MOVX @R1,A ;字形送入地址22H</p><p>  MOV A,

23、30H ;改變字位</p><p><b>  RR A</b></p><p><b>  MOV 30H,A</b></p><p>  DEC 31H ;轉(zhuǎn)換為下一個(gè)字形</p><p>  MOV A,#0FFH </p><p>  MOVX @R1,A

24、;關(guān)顯示</p><p>  DJNZ R7,SSE1 ;6位顯示完了嗎?</p><p>  DJNZ R5,SSE2 ;5次顯示完了嗎?</p><p><b>  CLR RS1</b></p><p><b>  RET</b></p><p> ??;以下為字形表,

25、見(jiàn)表2。</p><p>  DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p>  DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH</p><p><b>  END</b></p><p>  附錄

26、1.2:字形、字位表</p><p><b>  字位表</b></p><p><b>  字形表</b></p><p><b>  注:低電位亮。</b></p><p>  實(shí)驗(yàn)二 單片機(jī)資源應(yīng)用</p><p>  實(shí)驗(yàn)學(xué)時(shí):課內(nèi) 6學(xué)時(shí),課

27、外6學(xué)時(shí)。</p><p><b>  實(shí)驗(yàn)類(lèi)型:綜合</b></p><p><b>  實(shí)驗(yàn)要求:必做</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1、掌握單片機(jī)最小系統(tǒng)的設(shè)計(jì)。</p><p>  2、了解51系列

28、單片機(jī)并行口輸出/輸入方式的工作原理及編程方法。</p><p>  3、掌握51系列單片機(jī)中斷的設(shè)置方法及編程實(shí)現(xiàn)。</p><p>  4、掌握定時(shí)器/計(jì)數(shù)器的設(shè)置方法及編程。</p><p>  5、掌握設(shè)計(jì)簡(jiǎn)單的單片機(jī)系統(tǒng)并在面包板上搭建單片機(jī)系統(tǒng),或在單片機(jī)實(shí)驗(yàn)板上組建單片機(jī)系統(tǒng)。</p><p>  6、用七段數(shù)碼管進(jìn)行數(shù)據(jù)顯示。

29、</p><p><b>  二、實(shí)驗(yàn)內(nèi)容</b></p><p>  實(shí)驗(yàn)內(nèi)容按要求分A、B、C、三部分,其中A是必做內(nèi)容,B是選做內(nèi)容,C是提高內(nèi)容。</p><p>  內(nèi)容A:按實(shí)驗(yàn)指導(dǎo)書(shū)給出的單片機(jī)最小系統(tǒng)和4位七段LED數(shù)碼管動(dòng)態(tài)顯示電路,在面包板上搭接,然后用匯編語(yǔ)言編寫(xiě)顯示程序,在數(shù)碼管的任何一位顯示要求的數(shù)字。</p&g

30、t;<p>  該部分主要是熟悉并掌握單片機(jī)的最小系統(tǒng),振蕩電路、復(fù)位電路,端口的應(yīng)用,動(dòng)態(tài)顯示的電路及編程,程序的調(diào)試及固化,掌握用keil軟件調(diào)試匯編程序。由于顯示是人機(jī)交流的窗口,是以后其它功能實(shí)驗(yàn)的基礎(chǔ)。必須在內(nèi)容A中很好的掌握。</p><p>  實(shí)驗(yàn)電路見(jiàn)附圖,還給出數(shù)碼管引腳圖,元器件清單等。</p><p><b>  電路說(shuō)明:</b>

31、;</p><p>  該電路是一個(gè)在單片機(jī)最小系統(tǒng)上接了4個(gè)數(shù)碼管,由于AT89C51片內(nèi)有4K的Flash Memory存儲(chǔ)器,故在軟件不是很大的情況下,一般不需要擴(kuò)展片外程序存儲(chǔ)器,故單片引腳EA接高電平;復(fù)位采用上電復(fù)位和人工按鈕復(fù)位;顯示采用七段共陽(yáng)極數(shù)碼管,位碼采用三極管9014驅(qū)動(dòng),因?yàn)長(zhǎng)ED數(shù)碼管的電壓在1.5-3V,電流在2-20mA,故要加限流電阻。</p><p> 

32、 注意該電路圖中的總線畫(huà)法。 </p><p>  內(nèi)容B:在以下兩個(gè)內(nèi)容中選做1個(gè)</p><p>  1、用定時(shí)器定時(shí),(定時(shí)器T0或T1任選),每過(guò)20ms計(jì)數(shù)1次,并將計(jì)數(shù)值在LED上顯示。</p><p>  提示:該部分的主要內(nèi)容是定時(shí)器和中斷的性能和編程,要知道晶振的頻率,然后根據(jù)要求的時(shí)間,確定定時(shí)器的工作方式,計(jì)算定時(shí)器的初值,設(shè)定定時(shí)器與中斷,在

33、RAM中設(shè)定兩個(gè)單元,永遠(yuǎn)計(jì)數(shù),每中斷一次該計(jì)數(shù)單元的值加1,程序啟動(dòng)后,一直處于動(dòng)態(tài)顯示中,直到中斷時(shí)才處理加1程序。要注意中斷程序的地址,定時(shí)器不同該地址也不同,具體請(qǐng)查中斷服務(wù)程序服務(wù)入口地址。由于幾個(gè)中斷程序入口地址僅相隔8個(gè)單元,如果中斷程序較長(zhǎng),一般要轉(zhuǎn)移到后面的單元中。</p><p>  2、由定時(shí)器T0計(jì)時(shí),對(duì)T1口在一定時(shí)間內(nèi)輸入的脈沖進(jìn)行計(jì)數(shù)并顯示。脈沖的產(chǎn)生可以用點(diǎn)動(dòng)開(kāi)關(guān),也可以用信號(hào)發(fā)生

34、器或單片機(jī)實(shí)驗(yàn)箱中的分頻信號(hào),也可以給出分頻器,自己設(shè)計(jì)電路,對(duì)單片機(jī)EA口輸出信號(hào)進(jìn)行分頻。</p><p>  該實(shí)驗(yàn)較上一個(gè)實(shí)驗(yàn)難度大,用了兩個(gè)定時(shí)器/計(jì)數(shù)器。涉及到計(jì)數(shù)器的設(shè)計(jì),由T0定時(shí)中斷,然后讀T1的計(jì)數(shù)值。</p><p>  內(nèi)容C:該部分內(nèi)容屬提高內(nèi)容,供學(xué)有余力且感興趣的學(xué)生選做,其他學(xué)生不作要求。因此該部分的主導(dǎo)思想是只提要求,提供元件,由學(xué)生自己設(shè)計(jì)電路,編寫(xiě)軟件

35、。教師僅作指導(dǎo)。這樣可以更好的鍛煉學(xué)生的能力。</p><p>  串行EPROM存儲(chǔ)器及按鍵的電路設(shè)計(jì)及編程。在智能儀器中,不可避免的要有按鍵進(jìn)行功能轉(zhuǎn)換和控制,經(jīng)常將標(biāo)定的系數(shù)和測(cè)量的數(shù)據(jù)存儲(chǔ)起來(lái),希望下一次開(kāi)機(jī)、甚至斷電的情況下該數(shù)據(jù)能長(zhǎng)期保留,用AT24C02等串行EPROM芯片就可以實(shí)現(xiàn)該該功能。這個(gè)實(shí)驗(yàn)的要求,就是用按鍵進(jìn)行控制,將一批數(shù)據(jù)存儲(chǔ)在AT24C02芯片中,然后又用另一個(gè)功能鍵將該數(shù)據(jù)取出并

36、進(jìn)行顯示。下面只給出該芯片的資料,自己設(shè)計(jì)電路,編寫(xiě)軟件。</p><p>  RS232串行通信實(shí)驗(yàn)。因?yàn)榇型ㄐ攀侵悄軆x器中經(jīng)常應(yīng)用的功能,本實(shí)驗(yàn)提供MAX232芯片和電容,由兩組同學(xué)一起,用串行口實(shí)行遠(yuǎn)距離(5-10m)通信。也可以和計(jì)算機(jī)進(jìn)行通信。</p><p>  模擬信號(hào)的數(shù)據(jù)采集實(shí)驗(yàn),該實(shí)驗(yàn)提供ADC0809芯片,由學(xué)生自己完成電路設(shè)計(jì),搭建。并進(jìn)行編程,將一個(gè)0-5V的電

37、壓信號(hào)通過(guò)A/D轉(zhuǎn)換后在顯示器中顯示。</p><p>  三、實(shí)驗(yàn)組織運(yùn)行要求:</p><p>  采用學(xué)生自主訓(xùn)練為主的開(kāi)放模式組織教學(xué)。每4個(gè)人一組,共同完成電路設(shè)計(jì),搭建,軟件編寫(xiě),調(diào)試。</p><p><b>  四、實(shí)驗(yàn)條件:</b></p><p>  1、實(shí)驗(yàn)面包板一塊(或單片機(jī)實(shí)驗(yàn)板);</p

38、><p>  2、AT89C51(或相近型號(hào))單片機(jī) 1個(gè);</p><p><b>  3、穩(wěn)壓電源1臺(tái);</b></p><p>  4、電源插座 1只;</p><p><b>  5、計(jì)算機(jī)1臺(tái);</b></p><p>  6、其它芯片見(jiàn)下表:(注意:實(shí)驗(yàn)未用的元件報(bào)

39、告中不能出現(xiàn))</p><p><b>  五、實(shí)驗(yàn)步驟:</b></p><p>  1、實(shí)驗(yàn)前先進(jìn)行實(shí)驗(yàn)內(nèi)容的預(yù)習(xí),在課外設(shè)計(jì)好實(shí)驗(yàn)接線圖,編寫(xiě)實(shí)驗(yàn)要求的匯編程序,并在計(jì)算機(jī)上進(jìn)行編譯和調(diào)試,將調(diào)試好的程序轉(zhuǎn)換成*.HEX格式存入移動(dòng)U盤(pán)。</p><p>  2、實(shí)驗(yàn)時(shí)按電路圖接好線后,將*.HEX程序?qū)懭雴纹瑱C(jī)中,進(jìn)行程序調(diào)試。<

40、/p><p>  3、觀察實(shí)驗(yàn)過(guò)程,詳細(xì)記錄實(shí)驗(yàn)中出現(xiàn)的問(wèn)題,并分析其原因以及程序的修改過(guò)程。</p><p><b>  六、思考題:</b></p><p>  1、如何設(shè)置定時(shí)器和中斷?</p><p>  2、顯示器的地址如何確定,如何將一個(gè)數(shù)據(jù)進(jìn)行動(dòng)態(tài)顯示。怎樣查詢要顯示的數(shù)字。 </p><p

41、><b>  七、實(shí)驗(yàn)報(bào)告:</b></p><p>  1、實(shí)驗(yàn)的目的、要求;</p><p>  2、實(shí)驗(yàn)電路圖的設(shè)計(jì),所用元件性能的簡(jiǎn)單介紹;</p><p>  3、實(shí)驗(yàn)程序的編寫(xiě)與調(diào)試,并對(duì)程序加以詳細(xì)注釋?zhuān)?lt;/p><p>  4、調(diào)試過(guò)程與調(diào)試結(jié)果,并對(duì)調(diào)試中出現(xiàn)的問(wèn)題進(jìn)行分析;</p>

42、<p>  5、回答本實(shí)驗(yàn)相關(guān)問(wèn)題。</p><p>  6、實(shí)驗(yàn)的體會(huì)與總結(jié)。</p><p>  附2.1:?jiǎn)纹瑱C(jī)最小系統(tǒng)實(shí)驗(yàn)原理圖</p><p>  附2.2 設(shè)計(jì)編程注意事項(xiàng)</p><p><b>  硬件設(shè)計(jì)</b></p><p><b>  1、單片機(jī)選用&

43、lt;/b></p><p>  本次實(shí)驗(yàn),單片機(jī)采用的是AT89C××系列或AT89S××系列,該系列單片機(jī)片內(nèi)都含有閃速程序存儲(chǔ)器,可以根據(jù)所編寫(xiě)程序代碼大小選擇有不同片內(nèi)程序存儲(chǔ)器的單片機(jī),一般情況下,課程設(shè)計(jì)中的程序代碼都不是太大,2K或4K的程序存儲(chǔ)器都可以滿足。數(shù)據(jù)存儲(chǔ)器一般都較小,不進(jìn)行大量的數(shù)據(jù)處理,或數(shù)組變量中成員不是太多的情況下,片內(nèi)RAM是夠用的

44、。</p><p><b>  2、端口資源分配</b></p><p>  接口是CPU與外界的連接部件,以實(shí)現(xiàn)CPU與外部設(shè)備的最佳耦合和匹配。包括鍵盤(pán)、顯示、A/D轉(zhuǎn)換、D/A轉(zhuǎn)換和打印機(jī)等。根據(jù)實(shí)驗(yàn)要求,選用外設(shè),并選用合適的外圍接口芯片。I/O端口是CPU與I/O設(shè)備直接通信的地址。單片機(jī)系統(tǒng)對(duì)I/O端口是采用端口地址與存儲(chǔ)器地址統(tǒng)一編址的方式,即存儲(chǔ)器映射

45、方式。而編址技術(shù)又分線選法和譯碼法。在設(shè)計(jì)單片機(jī)系統(tǒng)時(shí),對(duì)地址必須有一個(gè)清楚的認(rèn)識(shí),一但硬件確定,則相應(yīng)的擴(kuò)展地址也就確定了。</p><p>  3、數(shù)據(jù)采集單元設(shè)計(jì)</p><p>  要針對(duì)不同的要求,不同的情況設(shè)計(jì)數(shù)據(jù)采集電路。設(shè)計(jì)時(shí)要考慮測(cè)量范圍,顯示精度,信號(hào)的情況,信號(hào)變化緩慢的還是變化很快,信號(hào)的質(zhì)量,確定是否需要放大、濾波、采樣保持電路;對(duì)于數(shù)字信號(hào),也要考慮信號(hào)的大小和

46、質(zhì)量,考慮是否用比較電路、驅(qū)動(dòng)電路和光電隔離等。</p><p><b>  4、顯示單元設(shè)計(jì)</b></p><p>  顯示是儀器和人交流信息的重要窗口,也是儀器的一個(gè)重要組成部分。根據(jù)題目要求,確定顯示的形式(靜態(tài)顯示還是動(dòng)態(tài)顯示;LED顯示好事LCD顯示等),顯示的位數(shù),所以必須對(duì)要顯示的信息做到心中有數(shù),設(shè)計(jì)的顯示單元要滿足所有要顯示信息的顯示要求。由于LE

47、D顯示的控制較為簡(jiǎn)單,本次實(shí)驗(yàn)室提供LED指示燈和8段LED數(shù)碼管。</p><p>  5、 按鍵控制單元設(shè)計(jì)</p><p>  一個(gè)測(cè)控系統(tǒng),總是有許多功能,有些功能可以根據(jù)系統(tǒng)的運(yùn)行狀態(tài)自己變化,如智能儀表中的量程自動(dòng)選擇;但相當(dāng)多的功能需要人工控制,如交通燈控制中的各段時(shí)間的設(shè)定等,所以對(duì)于測(cè)控系統(tǒng)來(lái)講,一般都要有人工控制信號(hào)的輸入端口-按鍵或鍵盤(pán)。設(shè)計(jì)按件或鍵盤(pán),要對(duì)設(shè)計(jì)對(duì)象的

48、功能相當(dāng)熟悉,才能正確確定按鍵的數(shù)量。如果要輸入的數(shù)字較大且是隨機(jī)的,要考慮設(shè)計(jì)鍵盤(pán)。如果不是很大,或者數(shù)字很大但變化范圍不大的情況下,盡量使用按鍵。</p><p><b>  6、其它功能設(shè)計(jì)</b></p><p>  其他功能設(shè)計(jì),需要根據(jù)題目要求,如串行通信,D/A轉(zhuǎn)換等,因?yàn)楸敬螌?shí)驗(yàn)時(shí)間所限,布置任務(wù)時(shí),將一些功能不做要求或作為選擇內(nèi)容,學(xué)生可以根據(jù)實(shí)際情

49、況取舍,進(jìn)度較快的課題組,還可以自己增加相應(yīng)內(nèi)容。</p><p>  7、 硬件設(shè)計(jì)以后,要求搭建電路,在軟件未編寫(xiě)完以前,編寫(xiě)測(cè)試軟件,先對(duì)硬件的各部分進(jìn)行測(cè)試。</p><p><b>  二、軟件設(shè)計(jì)</b></p><p>  本次軟件設(shè)計(jì)必須采用匯編語(yǔ)言,考試考核內(nèi)容是匯編語(yǔ)言。(在以后學(xué)習(xí)了單片機(jī)C語(yǔ)言以后,可以采用單片機(jī)C語(yǔ)言,

50、由于單片機(jī)C語(yǔ)言在系統(tǒng)開(kāi)發(fā)中有明顯的優(yōu)越性,掌握單片機(jī)C語(yǔ)言對(duì)以后可能從事該工作的同學(xué)有很大的益處。鼓勵(lì)同學(xué)用單片機(jī)C語(yǔ)言編程。)</p><p>  1、對(duì)編寫(xiě)軟件的要求:</p><p> ?、佘浖Y(jié)構(gòu)清晰、簡(jiǎn)捷、流程合理。</p><p> ?、诟鞴δ艹绦?qū)崿F(xiàn)模塊化、子程序化。這樣,既便于調(diào)試、鏈接,又方便移植、修改。</p><p>

51、  ③程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)分配合理。</p><p> ?、苓\(yùn)行狀態(tài)實(shí)現(xiàn)標(biāo)志化管理。各個(gè)功能程序運(yùn)行狀態(tài)、運(yùn)行結(jié)果以及運(yùn)行要求都設(shè)置狀態(tài)標(biāo)志(一般用位尋址區(qū)的位)以便查詢,程序的轉(zhuǎn)移、運(yùn)行、控制都可以通過(guò)狀態(tài)標(biāo)志條件來(lái)控制。</p><p> ?、蒈浖垢蓴_性能好。</p><p>  2、設(shè)計(jì)前的準(zhǔn)備工作</p><p>  1)定義系統(tǒng)

52、功能,畫(huà)出流程圖</p><p>  系統(tǒng)定義是在軟件設(shè)計(jì)前,把軟件承擔(dān)的任務(wù)明確出來(lái)。然后對(duì)軟件進(jìn)行功能分塊。畫(huà)出流程圖,特別注意有中斷時(shí),中斷流程圖和主流程圖一定是分開(kāi)的。這一部分是相當(dāng)重要的工作,對(duì)后面程序編寫(xiě)與調(diào)試是否順利有很多影響,一定要認(rèn)真對(duì)待。</p><p>  軟件設(shè)計(jì)有兩種方法:一種是自上而下,逐步細(xì)化;另一種是自下而上,先設(shè)計(jì)出每一個(gè)具體的模塊(子程序),然后再慢慢擴(kuò)

53、大,最后組成一個(gè)系統(tǒng)。兩種方法各有優(yōu)缺點(diǎn)。自上而下的方法在前期看不到什么具體效果,對(duì)于初學(xué)者來(lái)說(shuō),心中總是不踏實(shí)。而自下而上的方法一開(kāi)始就有結(jié)果,每設(shè)計(jì)并測(cè)試好一個(gè)模塊,就能看到實(shí)際的效果,給人一步一個(gè)足印的感覺(jué),能樹(shù)立信心。建議兩種方法結(jié)合運(yùn)用。主程序采用自上而下的方法,將它分成若干個(gè)功能相對(duì)獨(dú)立的較小的程序模塊。然后再采用自下而上的方法,設(shè)計(jì)一個(gè)模塊,調(diào)試一個(gè)模塊,加入主程序調(diào)試;再進(jìn)行下一個(gè)模塊設(shè)計(jì)和調(diào)試。所以在這一步驟就是設(shè)計(jì)主

54、程序的框架。</p><p>  根據(jù)問(wèn)題的定義,確定算法,并繪制程序框圖。注意必須確保程序框圖的正確性。比如在電腦時(shí)鐘中,考慮輸入“分”的數(shù)據(jù)的合理性,數(shù)據(jù)必須小于60,程序框圖中就不能忽視等于60如何處理。這是初學(xué)者常犯的錯(cuò)誤。</p><p>  2)合理選用數(shù)據(jù)類(lèi)型</p><p>  數(shù)據(jù)類(lèi)型選用,在用單片機(jī)C語(yǔ)言編程時(shí)特別重要。各種數(shù)據(jù)類(lèi)型的定義。是定點(diǎn)

55、數(shù)還是浮點(diǎn)數(shù);是有符號(hào)數(shù)還是無(wú)符號(hào)數(shù);是十六進(jìn)制數(shù)還是BCD碼。如果一個(gè)參數(shù)的變化范圍有限,就可以用定點(diǎn)數(shù)來(lái)表示,以簡(jiǎn)化程序設(shè)計(jì)和加快運(yùn)行速度。當(dāng)參數(shù)的變化范圍太寬時(shí),只好采用浮點(diǎn)數(shù)來(lái)表示。若要求數(shù)據(jù)的正負(fù)之分,則考慮定義有符號(hào)數(shù)。對(duì)于自然數(shù)列,為顯示方便,可以采用BCD碼,如電腦時(shí)鐘的時(shí)、分、秒。</p><p>  3)合理定義和分配存儲(chǔ)空間、定義標(biāo)志位。</p><p>  資源分配

56、的主要工作是RAM資源的分配。片外可擴(kuò)展RAM的容量要比片內(nèi)RAM大,在數(shù)據(jù)量較大的情況下,要擴(kuò)展片外RAM,通常用來(lái)存放批量大的數(shù)據(jù),如采集的大量數(shù)據(jù)的存儲(chǔ)。</p><p>  用匯編語(yǔ)言編程,片內(nèi)RAM的分配,是一個(gè)相當(dāng)麻煩,要有一定技巧的工作,那個(gè)變量放在那個(gè)存儲(chǔ)單元,該變量需要長(zhǎng)期保存還是保存到某一個(gè)階段,在用單片機(jī)匯編語(yǔ)言編程時(shí),不能象編普通的計(jì)算機(jī)程序那樣,否則容易造成RAM不夠用或者將有用的數(shù)據(jù)覆

57、蓋。注意用單片機(jī)C語(yǔ)言編程不存在這個(gè)問(wèn)題。</p><p>  系統(tǒng)上電復(fù)位時(shí),自動(dòng)定義0區(qū)為工作寄存器,1區(qū)為堆棧,并向2區(qū)、3區(qū)延伸。如果系統(tǒng)前臺(tái)程序要用1區(qū)、2區(qū)作為工作寄存器,就應(yīng)將堆??臻g重新規(guī)劃,常將堆棧安放在片內(nèi)RAM的高端,如60H—7FH。在工作寄存器的8個(gè)單元中,R0和R1具有指針功能,是編程的重要角色,應(yīng)充分發(fā)揮其作用,盡量避免用來(lái)做其他事情。20H~2FH這16個(gè)字節(jié)具有位尋址功能,用來(lái)存

58、放各種軟件標(biāo)志、邏輯變量、位輸入信息、位輸出信息副本、狀態(tài)變量、邏輯運(yùn)算的中間結(jié)果等。當(dāng)這些項(xiàng)目全部安排好后,保留一兩個(gè)字節(jié)備用,剩下的單元才可改作其他用途。30H—7FH為一般通用寄存器,只能存入整字節(jié)信息。通常用來(lái)存放各種參數(shù)、指針、中間結(jié)果,或用作數(shù)據(jù)緩沖區(qū)。</p><p>  RAM資源規(guī)劃好后,應(yīng)列出一張RAM資源的詳細(xì)分配清單,作為編程依據(jù)。為了增加可讀性,便于修改,一般對(duì)分配的存儲(chǔ)單元取名。如保存

59、當(dāng)前時(shí)間的時(shí)、分、秒取HOUR、MINI、SEC,編程時(shí)用變量名,編譯時(shí)只需在前面加HOUR EQU 24H即可(20H為分配給小時(shí)的存儲(chǔ)單元的地址)。</p><p>  3、編程時(shí)注意事項(xiàng):</p><p>  ①一定要嚴(yán)格根據(jù)框圖編程。</p><p><b> ?、谝欢ㄒ獙?xiě)注釋。</b></p><p>  

60、③通過(guò)編譯后,只表明語(yǔ)法沒(méi)錯(cuò),并不表明邏輯正確,一定要用不同的數(shù)據(jù)對(duì)模塊進(jìn)行測(cè)試。完全符合預(yù)定結(jié)果,方可確認(rèn)通過(guò)。</p><p> ?、軐⒃撃K加到主控模塊進(jìn)行測(cè)試,如果與預(yù)定結(jié)果不符,必須查找原因,進(jìn)行修改、調(diào)試。</p><p> ?、荼仨氉⒁怆S時(shí)保存調(diào)試通過(guò)的副本。以便當(dāng)新程序出現(xiàn)故障時(shí),隨時(shí)可返回前面的正確點(diǎn)重新開(kāi)始。</p><p><b> 

61、 4、軟件的調(diào)試</b></p><p>  調(diào)試程序一般應(yīng)經(jīng)過(guò)以下幾個(gè)步驟:</p><p>  1) 先進(jìn)行人工檢查,即靜態(tài)檢查。在寫(xiě)好一個(gè)程序以后,不要匆匆忙忙上機(jī),而應(yīng)對(duì)紙面上的程序進(jìn)行人工檢查。這一步是十分重要的,它能發(fā)現(xiàn)程序設(shè)計(jì)人員由于疏忽而造成的多數(shù)錯(cuò)誤。而這一步驟往往容易被人忽視。有人總希望把一切推給計(jì)算機(jī)系統(tǒng)去做,但這樣就會(huì)多占用機(jī)器時(shí)間,作為一個(gè)程序人員應(yīng)當(dāng)

62、養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),每一步都要嚴(yán)格把關(guān),不把問(wèn)題留給后面的程序。</p><p>  2) 在人工檢查無(wú)誤后,才可以上機(jī)調(diào)試。通過(guò)上機(jī)發(fā)現(xiàn)錯(cuò)誤稱(chēng)動(dòng)態(tài)檢查。在編譯時(shí)給出語(yǔ)法錯(cuò)誤的信息,可以根據(jù)提示的信息具體找出程序中出錯(cuò)之處并改正之。應(yīng)當(dāng)注意的是有時(shí)提示的出錯(cuò)并不是真正出錯(cuò)的行,如果在提示出錯(cuò)的行上找不到錯(cuò)誤的話應(yīng)當(dāng)?shù)缴弦恍性僬?。有時(shí)提示出錯(cuò)的類(lèi)型并非絕對(duì)準(zhǔn)確,由于出錯(cuò)的情況繁多,各種錯(cuò)誤互有關(guān)聯(lián),因止要善于分析,

63、找出真正的錯(cuò)誤,而不要只從字面意義上找出錯(cuò)信息。</p><p>  如果系統(tǒng)提示的出錯(cuò)信息多,應(yīng)當(dāng)從上到下一一改正。有時(shí)顯示出一大片出錯(cuò)信息往往使人感到問(wèn)題嚴(yán)重,無(wú)從下手。其實(shí)可能只有一二個(gè)錯(cuò)誤。例如,對(duì)使用的變量未定義,編譯時(shí)就會(huì)對(duì)所有含該變量的語(yǔ)句發(fā)出出錯(cuò)信息;有的是少了“}”或多了“}”有的是書(shū)寫(xiě)語(yǔ)句時(shí)忘記寫(xiě)“;”或是全角的“;”了,只要加上一個(gè)變量定義,或填加“};”就所有錯(cuò)誤都消除了。</p&g

64、t;<p>  3) 在改正語(yǔ)法錯(cuò)誤后,程序經(jīng)過(guò)連接就得到可執(zhí)行的目標(biāo)程序。目標(biāo)程序可以用Keil軟件進(jìn)行仿真。對(duì)仿真結(jié)果要作認(rèn)真分析??此欠穹弦蟆?lt;/p><p>  有時(shí),數(shù)據(jù)比較復(fù)雜,難以立即判斷結(jié)果是否正確??梢允孪瓤紤]好一批“試驗(yàn)數(shù)據(jù)”,輸入這些數(shù)據(jù)可以得出容易判斷正確與否的結(jié)果。可以在計(jì)算的輸出結(jié)果的程序地方加入一段輸出到串口的程序,利用串口窗口可以方便看到結(jié)果的。</p&g

65、t;<p>  4) 運(yùn)行結(jié)果不對(duì),大多屬于邏輯錯(cuò)誤。對(duì)這類(lèi)錯(cuò)誤往往需要仔細(xì)檢查和分析才能發(fā)現(xiàn)。可以采用以下辦法:</p><p>  KEILC51里的調(diào)試運(yùn)行就很好用的,可以在命令的窗口輸入程序中需要的數(shù)據(jù)和開(kāi)關(guān)量、中斷、I/O口的電平等來(lái)方便完成程序的運(yùn)行,使用時(shí)要先打開(kāi)Options for Target'Target1'(工程菜單里的目標(biāo)‘TARGET1'屬性)--

66、---點(diǎn)DEBUG----選中左邊use Simulator\load Application at sta\Go till main;按確定后退出到編輯畫(huà)面,要先對(duì)源程序進(jìn)行編譯后沒(méi)有錯(cuò)誤才可以按主菜單上的調(diào)試按鈕,進(jìn)行調(diào)試的,F(xiàn)10為子程序運(yùn)行式的單步、F11為單步調(diào)試。 </p><p><b>  三、系統(tǒng)聯(lián)調(diào)</b></p><p>  要想使單片機(jī)系統(tǒng)成功

67、運(yùn)行,從如下幾個(gè)方面來(lái)檢查分析:。</p><p>  1、電源:電源沒(méi)有成功供電。電源供電可以從如下幾個(gè)方面來(lái)分析。你用的電源本身沒(méi)有問(wèn)題。比如你用的開(kāi)關(guān)電源,開(kāi)關(guān)電源如果空載的時(shí)候輸出正常,那么接到你電路板上開(kāi)關(guān)電源的影響可以忽略不計(jì)了。下來(lái)要查你的電路板上有沒(méi)有問(wèn)題。比如:存在IC插反,51單片機(jī)本身插反,IC插反可能導(dǎo)致一些未知的問(wèn)題。</p><p>  供電接口松動(dòng),沒(méi)有正常給

68、上電路板供電。</p><p>  一塊電路板在上電以前,要用萬(wàn)用表的阻抗檔(有的是二極管檔)測(cè)量VCC和GND之間的阻抗,如果短路,那電路板肯定有問(wèn)題。如果不存在短路,則測(cè)量各個(gè)IC的電源引腳到VCC是否短路,各個(gè)地引腳到GND是否短路。然后再看關(guān)鍵電容,主要是電源部分的電解電容是否插反。</p><p>  2、檢查晶振是否接對(duì)。對(duì)于51單片機(jī),晶振比較簡(jiǎn)單,只要一個(gè)晶體振蕩器加2個(gè)3

69、0p電容。</p><p>  在有示波器的時(shí)候,很簡(jiǎn)單,直接用示波器觀察以下51的晶振腳,如果有3V附近的正弦波出現(xiàn),表明晶振已正常工作了。也可以 用萬(wàn)用表測(cè)量晶振腳的電壓,如果在2V附近,也表明晶振已正常工作了。匹配電容在你使用不同大小晶振的時(shí)候可能電容大小不同。需要查閱芯片手冊(cè)尋找一個(gè)最佳的電容。對(duì)于51而言,偏差50%影響不大。</p><p>  3、沒(méi)有擴(kuò)展片外ROM

70、時(shí),EA是否上拉到VCC。必需EA上拉到VCC,可以用4.7K-10K上拉,有的人甚至不用電阻,直接接VCC也可以用。不過(guò)不推薦直接VCC的方案。</p><p>  4、復(fù)位電路。51的復(fù)位電路要求不是很?chē)?yán)格,但是設(shè)計(jì)如果太草率也有可能出現(xiàn)問(wèn)題。注意有的新手可能會(huì)出現(xiàn)復(fù)位電路的電容和電阻位置弄反的情況。另外一種錯(cuò)誤就是復(fù)位時(shí)間不夠。</p><p>  5、如果還是不運(yùn)行,可以嘗試將電路

71、板上所有的IC(除單片機(jī))全部取下,然后通電看是否程序運(yùn)行。然后一片一片的上IC。</p><p>  單片機(jī)系統(tǒng)的調(diào)試是比較麻煩的,不但要充分掌握單片機(jī)及使用其他元件的性能,還要電路連接正確;軟件影響也很大,有很多同學(xué)調(diào)試時(shí),由于始終不顯示等原因,就無(wú)法看到運(yùn)行狀況。常用的調(diào)試辦法是先編一段顯示軟件,保證系統(tǒng)能正常工作,可以顯示你想顯示的內(nèi)容,這也是為什么第一個(gè)實(shí)驗(yàn)就是LED顯示的主要原因。然后再編寫(xiě)調(diào)試其他功

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論