MCS51單片機(jī)實(shí)驗(yàn)指導(dǎo)書_第1頁
MCS51單片機(jī)實(shí)驗(yàn)指導(dǎo)書_第2頁
MCS51單片機(jī)實(shí)驗(yàn)指導(dǎo)書_第3頁
MCS51單片機(jī)實(shí)驗(yàn)指導(dǎo)書_第4頁
MCS51單片機(jī)實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

PAGEMCS-51單片機(jī)實(shí)驗(yàn)指導(dǎo)書主編陳永健編者林建華魏有法閩南理工學(xué)院實(shí)踐教學(xué)中心二0一0年九月PAGE前言單片機(jī)實(shí)驗(yàn)是掌握編程應(yīng)用的一門重要實(shí)踐課程,為今后開展電子科技制作、創(chuàng)新設(shè)計(jì)以及研發(fā)打下堅(jiān)實(shí)基礎(chǔ)。學(xué)習(xí)本實(shí)驗(yàn)課程對(duì)鞏固和加深課堂教學(xué)內(nèi)容,提高學(xué)生實(shí)際工作技能,培養(yǎng)科學(xué)作風(fēng),為學(xué)習(xí)后續(xù)課程和從事實(shí)踐技術(shù)工作奠定基礎(chǔ)具有重要作用。為適應(yīng)電子科學(xué)技術(shù)的迅猛發(fā)展和教學(xué)改革不斷深入的需要,實(shí)驗(yàn)中心購置了新型單片機(jī)、微機(jī)接口一體化仿真實(shí)驗(yàn)箱,并編寫了這本相應(yīng)的實(shí)驗(yàn)指導(dǎo)書。本書以《單片機(jī)原理及應(yīng)用課程教學(xué)基本要求》中確定的教學(xué)實(shí)驗(yàn)要求為基礎(chǔ),包括了《單片機(jī)原理與接口技術(shù)》課程全部實(shí)驗(yàn)內(nèi)容。實(shí)驗(yàn)系統(tǒng)采用達(dá)愛思DAIS仿真集成開發(fā)環(huán)境、基于8032CPU的51單片機(jī)。MCS-51單片機(jī)實(shí)驗(yàn)是基于匯編語言(助記符語言)的編程語言、是一門面向計(jì)算機(jī)的硬件的語言,學(xué)好本實(shí)驗(yàn)課程對(duì)今后學(xué)習(xí)KLC編程、VHDL、C++等高級(jí)語言打下扎實(shí)基礎(chǔ),為后繼單片機(jī)課程的學(xué)習(xí)提供程序編程的基礎(chǔ)。實(shí)驗(yàn)內(nèi)容的安排遵循由淺到深,由易到難的規(guī)律??紤]不同層次需要,既有測試、驗(yàn)證的內(nèi)容,也有設(shè)計(jì)、研究的內(nèi)容。實(shí)驗(yàn)只提供設(shè)計(jì)要求及程序思路(流程圖),由學(xué)生自己完成方案選擇、實(shí)驗(yàn)步驟及程序編寫等,充分發(fā)揮學(xué)生的創(chuàng)造性和主動(dòng)性。在編寫本書中,閩南理工學(xué)院實(shí)踐中心主任李梅審閱并提出許多寶貴意見,同時(shí)得到電子教研室林建華等老師的幫助與支持。在此表示中心感謝。編者:陳永健2010年9月MCS-51單片機(jī)實(shí)驗(yàn)指導(dǎo)本實(shí)驗(yàn)指導(dǎo)是為適應(yīng)各大專、本科院校開設(shè)單片機(jī)原理與應(yīng)用方面的課程設(shè)置需要而編寫,供學(xué)生編程用。完成本實(shí)驗(yàn)指導(dǎo)中的實(shí)驗(yàn),可使學(xué)生基本掌握MCS-51單片機(jī)的結(jié)構(gòu)原理、程序框圖和實(shí)驗(yàn)步驟。免除了主講教師和實(shí)驗(yàn)輔導(dǎo)老師為設(shè)計(jì)、準(zhǔn)備調(diào)試實(shí)驗(yàn)線路和實(shí)驗(yàn)程序所需的工作量,節(jié)約寶貴的時(shí)間。一、實(shí)驗(yàn)指導(dǎo)書中所列的實(shí)驗(yàn)程序已經(jīng)固化到系統(tǒng)管理CPU中,在“P.”狀態(tài)下,按動(dòng)“0”鍵→再按“EV/UN”鍵,將程序傳送到以0000H為起始地址的RAM中。因?qū)嶒?yàn)程序中采用子程序形式較多,要互相調(diào)用,所以必須把程序全部傳送到實(shí)驗(yàn)系統(tǒng)中,對(duì)中斷入口等地址的指令按照實(shí)驗(yàn)要求輸入。其中MCS-51實(shí)驗(yàn)程序地址范圍:0000~1FFFH,您可以通過系統(tǒng)自帶的鍵盤顯示輸入各種命令運(yùn)行系統(tǒng)RAM中的實(shí)驗(yàn)程序,顯示實(shí)驗(yàn)結(jié)果完成各個(gè)實(shí)驗(yàn)項(xiàng)目。二、實(shí)驗(yàn)接線圖上的粗實(shí)線表示用戶在實(shí)驗(yàn)時(shí)要用導(dǎo)線連接起來。三、所有實(shí)驗(yàn)都是相互獨(dú)立的,次序上也沒有固定的先后關(guān)系,在使用本書進(jìn)行教學(xué)時(shí),教師可根據(jù)貴校(院)的教學(xué)要求,選擇相應(yīng)實(shí)驗(yàn)。四、對(duì)同一問題的解決辦法往往不是唯一的歡迎用戶在使用本書過程中提出最為優(yōu)秀的實(shí)驗(yàn)方案,指示錯(cuò)誤和不足,希望用戶反饋給我們,以便及時(shí)修改。目錄第一部分基礎(chǔ)性實(shí)驗(yàn)(軟件實(shí)驗(yàn))TOC\o"1-3"\u實(shí)驗(yàn)一清零程序 1實(shí)驗(yàn)二拆字與拼字程序 3實(shí)驗(yàn)三數(shù)據(jù)區(qū)傳送子程序和數(shù)據(jù)排序?qū)嶒?yàn) 6實(shí)驗(yàn)四查找相同數(shù)個(gè)數(shù) 9實(shí)驗(yàn)五碼型轉(zhuǎn)換實(shí)驗(yàn) 11實(shí)驗(yàn)六八段數(shù)碼管顯示 14實(shí)驗(yàn)七鍵盤掃描顯示實(shí)驗(yàn) 18第二部分綜合設(shè)計(jì)性實(shí)驗(yàn)(硬件實(shí)驗(yàn))實(shí)驗(yàn)八P1口使用實(shí)驗(yàn) 25實(shí)驗(yàn)九中斷控制實(shí)驗(yàn) 31實(shí)驗(yàn)十8255控制交通燈實(shí)驗(yàn) 36實(shí)驗(yàn)十一D/A輸出方波 41實(shí)驗(yàn)十二A/D轉(zhuǎn)換實(shí)驗(yàn) 44實(shí)驗(yàn)十三I/O口擴(kuò)展實(shí)驗(yàn) 49實(shí)驗(yàn)十四外部存儲(chǔ)器擴(kuò)展實(shí)驗(yàn) 52實(shí)驗(yàn)十五步進(jìn)電機(jī)實(shí)驗(yàn) 56第三部分附錄附錄一Dais系統(tǒng)介紹 60附錄二DaisMCS-51開發(fā)軟件使用說明 62附錄三可編程接口芯片引腳圖 63PAGE64實(shí)驗(yàn)一清零程序一、實(shí)驗(yàn)?zāi)康?/p>

掌握匯編語言設(shè)計(jì)和調(diào)試方法,熟悉鍵盤操作。二、實(shí)驗(yàn)內(nèi)容把片內(nèi)RAM的20H~2FH的16個(gè)單元的內(nèi)容清零。三、實(shí)驗(yàn)原理1、實(shí)驗(yàn)流程2、實(shí)驗(yàn)程序;將片內(nèi)RAM的20~2F單元清零org0clra;清零ACCmovr0,#0;計(jì)數(shù)器初值movr1,#20h;RAM地址loop:mov@r1,a;將0送(R1)incr1incr0;字節(jié)數(shù)加1cjner0,#16,loop;不到16個(gè)字節(jié)再清sjmp$end四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、確認(rèn)實(shí)驗(yàn)箱正常工作。2、在PC聯(lián)機(jī)狀態(tài)下,點(diǎn)擊“”,輸入程序,并保存。3、編譯、連接、裝載,用連續(xù)或單步運(yùn)行程序。4、運(yùn)行結(jié)果檢查:1)單步運(yùn)行時(shí),每走一步,可觀察其運(yùn)行結(jié)果,此程序單步運(yùn)行時(shí)會(huì)出現(xiàn)問題,發(fā)現(xiàn)并解決它。2)連續(xù)運(yùn)行狀態(tài)下,應(yīng)按“”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出用戶運(yùn)行狀態(tài)返回監(jiān)控,然后在用相應(yīng)的命令鍵觀察與檢查結(jié)果。5、記錄觀察片內(nèi)RAM的20H~2FH執(zhí)行前后的結(jié)果及數(shù)據(jù)。6、記錄匯編調(diào)試成功的程序并分析其設(shè)計(jì)思路,寫出個(gè)人體會(huì)及收獲。六、預(yù)習(xí)思考題修改程序,把片內(nèi)RAM的20H~2FH的內(nèi)容改成0FFH。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、若有實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)二拆字與拼字程序一、實(shí)驗(yàn)?zāi)康恼莆諈R編語言設(shè)計(jì)和調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容1、將片內(nèi)RAM的20H內(nèi)容拆開,高位送21H,低位送22H。2、將20H的低位、21H的低位送22H的高位、低位。三、實(shí)驗(yàn)原理1、實(shí)驗(yàn)流程

2、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋)拆字程序ORG0MOVA,20hANLA,#0FHMOV21H,AMOVA,20HANLA,SJMP$END拼字程序ORG0MOVA,20HANLA,#0FHMOVB,AMOVA,21HANLA,MOV22H,ASJMP$END四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、確認(rèn)實(shí)驗(yàn)箱正常工作。2、在PC聯(lián)機(jī)狀態(tài)下,點(diǎn)擊“”,輸入程序,并保存。3、編譯、連接、裝載,用連續(xù)或單步運(yùn)行程序。4、運(yùn)行結(jié)果檢查:1)在單步運(yùn)行時(shí)每走一步可觀察其運(yùn)行結(jié)果。2)在連續(xù)運(yùn)行狀態(tài)下,應(yīng)按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出用戶運(yùn)行狀態(tài)返回監(jiān)控,然后再用相應(yīng)的命令鍵觀察與檢查2000~2002h中內(nèi)容變化情況。5、記錄觀察到的結(jié)果及數(shù)據(jù),回答思考題。6、記錄匯編調(diào)試成功的程序并分析其設(shè)計(jì)思路,寫出個(gè)人體會(huì)及收獲。六、預(yù)習(xí)思考題使用其它方法編程實(shí)現(xiàn)如用SWAP指令。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、若有實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)三數(shù)據(jù)區(qū)傳送子程序和數(shù)據(jù)排序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康?、熟悉MCS-51指令系統(tǒng),掌握程序設(shè)計(jì)方法。2、掌握循環(huán)指令的使用,利用冒泡法進(jìn)行數(shù)據(jù)處理。二、實(shí)驗(yàn)內(nèi)容1、把片內(nèi)RAM的20H起始的16逐步形成單元傳送到30H地址空間。

2、編寫并調(diào)試一個(gè)排序子程序,其功能為用冒泡法將內(nèi)容RAM中幾個(gè)單元字節(jié)無符號(hào)的正整數(shù),按從小到大的次序重新排列。三、實(shí)驗(yàn)原理1、數(shù)據(jù)區(qū)傳送實(shí)驗(yàn)流程2、數(shù)據(jù)排序流程圖3、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋)(1)數(shù)據(jù)區(qū)傳送子程序ORG0MOVR0,MOVR1,MOVR7,LOOP:MOVA,@R0MOV,ADJNZR7,LOOPSJMP$END(2)數(shù)據(jù)排序?qū)嶒?yàn)org0movr3,#50h;起始地址start:mova,r3;指針?biāo)蛂0movr0,amovr7,#10h;長度送r7clr00h;標(biāo)志位為0mova,@r0ql2:incr0movr2,aclrcmov22h,@r0cjnea,22h,ql3;相等嗎?setbcql3:mova,r2jcql1;大于交換位置setb00hxcha,@r0decr0xcha,@r0incr0;大于交換位置ql1:mova,@r0djnzr7,ql2jb00h,start;一次循環(huán)中有交換繼續(xù)sjmp$;無交換退出end四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、在PC聯(lián)機(jī)狀態(tài)下,點(diǎn)擊“”,輸入程序,并保存。2、編譯、連接、裝載,用連續(xù)或單步運(yùn)行程序。3、運(yùn)行結(jié)果檢查:1)在單步運(yùn)行時(shí)每走一步可觀察其運(yùn)行結(jié)果。4、記錄實(shí)驗(yàn)前及實(shí)驗(yàn)后的結(jié)果及數(shù)據(jù)并以表格的形式列出。5、記錄匯編調(diào)試成功的程序并分析其設(shè)計(jì)思路,寫出個(gè)人體會(huì)及收獲。六、預(yù)習(xí)思考題修改程序把50~5Ah中內(nèi)容按從小到大排列。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、若有實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)四查找相同數(shù)個(gè)數(shù)一、實(shí)驗(yàn)?zāi)康氖煜R編語言編程。

二、實(shí)驗(yàn)內(nèi)容在片內(nèi)RAM的2000H-200FH中查出有幾個(gè)字節(jié)是0,把數(shù)量放在30H中。

三、實(shí)驗(yàn)原理1、程序流程

2、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋)org0movr7,#16;查找16個(gè)字節(jié)movr1,#00hmovr0,#20h;*************************************;在此處填入程序;*************************************sjmp$end四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、在PC聯(lián)機(jī)狀態(tài)下,點(diǎn)擊“”,輸入程序,并保存。2、編譯、連接、裝載,用連續(xù)或單步運(yùn)行程序。3、運(yùn)行結(jié)果檢查:1)單步運(yùn)行時(shí),每走一步,可觀察其運(yùn)行結(jié)果。2)在連續(xù)運(yùn)行狀態(tài)下,應(yīng)按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出用戶運(yùn)行狀態(tài)返回監(jiān)控,然后再用相應(yīng)的命令鍵觀察與檢查30h中是幾個(gè)單元數(shù)。六、預(yù)習(xí)思考題修改程序,查找其他內(nèi)容。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、若有實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)五碼型轉(zhuǎn)換實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握簡單的數(shù)值轉(zhuǎn)換算法,基本了解數(shù)值的各種表達(dá)方法。

2、了解BCD值和ASCII值的區(qū)別,掌握如何將BCD值轉(zhuǎn)換成ASCII值,并學(xué)習(xí)如何查表進(jìn)行數(shù)值轉(zhuǎn)換及快速計(jì)算。二、實(shí)驗(yàn)內(nèi)容1、將給定的一個(gè)二進(jìn)制數(shù),轉(zhuǎn)換成二進(jìn)制編碼的十進(jìn)制(BCD)碼。將A的內(nèi)容拆為三個(gè)BCD碼,并存入CPU內(nèi)部存儲(chǔ)區(qū)20H開始的三個(gè)單元。2、將ACC的內(nèi)容拆為二個(gè)ASCII碼,并存入20H開始的二個(gè)單元。

三、實(shí)驗(yàn)原理1、實(shí)驗(yàn)流程(1)二進(jìn)制碼轉(zhuǎn)換到BCD碼2、實(shí)驗(yàn)程序(1)數(shù)制轉(zhuǎn)換:二進(jìn)制到BCD轉(zhuǎn)換;將ACC拆為三個(gè)BCD碼,并存入cup內(nèi)部存儲(chǔ)區(qū)20H開始的三個(gè)單元Resultequ20horg0Start:mova,#123;置初值callBinToBCDsjmp$BinToBCD:movb,#100divabmovResult,;除以100,得百位數(shù)mova,bmovb,divabmovResult+1,;余數(shù)除以10,得十位數(shù)movResult+2,;余數(shù)為個(gè)位數(shù)retend數(shù)制轉(zhuǎn)換:二進(jìn)制到ASCII轉(zhuǎn)換;將ACC拆為二個(gè)ASCII碼,并存入20H開始的二個(gè)單元Resultequ20horg0Start:mova,#1ahcallBinToHexsjmp$BinToHex:movdptr,;暫存Aswapaanla,;取高四位;查ASCII表movResult,amova,b;恢復(fù)Aanla,#0fh;取低四位;查ASCII表movResult+1,retASCIITab:;定義數(shù)字對(duì)應(yīng)的ASCII表db'0123456789ABCDEF'end四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告(一)二進(jìn)制到BCD轉(zhuǎn)換1、在實(shí)驗(yàn)系統(tǒng)與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載。2、運(yùn)行結(jié)果檢查⑴在單步運(yùn)行時(shí)每走一步可觀察其運(yùn)行結(jié)果。⑵在連續(xù)運(yùn)行狀態(tài)下,應(yīng)按“暫停圖標(biāo)”,使系統(tǒng)無條件退出用戶運(yùn)行狀態(tài)返回監(jiān)控,然后再用相應(yīng)的命令鍵檢查存入20H開始的三個(gè)片內(nèi)RAM單元。(二)二進(jìn)制到ASCII轉(zhuǎn)換1、在實(shí)驗(yàn)系統(tǒng)與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載。2、運(yùn)行結(jié)果檢查⑴在單步運(yùn)行時(shí)每走一步可觀察其運(yùn)行結(jié)果。⑵在連續(xù)運(yùn)行狀態(tài)下,應(yīng)按“暫停圖標(biāo)”,使系統(tǒng)無條件退出用戶運(yùn)行狀態(tài)返回監(jiān)控,然后再用相應(yīng)的命令鍵檢查存入20H開始的二個(gè)片內(nèi)RAM單元。六、預(yù)習(xí)思考題如何將BCD轉(zhuǎn)換成二進(jìn)制碼?七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、單步運(yùn)行時(shí)若有彈出反匯編窗口應(yīng)檢查通信串口。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。實(shí)驗(yàn)六八段數(shù)碼管顯示一、實(shí)驗(yàn)?zāi)康?、了解數(shù)碼管動(dòng)態(tài)顯示的原理2、了解用總線方式控制數(shù)碼管顯示。二、實(shí)驗(yàn)內(nèi)容熟利用實(shí)驗(yàn)系統(tǒng)提供的顯示設(shè)備,動(dòng)態(tài)顯示一行數(shù)據(jù)。本實(shí)驗(yàn)系統(tǒng)提供了6位八段碼LED顯示電路,學(xué)生只要按地址輸出相應(yīng)數(shù)據(jù),就可以實(shí)現(xiàn)對(duì)顯示器的控制。三、實(shí)驗(yàn)原理1、程序流程2、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋);**********************************************;八段數(shù)碼管顯示程序;**********************************************cs8255equ0ffffh;8255命令控制口outsegequ0fffch;字形控制口outbitequ0fffdh;字位/鍵掃控制口LEDBufequ60h;顯示緩沖Numequ70h;顯示的數(shù)據(jù)DelayTequ75h;延遲參數(shù)org0Start:movsp,#40hmovNum,#0movdptr,#CS8255mova,#88h;命令字:A,B口輸出movx@dptr,a;8255初始化MLoop:incNummova,Nummovb,amovr0,#LEDBufFillBuf:mova,banla,#0fhmovdptr,#LEDMapmovca,@a+dptr;數(shù)字轉(zhuǎn)換成顯示碼mov@r0,a;顯示在碼填入顯示緩沖incr0incbcjner0,#LEDBuf+8,FillBufmovDelayT,#100DispAgain:callDisplayLED;顯示djnzDelayT,DispAgainljmpMLoopDelay:;延時(shí)子程序movr7,#0DelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretDisplayLED:movr0,#LEDBufmovr1,#8;共8個(gè)LED八段管movr2,#10000000b;從左邊開始顯示Loop:movdptr,#OUTBITclramovx@dptr,a;關(guān)所有八段管mova,@r0movdptr,#OUTSEGmovx@dptr,amovdptr,#OUTBITmova,r2movx@dptr,a;顯示一位八段管movr6,#01callDelaymova,r2;顯示下一位rramovr2,aincr0djnzr1,Loopmovdptr,#OUTBITclramovx@dptr,a;關(guān)所有八段管retLedMap:;八段管顯示碼db0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8hdb080h,090h,088h,083h,0c6h,0a1h,086h,08ehend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、在聯(lián)機(jī)狀態(tài)下,編譯、連接、下載并用連續(xù)方式運(yùn)行,利用實(shí)驗(yàn)系統(tǒng)的顯示設(shè)備動(dòng)態(tài)顯示數(shù)據(jù)。2、按“暫停圖標(biāo)”,系統(tǒng)無條件退出該程序運(yùn)行返回監(jiān)控狀態(tài)。3、分析數(shù)碼顯示原理,寫出個(gè)人收獲與體會(huì)。六、預(yù)習(xí)思考題畫出實(shí)驗(yàn)電路原理圖。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、本實(shí)驗(yàn)只能用連續(xù)運(yùn)行方式觀察結(jié)果。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。實(shí)驗(yàn)七鍵盤掃描顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握鍵盤和顯示器的接口方法和編程方法。2、掌握鍵盤掃描和LED八段碼顯示器的工作原理。二、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)系統(tǒng)自帶一個(gè)8×4的鍵盤,在判斷有鍵按下后,要有一定的延時(shí),防止鍵盤抖動(dòng)。在上一個(gè)實(shí)驗(yàn)的基礎(chǔ)上,利用實(shí)驗(yàn)系統(tǒng)提供的鍵盤掃描電路和顯示電路,做一個(gè)掃描鍵盤和數(shù)碼顯示實(shí)驗(yàn),把按鍵輸入的鍵碼在六位數(shù)碼管上顯示出來。實(shí)驗(yàn)程序可分成三個(gè)模塊。①鍵輸入模塊:掃描鍵盤、讀取一次鍵盤并將鍵值存入鍵值緩沖單元。②顯示模塊:將顯示單元的內(nèi)容在顯示器上動(dòng)態(tài)顯示。③主程序:調(diào)用鍵輸入模塊和顯示模塊。三、實(shí)驗(yàn)原理1、程序流程圖2、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋);**********************************************;鍵盤掃描顯示實(shí)驗(yàn);**********************************************cs8255equ0ffffh;8255命令控制口outsegequ0fffch;字形控制口outbitequ0fffdh;字位/鍵掃控制口in_keyequ0fffeh;鍵盤讀入口ledbufequ7eh;顯示緩沖/回車前光標(biāo)位置ledbufrequ77h;回車后光標(biāo)位置blnpntequ50h;閃動(dòng)指針單元org0ledgd:movsp,#60hmovdptr,#cs8255mova,#89h;命令字:a,b輸出、c輸入movx@dptr,a;8255初始化;清顯示緩沖單元ldegd:movblnpnt,#ledbufmova,#10hmovr0,#ledbufrlegs:mov@r0,aincr0cjner0,#ledbuf,legsinca;送待令符“p.”mov@r0,aledt:callxeg2;調(diào)閃動(dòng)顯示、鍵掃消抖子程序cjnea,#10h,leg0;比較鍵值leg0:jncldegd;如果是功能鍵則返回閃動(dòng)的“P.”acallxeg3;送當(dāng)前l(fā)ed光標(biāo)閃動(dòng)單元sjmpledt;完成送數(shù)操作返回顯示鍵掃入口;刷新光標(biāo)單元調(diào)正閃動(dòng)指針xeg3:movr4,a;暫存鍵值movr0,#blnpnt;光標(biāo)單元mova,@r0movr1,amova,r4;恢復(fù)鍵值mov@r1,amova,#ledbufr;回車后光標(biāo)位置cjnea,01h,xg30;r1decr1mova,#ledbuf;回車前光標(biāo)位置sjmpxg31xg30:decr1mova,r1xg31:mov@r0,aret;閃動(dòng)顯示子程序xeg2:movr6,#80hxge0:acallxgel;顯示、鍵掃消抖程序jnbacc.5,xgx0djnzr6,xge0movr0,#blnpntmova,@r0movr0,amova,@r0movr7,amova,#10hmov@r0,amovr6,#30hxge1:acallxgeljnbacc.5,xgex1;顯示、鍵掃消抖程序djnzr6,xge1mova,r7mov@r0,asjmpxeg2xgex1:movr6,amova,r7mov@r0,amova,r6xgx0:ret;顯示、鍵掃消抖程序xgel:calldisp;顯示callgetkey;得到鍵盤掃描碼movr4,a;鍵消抖處理程序movr1,#48hmova,@r1movr2,aincr1mova,@r1movr3,amova,r4xrla,r3movr3,04h;r4movr4,02h;r2jzxge10movr2,#88hmovr4,#88h;鍵盤消抖延遲參數(shù)xge10:decr4mova,r4xrla,#82hjzxge11mova,r4xrla,#0ehjzxge11mova,r4jzxge12movr4,#20hdecr2sjmpxge13xge12:movr4,#0fhxge11:movr2,04h;r4nopnopmovr4,03h;r3xge13:movr1,#48hmova,r2mov@r1,aincr1mova,r3mov@r1,amova,r4jbacc.5,xg113movdptr,#keycodemovca,@a+dptrxg113:ret;顯示子程序disp:pushdplpushdphsetbrs1movr0,#ledbufmovr2,#80hmovdptr,#ledmapdisp2:mova,@r0movca,@a+dptrpushdplpushdphmovdptr,#outsegmovx@dptr,amova,r2movdptr,#outbitmovx@dptr,apopdphpopdplmovr3,#0djnzr3,$;閃動(dòng)延遲clrcrrca;右移顯示movr2,adecr0jnzdisp2clrrs1popdphpopdplret;鍵掃子程序getkey:setbrs1movr2,#0fehmovr3,#08hmovr0,#00hlgep1:pushdplpushdphmovdptr,#outbitmova,r2movx@dptr,arlamovr2,amovdptr,#in_keymovxa,@dptrpopdphpopdplcplaanla,#0fhjnzlgep0incr0djnzr3,lgep1xgep33:mova,#20hxgep3:movr2,amova,#0fhpushdplpushdphmovdptr,#outbitmovx@dptr,apopdphpopdplmova,r2clrrs1sjmpreturnlgep0:cplajbacc.0,xgep0mova,#00hsjmplgeppxgep0:jbacc.1,xgep1mova,#08hsjmplgeppxgep1:jbacc.2,xgep2mova,#10hsjmplgeppxgep2:jbacc.3,xgep33mova,#18hlgepp:adda,r0sjmpxgep3return:ret;鍵值表keycode:db07h,04h,08h,05h,09h,06h,0ah,0bhdb01h,00h,02h,0fh,03h,0eh,0ch,0dhdb10h,11h,12h,13h,14h,15h,16h,17hdb18h,19h,1ah,1bh,1ch,1dh,1eh,1fh;字形表ledmap:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb80h,90h,88h,83h,0c6h,0a1h,86h,8ehdb0ffh,0ch,89h,7fh,0bfhend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板實(shí)驗(yàn)步驟及報(bào)告1、在聯(lián)機(jī)狀態(tài)下,編譯、連接、下載、連續(xù)運(yùn)行程序,利用實(shí)驗(yàn)系統(tǒng)的顯示設(shè)備、鍵盤實(shí)現(xiàn)按鍵的輸入并送至顯示設(shè)備輸出。2、按“暫停圖標(biāo)”,系統(tǒng)無條件退出該程序運(yùn)行返回監(jiān)控狀態(tài)。3、寫出并分析注釋鍵盤掃描子程序。六、預(yù)習(xí)思考題分析并注釋鍵盤抖動(dòng)原理。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、若有實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。實(shí)驗(yàn)八P1口使用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)P1口的使用方法。2、學(xué)習(xí)延時(shí)子程序的編寫。3、進(jìn)一步了解P1口的使用,學(xué)習(xí)匯編語言編程方法與調(diào)試技巧。二、實(shí)驗(yàn)內(nèi)容1、P1口作為輸出口,接八個(gè)發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點(diǎn)亮。2、P1.0開關(guān)接5V時(shí),右轉(zhuǎn)彎燈閃亮,P1.1開關(guān)接5V時(shí)左移彎燈閃亮,P1.0、P1.1開關(guān)同時(shí)接5V或接地時(shí),轉(zhuǎn)彎燈均不閃亮。三、實(shí)驗(yàn)原理1、程序流程圖(1)P1口亮燈實(shí)驗(yàn)P1口亮燈實(shí)驗(yàn)電路P1口轉(zhuǎn)彎燈實(shí)驗(yàn)P1口轉(zhuǎn)彎燈實(shí)驗(yàn)電路2、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋)(一)p1口亮燈實(shí)驗(yàn)org0movp1,;送p1口mova,;L1發(fā)光二極管點(diǎn)亮loop:movp1,acalldelay;延時(shí);左移位sjmploop;循環(huán);延時(shí)子程序delay:movr6,#0a0hdlp:movr7,#0djnzr7,$djnzr6,dlpretend(二)P1口轉(zhuǎn)彎燈實(shí)驗(yàn)org0px00:movp1,#0ffh;初始化px03:mova,p1movb,aanla,#03hcjnea,#01h,px01;滿足只是p1.0為高條件嗎?jb00h,px04;閃爍標(biāo)志位clrp1.4clrp1.5;開右燈setbp1.6setbp1.7;關(guān)左燈movr2,#20hlcalldelay;延時(shí)setb00h;置標(biāo)志位ljmppx03;繼續(xù)查狀態(tài)px04:setbp1.4setbp1.5setbp1.6;關(guān)燈setbp1.7movr2,#20hlcalldelay;延時(shí)clr00h;清標(biāo)志位ajmppx03;繼續(xù)查狀態(tài)px01:cjnea,#02h,px02;滿足只是p1.1為高條件嗎?jb01h,px05;判標(biāo)志位setbp1.4setbp1.5;開左燈clrp1.6clrp1.7;關(guān)右燈movr2,#20h;延時(shí)lcalldelaysetb01h;置標(biāo)志位ljmppx03;繼續(xù)查狀態(tài)px05:setbp1.4setbp1.5setbp1.6;關(guān)燈setbp1.7movr2,#20hlcalldelay;延時(shí)clr01h;清標(biāo)志位ljmppx03;繼續(xù)查狀態(tài)px02:setbp1.4setbp1.5setbp1.6;關(guān)燈setbp1.7ljmppx03;繼續(xù);延時(shí)子程序delay:push02hdel2:push02hdel3:push02hdel4:djnzr2,del4pop02hdjnzr2,del3pop02hdjnzr2,del2pop02hdjnzr2,delayretend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告(一)P1口亮燈實(shí)驗(yàn)1、實(shí)驗(yàn)連線P1.0~P1.7用插針連至L1~L8。2、LED環(huán)境(1)在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。(2)在“P.”狀態(tài)下鍵入0790,然后按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載PH51\he01.asm,用連續(xù)方式運(yùn)行程序。4、觀察運(yùn)行結(jié)果在連續(xù)運(yùn)行狀態(tài)下,觀察發(fā)光二極管閃亮移位情況。5、終止運(yùn)行按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出該程序的運(yùn)行返回監(jiān)控狀態(tài)。(二)P1口轉(zhuǎn)彎燈實(shí)驗(yàn)1、實(shí)驗(yàn)連線P1.0接K1、P1.1接K2、P1.4~P1.7接L1、L4、L7、L10。2、LED環(huán)境(1)在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。(2)在“P.”狀態(tài)下鍵入0C30,然后按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載PH51\he02.asm,用連續(xù)方式運(yùn)行程序。4、觀察運(yùn)行結(jié)果在連續(xù)運(yùn)行狀態(tài)下,觀察轉(zhuǎn)彎燈正確閃亮。5、終止運(yùn)行按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出該程序的運(yùn)行返回監(jiān)控狀態(tài)。六、預(yù)習(xí)思考題1、改變延時(shí)常數(shù),使發(fā)光二極管閃亮?xí)r間改變。2、修改程序,使發(fā)光二極管閃亮移位方向改變。。

七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)九中斷控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆展I(yè)順序控制程序的簡單編程,中斷的使用。二、實(shí)驗(yàn)內(nèi)容在工業(yè)控制中,像沖壓、注塑、輕紡、制瓶等生產(chǎn)過程,都是一些斷續(xù)生產(chǎn)過程,按某種程序有規(guī)律地完成預(yù)定的動(dòng)作,對(duì)這類斷續(xù)生產(chǎn)過程的控制稱順序控制,例注塑機(jī)工藝過程大致按“合模—>注射—>延時(shí)—>開?!?gt;產(chǎn)伸—>產(chǎn)退”順序動(dòng)作,用單片機(jī)最易實(shí)現(xiàn)。8032的P1.0—P1.6控制注塑機(jī)的七道工序,現(xiàn)模擬控制七只發(fā)光二極管的點(diǎn)亮,高電平有效,設(shè)定每道工序時(shí)間轉(zhuǎn)換為延時(shí),P3.4為開工啟動(dòng)開關(guān),高電平啟動(dòng)。P3.3為外故障輸入模擬開關(guān),P3.2為0時(shí)不斷警告。P1.7為報(bào)警聲音輸出,設(shè)定6道工序只有一位輸出,第七道工序三位有輸出。三、實(shí)驗(yàn)原理1、程序流程圖2、實(shí)驗(yàn)接線圖3、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋);工業(yè)順序控制org0000hljmppo10org0013hljmpintsrvorg0100hpo10:movp1,#7fhorlp3,#00hjnbp3.4,$;開工嗎?orlie,#84horlip,#01hmovpsw,#00h;初始化movsp,#53hpo12:movp1,#7eh;第一道工序acallpo1bmovp1,#7dh;第二道工序acallpo1bmovp1,#7bh;第三道工序acallpo1bmovp1,#77h;第四道工序acallpo1bmovp1,#6fh;第五道工序acallpo1bmovp1,#5fh;第六道工序acallpo1bmovp1,#0fh;第七道工序acallpo1bsjmppo12intsrv:movb,r2;保護(hù)現(xiàn)場po17:movp1,#7fh;關(guān)輸出mov20h,#0a0h;振蕩次數(shù)po18:setbp1.7;振蕩acallpo1a;延時(shí)clrp1.7;停振acallpo1a;延時(shí)djnz20h,po18;不為0轉(zhuǎn)clrp1.7acallpo1a;停振jnbp3.3,po17;故障消除嗎?movr2,b;恢復(fù)現(xiàn)場retipo1a:movr2,#06hcalldelay;延時(shí)retpo1b:movr2,#30hcalldelay;延時(shí)ret;延時(shí)子程序delay:push02hdel2:push02hdel3:push02hdel4:djnzr2,del4pop02hdjnzr2,del3pop02hdjnzr2,del2pop02hdjnzr2,delayretend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、實(shí)驗(yàn)連線⑵K1、K2開關(guān)撥在高電平“H”位置。2、LED環(huán)境⑴在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。⑵在“P.”狀態(tài)下鍵入0190,然后按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載PH51\he04.asm,用連續(xù)方式運(yùn)行程序。4、觀察運(yùn)行結(jié)果⑴用連續(xù)方式開始運(yùn)行程序,此時(shí)應(yīng)在等待開工狀態(tài)。⑵K1撥至低電平“L”位置,各道工序應(yīng)正常運(yùn)行。⑶K2撥至低電平“L”位置,應(yīng)有聲音報(bào)警(人為設(shè)置故障)。⑷K2撥至高電平“H”位置,即排除故障,程序應(yīng)從報(bào)警的那道工序繼續(xù)執(zhí)行。在連續(xù)運(yùn)行狀態(tài)下,開關(guān)K1每撥動(dòng)一次,L1-L8發(fā)光二極管按16進(jìn)制方式加一點(diǎn)亮。5、終止運(yùn)行6、回答思考題,寫出實(shí)驗(yàn)總結(jié)及收獲。七、預(yù)習(xí)思考題修改程序,使每道工序中有多位輸出。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。

實(shí)驗(yàn)十8255控制交通燈實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康牧私?255芯片的結(jié)構(gòu)及編程方法,學(xué)習(xí)模擬交通燈控制的實(shí)現(xiàn)方法。二、實(shí)驗(yàn)內(nèi)容用8255做輸出口,控制十二個(gè)發(fā)光二極管燃滅,模擬交通燈管理。1.因?yàn)楸緦?shí)驗(yàn)是交通燈控制實(shí)驗(yàn),所以要先了解實(shí)際交通燈的變化情況和規(guī)律。假設(shè)一個(gè)十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1東西綠燈通車,南北紅燈。過一段時(shí)間轉(zhuǎn)狀態(tài)2,東西綠燈滅,黃燈閃爍幾次,南北仍然紅燈。再轉(zhuǎn)狀態(tài)3,南北綠燈通車,東西紅燈。過一段時(shí)間轉(zhuǎn)狀態(tài)4,南北綠燈滅,閃幾次黃燈,延時(shí)幾秒,東西仍然紅燈。最后循環(huán)至狀態(tài)1。三、實(shí)驗(yàn)原理1、程序流程圖2、實(shí)驗(yàn)電路3、實(shí)驗(yàn)程序(將程序補(bǔ)充完整并添加注釋);8255控制交通燈cs8255equ0ffffh;8255命令控制口portaequ0fffchportbequ0fffdhorg0movsp,#60hmovdptr,#cs8255mova,#88h;命令字:pa,pb輸出movx@dptr,a;8255初始化movdptr,#portamova,#0b6hmovx@dptr,amovdptr,#portbmova,#0dhmovx@dptr,a;點(diǎn)亮4個(gè)紅燈movr2,#25h;延時(shí)lcalldelayjod3:movdptr,#portamova,#75hmovx@dptr,amovdptr,#portbmova,#0dhmovx@dptr,a;東西綠燈亮,南北紅燈亮movr2,#55hlcalldelay;延時(shí)movr7,#05h;閃爍次數(shù)jod1:movdptr,#portamova,#0f3hmovx@dptr,amovdptr,#portbmova,#0chmovx@dptr,a;東西黃燈亮,南北紅燈亮movr2,#20hlcalldelay;延時(shí)movdptr,#portamova,#0f7hmovx@dptr,amovdptr,#portbmova,#0dhmovx@dptr,a;南北紅燈亮movr2,#20hlcalldelay;延時(shí)djnzr7,jod1;閃爍次數(shù)未到繼續(xù)movdptr,#portamova,#0aehmovx@dptr,amovdptr,#portbmova,#0bhmovx@dptr,a;東西紅燈亮,南北綠燈亮movr2,#55hlcalldelay;延時(shí)movr7,#05h;閃爍次數(shù)jod2:movdptr,#portamova,#9ehmovx@dptr,amovdptr,#portbmova,#07hmovx@dptr,a;東西紅燈亮,南北黃燈亮movr2,#20hlcalldelay;延時(shí)movdptr,#portamova,#0behmovx@dptr,amovdptr,#portbmova,#0fhmovx@dptr,a;東西紅燈亮movr2,#20hlcalldelay;延時(shí)djnzr7,jod2;閃爍次數(shù)未到繼續(xù)ljmpjod3;循環(huán);延時(shí)子程序delay:push02hdel2:push02hdel3:push02hdel4:djnzr2,del4pop02hdjnzr2,del3pop02hdjnzr2,del2pop02hdjnzr2,delayretend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、實(shí)驗(yàn)連線2、LED環(huán)境⑴在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。⑵在“P.”狀態(tài)下鍵入0BB0,然后按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載程序,用連續(xù)方式運(yùn)行程序。4、觀察運(yùn)行結(jié)果在連續(xù)運(yùn)行方式下,初始態(tài)為四個(gè)路口的紅燈全亮之后,東西路口的綠燈亮南北路口的紅燈亮,東西路口方向通車。延時(shí)一段時(shí)間后東西路口的綠燈熄滅,黃燈開始閃耀。閃耀若干次后,東西路口紅燈亮,而同時(shí)南北路口的綠燈亮,南北路口方向開始通車,延時(shí)一段時(shí)間后,南北路口的綠燈熄滅,黃燈開始閃耀。閃耀若干次后,再切換到東西路口方向,之后重復(fù)以上過程。5、終止運(yùn)行六、預(yù)習(xí)思考題修改程序增加左轉(zhuǎn)彎。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。5、實(shí)驗(yàn)過程中應(yīng)斷開實(shí)驗(yàn)箱上的檢測控制與地址譯碼兩根短接數(shù)據(jù)線。

實(shí)驗(yàn)十一D/A輸出方波一、實(shí)驗(yàn)?zāi)康?、了解D/A轉(zhuǎn)換與單片機(jī)的接口方法。2、了解D/A轉(zhuǎn)換芯片0832的性能及編程方法。3.、了解單片機(jī)系統(tǒng)中擴(kuò)展D/A轉(zhuǎn)換芯片的基本方法。二、實(shí)驗(yàn)內(nèi)容利用0832D/A數(shù)模轉(zhuǎn)換輸出一個(gè)方波。三、實(shí)驗(yàn)原理1、程序流程2、實(shí)驗(yàn)電路3、實(shí)驗(yàn)程序;D/A輸出方波;進(jìn)行本實(shí)驗(yàn)前,請(qǐng)先裝載運(yùn)行D/A0V輸出(調(diào)基準(zhǔn)電壓)程序pg51\da_2v5.asm;使D/A輸出端“AOUT”輸出+2.5V電壓,再進(jìn)行本實(shí)驗(yàn)。;在運(yùn)行本程序前請(qǐng)將“直流電機(jī)控制單元”的按鈕處“彈出”狀態(tài)。cs0832equ8c00hDA_0VEQU080HDA_2V5EQU0C0HDA_5VEQU0FFHorg0000hmovsp,#53hmovdptr,#cs0832start:mova,#DA_0Vmovx@dptr,a;送0832轉(zhuǎn)換calldelaymova,#DA_5Vmovx@dptr,a;送0832轉(zhuǎn)換calldelaysjmpstart;延時(shí)子程序delay:movr6,#10movr7,#0dloop:djnzr7,$djnzr6,dloopretend四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板五、實(shí)驗(yàn)步驟及報(bào)告1、實(shí)驗(yàn)連線⑴連接138譯碼輸入端A.B.C,其中A連A2,B連A3,C連A4,138使能控制輸入端G與總線單元上方的GS相連。⑵數(shù)模轉(zhuǎn)換單元的CS與譯碼單元Y0相連,數(shù)模轉(zhuǎn)換單元的WR與系統(tǒng)單元的IOW相連。⑶用8芯扁平電纜將數(shù)模轉(zhuǎn)換驅(qū)動(dòng)單元的數(shù)據(jù)總線插座與數(shù)據(jù)總線單元任一插座相連。2、LED環(huán)境⑴在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。⑵在“P.”狀態(tài)下鍵入0617,按“EXEC”鍵開始執(zhí)行調(diào)零程序,然后調(diào)節(jié)位于DA單元的調(diào)基準(zhǔn)電位器,使數(shù)模轉(zhuǎn)換單元的AUTO輸出電壓為0V,按復(fù)位按鈕返回“P.”狀態(tài)。⑶在“P.”狀態(tài)下鍵入061F,按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載PH51\da_0V.asm,執(zhí)行調(diào)零程序,然后調(diào)節(jié)位于DA單元的調(diào)基準(zhǔn)電位器,使數(shù)模轉(zhuǎn)換單元的AUTO輸出電壓為0V,按“暫停圖標(biāo)”返回“P.”狀態(tài),用連續(xù)方式運(yùn)行PH51\he10.asm程序。4、觀察運(yùn)行結(jié)果以連續(xù)方式運(yùn)行程序,D/A輸出端“AUTO”輸出方波。5、終止運(yùn)行按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出該程序的運(yùn)行返回監(jiān)控狀態(tài)。6、回答思考題,寫出個(gè)人收獲與總結(jié)。六、預(yù)習(xí)思考題產(chǎn)生其他波形,如三角波等。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。5、實(shí)驗(yàn)過程中應(yīng)斷開實(shí)驗(yàn)箱上的檢測控制與地址譯碼兩根短接數(shù)據(jù)線。實(shí)驗(yàn)十二A/D轉(zhuǎn)換實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握A/D轉(zhuǎn)換與單片機(jī)的接口方法。 2.了解A/D芯片0809轉(zhuǎn)換性能及編程方法。3.通過實(shí)驗(yàn)了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集。二、實(shí)驗(yàn)內(nèi)容利用實(shí)驗(yàn)儀上的0809做A/D轉(zhuǎn)換實(shí)驗(yàn),實(shí)驗(yàn)儀上的W1電位器提供模擬量輸入。編制程序,將模擬量轉(zhuǎn)換成數(shù)字量,通過發(fā)光二極管L1—L8顯示。

A/D轉(zhuǎn)換器大致分有三類:一是雙積分A/D轉(zhuǎn)換器,優(yōu)點(diǎn)是精度高,抗干擾性好,價(jià)格便宜,但速度慢;二是逐次逼近式A/D轉(zhuǎn)換器,精度、速度、價(jià)格適中;三是并行A/D轉(zhuǎn)換器,速度快,價(jià)格也昂貴。實(shí)驗(yàn)用ADC0809屬第二類,是8位A/D轉(zhuǎn)換器。每采集一次一般需100μs。由于ADC0809A/D轉(zhuǎn)換器轉(zhuǎn)換結(jié)束后會(huì)自動(dòng)產(chǎn)生EOC信號(hào)(高電平有效),取反后將其與8031的INT0相連,可以用中斷方式讀取A/D轉(zhuǎn)換結(jié)果。三、實(shí)驗(yàn)原理1、實(shí)驗(yàn)流程2、實(shí)驗(yàn)電路4、實(shí)驗(yàn)程序;A/D轉(zhuǎn)換實(shí)驗(yàn)cs8255equ0ffffh;8255命令控制口outsegequ0fffch;字形控制口outbitequ0fffdh;字位/鍵掃控制口LedBufequ7eh;顯示緩沖;=================端口地址分配=================;;自動(dòng)檢測方式:CSADIN0=8E28h、CSADIN1=8E29h、CSADIN2=8E2Ah;手動(dòng)連線方式:CSADIN0=8000h、CSADIN1=8001h、CSADIN2=8002h;;本軟件提供的源程序的端口地址均為“手動(dòng)連線方式”;若是“自動(dòng)檢測方式”下實(shí)驗(yàn)請(qǐng)自行修改端口地址CSADIN0EQU8000H;通道0控制口CSADIN1EQU8001H;通道1控制口CSADIN2EQU8002H;通道2控制口org0start:movdptr,#CS8255mova,#80h;命令字:A,B口輸出movx@dptr,a;8255初始化MOVLedBuf-0,#0MOVLedBuf-1,#8MOVLedBuf-2,#0MOVLedBuf-3,#9MOVLedBuf-4,#10hMOVLedBuf-5,#10hMOVDPTR,#CSADIN1MOVA,#1ADC:MOVX@DPTR,A;0809的通道1采樣MOVXA,@DPTR;取出采樣值movb,a;拆送顯示緩沖區(qū)swapaanla,#0fhanlb,#0fhMOVLedBuf-6,aMOVLedBuf-7,bcalldispSJMPADC;循環(huán);顯示子程序disp:pushdplpushdphsetbrs1movr0,#ledbufmovr2,#80hmovdptr,#ledmapdisp2:mova,@r0movca,@a+dptrpushdplpushdphmovdptr,#outsegmovx@dptr,amova,r2movdptr,#outbitmovx@dptr,apopdphpopdplmovr3,#0djnzr3,$;閃動(dòng)延遲clrcrrca;右移顯示movr2,adecr0jnzdisp2clrrs1popdphpopdplret;字形表ledmap:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb80h,90h,88h,83h,0c6h,0a1h,86h,8eh,0ffhEND四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板、D/A0832五、實(shí)驗(yàn)步驟及報(bào)告1、實(shí)驗(yàn)連線⑴連接138譯碼輸入端A.B.C,其中A連A2,B連A3,C連A4,138使能控制輸入端G與總線單元上方的GS相連。⑵74LS02門電路的①腳接模數(shù)轉(zhuǎn)換單元的SC/ALE,02門電路②、⑥腳接譯碼單元的Y0,02門電路的③腳系統(tǒng)單元的IOW,02門電路的④腳接模數(shù)轉(zhuǎn)換單元的OE,02門電路的⑤接系統(tǒng)單元的IOR。⑶用8芯扁平電纜將I/OOUT區(qū)的數(shù)據(jù)總線插座與數(shù)據(jù)總線單元任一插座相連。⑷模數(shù)轉(zhuǎn)換單元的的CLK插孔與系統(tǒng)單元的ALE相連。⑸把模數(shù)轉(zhuǎn)換單元的模擬量調(diào)節(jié)輸出端與模數(shù)轉(zhuǎn)換單元的IN0相連。2、LED環(huán)境⑴在“P.”狀態(tài)下按“0→EV/UN”,裝載實(shí)驗(yàn)所需的代碼程序。⑵在“P.”狀態(tài)下鍵入O5A0,然后按“EXEC”進(jìn)入實(shí)驗(yàn)項(xiàng)目的運(yùn)行。3、PC環(huán)境在與PC聯(lián)機(jī)狀態(tài)下,編譯、連接、下載PH51\he09.asm,用連續(xù)方式運(yùn)行程序。4、觀察運(yùn)行結(jié)果以連續(xù)方式運(yùn)行程序,一旦進(jìn)入A/D程序的運(yùn)行,顯示器顯示“0809XX”,旋動(dòng)模擬電壓電位器,改變IN0的模擬量“XX”顯示緩沖區(qū),應(yīng)隨之變化。5、終止運(yùn)行按“暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“暫停按鈕”,使系統(tǒng)無條件退出該程序的運(yùn)行返回監(jiān)控狀態(tài)。六、預(yù)習(xí)思考題按A/D實(shí)驗(yàn)連線圖,增加當(dāng)前A/D轉(zhuǎn)換結(jié)果送L1~L8顯示的程序。七、實(shí)驗(yàn)注意事項(xiàng)1、實(shí)驗(yàn)過程中禁止用手觸摸集成芯片引腳或撥插芯片,未經(jīng)允許不得私自更換CPU。2、實(shí)驗(yàn)連線前應(yīng)先關(guān)掉實(shí)驗(yàn)箱電源開關(guān),待檢查無誤后方可通電。3、實(shí)驗(yàn)箱通電后打開計(jì)算機(jī)Dais-MCS51仿真開發(fā)系統(tǒng)并注意觀察工具欄的聯(lián)機(jī)圖標(biāo),綠色圖標(biāo)代表無連接應(yīng)檢查通信電纜線是否接好(或在軟件界面更換串口及波特率)。4、若程序匯編成功后,當(dāng)前PC值未指定在第一條指令(即在第一條指令底色出現(xiàn)藍(lán)色)將無法正常運(yùn)行。本中斷實(shí)驗(yàn)易出現(xiàn)死機(jī),可復(fù)位后再運(yùn)行。實(shí)驗(yàn)十三I/O口擴(kuò)展實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)在單片機(jī)系統(tǒng)中擴(kuò)展簡單I/O口的基本方法。

二、實(shí)驗(yàn)內(nèi)容MCS—51系列單片機(jī)對(duì)外部設(shè)備的訪問(即IO口輸入/輸出操作)的基本要求是“輸入緩沖、輸出鎖存”。實(shí)驗(yàn)中開關(guān)量K1~K8的輸入經(jīng)74LS244八位緩沖輸入接口實(shí)現(xiàn),74LS273作為鎖存輸出接口,控制L1~L8八個(gè)發(fā)光二極管的亮滅。

三、實(shí)驗(yàn)原理1、實(shí)驗(yàn)流程2、實(shí)驗(yàn)電路3、實(shí)驗(yàn)程序;簡單I/O擴(kuò)展;=================端口地址分配=================;;自動(dòng)檢測方式:CS_IN=8E00h,CS_OUT=8E00h;手動(dòng)連線方式:CS_IN=8000h,CS_OUT=8000h;;本軟件提供的源程序的端口地址均為“手動(dòng)連線方式”;若是“自動(dòng)檢測方式”下實(shí)驗(yàn)請(qǐng)自行修改端口地址;I/O(244/273)CS_INEQU8000H;端口地址CS_OUTEQU8000H;端口地址ORG0START:MOVDPTR,#CS_INMOVXA,@DPTR;取出244狀態(tài)MOVDPTR,#CS_OUTMOVX@DPTR,A;送273驅(qū)動(dòng)發(fā)光二極管SJMPSTARTEND四、實(shí)驗(yàn)設(shè)備1、Dais-MCS51仿真開發(fā)系統(tǒng)2、微型計(jì)算機(jī)3、8031CPU實(shí)驗(yàn)板、A/D0809五、實(shí)驗(yàn)步驟及報(bào)告1、74LS244的輸入端PI0-PI7接K1-K8,74LS273的輸出端PO0-PO7接L1-L8。用8芯扁平電纜將I/OIN區(qū)、I/OOUT區(qū)的數(shù)據(jù)總線插座與數(shù)據(jù)總線單元任一插座相連。2、連接138譯碼輸入端A.B.C,其中A連A2,B連A3,C連A4,138使能控制輸入端G與總線單元上方的GS相連。3、74LS02門電路的①腳接緩沖輸出單元的CLK,02門電路②腳接138譯碼單元的Y1,02門電路的③腳控制總線單元的IOW;02門電路的④腳與⑨腳相連,02門電路的的⑤腳接138譯碼單元的Y0,02門電路⑥腳接系統(tǒng)單元IOR,02門電路的⑧腳接GND,02門電路的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論