[機械儀表]單片機原理及接口技術(shù)實驗指導書2011修改_第1頁
[機械儀表]單片機原理及接口技術(shù)實驗指導書2011修改_第2頁
[機械儀表]單片機原理及接口技術(shù)實驗指導書2011修改_第3頁
[機械儀表]單片機原理及接口技術(shù)實驗指導書2011修改_第4頁
[機械儀表]單片機原理及接口技術(shù)實驗指導書2011修改_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及接口技術(shù)實驗指導書單片機原理及接口技術(shù) 實驗教學指導書洪榮晶 張永勝 編南京工業(yè)大學機械與動力工程學院2011年2月目 錄第一章 dvcc(5286jh+)系列單片機仿真實驗系統(tǒng)性能- 3第二章 mcs51實驗系統(tǒng)安裝與啟動- 4第三章 軟件實驗- 5實驗一 清零實驗- 5實驗二 拼字實驗- 7實驗三 數(shù)據(jù)傳送子程序- 9實驗四 無符號雙字節(jié)快速乘法子程序- 12實驗五 電腦時鐘(定時器、中斷綜合實驗)- 16第四章 硬件實驗- 25 實驗一 p3.3口輸入 p1口輸出- 25實驗二 工業(yè)順序控制- 29實驗三 8255控制交通燈- - 32實驗四 簡單i/o口擴展實驗- 36實驗

2、五 a/d 轉(zhuǎn)換實驗- 39實驗六 d/a轉(zhuǎn)換實驗- 42實驗七 串并轉(zhuǎn)換實驗- 45實驗八 定時計數(shù)器8253a應(yīng)用- 48第五章 擴展實驗- 50 實驗一 語音控制- 50實驗二 步進電機控制- 54實驗三 直流電機調(diào)速實驗- 56實驗四 繼電器控制實驗- 59第一章 dvcc(5286jh+)系列單片機仿真實驗系統(tǒng)性能1 仿真、實驗相結(jié)合。2 實驗模塊化結(jié)構(gòu),互不影響,通過連線又可將各模塊有機結(jié)合。3 實驗內(nèi)容設(shè)置豐富、合理,滿足教學大綱要求。4 每項實驗連線方便,既能滿足學生動手能力愿望,又能充分發(fā)揮學生的創(chuàng)新能力,提高教學實驗的質(zhì)量和效率。5 自帶集成調(diào)試環(huán)境,win9x/nt軟件平

3、臺,含:源程序庫、芯片資料庫、原理圖庫、元器件位置圖庫、實驗說明、動態(tài)調(diào)試工具庫。6 提供源程序編輯、匯編、鏈接。7 電路具有過壓保護,確保系統(tǒng)安全、可靠工作。8 整機采用熱風整平工藝基板、波峰焊接,實驗連接接口采用圓孔插座,整機可靠性好。9 自帶eprom寫入器,可對27128、2764eprom進行寫入。10 自帶鍵盤顯示器,進口鍵座,專用彩色鍵帽,決無按鍵不可靠現(xiàn)象。11 系統(tǒng)用串行口、用戶用串行口相互獨立,在通過rs232與上位機聯(lián)機狀態(tài)下同樣可以調(diào)試用戶串行口程序。12 系統(tǒng)帶有示波器功能,通過rs232口,可將測得的信號顯示在上位機的屏幕上。該系統(tǒng)通過rs232口可連pc機,在wi

4、n9x/nt軟件平臺進行仿真開發(fā)和實驗。同時系統(tǒng)自帶鍵盤顯示器,無須計算機也能獨立工作。第二章 mcs51實驗系統(tǒng)安裝與啟動 2.1 mcs51實驗系統(tǒng)安裝與啟動1. dvcc系列實驗系統(tǒng)在出廠時均為51狀態(tài) a.sk1位15置on,位610置off; b.sk2位12置on;c.sk3置on;d.sk4置off e.臥式kbb置51、96位置f.dl1dl4連1、22. 如果系統(tǒng)用于仿真外接用戶系統(tǒng),將40芯仿真電纜一頭插入系統(tǒng)中j6插座,另一頭插入用戶系統(tǒng)的8051cpu位置,注意插入方向,仿真頭上小紅點表示第一腳,對應(yīng)用戶8051cpu第一腳。3. 接上+5v電源,將隨機配備的2芯電源線

5、,紅線接入外置電源的+5v插孔,黑線接入外置電源地插座。上電后,dvcc系列實驗系統(tǒng)上顯示“p.”閃動。連pc機工作時,必須將隨機配備的d型9芯插頭一端插入dvcc系統(tǒng)j2插座,另一端插入上位機串行口com1com2任選。然后按dvcc實驗系統(tǒng)pcdbg鍵,再運行上位機上的dvcc聯(lián)機軟件,雙方建立通信。 2.2 dvcc系列實驗系統(tǒng)實驗調(diào)試有關(guān)說明1. 實驗的一般步驟a. 運行dvcc軟件b. 編寫源程序、匯編排錯、形成正確的源文件.asm,并生成中間文件.obj。c. 編譯、連接,形成最終目標文件.asm(或.hex)。d. 裝載最終目標文件到實驗系統(tǒng)的仿真ram區(qū)。e. 調(diào)試實驗程序,若

6、有錯則重復bd。2. 實驗過程中的幾點特別說明:a. 在進入實驗前請仔細閱讀本說明。b. 本指導書理圖上的粗實線部分表示用戶實驗時要用導線連接的。c. 所有實驗都是相互獨立的。 d. 指導書中涉及打印機、鍵盤顯示接口芯片8279等請參見相關(guān)書籍。e. 指導書中每個實驗的實驗步驟僅供參考。第一個實驗的實驗步驟很詳盡,望學生仔細閱讀,以便掌握如何裝載實驗程序、運行實驗程序、觀察實驗結(jié)果。相對來說,第二個實驗以后的實驗步驟較為簡單。3. 實驗過程中實驗結(jié)果的查看a. 仿真實驗系統(tǒng)除在連續(xù)運行或和上位機聯(lián)機狀態(tài)下,一般不按總清鍵,只按mon鍵返回監(jiān)控。b. 實驗中某些實驗結(jié)果的查看可采用下列辦法:以單

7、步方式運行后,再進入存貯器、寄存器檢查、修改等狀態(tài),以查看結(jié)果。在合適的地方設(shè)置斷點或結(jié)束地址,全速運行程序,當程序運行到斷點時會自動停下來,再進入存貯器、寄存器檢查、修改等狀態(tài),以查看結(jié)果。開啟有關(guān)變量窗、寄存器窗口,以連續(xù)單步方式運行程序,在窗口中觀察運行結(jié)果。第三章 軟件實驗 實驗一 清零實驗一、實驗目的掌握匯編語言設(shè)計和調(diào)試方法,熟悉鍵盤操作。二、實驗內(nèi)容把7000h70ffh的內(nèi)容清零。三、實驗程序框圖四、實驗程序:org 0030hclear: mov r0,#00hmov dptr,#7000hclear1: clr amovx dptr,ainc dptrinc r0cjne

8、r0,#00h,clear1sjmp clearend五、實驗步驟:1、當dvcc單片機仿真實驗系統(tǒng)獨立工作時 (1) 將固化區(qū)eprom中實驗程序目標碼傳送到仿真ram區(qū),操作如下:輸入0后按f1鍵,再輸入0fff后按f2鍵,再輸入0后按epmov稍等,系統(tǒng)返回初始狀態(tài),顯示“p.”。 (2) 根據(jù)表21所示,通過鍵盤輸入實驗程序的起始地址0030h,再按執(zhí)行鍵exec,表示連續(xù)運行該程序,稍侯,按reset鍵退出運行;如果以單步運行程序,則輸入0030后,按setp鍵,按一次執(zhí)行一條語句,直到執(zhí)行到003ch為止,按mon鍵退出運行;如果以斷點運行程序,則先輸入003ch(斷點地址),再按

9、f1鍵,再輸入0030(起始地址),然后按exec鍵執(zhí)行程序,當執(zhí)行到003ch時自動停下來,此時按mon鍵退出。 (3) 用存貯器讀寫方法檢查7000h70ffh中的內(nèi)容應(yīng)全是00h。2、當dvcc仿真實驗系統(tǒng)聯(lián)pc機時(1) 在閃動“p.”狀態(tài),按pcdbg鍵;(2) 在pc機處于在win95/98軟件平臺下,單擊dvcc圖標。(3) 在“系統(tǒng)設(shè)置”選項中設(shè)定仿真模式為內(nèi)程序、內(nèi)數(shù)據(jù)。對硬件實驗4、5、6、7、8、9、12、15而言,仿真模式應(yīng)設(shè)定為內(nèi)程序、外數(shù)據(jù)。(4) 根據(jù)屏幕提示進入51/96動態(tài)調(diào)試菜單。(5) 聯(lián)接dvcc實驗系統(tǒng)(ctrl+h)(6) 裝載目標文件(ctrl+l

10、)(7) 設(shè)置pc起始地址(8) 從起始地址開始連續(xù)運行程序(f9)或單步(f8)或斷點運行程序(9) 單步、斷點運行完后,在存貯器窗口內(nèi)檢查7000h70ffh中的內(nèi)容是否全為00h一、 思考:假使要把700070ffh中的內(nèi)容改成ff,如何編制程序。實驗二 拼字實驗 一、實驗目的進一步掌握匯編語言設(shè)計和調(diào)試方法。二、實驗內(nèi)容把7000h、7001h的低位相拼后送入7002h,一般本程序用于把顯示緩沖區(qū)的數(shù)據(jù)取出拼裝成一個字節(jié)。三、實驗程序框圖 (7000h)送a,屏蔽高位(7001h)送a,屏蔽高位開始交換高低位后送ba和b相或后送7002h結(jié)束四、實驗程序:org 0070hpword:

11、mov dptr,#7000hmovx a,dptranl a,#0fhswap amov b,ainc dptrmovx a,dptranl a,#0fhorl a,binc dptrmovx dptr,apword1: sjmp pword1end五、實驗步驟: 將7000h單元中內(nèi)容置03h,7001h單元中的內(nèi)容置04h 用單步或斷點方式從0070h開始運行程序(輸入0070后按step鍵為單步運行)。 按mon鍵退出。 檢查7002h中的內(nèi)容應(yīng)為34h實驗三 數(shù)據(jù)傳送子程序一、實驗目的掌握ram中的數(shù)據(jù)操作。二、實驗內(nèi)容把(r2、r3)源ram區(qū)首址內(nèi)的(r6、r7)個字節(jié)數(shù)據(jù),傳送

12、到(r4、r5)目的ram區(qū)。三、實驗程序框圖 開始源地址內(nèi)容送a(a)送目的地址源地址加1目的地址加1字節(jié)數(shù)到嗎?結(jié)束ny四、實驗程序:org 0090hdmve: mov sp,#70hmov dpl,r3mov dph,r2movx a,dptrmov dpl,r5mov dph,r4movx dptr,acjne r3,#0ffh,dmve1inc r2dmve1:inc r3cjne r5,#0ffh,dmve2inc r4dmve2:inc r5cjne r7,#00h,dmve5cjne r6,#00h,dmve6mov r0,7ehmov a,#0ffhmov r4,#06hd

13、mve3:mov r0,adec r0djnz r4,dmve3mov 7eh,#8chdmve4:lcall dispdsjmp dmve4dmve5:dec r7sjmp dmvedmve6:dec r7dec r6sjmp dmvedispd:setb 0d4hmov r1,#7ehmov r2,#20hmov r3,#00hdispd1: mov dptr,#0ff21hmov a,r2movx dptr,amov a,r1mov dptr,#0ff22hmovx dptr,adispd2: djnz r3,dispd2dec r1clr cmov a,r2rrc amov r2,aj

14、nz dispd1mov a,#0ffhmov dptr,#0ff22hmovx dptr,aclr 0d4hretend五、實驗步驟: 在r2、r3中裝入源首址例如6000h,r4、r5中裝入目的地址例如7000h, r6、r7中裝入字節(jié)數(shù)0fffh。 用單步、斷點方法從起始地址0090h開始運行實驗程序(輸入0090后按step鍵為單步運行;先輸入末地址00c4后按f1鍵,再輸入0090后,按exec鍵為斷點運行)。 如果是斷點運行,運行到斷點處會自動停下來,再按mon鍵返回“p.”態(tài)。如果是單步運行,運行到末址00c4時,按mon鍵返回即“p.”態(tài)。 檢查7000h開始的內(nèi)容和6000h

15、開始的內(nèi)容是否完全相同。實驗四 無符號雙字節(jié)快速乘法子程序一、實驗目的掌握mcs51匯編語言程序設(shè)計方法。二、預備知識本程序是利用單字節(jié)的乘法指令,根據(jù)下面的公式進行乘法運算的。(r2r3)*(r6r7)=(r2)*28+(r3)*(r6)*28+(r7)=(r2)*(r6)*216+(r2)*(r7)+(r3)*(r6)*28+(r3)*(r7)三、實驗內(nèi)容將(r2r3)和(r6r7)中雙字節(jié)無符號整數(shù)相乘,積送r4r5r6r7中。四、實驗程序框圖 開始被乘數(shù)和乘數(shù)低字節(jié)相乘積高位送r5,低位送r7被乘數(shù)高字節(jié)和乘數(shù)低字節(jié)相乘積低位加r5r4,高位加cyr5被乘數(shù)低字節(jié)和乘數(shù)高字節(jié)相乘積低位

16、加r4r6,高位加r5r5,cyf0被乘數(shù)和乘數(shù)高字節(jié)相乘積低位加r5,cyr5,高位加f0r4結(jié)束五、實驗程序:org 01d0hmov sp,#50hmov dptr,#7000hmovx a,dptrmov r2,ainc dptrmovx a,dptrmov r3,ainc dptrmovx a,dptrmov r6,ainc dptrmovx a,dptrmov r7,ancmul:mov a,r3mov b,r7mul abxch a,r7mov r5,bmov b,r2mul abadd a,r5mov r4,aclr aaddc a,bmov r5,amov a,r6mov b

17、,r3mul abadd a,r4xch a,r6xch a,baddc a,r5mov r5,amov psw.5,cmov a,r2mul abadd a,r5mov r5,aclr amov acc.0,cmov c,psw.5addc a,bmov r4,ainc dptrmov a,r4movx dptr,ainc dptrmov a,r5movx dptr,ainc dptrmov a,r6movx dptr,ainc dptrmov a,r7movx dptr,amov r0,#7ehmov a,#0ffhmov r4,#06hncmul1: mov r0,adec r0mov

18、7eh,#8ch ;disp pdjnz r4,ncmul1ncmul2: lcall dispdsjmp ncmul2dispd:setb 0d4hmov r1,#7ehmov r2,#20hmov r3,#00hdispd1: mov dptr,#0ff21hmov a,r2movx dptr,amov a,r1mov dptr,#0ff22hmovx dptr,adispd2: djnz r3,dispd2dec r1clr cmov a,r2rrc amov r2,ajnz dispd1mov a,#0ffhmov dptr,#0ff22hmovx dptr,aclr 0d4hrete

19、nd六、實驗步驟: 7000h7001h中存放無符號整數(shù)作為被乘數(shù)000ah,7002h7003h中存放乘數(shù)0019h。 用連續(xù)或單步從起始地址01d0h運行本實驗程序(輸入01d0后按exec鍵或step鍵)。 用mon或reset鍵退出。 檢查兩個數(shù)的乘積70047007單元中的內(nèi)容應(yīng)為000000fah。實驗五 電腦時鐘(定時器、中斷綜合實驗)一、實驗目的 熟悉mcs51定時器、串行口和中斷初始化編程方法,了解定時器應(yīng)用在實時控制中程序的設(shè)計技巧。 編寫程序,從dvcc系列單片機實驗儀鍵盤上輸入時間初值,用定時器產(chǎn)生0.1s定時中斷,對時鐘計數(shù)器計數(shù),并將數(shù)值實時地送數(shù)碼管顯示。二、實驗

20、程序框圖 開始清顯示緩沖區(qū)初始化定時計數(shù)器顯示初值000000從鍵盤設(shè)置時鐘初值判時鐘初值合乎規(guī)定否?開定時器顯示器顯示當前時鐘值 主程序: n y 定時器中斷服務(wù)程序:定時中斷恢復初值,保護1秒到嗎?0.1秒加1秒加1分加1時加1時單元清零堆棧返回nnnny 0.1秒單元清零,60秒到嗎? y秒單元清零,60分到嗎? y分單元清零,24小時到嗎? y四、實驗程序:org 000bhljmp tintruporg 0340h;sy11clock0: mov sp,#50hmov r0,#7ehmov r4,#06hclr aclock1: mov r0,adec r0djnz r4,clock

21、1mov a,#7ehmov dptr,#1fffhmovx dptr,amov 76h,#00hmov 77h,#00hlcall keydisp0lcall disda0mov tmod,#01horl ie,#82hmov tl0,#0b7hmov th0,#3chmov 23h,#00hsetb tr0clock2: lcall displcall disda0sjmp clock2disda0: mov r0,#79hmov a,22hacall disdamov a,21hacall disdamov a,20hacall disdaretdisda:mov r1,aacall d

22、isda1mov a,r1swap adisda1: anl a,#0fhmov r0,ainc r0rettintrup: mov tl0,#0b7hmov th0,#3chpush pswpush accsetb 0d3hinc 23hmov a,23hcjne a,#0ah,tintrup1mov 23h,#00hmov a,22hinc ada amov 22h,acjne a,#60h,tintrup1mov 22h,#00hmov a,21hinc ada amov 21h,acjne a,#60h,tintrup1mov 21h,#00hmov a,20hinc ada amov

23、 20h,acjne a,#24h,tintrup1mov 20h,#00htintrup1:pop accpop pswretikeydisp0:lcall keyjnc fanckeydatakey:lcall datakey1db 79h,7ehsjmp keydisp0fanckey:cjne a,#16h,keydisp0mov a,7ahswap aorl a,79hmov 22h,acjne a,#60h,fanckey1fanckey1:jnc fanckey4mov a,7chswap aorl a,7bhmov 21h,acjne a,#60h,fanckey2fancke

24、y2:jnc fanckey4mov a,7ehswap aorl a,7dhmov 20h,acjne a,#24h,fanckey3fanckey3:jnc fanckey4retfanckey4:clr tr0ljmp clock0datakey1:mov r4,amov dptr,#1fffhmovx a,dptrmov r1,amov a,r4mov r1,aclr apop 83hpop 82hmovc a,a+dptrinc dptrcjne a,01h,datakey3dec r1clr amovc a,a+dptrdatakey2:push 82hpush 83hmov dp

25、tr,#1fffhmovx dptr,apop 83hpop 82hinc dptrpush 82hpush 83hretdatakey3:dec r1mov a,r1sjmp datakey2key0:mov r6,#20hmov dptr,#1fffhmovx a,dptrmov r0,amov a,r0mov r7,amov a,#10hmov r0,akey3:lcall keydispjnb 0e5h,key2djnz r6,key3mov dptr,#1fffh ;*movx a,dptrmov r0,a ;*mov a,r7mov r0,akey:mov r6,#50hkey1:

26、lcall keydispjnb 0e5h,key2 ;*djnz r6,key1sjmp key0key2:mov r6,amov a,r7mov r0,amov a,r6 ;a=keydatakeyend: retkeydisp:lcall displcall keysmmov r4,a ;keydatamov r1,#76h ;datasame timemov a,r1mov r2,ainc r1mov a,r1mov r3,a ;last keydataxrl a,r4 ;two time keydatamov r3,04h ;new keydata-r3mov r4,02h ;tim

27、e-r4jz keydisp1mov r2,#88hmov r4,#88hkeydisp1:dec r4mov a,r4xrl a,#82hjz keydisp2mov a,r4 ;r4=timexrl a,#0ehjz keydisp2mov a,r4orl a,r4jz keydisp3mov r4,#20h ;r4=20hdec r2ljmp keydisp5keydisp3:mov r4,#0fhkeydisp2:mov r2,04hmov r4,03hkeydisp5:mov r1,#76hmov a,r2mov r1,ainc r1mov a,r3mov r1,amov a,r4

28、;*cjne r3,#10h,keydisp4keydisp4:retdisp:setb 0d4hmov r1,#7ehmov r2,#20hmov r3,#00hdisp1:mov dptr,#0ff21hmov a,r2movx dptr,amov dptr,#datacomov a,r1movc a,a+dptrmov dptr,#0ff22hmovx dptr,adisp2:djnz r3,disp2dec r1clr cmov a,r2rrc amov r2,ajnz disp1mov a,#0ffhmov dptr,#0ff22hmovx dptr,aclr 0d4hretdata

29、co: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hdb 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,89h,0dehkeysm:setb 0d4hmov a,#0ffhmov dptr,#0ff22hmovx dptr,a ;off dispkeysm0: mov r2,#0fehmov r3,#08hmov r0,#00hkeysm1: mov a,r2mov dptr,#0ff21hmovx dptr,anoprl amov r2,amov dptr,#0ff23hmovx a,dptrcpl anopnopno

30、panl a,#0fhjnz keysm2inc r0;nokeydjnz r3,keysm1sjmp keysm10keysm2: ;ykeycpl ajb 0e0h,keysm3mov a,#00hsjmp keysm7keysm3: jb 0e1h,keysm4mov a,#08hsjmp keysm7keysm4: jb 0e2h,keysm5mov a,#10hsjmp keysm7keysm5: jb 0e3h,keysm10mov a,#18hkeysm7: add a,r0clr 0d4hcjne a,#10h,keysm9keysm9: jnc keysm10mov dptr

31、,#keydatamovc a,a+dptrkeysm10:retkeydata:db 07h,04h,08h,05h,09h,06h,0ah,0bhdb 01h,00h,02h,0fh,03h,0eh,0ch,0dhend五、實驗步驟: 用連續(xù)方式從起始地址0340h開始執(zhí)行程序(輸入0340后輕按exec鍵)。 續(xù)運行程序,在鍵盤上輸入時間初值。如果輸入時分秒初值超范圍,則顯示000000后要求重新設(shè)置初值,初值的默認值為000000。 再次按exec鍵時鐘開始工作,數(shù)碼管上實時顯示時間值。六、思考:(1) 電子鐘走時精度和程序中哪些常數(shù)有關(guān)?(2) 修改程序使定時器工作方式改變,調(diào)節(jié)有關(guān)

32、參數(shù),進一步提高精度。第四章 硬件實驗實驗一 p3.3口輸入 p1口輸出一、實驗目的 掌握p3口、p1口簡單使用。 學習延時程序的編寫和使用。二、實驗內(nèi)容1. p3.3口做輸入口,外接一脈沖,每輸入一個脈沖,p1口按十六進制加一。2. p1口做輸出口,編寫程序,使p1口接的8個發(fā)光二極管l1l8按16進制加一方式點亮發(fā)光二極管。三、實驗說明 1、 p1口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同,由準雙向口結(jié)構(gòu)可知:當p1口作為輸入口時,必須先對它置高電平,使內(nèi)部mos管截止,因內(nèi)部上拉電阻是20k40k,故不會對外部輸入產(chǎn)生影響。若不先對它置高,且原來是低電平,則mos管導通,讀入

33、的數(shù)據(jù)是不正確的。2、 延時子程序的延時計算問題。對于延時程序 delay :mov r6, #00h delay1:mov r7, #80h djnz r7, $ djnz r6, delay1查指令表可知mov、djnz指令均需用兩個機器周期,而一個機器周期時間長度為12/ 6.0mhz,所以該段指令執(zhí)行時間為:(80+1)256+1)2(126000000)=132.1ms四、實驗程序框圖 p3.3真的為高嗎?p3.3為低嗎?開 始p3.3為高嗎延 時延 時a+1送p1口循 環(huán)nnnyyy主程序: nnyr6設(shè)初值ffh延時子程序:r7設(shè)初值ffhr7-1=0否?r6-1=0否返回y五、

34、實驗接線圖:六、實驗程序:org 0540hha1s:mov a,#00hha1s1:jb p3.3,ha1s1mov r2,#20hlcall delayjb p3.3,ha1s1ha1s2:jnb p3.3,ha1s2mov r2,#20hlcall delayjnb p3.3,ha1s2inc apush acccpl amov p1,apop accajmp ha1s1delay:push 02hdelay1: push 02hdelay2: push 02hdelay3: djnz r2,delay3pop 02hdjnz r2,delay2pop 02hdjnz r2,delay1

35、pop 02hdjnz r2,delayretend七、實驗步驟 p3.3用插針連至k1, p1.0p1.7用插針連至l1l8。 從起始地址0540h開始連續(xù)運行程序(輸入0540后按exec鍵)。 開關(guān)k1每撥動一次,l1l8發(fā)光二極管按16進制方式加一點亮。實驗二 工業(yè)順序控制一、實驗目的掌握工業(yè)順序控制程序的簡單編程,中斷的使用。二、實驗預備知識 在工業(yè)控制中,象沖壓、注塑、輕紡、制瓶等生產(chǎn)過程,都是一些斷續(xù)生產(chǎn)過程,按某種程序有規(guī)律地完成預定的動作,對這類斷續(xù)生產(chǎn)過程的控制稱順序控制,例注塑機工藝過程大致按“合模注射延時開模產(chǎn)伸產(chǎn)退”順序動作,用單片機最易實現(xiàn)三、實驗內(nèi)容 8032的p

36、1.0p1.6控制注塑機的七道工序,現(xiàn)模擬控制七只發(fā)光二極管的點亮,高電平有效,設(shè)定每道工序時間轉(zhuǎn)換為延時,p3.4為開工啟動開關(guān),低電平啟動。p3.3為外故障輸入模擬開關(guān),p3.3為0時不斷告警,p1.7為報警聲音輸出,設(shè)定6道工序只有一位輸出,第七道工序三位有輸出。四、實驗說明: 實驗中用外部中斷0,編中斷服務(wù)程序的關(guān)鍵是: 1. 保護進入中斷時的狀態(tài),并在退出中斷之前恢復進入的狀態(tài)。 2. 必須在中斷程序中設(shè)定是否允許中斷重入,即設(shè)置ex0位。一般中斷程序進入時應(yīng)保護psw、acc以及中斷程序使用但非其專用的寄存器,本實驗中未涉及。五、實驗程序框圖:主程序:開始 中斷、p1口、p3口初始

37、化p1口全低工序2延時工序1延時等開工工序7延時 恢復現(xiàn)場故障清除了嗎?返回報 警保護現(xiàn)場關(guān)輸出中斷服務(wù)子程序:yn六、實驗接線圖:七、實驗程序:org 0013hljmp ha2s3org 0580h ha2s:mov p1,#07fhorl p3,#00hha2s1:jnb p3.4,ha2s1orl ie,#84horl ip,#04hmov psw,#00hmov sp,#53hha2s2:mov p1,#07ehacall ha2s7mov p1,#07dhacall ha2s7mov p1,#07bhacall ha2s7mov p1,#077hacall ha2s7mov p1,

38、#06fhacall ha2s7mov p1,#05fhacall ha2s7mov p1,#03fhacall ha2s7sjmp ha2s2ha2s3:mov b,r2ha2s4:mov p1,#07fhmov 20h,#0a0hha2s5:setb p1.7acall ha2s6clr p1.7acall ha2s6djnz 20h,ha2s5clr p1.7acall ha2s6jnb p3.2,ha2s4mov r2,bretiha2s6:mov r2,#06hacall delayretha2s7:mov r2,#30hacall delayretdelay:push 02hdel

39、ay1: push 02hdelay2: push 02hdelay3: djnz r2,delay3pop 02hdjnz r2,delay2pop 02hdjnz r2,delay1pop 02hdjnz r2,delayretend八、實驗步驟: p3.4連k1,p3.3連k2,p1.0p1.6分別連到l1l7,p1.7連sin(電子音響輸入端)。 k1開關(guān)撥在上面,k2撥在上面。 用連續(xù)方式從起始地址0580h開始運行程序(輸入0580后按exec鍵),此時應(yīng)在等待開工狀態(tài)。 k1撥至下面(顯低電平),各道工序應(yīng)正常運行。 k2撥至下面(低電平),應(yīng)有聲音報警(人為設(shè)置故障)。k2撥至

40、上面(高電平),即排除故障,程序應(yīng)從剛才報警的那道工序繼續(xù)執(zhí)行。九、思考:修改程序,使每道工序中有多位輸出。實驗三 8255控制交通燈一、實驗目的: 了解8255芯片的結(jié)構(gòu)及編程方法,學習模擬交通燈控制的實現(xiàn)方法。二、實驗內(nèi)容: 用8255做輸出口,控制十二個發(fā)光二極管燃滅,模擬交通燈管理。三、實驗說明: 1. 因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化情況和規(guī)律。假設(shè)一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1東西綠燈通車,南北紅燈。過一段時間轉(zhuǎn)狀態(tài)2,東西綠燈滅,黃燈閃爍幾次,南北仍然紅燈。再轉(zhuǎn)狀態(tài)3,南北綠燈通車,東西紅燈。過一段時間轉(zhuǎn)狀態(tài)4,南

41、北綠燈滅,閃幾次黃燈,延時幾秒,東西仍然紅燈,最后循環(huán)至狀態(tài)1。開始8255初始化四個路口紅燈亮東西綠燈亮,南北紅燈亮,延時東西黃燈閃爍,南北紅燈亮,延時東西紅燈亮,南北綠燈亮,延時東西紅燈亮,南北黃燈閃爍,延時四、實驗程序框圖:五、實驗接線圖:六、實驗程序:org 0630hha4s:mov sp,#60hmov dptr,#0ff2bhmov a,#80hmovx dptr,amov dptr,#0ff29hmov a,#49hmovx dptr,ainc dptrmov a,#49hmovx dptr,amov r2,#25hlcall delayha4s3:mov dptr,#0ff2

42、9hmov a,#08hmovx dptr,ainc dptrmov a,#61hmovx dptr,amov r2,#55hlcall delaymov r7,#05hha4s1: mov dptr,#0ff29hmov a,#04hmovx dptr,ainc dptrmov a,#51hmovx dptr,amov r2,#20hlcall delaymov dptr,#0ff29hmov a,#00hmovx dptr,ainc dptrmov a,#41hmovx dptr,amov r2,#20hlcall delaydjnz r7,ha4s1mov dptr,#0ff29hmov

43、 a,#03hmovx dptr,ainc dptrmov a,#0chmovx dptr,amov r2,#55hlcall delaymov r7,#05hha4s2:mov dptr,#0ff29hmov a,#02hmovx dptr,ainc dptrmov a,#8ahmovx dptr,amov r2,#20hlcall delaymov dptr,#0ff29hmov a,#02hmovx dptr,ainc dptrmov a,#08hmovx dptr,amov r2,#20hlcall delaydjnz r7,ha4s2ljmp ha4s3delay: push 02hdelay1: push 02hdelay2: push 02hdelay3: djnz r2,delay3pop 02hdjnz r2,delay2pop 02hdjnz r2,delay1pop 02hdjnz r2,delayretend七、實驗步驟: 8255 pc0pc7、pb0pb3依次接發(fā)光二極管l1l12。 以連續(xù)方式從0630h開始執(zhí)行程序,初始態(tài)為四個路口的紅燈全亮之后,東西路口的綠

溫馨提示

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

評論

0/150

提交評論