版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
./ProteusMCS-51教學(xué)實驗指導(dǎo)書目錄第一部分驗證性實驗實驗一I/O口輸出實驗—LED流水燈實驗7一、實驗要求7二、實驗?zāi)康?三、實驗電路及連線7四、實驗說明8五、實驗流程圖8六、實驗步驟8七、實驗結(jié)果和體會9八、建議……………………9實驗二I/O口輸入/輸出實驗—模擬開關(guān)燈10一、實驗要求10二、實驗?zāi)康?0三、實驗電路及連線10四、實驗說明10五、實驗程序流程圖11六、實驗步驟11七、實驗結(jié)果和體會12八、建議……………………..12實驗三8255I/O擴展實驗13一、實驗要求13二、實驗?zāi)康模?3三、實驗電路及連線13四、實驗說明14五、實驗程序流程圖14六、實驗步驟14七、實驗結(jié)果和體會:15八、建議..……………………15實驗四無譯碼的七段數(shù)碼管顯示實驗16一、實驗要求16二、實驗?zāi)康?6三、實驗電路及連線16四、實驗說明16五、實驗程序流程圖17六、實驗步驟17七、實驗結(jié)果和體會18八、建議……………………..18實驗五BCD碼譯碼的多位數(shù)碼管掃描顯示實驗19一、實驗要求19二、實驗?zāi)康?9三、實驗電路及連線19四、實驗說明19五、實驗程序流程圖20六、實驗步驟20七、實驗結(jié)果和體會21八、建議21實驗六獨立式鍵盤實驗22一、實驗要求22二、實驗?zāi)康?2三、實驗電路及連線22四、實驗說明22五、實驗程序流程圖23六、實驗步驟23七、實驗結(jié)果和體會24八、建議24實驗七計數(shù)器實驗25一、實驗要求25二、實驗?zāi)康?5三、實驗電路及連線25四、實驗說明25五、實驗程序流程圖25六、實驗步驟26七、實驗結(jié)果和體會26八、建議26實驗八定時器實驗27一、實驗要求27二、實驗?zāi)康?7三、實驗電路及連線27四、實驗說明27五、實驗程序流程圖 …..28六、實驗步驟28七、實驗結(jié)果和體會29八、建議29實驗九單個外部中斷實驗30一、實驗要求30二、實驗?zāi)康?0三、實驗電路及連線30四、實驗說明30五、實驗程序流程圖31六、實驗步驟31七、實驗結(jié)果和體會32八、建議32實驗十多個中斷同時存在實驗33一、實驗要求33二、實驗?zāi)康?3三、實驗電路及連線33五、實驗程序流程圖34六、實驗步驟34七、實驗結(jié)果和體會:36八、建議36實驗十一矩陣鍵盤掃描實驗37一、實驗要求37二、實驗?zāi)康?7三、實驗電路及連線37四、實驗說明37五、實驗流程圖38六、實驗步驟38七、實驗結(jié)果和體會40八、建議40實驗十二串行端口輸出擴充實驗41一、實驗要求41二、實驗?zāi)康?1三、實驗電路及連線41四、實驗說明41五、實驗流程圖42六、實驗步驟42七、實驗結(jié)果和體會44八、建議44實驗十三串行端口輸入擴充實驗45一、實驗要求45二、實驗?zāi)康?5三、實驗電路及連線45四、實驗說明46五、實驗流程圖46六、實驗步驟46七、實驗結(jié)果和體會47八、建議47實驗十四8051與PC之間串行通信實驗48一、實驗要求48二、實驗?zāi)康?8三、實驗電路及連線48四、實驗說明48五、實驗流程圖49六、實驗步驟50七、實驗結(jié)果和體會51八、建議51.第一部分驗證性實驗.實驗一I/O口輸出實驗—LED流水燈實驗、實驗要求利用51單片機及8個發(fā)光二級管等器件,構(gòu)成一個流水燈單片機系統(tǒng)。、實驗?zāi)康?、掌握單片機最小系統(tǒng)的構(gòu)成;、掌握I/O口的使用及驅(qū)動能力的概念;、熟悉移位指令和軟件延時程序。、實驗電路及連線、Proteus實驗電路2、硬件驗證實驗〔51板+006板CPU板006板P1.0LED1P1.1LED2P1.2LED3P1.3LED4P1.4LED5P1.5LED6P1.6LED7P1.7LED8+5V+5VGNDGND、實驗說明、主要知識點概述:本實驗涉及到三個知識點:單片機最小系統(tǒng)的構(gòu)成、單片機I/O口的使用以及軟件延時程序的編寫。1單片機最小系統(tǒng)由單片機芯片、時鐘電路以及復(fù)位電路構(gòu)成。2I/O口的使用:P1口是準(zhǔn)雙向口。它作為輸出口時與一般的雙向口使用方法相同,即當(dāng)P1口用為輸入口時,必須先對它置"1”。若不先對它置"1”,讀入的數(shù)據(jù)可能是不正確的。3延時子程序的延時計算問題。對于程序DELAY: MOV R6,#200DEL1: MOV R7,#250DEL2: DJNZ R7,DEL2DJNZ R6,DEL1RET由指令表可知MOV、DJNZ指令均需用兩個機器周期,在采用12MHz晶振時,一個機器周期時間長度為1us,所以該段程序執(zhí)行時間約為:[<250*2+2>*200+2]*1us=1000402≈100ms、實驗效果說明:發(fā)光二級管進(jìn)行流水燈操作,從上到下依次點亮。、實驗流程圖否否是開始R2=8,ACC=0FEH延時0.2SP1=ACCACC左移一次,R2=R2-1R2=0?、實驗步驟、Proteus仿真、在Proteus中打開設(shè)計文檔流水燈.DSN;、建立實驗程序并編譯,加載hex文件,仿真;、如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試參考程序:ORG00HSTART: MOVR2,#8 MOVA,#0FEHLOOP: MOVP1,A LCALLDELAYRLA ;循環(huán)左移DJNZR2,LOOP;判斷移動是否超過8位,未超過繼續(xù)循環(huán) LJMPSTARTDELAY: MOVR5,#20 ;延時程序,延時0.2sD1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2DJNZR5,D1 RET END、實驗板驗證、用ISP下載hex程序到CPU、按連接表連接電路、檢查驗證結(jié)果、擴展實驗a. 改變延時時間為1s b. 改變流水燈流動方向c.改變流水燈的流動樣式設(shè)計流程和程序:、實驗結(jié)果和體會、建議實驗二I/O口輸入/輸出實驗—模擬開關(guān)一、實驗要求 利用51單片機,按鈕和發(fā)光二級管,構(gòu)成一個模擬開關(guān)燈的單片機系統(tǒng)。二、實驗?zāi)康?、了解單片機I/O輸入輸出的使用;、掌握單片機I/O口位操作的編程;、掌握分支程序的設(shè)計與分析方法。三、實驗電路及連線1、Proteus實驗電路2.硬件驗證實驗〔CPU板+006板硬件連接表CPU板006板P1.0LED1P3.0SW1+5V+5VGNDGND四、實驗說明1.主要知識點概述:1開關(guān)狀態(tài)的檢測過程單片機對開關(guān)狀態(tài)的檢測相對于單片機來說,是從單片機的P3.0端口輸入信號,而輸入的信號只有高電平和低電平兩種,當(dāng)撥開開關(guān)K1撥上去,即輸入高電平,相當(dāng)開關(guān)斷開,當(dāng)撥動開關(guān)K1撥下去,即輸入低電平,相當(dāng)開關(guān)閉合。單片機可以采用JBBIT,REL或者是JNBBIT,REL指令來完成對開關(guān)狀態(tài)的檢測即可。2輸出控制如圖中所示,當(dāng)P1.0端口輸出高電平,即P1.0=1時,根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍?這時發(fā)光二極管L1熄滅;當(dāng)P1.0端口輸出低電平,即P1.0=0時,發(fā)光二極管L1亮;我們可以使用SETBP1.0指令使P1.0端口輸出高電平,使用CLRP1.0指令使P1.0端口輸出低電平。2.實驗效果說明:按下按鈕,燈亮,松開按鈕,燈滅。五、實驗程序流程圖是是開始K1開關(guān)閉合了嗎?L1亮L1滅否六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔I/O實驗.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG00HSTART: JBP3.0,LIG ;判斷開關(guān)狀態(tài) CLRP1.0 ;開關(guān)閉合,燈亮 SJMPSTARTLIG: SETBP1.0 ;開關(guān)打開,燈滅 SJMPSTART ;返回 END2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗a.設(shè)計三路開關(guān)輸入,三路發(fā)光二級管輸出的電路及程序;b.設(shè)計開關(guān)觸發(fā)———延時1s燈滅程序。設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗三8255I/O擴展實驗實驗要求利用8255可編程并行口芯片,實現(xiàn)輸入/輸出實驗,實驗中用8255P口做輸出,PB口作輸入。實驗?zāi)康模?.了解8255芯片結(jié)構(gòu)及編程方法;2.了解8255輸入/輸出實驗方法。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗8255的CS接地址譯碼CS0,則命令字地址為7003H,PA口地址為7000H,PB口地址為7001H,PC口地址為7002H。PA0~PA7〔PA口接LED0~LED7,PB0~PB7〔PB口接K0~K7〔開關(guān)量。硬件連接表CPU板006板8255板P2.7CS0D0-D7KEY0-KEY7PB0-PB7LED1-LED8PA0-PA7ALELEWR,RDWR,RDRESETRESET四、實驗說明可編程通用接口芯片8255A有三個八位的并行I/O口,它有三種工作方式。本實驗采用的是方式0:PA、PC口輸出,PB口輸入。很多I/O實驗都可以通過8255來實現(xiàn)。五、實驗程序流程圖六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔8255.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:PA->PB:流水燈: ORG00HORG00HMAIN: ACALLDELAYMAIN: ACALLDELAYMOVDPTR,#7003HMOVDPTR,#7003HMOVA,#82HMOVA,#82H MOVXDPTR,AMOVXDPTR,ALOOP: MOVDPTR,#7001HMOVA,#11111110B MOVXA,DPTRMOVDPTR,#7000HMOVDPTR,#7000HLOOP:MOVXDPTR,A MOVXDPTR,ARLA SJMPLOOPACALLDELAYDELAY:MOVR1,#00HSJMPLOOPDLP: MOVR2,#50HDELAY: …. DJNZR2,$END DJNZR1,DLP RET END2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗設(shè)計按鍵控制的流水燈,要求不同按鍵按下時流水燈以不同方式閃動,閃動方案自定。設(shè)計流程和程序:七、實驗結(jié)果和體會:八、建議:實驗四無譯碼的七段數(shù)碼管顯示實驗一、實驗要求 利用51單片機,一個7段數(shù)碼管,構(gòu)成一個單個LED顯示系統(tǒng)。二、實驗?zāi)康?.了解數(shù)碼管顯示原理。 2.掌握讀表程序的編寫。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗〔CPU板+004板硬件連接表〔CPU板+004板CPU板LED板P0.0LED-AP0.1LED-BP0.2LED-CP0.3LED-DP0.4LED-EP0.5LED-FP0.6LED-GP0.7LED-COM+5V+5VGNDGND注:P0口在CPU板上已經(jīng)接上拉電阻。四、實驗說明1.主要知識點概述:1LED數(shù)碼顯示原理七段LED顯示器部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽極型。LED數(shù)碼管的g~a七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陽極的字形碼見表2"0"0C0H"8"80H"1"0F9H"9"90H"2"0A4H"A"88H"3"0B0H"b"80H"4"99H"C"0B6H"5"92H"d"0B0H"6"82H"E"86HH"7"F8H"F"8EH2>段碼表格由于顯示的數(shù)字0-9的字形碼沒有規(guī)律可循,只能采用查表的方式來完成我們所需的要求了。這樣我們按著數(shù)字0-9的順序,把每個數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLEDB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h2.實驗效果說明: 數(shù)碼管循環(huán)顯示0~9。五、實驗程序流程圖六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔LED.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG 00HSTART: MOV DPTR,#TABLE ;指針指向表頭地址S1: MOV A,#00H ;設(shè)置地址偏移量 MOVC A,A+DPTR ;查表取得段碼,送A存儲 CJNE A,#01H,S2 ;判斷段碼是否為結(jié)束符 LJMP STARTS2: MOV P0,A ;段碼送LED顯示 LCALL DELAY ;指針加1 INC DPTR LJMP S1DELAY: MOV R5,#20 ;延時子程序D2: MOV R6,#20D1: MOV R7,#248 DJNZ R7,$DJNZ R6,D1 DJNZ R5,D2 RET TABLEDB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;段碼表DB 01H ;結(jié)束符 END2、實驗板驗證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗a.將程序改為循環(huán)顯示一串〔如學(xué)號;b.設(shè)計一個組成"0”設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗五BCD碼譯碼的多位數(shù)碼管掃描顯示實驗一、實驗要求利用51單片機、BCD譯碼芯片74LS47和兩位LED構(gòu)成一個數(shù)碼管掃描顯示系統(tǒng)。二、實驗?zāi)康?.掌握BCD譯碼電路的工作原理。2.掌握多位數(shù)碼管顯示的編程。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗〔CPU板+004顯示板硬件連接表CPU板004板P0.0BCD-AP0.1BCD-BP0.2BCD-CP0.3BCD-DP3.0SEG1P3.1SEG2+5V+5VGNDGND四、實驗說明1.主要知識點概述:二進(jìn)制編碼的十進(jìn)制數(shù),簡稱BCD碼<BinarycodedDecimal>,此例中,74LS47完成BCD編碼的功能。 多位LED顯示,先往段碼端口輸出段碼,再選通位選,對應(yīng)的LED顯示。2.實驗效果說明:兩個數(shù)碼管同時循環(huán)顯示0~9。五、實驗程序流程圖判斷顯示是否到9?判斷顯示是否到9?是否開始A=0,R1=10置段碼置位碼延時顯示六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔BCDLED.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序: ORG 00HL: MOV A,#0 ;設(shè)置顯示初值 MOV R0,#10 ;設(shè)置顯示個數(shù)START: MOVP0,A ;向P0口輸出顯示段碼 SETB P3.0 SETB P3.1 ;位選 LCALL DELAY INC A DJNZ R0,START JMP LDELAY:MOV R5,#50 ;延時程序D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗設(shè)計一個99計數(shù)器。設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗六獨立式鍵盤實驗一、實驗要求利用51單片機,8個按鈕,8路發(fā)光二級管構(gòu)成一個獨立式鍵盤系統(tǒng)。二、實驗?zāi)康?、掌握多路I/O輸入輸出的編程。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗硬件連接表〔CPU板+006板CPU板006板P1.0~P1.7LED1~LED8P3.0~P3.7SW1~SW8+5V+5VGNDGND四、實驗說明1.主要知識點概述:使用分支程序編程方法,對開關(guān)狀態(tài)進(jìn)行監(jiān)測,輸入電平有變化,跳轉(zhuǎn)到相應(yīng)的處理程序進(jìn)行處理,輸出處理結(jié)果。2.實驗效果說明: 按下8個按鈕,點亮對應(yīng)的燈。五、實驗程序流程圖開始開始P3=#0FFHP1=#0FEHP3=?P1=#0FDHP1=#0BFHP1=#7FH結(jié)束P3.1=1P3.2=1P3.6=1P3.7=1六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔獨立式鍵盤.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG0000HLJMPSTARTORG0100HSTART:MOVP3,#0FFHHL: JNBP3.0,HL0JNBP3.1,HL1JNBP3.2,HL2JNBP3.3,HL3 JNB P3.4,HL4 JNB P3.5,HL5 JNB P3.6,HL6JNB P3.7,HL7LJMPHLHL0:MOVP1,#0FEHLJMPHLHL1:MOVP1,#0FDHLJMPHLHL2:MOVP1,#0FBHLJMPHLHL3:MOVP1,#0F7HLJMPHLHL4:MOVP1,#0EFHLJMPHLHL5:MOVP1,#0DFHLJMPHLHL6:MOVP1,#0BFHLJMPHLHL7:MOVP1,#07FHLJMPHLEND2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗按鍵后使對應(yīng)的燈閃爍。設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗七計數(shù)器實驗一、實驗要求8051部定時計數(shù)器T0,按計數(shù)器模式和方式1工作,對P3.4〔T0引腳進(jìn)行計數(shù)。將其數(shù)值按二進(jìn)制數(shù)在P1口驅(qū)動LED燈上顯示出來。二、實驗?zāi)康恼莆諉纹瑱C定時計數(shù)器計數(shù)方式的使用及編程方法。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗硬件連接表CPU板004板006板P0.0~P0.6LED-A~LED-GP0.7LED-COMP3.4SW1+5V+5VGNDGND四、實驗說明1.主要知識點概述:本實驗中部計數(shù)器起計數(shù)器的作用。外部事件脈沖由P3.4引入定時/計數(shù)器T0,即T0用來檢測外部脈沖數(shù)。2.實驗效果說明: 由按鍵產(chǎn)生計數(shù)脈沖,LED分別顯示脈沖個數(shù)〔10個以。開始開始計數(shù)計數(shù)、輸出計數(shù)值設(shè)置工作方式五、實驗程序流程圖開始開始計數(shù)計數(shù)、輸出計數(shù)值設(shè)置工作方式六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔courter.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG 0 MOV TMOD,#00000101B ;置T0計數(shù)器方式1 MOV TH0,#0 ;置T0初值 MOV TL0,#0 MOV R0,#10 SETB TR0 ;T0運行 MOV DPTR,#TABLES1: MOV A,TL0 MOVC A,A+DPTR MOV P0,A LJMP S1TABLE: DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;結(jié)束符 DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;結(jié)束符 END2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗八定時器實驗一、實驗要求用51單片機的P1.0口接1個發(fā)光二級管,編寫程序,控制發(fā)光二級管閃爍,時間間隔1S,要求AT89C51部定時器計時。二、實驗?zāi)康恼莆諉纹瑱C定時計數(shù)器定時方式的使用及編程方法。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗硬件連接表CPU板006板P1.0LED1+5V+5VGNDGND四、實驗說明1.主要知識點概述:關(guān)于部計數(shù)器的編程,主要是定時常數(shù)的位置和有關(guān)控制寄存器的設(shè)置。部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本例使用的是定時器,定時1S。CPU運行定時中斷方式,實現(xiàn)每1S輸出狀態(tài)發(fā)生一次反轉(zhuǎn),即發(fā)光二級管1S亮一次。定時器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時器/計數(shù)器的工作方式0-3,并確定用于定時還是計數(shù)。TCON主要功能是為定時器在溢出時設(shè)定標(biāo)志位,并控制定時器的運行或停止。部計數(shù)器用于定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩周期。本例中單片機晶振12MHZ,選用工作方式2,既8位自動重裝方式定時器,定時器100us中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算: 機器周期=12/12MHZ=1us <256-定時常數(shù)>*1us=100us定時常數(shù)=156。然后對100us中斷次數(shù)計數(shù)10000次,就是1S。2.實驗效果說明:發(fā)光二級管按設(shè)定的定時時間閃爍。五、實驗程序流程圖主程序定時中斷服務(wù)程序定時中斷入口保護(hù)現(xiàn)場定時中斷入口保護(hù)現(xiàn)場秒計數(shù)值減1重新設(shè)置秒計數(shù)值計到1S!狀態(tài)位取反恢復(fù)現(xiàn)場中斷返回是否開始置T1工作方式設(shè)置時間常數(shù)設(shè)置初始狀態(tài)位設(shè)置秒計數(shù)值中斷允許輸出狀態(tài)位等待中斷六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔timer.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:TICK EQU 10000 ;10000×100us=1sT100us EQU 256-100 ;100us時間常數(shù)〔12MC100us EQU 30H ;100us計數(shù)單元LEDBUF EQU 40H LED BIT P1.0ORG 00HLJMP START ;跳至主程序 ORG 000BH ;定時中斷入口地址T0INT: PUSH PSW ;狀態(tài)保護(hù) MOV A,C100us+1 JNZ GOON DEC C100us ;秒計數(shù)值減1GOON: DEC C100us+1 MOV A,C100us ORL A,C100us+1 JNZ EXIT ;100us計數(shù)器不為0,返回 MOV C100us,#HIGH<TICK> ;100us計數(shù)器為0,重置計數(shù)器 MOV C100us+1,#LOW<TICK> CPL LEDBUF ;取反LEDEXIT: POP PSW RETISTART: MOV TMOD,#02H ;方式2,定時器 MOV TH0,#T100us ;置定時器初值 MOV TL0,#T100us MOV IE,#10000010B ;EA=1,IT0=1 SETB TR0 ;開始定時 CLR LEDBUF CLR LED MOV C100us,#HIGH<TICK> ;設(shè)置10000次計數(shù)值 MOV C100us+1,#LOW<TICK>LOOP: MOV C,LEDBUF MOV LED,C LJMP LOOP END2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗使用其他定時器其他工作方式設(shè)計該實驗。設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗九單個外部中斷實驗一、實驗要求利用P3.2接一個外部中斷輸入,通過P1口連接8個發(fā)光二級管顯示中斷程序的作用。二、實驗?zāi)康?.理解中斷源、中斷標(biāo)志、中斷入口等概念。2.掌握中斷程序的分析與設(shè)計方法。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗硬件連接表CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、實驗說明1.主要知識點概述: 外部中斷的響應(yīng)過程: 1中斷采樣:根據(jù)采樣結(jié)果設(shè)置TCON寄存器中斷響應(yīng)標(biāo)志位的狀態(tài)。 2中斷查詢:查詢TCON標(biāo)志位的狀態(tài),確定是否響應(yīng)。3中斷響應(yīng):保護(hù)斷點容,裝入中斷入口地址,執(zhí)行中斷服務(wù)程序,返回中斷點,繼續(xù)執(zhí)行原來程序。2.實驗效果說明:中斷未發(fā)生時,LED做閃爍狀態(tài),當(dāng)有中斷產(chǎn)生,LED呈流水燈操作。五、實驗程序流程圖主程序框圖外部子程序框圖開始設(shè)置初始狀態(tài)開始設(shè)置初始狀態(tài)等待中斷中斷允許設(shè)置中斷控制寄存器中斷入口流水燈程序中斷返回恢復(fù)現(xiàn)場保護(hù)現(xiàn)場六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔外部中斷.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:;開始,P1口燈閃爍,中斷產(chǎn)生,P1口呈流水燈操作。 ORG0000H;程序由地址0開始執(zhí)行 LJMPSTART ORG0003H;設(shè)置外部中斷矢量地址 LJMPINT;跳轉(zhuǎn)到中斷控制入口處START:MOVSP,#60HMOVTCON,#00000000BMOVIP,#00000001BMOVIE,#10000001B ;對中斷進(jìn)行初始化RUN:MOVA,#0LOOP:MOVP1,AMOVR5,#20 LCALLDELAYCPLA LJMPLOOP ;閃爍燈INT: ;中斷服務(wù)程序 PUSHACCPUSHPSW ;保護(hù)現(xiàn)場CLRRS1 ;切換寄存器組SETBRS0CLRCMOVA,#11111111BMOVR4,#16LOOPR: ;流水燈程序RRCAMOVP1,AMOVR5,#20CALLDELAYDJNZR4,LOOPRPOPPSW ;恢復(fù)現(xiàn)場POPACCRETIDELAY:MOVR6,#50 ;延時程序S1:MOVR7,#100DJNZR7,$DJNZR6,S1DJNZR5,DELAYRETEND2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗改變中斷觸發(fā)方式或更改中斷服務(wù)程序容重做以上實驗,容自定。設(shè)計流程和程序:七、實驗結(jié)果和體會八、建議實驗十多個中斷同時存在實驗一、實驗要求利用P3.2接一個外部中斷輸入,同時使用到單片機定時器中斷,通過P1口連接8個發(fā)光二級管顯示中斷的作用。二、實驗?zāi)康牧私庵袛嗲短缀椭袛鄡?yōu)先級的概念和編程方法。三、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、實驗說明1.所用知識點概述中斷優(yōu)先級:51系統(tǒng)有高、低兩個中斷優(yōu)先級。各中斷的優(yōu)先級通過中斷優(yōu)先寄存器〔IP進(jìn)行設(shè)定。在進(jìn)行中斷響應(yīng)時,高優(yōu)先級可以打斷低優(yōu)先級的中斷服務(wù),形成中斷嵌套。2.實驗效果說明外部中斷未發(fā)生時,系統(tǒng)通過定時器定時的方法,使LED做流水燈操作,當(dāng)有中斷產(chǎn)生,LED閃爍5次,完畢返回。五、實驗程序流程圖主程序框圖定時中斷子程序外中斷中斷子程序開始設(shè)置初始狀態(tài)開始設(shè)置初始狀態(tài)等待中斷中斷允許設(shè)置中斷控制寄存器否是定時中斷入口計數(shù)值重新賦值現(xiàn)場保護(hù)中斷返回流水燈程序恢復(fù)現(xiàn)場溢出次數(shù)>100?外中斷入口外中斷入口閃爍燈程序中斷返回恢復(fù)現(xiàn)場保護(hù)現(xiàn)場六、實驗步驟1、Proteus仿真a.在Proteus中打開設(shè)計文檔多個中斷.dsn;b.建立實驗程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試。參考程序:;計時中斷與外部中斷同時存在實驗;利用計時方式,使8只LED燈每隔1s左移一次,當(dāng)外部中斷P3.2出現(xiàn)時8個LED燈閃爍5次,閃爍完后返回主程序運行。 ORG0000HLJMPSTART ORG0003H ;外部中斷入口LJMPEXT ORG000BH ;定時中斷入口LJMPTIMSTART: MOVSP,#70H ;建立堆棧區(qū) MOVTMOD,#00000001B ;定時器0,工作方式1 MOVTH0,#HIGH<65536-10000> ; MOVTL0,#LOW<65536-10000> ;裝計數(shù)器初值 SETBTR0 ;TR0置1,定時開始 MOVIE,#10000011B ;開總中斷,定時器0中斷允許 MOVIP,#00000001B ;設(shè)定外部中斷0優(yōu)先級高 MOVR5,#100 ;定時溢出次數(shù) MOVR1,#0FEH ;LJMP$;***********************************************;TIM: PUSHACC PUSHPSW ;現(xiàn)場保護(hù) MOVTH0,#HIGH<65536-10000> MOVTL0,#LOW<65536-10000> ;重賦計數(shù)值DJNZR3,LOOP MOVR3,#100 MOVA,R1 MOVP1,A RLA MOVR1,A ;移位LOOP: POPPSW POPACC ;恢復(fù)現(xiàn)場 RETI;***********************************************;;外部中斷服務(wù)程序,閃爍5EXT: PUSHACC PUSHPSW MOVA,#00MOVR2,#10LOOP3: MOVP1,A CALLDELAYCPLA DJNZR2,LOOP3 POPPSW POPACC RETI ;***********************************************;;延時程序DELAY: MOVR5,#20D1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RETEND2、實驗板驗證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果3、擴展實驗設(shè)計兩個外部中斷與定時中斷同時存在的實驗設(shè)計流程和程序七、實驗結(jié)果和體會:八、建議:實驗十一矩陣鍵盤掃描實驗、實驗要求利用4X416位鍵盤和一個7段LED構(gòu)成簡單的輸入顯示系統(tǒng),實現(xiàn)鍵盤輸入和LED顯示實驗。、實驗?zāi)康?、理解矩陣鍵盤掃描的原理;2、掌握矩陣鍵盤與51單片機接口的編程方法。、實驗電路及連線、Proteus實驗電路、硬件驗證實驗CPU板004板007P2.0~P2.7LED-A~LED-GP1.0~P1.3C1~C4P1.4~P1.7R1~R4+5V+5V+5VGNDGNDGND、實驗說明1、主要知識點概述:本實驗闡述了鍵盤掃描原理,過程如下:首先掃描鍵盤,判斷是否有鍵按下,再確定是哪一個鍵,計算鍵值,輸出顯示。2、實驗效果說明:以數(shù)碼管顯示鍵盤的作用。點擊相應(yīng)按鍵顯示相應(yīng)的鍵值。、實驗流程圖開始掃描鍵盤有鍵按下?延時去抖掃描鍵盤找到閉合鍵開始掃描鍵盤有鍵按下?延時去抖掃描鍵盤找到閉合鍵計算鍵值根據(jù)鍵值得到對應(yīng)段碼輸出段碼顯示是否、實驗步驟、Proteus仿真、在Proteus中打開設(shè)計文檔鍵盤掃描.DSN;、建立實驗程序并編譯,加載hex文件,仿真;、如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試參考程序:org0000hajmpmainorg0030hmain: movdptr,#table;將表頭放入DPTRlcallkey ;調(diào)用鍵盤掃描程序 movca,a+dptr ;查表后將鍵值送入ACCmovp2,a ;將Acc值送入P0口ljmpmain ;返回反復(fù)循環(huán)顯示KEY: LCALLKS ;調(diào)用檢測按鍵子程序 JNZK1;有鍵按下繼續(xù) LCALLDELAY2 ;無鍵按調(diào)用延時去抖 AJMPKEY ;返回繼續(xù)檢測按鍵K1:LCALLDELAY2LCALLDELAY2 ;有鍵按下延時去抖動LCALLKS ;再調(diào)用檢測按鍵程序 JNZK2 ;確認(rèn)有按下進(jìn)行下一步 AJMPKEY ;無鍵按下返回繼續(xù)檢測K2: MOVR2,#0EFH ;將掃描值送入R2暫存MOVR4,#00H ;將第一列值送入R4暫存K3: MOVP1,R2 ;將R2的值送入P1口L6: JBP1.0,L1 ;P1.0等于1跳轉(zhuǎn)到L1 MOVA,#00H ;將第一行值送入ACC AJMPLK ;跳轉(zhuǎn)到鍵值處理程序L1: JBP1.1,L2 ;P1.1等于1跳轉(zhuǎn)到L2 MOVA,#04H ;將第二行的行值送入ACC AJMPLK ;跳轉(zhuǎn)到鍵值理程序進(jìn)行鍵值處理L2: JBP1.2,L3 ;P1.2等于1跳轉(zhuǎn)到L3 MOVA,#08H ;將第三行的行值送入ACC AJMPLK ;跳轉(zhuǎn)到鍵值處理程序L3: JBP1.3,NEXT ;P1.3等于1跳轉(zhuǎn)到NEXT處 MOVA,#0cH 將第四行的行值送入ACCLK: ADDA,R4 ;行值與列值相加后的鍵值送入A PUSHACC ;將A中的值送入堆棧暫存K4: LCALLDELAY2;調(diào)用延時去抖動程序 LCALLKS;調(diào)用按鍵檢測程序 JNZK4 ;按鍵沒有松開繼續(xù)返回檢測 POPACC ;將堆棧的值送入ACCRETNEXT: INCR4;將列值加一 MOVA,R2;將R2的值送入A JNBACC.7,KEY ;掃描完至KEY處進(jìn)行下一掃描 RLA ;掃描未完將A中的值右移一位進(jìn)行下一列的掃描 MOVR2,A ;將ACC的值送入R2暫存 AJMPK3 ;跳轉(zhuǎn)到K3繼續(xù)KS: MOVP1,#0FH ;將P1口高四位置0低四位值1 MOVA,P1 ;讀P1口 XRLA,#0FH ;將A中的值與A中的值相異或 RET ;子程序返回DELAY2: ;40ms延時去抖動子程序MOVR5,#08HL7:MOVR6,#0FAHL8:DJNZR6,L8DJNZR5,L7RETTABLE: ;七段顯示器數(shù)據(jù)定義DB0C0H,0F9H,0A4H,0B0H,99H;01234DB92H,82H,0F8H,80H,90H;56789DB88H,83H,0C6H,0A1H,86H;ABCDEDB8EH;F END ;程序結(jié)束、實驗板驗證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果、擴展實驗設(shè)計其他方式鍵盤掃描程序。設(shè)計流程和程序:、實驗結(jié)果和體會、建議串行端口輸出擴充實驗、實驗要求利用移位積存器74LS164、單片機的串口和7個LED完成串行端口擴展,實現(xiàn)跑馬燈閃爍。、實驗?zāi)康?、理解串行通訊和并行通訊的含義;2、了解74LS164的工作原理,理解串轉(zhuǎn)并的原理;3、掌握單片機串口用于并行輸出口擴展的原理。、實驗電路及連線1、Proteus實驗電路2、硬件驗證實驗〔CPU板+006板首先將006板上撥碼開關(guān)撥向ON。CPU板006板P3.0164_A、164_BP3.1164_CLK+5V+5VGNDGND、實驗說明1、主要知識點概述:本實驗用到了兩個主要知識點是:74LS164的工作機制、簡單的單片機串口輸出。2、實驗效果說明:使用74LS164的并行輸出端接8個LED,利用它串入并出的功能,把LED按預(yù)先規(guī)定的次序點亮。、實驗流程圖開始開始查表獲得顯示所需參數(shù)延時主程序參數(shù)為結(jié)束值向串口發(fā)送參數(shù)串口初始化否是、實驗步驟1、Proteus仿真、在Proteus中打開設(shè)計文檔serialout.DSN;、建立實驗程序并編譯,加載hex文件,仿真;、如不能正常工作,打開調(diào)試窗口進(jìn)行調(diào)試參考程序:org0000hmovscon,#00000000b ;設(shè)定UART方式MODE0start:movdptr,#table ;數(shù)據(jù)指針指到TABLEloop:clra ;清除ACCmovca,a+dptr ;到TABLE取數(shù)據(jù)cjnea,#09,play ;到結(jié)束碼03了么?不是則到A1jmpstart ;是則重新開始play: cpla ;取到的數(shù)據(jù)反向mov30h,a ;A存入30Hmovsbuf,30h ;30H的值存入SBUFloop1:jbcti,loop2 ;監(jiān)測TI=1?是則跳到LOOP2jmploop1 ;否則繼續(xù)監(jiān)測,傳輸過程loop2:callDELAY ;延時incdptr ;數(shù)據(jù)指針加1jmploop;延時程序DELAY:MOVR5,#255D3:MOVR2,#255D4:DJNZR2,D4DJNZR5,D3RETtable:db01h,02h,04h,08h ;左移db10h,20h,40h,80hdb01h,02h,04h,08hdb10h,20h,40h,80hdb80h,40h,20h,10h ;右移db08h,04h,02h,01hdb80h,40h,20h,10hdb08h,04h,02h,01hdb00h,0ffh,00h,0ffh ;閃爍db09hEND、實驗板驗證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗證結(jié)果、擴展實驗用兩片74LS164擴展串行端口輸出。設(shè)計流程和程序:、實驗結(jié)果和體會、建議串行端口輸入擴充實驗、實驗要求利用74LS165、8個按鍵和8個LED,實現(xiàn)并轉(zhuǎn)串的輸入擴充實驗。、實驗?zāi)康?、掌握串口用于并行輸入端口擴充的編程方法;、理解74LS165的工作原理;、實驗電路及連線、Proteus實驗電路、硬件驗證實驗〔CPU板+006板首先將006板上撥碼開關(guān)撥向OFF。CPU板006板P3.0165_SOP3.1165_CLK
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年防洪工程承包商建設(shè)借款合同3篇
- 事業(yè)單位人力資源聘用合同(2024版)版B版
- 2024離婚協(xié)議房產(chǎn)
- 2025年度高級軟件開發(fā)與技術(shù)服務(wù)合同2篇
- 二零二五版辣椒種子生產(chǎn)與辣椒苗代銷合作協(xié)議2篇
- 2024版工程協(xié)議監(jiān)管及進(jìn)度記錄臺賬一
- 二零二五版航空航天設(shè)備研發(fā)與采購合同范本3篇
- 2024年版磚結(jié)構(gòu)建筑勞務(wù)合作模板協(xié)議版B版
- 二零二五年度燒烤餐飲業(yè)商鋪租賃合同書3篇
- 二零二五版寵物傷害賠償及責(zé)任承擔(dān)協(xié)議3篇
- 生物醫(yī)藥大數(shù)據(jù)分析平臺建設(shè)
- EPC總承包項目中的質(zhì)量管理體系
- 滬教版小學(xué)語文古詩(1-4)年級教材
- 外科醫(yī)生年終述職總結(jié)報告
- CT設(shè)備維保服務(wù)售后服務(wù)方案
- 重癥血液凈化血管通路的建立與應(yīng)用中國專家共識(2023版)
- 兒科課件:急性細(xì)菌性腦膜炎
- 柜類家具結(jié)構(gòu)設(shè)計課件
- 陶瓷瓷磚企業(yè)(陶瓷廠)全套安全生產(chǎn)操作規(guī)程
- 煤炭運輸安全保障措施提升運輸安全保障措施
- JTGT-3833-2018-公路工程機械臺班費用定額
評論
0/150
提交評論