MCS-51單片機試驗指導書_第1頁
MCS-51單片機試驗指導書_第2頁
MCS-51單片機試驗指導書_第3頁
MCS-51單片機試驗指導書_第4頁
MCS-51單片機試驗指導書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MCS 51單片機實驗指導書黃惟公鄧成中編寫西華大學機械工程與自動化系機械電子工程教研室目錄單片機實驗板原理圖與零件布置圖 2說明5實驗1紅綠燈限制6實驗2LED顯示9'I I 'J-.j ',-A . | ! IF.實驗3鍵盤的應用11I| I F -'i-'"內4實驗4定時、中斷的應用13 I IJ四位LED顯示參考程序15實驗5計數器實驗18實驗6A/D轉換器19實驗7D/A轉換器24實驗8PC機與單片機的串行通訊實驗26附:ISP下載程序使用說明 29MedWin®成開發(fā)環(huán)境用戶手冊 33-74Practiceisabestw

2、aytoleattgS 是學習單片機的最好方法圖1單片機實驗板原理圖圖2實驗板零件布置圖圖3實驗板印制板圖說明1每次實驗學生必須進行預習.2實驗提供的參考程序只是為學生提供了一個參考樣本,學生必須 按實驗報告的要求完成的思考題中的有關實驗.3有條件的同學可以完成所有思考題中要求的實驗.4西華大學的網站上有所有本實驗需要使用的軟件下載.5對本實驗裝置有興趣,希望自己制作的同學,可與有關老師聯系.實驗1紅綠燈限制實驗目的:初步學習如何用開發(fā)系統調試程序.了解89C51單片機I/O端口的結構特點.掌握89C51單片機I/O端口的限制和使用方法.相關知識:89C51單片機的P0P3四個端口均可為通用

3、I/O 口使用.89C51單片機的P0P3端口,輸入數據可以緩沖,輸出時能夠鎖存,并具有一定的帶負載水平.實驗要求:利用單片機的P1.3、P1.4、P3.3限制3個LED指示燈,模仿交通限制燈.紅燈亮4秒;黃燈亮2秒;黃燈、綠燈同時亮1秒;綠燈亮4秒,如此循環(huán).電路:電路圖見“圖1單片機實驗板原理圖有關局部.參考程序清單:ORG0000HAJMPMAINORG0030HMAIN:CLRP1.3;紅燈亮 4 秒SETBP1.4SETBP3.3MOVR0,#40LCALLDELAYSETBP1.3;黃火T亮2秒CLRP1.4SETBP3.3MOVR0,#20LCALLDELAYCLRP1.4;黃綠

4、燈亮1秒CLRP3.3SETBP1.3MOVR0,#10LCALLDELAYSETBP3.3;綠火T亮4秒MOVR0,#40LCALLDELAYAJMPMAIN 循環(huán) .I ,. . ./DELAY:MOVA,R0MOVR5,A延時程序,R0 = 10延時1秒DELAY3:MOVR6,#211DELAY2:MOVR7,#00HDELAY1:DJNZR7,DELAY1DJNZR6,DELAY2DJNZR5,DELAY3 RET END操作步驟:參考MedWin真軟件簡介編輯程序:按參考程序輸入并命名為 led1 . Asm匯編程序并裝入,如出現標點符號方面或語法錯誤,編輯、修改并“產生代碼并裝入

5、后,結果如下列圖所示:仿真軟件調試; “查看 一 “存放器以及“特殊功能存放器 一 “調試 一 “單步觀察每一步運行后,存放器的變化是否與預期一致.每當運行到 DELAY時注意觀察“特殊功能存放器中的 P1.3、P1.4、P3.3 是否為程序編寫時所預期的結果,假設是,那么證實本程序正確.也可以利用斷點功能來調試程序,在DELAYS RET指令前單擊設置兩個斷點一 “全速運行.結果:“全速運行 一次,PC指針停留在第一個斷點處用斷點調試程序的方法很重要;再“全速運行 ,PC指針停留在第二個斷點處:繼續(xù)下去, 那么交替停留在兩個斷點處.這說明程序按要求執(zhí)行到了延時子程序. 下載程序后調試. 將仿

6、真器與計算機通過打印機并行連接好.按ISP說明書的要求將程序下載到用戶板上.這樣,程序就會真正 在用戶的硬件系統中運行,其運行狀況正確與否一目了然.程序調試的方法有很多,并且不同的情況會有不同的調試手段, 惟有在實戰(zhàn) 中不斷積累經驗,才能熟中生巧,縮短程序開發(fā)的時間周期, 產生更大的效 益.思考題:1 .怎樣計算延時子程序的時間?2 .如何計算與LED連接的電阻的阻值?3 .畫出單片機實驗板、開發(fā)系統、PC機之間的連接框圖.4 .如何用89C51的I/O端口限制繼電器,畫出電路原理圖.實驗報告:畫出本實驗相關的原理圖.答復思考題中1、3、4題,選作第2題.對本次實驗有何建議和感想?實驗2LED

7、顯示實驗目的:' J, A了解八段碼LED的顯示原理.掌握單片機限制 LED顯示器的編程方法.相關知識:1 .八段LED數碼LED顯示器件分為共陰極與共陽極兩種,其顯示原理與引 腳分布見教材的有關局部.2 .為了在LED上顯示字母和數字,必須根據LED與CPU的連接方法,事先計算出LED的顯示“段碼,通過軟件譯碼來實現.實驗要求:循環(huán)顯示09十位數字,時間間隔為 1秒.電路:參考程序:ORG0000HAJMPMAINORG0030HMAIN:MOVP2,#00H使左邊LED不顯示黑SETBP2.7;用右邊LED顯示HERE:MOVR0,#00HMOVR1,#0AHLP:MOVA,R0M

8、OVDPTR,#TAB09段碼表的首地址,MOVCA,A+DP TR 表指令MOVP0,ALCALLDELAY 延時 1 秒INCRQ顯示內容加 1DJNZR1,LR 判斷09是否顯示完了AJMPHE片E循環(huán)DELAY:MOVR5,#10延時1秒子程序DELAY3:MOVR6,#211DELAY2:MOVR7,#00DELAY1:DJNZR7,DELAY1DJNZR6,DELAY2DJNZR5,DELAY3RETORG0100HTAB:DB88H,0BBH,4AH,2AH,39HDB2CH,0CH,0BAH,08H,28HEND思考題:1 .段碼與那些因素有關,寫出本實驗中A B C、D、E、

9、F、P的段碼.2 .將本實驗程序改寫成顯示099.實驗報告:畫出本實驗相關的原理圖.答復思考題.對本次實驗有何建議和感想?實驗3鍵盤的應用實驗目的:掌握獨立鍵盤的電路連接和編程方法.相關知識:獨立鍵盤的原理,預防鍵盤的抖動.實驗要求:1 .按KEY1,只有紅燈亮;按 KEY2,只有黃燈亮;按 KEY3只有綠燈亮.2 . LED顯示0,每按KEY1一次,LED顯示加1,至9后,再循環(huán)從0顯示到9.電路:電路圖見“圖1單片機實驗板原理圖有關局部.L- - I. j 廣參考程序按KEY1只有紅燈亮;按KEY2只有黃燈亮;1,5 >_ y /_/ *按KEY3只有2B丁亮:ORG0000H.I

10、X、丁_ '/ j!AJMPKEY1ORG0030HKEY1:SETBP2.2;將 P2.2 置 1JBP2.2,KEY1 ;有鍵按下 P2.2=0KEY11:ACALLDELAYO寸,預防抖動SETBP2.2JNBP2.2,KEY11;鍵是否釋放CLRP1.3;紅燈亮SETBP1.4;黃燈黑SETBP3.3;綠燈黑KEY2:SETBP2.1JBP2.1,KEY2KEY22:ACALLDELAYSETBP2.1JNBP2.1,KEY22SETBP1.3CLRP1.4SETBP3.3KEY3:SETBP2.0JBP2.0,KEY3KEY33:ACALLDELAYSETBP2.0JNBP2

11、.0,KEY33SETBP1.3SETBP1.4CLRP3.3AJMPKEY1DELAY請自己編寫END思考題:1 .參考程序在運行時必須依次按鍵,如何改為按LED對應的鍵,使對應的LED點亮?2 .用實驗板左邊的鍵實現按鍵中斷,每按鍵一次,LED加1,從09循環(huán),如何實現?請編程實現. 1,5 >_ y /_/ *實驗報告:畫出本實驗相關的原理圖.寫出調試通過的 LED顯示0,每按KEY1一次,LED顯示加1,至9后,再循 環(huán)從0顯示到9的程序,并加相關注釋.思考題2的調試程序.對本次實驗有何建議和感想?實驗4用中斷實現LED顯示實驗目的:掌握定時器的使用方法.掌握中斷的使用方法.實驗

12、要求:利用定時器和中斷方式,做一個顯示09的秒鐘.電路:編程思想:用定時器T0,方式1,產生每隔1/150秒的中斷,在中斷效勞程序中計算中 斷的次數,產生150次中斷為1秒,并進行顯示.參考程序清單:LED_1EQUP2.5LED_2EQUP2.7ORG0000HAJMPMAINORG000BH;T沖 斷效勞程序入口LJMPINTR0ORG0030HMAIN:MOVR0,#00HMOVR2,#150CLRLED_1SETBLED_2MOVTMOD,#01H;T定時,工作方式 1MOVTH0,#0DEH;T0t 數初值MOVTL0,#0E0HSETBEA.I X_ f/& SETBET0

13、SETBTR0AJMP$;等待至ij中斷INTR0:MOVTH0,#0DEH;T0重賦初值MOVTL0,#0E0HMOVDPTR,#TABS 表顯示MOVA,R0MOVCA,A+DPTRMOVP0,ADJNZR2,LP;中斷150次為1秒MOVR2,#150INCR0CJNER0,#0AH,LPMOVR0,#00H跳回循環(huán)LP:RETIORG0200HTAB: DB88H,0BBH,4AH,2AH,39HDB2CH,0CH,0BAH,08H,28HEND實驗報告:1 .畫出本實驗相關的原理圖.2 .繪出參考程序的詳細流程圖.3 .用計時器中斷的方法與用軟件延時的方法產生的秒鐘相比擬,有何優(yōu)點?

14、4位LED顯7K的參考程序:*;程序名稱:display.asm 顯示程序;本科生產實習版,此程序供參考,注意程序的注釋和編程的風格;主要原理:用定時器定時中斷,每隔 10ms顯示一位; 黃惟公、鄧成中 2003.2.25;*LED_0EQU7FK示緩沖區(qū);LED_0存放個位數要顯示的內容LED_1EQU7EH;;放十位數要顯示的內容LED_2EQU7DH¥放百位數要顯示的內容LED_3EQU7CH¥放千位數要顯示的內容DIS_FLAGEQU7BK示位標記,DIS_FLAG=0顯示個位;;DIS_FLAG=1顯示十位,I ft ' ;DIS FLAG=2,顯示百位;

15、DIS_FLAG=3顯示千位DIGIT0EQUP2.7;個位限制位DIGIT1EQUP2.5;十位限制位DIGIT2EQUP2.6;百位限制位DIGIT3EQUP2.4;千位限制位BELLEQUP2.3蜂鳴器限制位ORG0000HAJMPMAINORG000BH;T葉斷效勞程序入口LJMPINTR0ORG0030HMAIN:MOVLED_0,#1 個位數顯示 1MOVLED_1,#2十位數顯示2MOVLED_2,#3;百位數顯示 3MOVLED_3,#4千位數顯示 4MOVDIS_FLAG,#00為顯示個位作準備MOVP2,#00HSETBBELL關蜂鳴器限制MOVTMOD,#01H;T定時,

16、工作方式 1MOVTH0,#0EAH;T計數初值MOVTL0,#00HSETBEASETBET0SETBTR0sjmp$.* ;INTR0:MOVTH0,#0EAH重載 T0計數初值MOVTL0,#00HLCALLDISPLAYINTREND:RETI;*;顯示子程序;根據DIS_FLAG的內容決定顯示哪一位;從顯示緩沖區(qū)中調出要顯示的數據放入A,查段碼表后顯示;因占用存放器 A,所以把A推入堆棧I ,;*DISPLAY:PUSHACC.I -%b.甲y :MOVA,DIS_FLAGL0:CJNEA,#00H,L1;根據 DIS_FLAG的內容決定顯示哪一位AJMPDISLED0;DIS_FL

17、AG=01t 顯示個位子程序L1:CJNEA,#01H,L2AJMPDISLED1;DIS_FLAG=1轉顯示十位子程序L2:CJNEA,#02H,L3AJMPDISLED2;DIS_FLAG=2$t 顯示百位子程序L3:AJMPDISLED3;DIS_FLAG=3轉顯示干位子程序DISLED0:MOVA,LED_0將個位要顯示白內容放入ASETBDIGIT0;用P2.7翻開限制個位的三極管CLRDIGIT3;用P2.4關閉限制干位的三極管MOVDIS_FLAG,#01H下一次顯示十位做好標志LJMPDIS;轉查表顯示局部DISLED1:MOVA,LED_1SETBDIGIT1CLRDIGIT

18、0MOVDIS_FLAG,#02HLJMPDISDISLED2:MOVA,LED_2SETBDIGIT2CLRDIGIT1MOVDIS_FLAG,#03HSJMPDISDISLED3:MOVA,LED_3SETBDIGIT3CLRDIGIT2MOVDIS_FLAG,#00HDIS:MOVDPTR,#TABg段碼表MOVCA,A+DPTRMOVP0,ADISEND:POPACCRETTAB:DB88H,0BBH,4AH,2AH,39H,2CH,0CH,0BAH,08H,28H .I ,. . ./END實驗5計數器實驗實驗目的:掌握計數器的使用方法.實驗要求: ,丁 1 I利用計數器,記錄關斷管

19、被遮斷的次數,并用 4位LED顯示出來.電路:電路圖見“圖1單片機實驗板原理圖有關局部.編程思想:用計數器T0方式1 ,記錄光斷管被遮斷的次數.修改指導書中提供的 4位LED顯示程序改用 T1產生定時中斷進行顯示,在主程序中循環(huán)讀取 T0存放器THR TL0中的計數值,進行十進制轉換后,分為千、百、十、個 位,裝入4位LED顯示程序的數據緩沖區(qū),進行顯示.實驗報告:1 .畫出本實驗相關的原理圖.2 .繪出參考程序的詳細流程圖.實驗6A/D轉換器實驗目的:掌握串行AD轉換器的使用方法. 學習正規(guī)程序的書寫與注釋方法.實驗要求:利用TLC0832采集直流05V的電壓,并顯示結果.電路:電路圖見“圖

20、1單片機實驗板原理圖有關局部.將單片機實驗板的 AN1接穩(wěn)壓電源的可調節(jié)電源端,GNDg穩(wěn)壓電源的地端調整直流電壓時千萬不要超過 5v,否那么會燒壞TLC0832芯片.編程思想:用定時器T0,方式1,產生每隔1/150秒的中斷,在中斷效勞程序中顯示 AD轉換的數據.1,5 >_.-y /_/ y TLC0831/0832 串行 A/D 簡介:主要技術特點:8位分辨率-易于和微處理器接口或獨立使用滿比例尺工作或用 5v基準電壓-可單通道或差分輸入選擇 一單5V供電,輸入范圍05V 輸入和輸出與 TTL和CMO廉容 在Fcloc=250Hz時,轉換時間為 32us 總非調整誤差土 =LSB這

21、些器件是8位逐次逼近模數轉換器.TLC8031有1個輸入通道.TLC8032有2個輸入通道.TLC8031 TLC8032使用采樣數據比擬器的結構,用逐次逼近流程, 轉換差分模擬輸入信號.要轉換的輸入電壓連到一個輸入端,相對于地單端輸入或另一輸入端差分輸入.TLC0832的輸入端可以分配為正極 + 或負極一.TLC0831只有1個極性已固定配置的差分輸入端,因此不需 要地址彳t號.TLC0831可以使用差分信號,連在它的IN+和IN端;或使IN-連到地,IN+連到信號,作為單端輸入.當連到分配為正端的輸入電壓低于 分配為負端的輸入電壓時,轉換結果為全0.TLC8031的工作時序如圖.置CS為低

22、,方能啟動轉換開始,使所有邏輯電路使能.cs在整個轉換過程中必須置為低. 接著從處理器接受一個時鐘,一個時鐘的時間間隔被自動插入,以使多路轉換器選定的通道穩(wěn)定.do脫離高阻狀態(tài),提供一個時鐘的時間間隔的前導低電平,以使多路器穩(wěn)定.在轉換過程中,轉換數據同時從DO端輸出,以最高位MSB開頭.經過8個時鐘后,轉換完成.當CS變高,內部所有存放器清零.此時,輸出電路變?yōu)楦咦钁B(tài).如果希望開始另一個轉換,CS必須做一個從高到低的跳變,后面緊接地址數據.TLC8032的輸入配置在多路器尋址時序中進行,多路器地址通過DI端移入轉換器.多路地址選擇模擬輸入通道,也決定輸入是單端輸入還是差分 輸入.當輸入是差分

23、的,要分配輸入通道的極性.另外在選擇差分輸入模式時,極性也可以選擇.輸入通道的兩個輸入端的任一個都可以作為正極或負 極.在每個時鐘的上升跳變時,DI端的數據移入多路器地址移位存放器.DI端的第一個邏輯高,表示起始位.緊接的兩位是 TLC8032的配置位.在 連續(xù)的每個時鐘的上升跳變,啟動位和配置位移入移位存放器.當啟動位移入多路器存放器的開始位置后,輸入通道選通,轉換開始.TLC8032的DI端在轉換過程中和多路器的移位存放器是關斷的.TLC8032在輸出以最高位MSB開頭的數據流后,又以最低位LSB開頭重輸出一遍前面的數據流.DI和DO端可以連在一起,通過一根線連到處理器的一個雙向 IO 口

24、進行限制.之所以能這樣做是由于 DI端只在多 路器尋址時被檢測,而此時DO端仍為高阻狀態(tài).TLC8031和TLC8032的時序圖如下:以下是0831的參考程序,請在理解此程序的根底上,略作改動,以 TLC0832編寫同樣功能的程序.0831參考程序清單:;公司名稱:四川工業(yè)學院機械工程與自動化系;程序名稱:串口 AD轉換;創(chuàng)立人:程玉華研究生日期: 2001-09-08;修改人:黃惟公日期: 2001-09-028;功能描述:在單片機實驗板上測試直流電壓;其他說明:供學習參考;版本:V1.0;89C51與TLC0831管腳的連接:;CS(P1.0)TLC0831 的/CS;CK(P1.2)TL

25、C0831 的 CLK;D(P1.1)TLC0831的數據輸出;定義:CKEQUP1.2DEQUP1.1CSEQUP1.0ORG0000HAJMPMAINORG000BH;T葉斷效勞程序入口AJMPDISPLAYORG0030HMAIN:MOVTMD,#01H;T0t時,工作方式 1MOVTH0,#0DEH;T0t 數初值MOVTL0,#0E0HSETBEA;CPU,T叫中斷SETBET0SETBTR0AJMP$;等中斷;程序名稱:DISPLAY中斷效勞程序;功能:LED的顯示、將采集的二進制數據轉換為便于顯示的十進制碼; ,. I;請將4位LED顯示的程序作修改后使用; ;程序名稱:TLC0

26、831數據采集子程序;功能:采集TLC0831采集的數據;數據采集的結果存:20H;占用的存放器:R7, A, CYTLC0831:MOVR7,#8CLRCS芯片有效CLRCK按時序要求拉低電平SETBCK置高時鐘端電平CLRCKSETBCKTLC0831A:CLRCKMOVC,DRLCA讀出數值SETBCKDJNZR7,TLC0831ASETBCS MOV20H,A保存數值 RET;子程序名稱:BINBCD;功能:將AD轉換結果處理成相應的電壓值,并將一字節(jié)十六進制數轉化;為十進制數;入口: R0十六進制數;出口: 21H-十進制數十位數用于 LED0顯示;;22H-十進制數個位數用于 LE

27、D1顯示;占用的存放器:A,BBINBCD:MOVB,#50MOVA,20HMULABMOVA,B取AB乘積的局八位MOVB,#10DIVABMOV21H,A放十位IMOV22H,B放個位RETORG0200HDB88H,7BH,0BBH,2AH,39H,2CH,0CH,0BAH,08H,28HEND實驗報告:1 .畫出本實驗相關的原理圖.2 .繪出參考程序的詳細流程圖.3 .理解TLC0831的參考程序,略作改動,以TLC0832編寫同樣功能的程序.實驗7D/A轉換器實驗目的:掌握串行DA轉換器的使用方法.實驗要求:利用MAX517俞出一個正弦波,并送到示波器上顯示.電路:電路圖見“圖1單片

28、機實驗板原理圖有關局部.MAX51神彳f D/A簡介:MAX517是8位電壓輸出型數模轉換器,采用I 2c的雙總線串行接口,支持多個設備間的通訊,內部有精密輸出緩沖源,支持雙極性工作方式, 工作電壓為5V.工作時序見下列圖. MAX51礙一單DAC轉換器,參考電壓由外部引腳 接入.數據傳輸率可高達 400bps.總線上可掛4個器件通過 AD0 AD1選 擇.MAX51參考程序輸出數據:;SDD為芯片數據線 ;SKK為芯片時鐘線 DAC SETBSDDSETBSKK 圖工作時序CLRSDDCLRSKK MOVA,#58H芯片地址本例為 00 LCALLBTYPE 送出 MOVA,#00H轉換命令

29、 LCALLBTYPE 送出 MOVA,R4 R4中存放待轉換的數據 LCALLBTYPE 送出 SETBSKK時鐘顯置高SETBSDD數據線置高,轉換停止 RETBTYPE:MOVR7,#8摸才IIC 送出8位數據 RLCA MOVSDD,C SETBSKKCLRSKK DJNZR7,PBIT CLRSDD SETBSKK CLRSKK RET實驗報告:1 .畫出本實驗相關的原理圖.2 .繪出參考程序的詳細流程圖.實驗8PC機與單片機的串行通訊實 驗實驗目的:掌握MCS51串行通訊的編程方法.實驗要求:利用提供的PC機與MCS51串口通訊的程序,編寫調 MCS51程序,到達以下 要求:在串口通訊程序界面的“發(fā)送區(qū)欄中填寫0009中任意數字后,可以在單片機實驗板上看見右端LED上顯示相同值的一位數字;同時,MCS5俾片機將接受的數字發(fā)送給 PC機,使串口通訊程序界 面的“接受區(qū)欄中出現與發(fā)送數據相同的數.電路:電路圖見“圖1單片機實驗板原理圖有關局部.參考程序:ORG0000HAJMPMAINORG0023H串口中斷效勞程序入口地址AJMPRECEV E專中斷效勞程序 ORG0030HMAIN: SETBP2.6;置LED右端的燈亮CLRP2.5MOVTMOD,#20H

溫馨提示

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

最新文檔

評論

0/150

提交評論