Proteus單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
Proteus單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
Proteus單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
Proteus單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)
Proteus單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

./ProteusMCS-51教學(xué)實(shí)驗(yàn)指導(dǎo)書(shū)目錄第一部分驗(yàn)證性實(shí)驗(yàn)實(shí)驗(yàn)一I/O口輸出實(shí)驗(yàn)—LED流水燈實(shí)驗(yàn)7一、實(shí)驗(yàn)要求7二、實(shí)驗(yàn)?zāi)康?三、實(shí)驗(yàn)電路及連線7四、實(shí)驗(yàn)說(shuō)明8五、實(shí)驗(yàn)流程圖8六、實(shí)驗(yàn)步驟8七、實(shí)驗(yàn)結(jié)果和體會(huì)9八、建議……………………9實(shí)驗(yàn)二I/O口輸入/輸出實(shí)驗(yàn)—模擬開(kāi)關(guān)燈10一、實(shí)驗(yàn)要求10二、實(shí)驗(yàn)?zāi)康?0三、實(shí)驗(yàn)電路及連線10四、實(shí)驗(yàn)說(shuō)明10五、實(shí)驗(yàn)程序流程圖11六、實(shí)驗(yàn)步驟11七、實(shí)驗(yàn)結(jié)果和體會(huì)12八、建議……………………..12實(shí)驗(yàn)三8255I/O擴(kuò)展實(shí)驗(yàn)13一、實(shí)驗(yàn)要求13二、實(shí)驗(yàn)?zāi)康模?3三、實(shí)驗(yàn)電路及連線13四、實(shí)驗(yàn)說(shuō)明14五、實(shí)驗(yàn)程序流程圖14六、實(shí)驗(yàn)步驟14七、實(shí)驗(yàn)結(jié)果和體會(huì):15八、建議..……………………15實(shí)驗(yàn)四無(wú)譯碼的七段數(shù)碼管顯示實(shí)驗(yàn)16一、實(shí)驗(yàn)要求16二、實(shí)驗(yàn)?zāi)康?6三、實(shí)驗(yàn)電路及連線16四、實(shí)驗(yàn)說(shuō)明16五、實(shí)驗(yàn)程序流程圖17六、實(shí)驗(yàn)步驟17七、實(shí)驗(yàn)結(jié)果和體會(huì)18八、建議……………………..18實(shí)驗(yàn)五BCD碼譯碼的多位數(shù)碼管掃描顯示實(shí)驗(yàn)19一、實(shí)驗(yàn)要求19二、實(shí)驗(yàn)?zāi)康?9三、實(shí)驗(yàn)電路及連線19四、實(shí)驗(yàn)說(shuō)明19五、實(shí)驗(yàn)程序流程圖20六、實(shí)驗(yàn)步驟20七、實(shí)驗(yàn)結(jié)果和體會(huì)21八、建議21實(shí)驗(yàn)六獨(dú)立式鍵盤(pán)實(shí)驗(yàn)22一、實(shí)驗(yàn)要求22二、實(shí)驗(yàn)?zāi)康?2三、實(shí)驗(yàn)電路及連線22四、實(shí)驗(yàn)說(shuō)明22五、實(shí)驗(yàn)程序流程圖23六、實(shí)驗(yàn)步驟23七、實(shí)驗(yàn)結(jié)果和體會(huì)24八、建議24實(shí)驗(yàn)七計(jì)數(shù)器實(shí)驗(yàn)25一、實(shí)驗(yàn)要求25二、實(shí)驗(yàn)?zāi)康?5三、實(shí)驗(yàn)電路及連線25四、實(shí)驗(yàn)說(shuō)明25五、實(shí)驗(yàn)程序流程圖25六、實(shí)驗(yàn)步驟26七、實(shí)驗(yàn)結(jié)果和體會(huì)26八、建議26實(shí)驗(yàn)八定時(shí)器實(shí)驗(yàn)27一、實(shí)驗(yàn)要求27二、實(shí)驗(yàn)?zāi)康?7三、實(shí)驗(yàn)電路及連線27四、實(shí)驗(yàn)說(shuō)明27五、實(shí)驗(yàn)程序流程圖 …..28六、實(shí)驗(yàn)步驟28七、實(shí)驗(yàn)結(jié)果和體會(huì)29八、建議29實(shí)驗(yàn)九單個(gè)外部中斷實(shí)驗(yàn)30一、實(shí)驗(yàn)要求30二、實(shí)驗(yàn)?zāi)康?0三、實(shí)驗(yàn)電路及連線30四、實(shí)驗(yàn)說(shuō)明30五、實(shí)驗(yàn)程序流程圖31六、實(shí)驗(yàn)步驟31七、實(shí)驗(yàn)結(jié)果和體會(huì)32八、建議32實(shí)驗(yàn)十多個(gè)中斷同時(shí)存在實(shí)驗(yàn)33一、實(shí)驗(yàn)要求33二、實(shí)驗(yàn)?zāi)康?3三、實(shí)驗(yàn)電路及連線33五、實(shí)驗(yàn)程序流程圖34六、實(shí)驗(yàn)步驟34七、實(shí)驗(yàn)結(jié)果和體會(huì):36八、建議36實(shí)驗(yàn)十一矩陣鍵盤(pán)掃描實(shí)驗(yàn)37一、實(shí)驗(yàn)要求37二、實(shí)驗(yàn)?zāi)康?7三、實(shí)驗(yàn)電路及連線37四、實(shí)驗(yàn)說(shuō)明37五、實(shí)驗(yàn)流程圖38六、實(shí)驗(yàn)步驟38七、實(shí)驗(yàn)結(jié)果和體會(huì)40八、建議40實(shí)驗(yàn)十二串行端口輸出擴(kuò)充實(shí)驗(yàn)41一、實(shí)驗(yàn)要求41二、實(shí)驗(yàn)?zāi)康?1三、實(shí)驗(yàn)電路及連線41四、實(shí)驗(yàn)說(shuō)明41五、實(shí)驗(yàn)流程圖42六、實(shí)驗(yàn)步驟42七、實(shí)驗(yàn)結(jié)果和體會(huì)44八、建議44實(shí)驗(yàn)十三串行端口輸入擴(kuò)充實(shí)驗(yàn)45一、實(shí)驗(yàn)要求45二、實(shí)驗(yàn)?zāi)康?5三、實(shí)驗(yàn)電路及連線45四、實(shí)驗(yàn)說(shuō)明46五、實(shí)驗(yàn)流程圖46六、實(shí)驗(yàn)步驟46七、實(shí)驗(yàn)結(jié)果和體會(huì)47八、建議47實(shí)驗(yàn)十四8051與PC之間串行通信實(shí)驗(yàn)48一、實(shí)驗(yàn)要求48二、實(shí)驗(yàn)?zāi)康?8三、實(shí)驗(yàn)電路及連線48四、實(shí)驗(yàn)說(shuō)明48五、實(shí)驗(yàn)流程圖49六、實(shí)驗(yàn)步驟50七、實(shí)驗(yàn)結(jié)果和體會(huì)51八、建議51.第一部分驗(yàn)證性實(shí)驗(yàn).實(shí)驗(yàn)一I/O口輸出實(shí)驗(yàn)—LED流水燈實(shí)驗(yàn)、實(shí)驗(yàn)要求利用51單片機(jī)及8個(gè)發(fā)光二級(jí)管等器件,構(gòu)成一個(gè)流水燈單片機(jī)系統(tǒng)。、實(shí)驗(yàn)?zāi)康?、掌握單片機(jī)最小系統(tǒng)的構(gòu)成;、掌握I/O口的使用及驅(qū)動(dòng)能力的概念;、熟悉移位指令和軟件延時(shí)程序。、實(shí)驗(yàn)電路及連線、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)〔51板+006板CPU板006板P1.0LED1P1.1LED2P1.2LED3P1.3LED4P1.4LED5P1.5LED6P1.6LED7P1.7LED8+5V+5VGNDGND、實(shí)驗(yàn)說(shuō)明、主要知識(shí)點(diǎn)概述:本實(shí)驗(yàn)涉及到三個(gè)知識(shí)點(diǎn):?jiǎn)纹瑱C(jī)最小系統(tǒng)的構(gòu)成、單片機(jī)I/O口的使用以及軟件延時(shí)程序的編寫(xiě)。1單片機(jī)最小系統(tǒng)由單片機(jī)芯片、時(shí)鐘電路以及復(fù)位電路構(gòu)成。2I/O口的使用:P1口是準(zhǔn)雙向口。它作為輸出口時(shí)與一般的雙向口使用方法相同,即當(dāng)P1口用為輸入口時(shí),必須先對(duì)它置"1”。若不先對(duì)它置"1”,讀入的數(shù)據(jù)可能是不正確的。3延時(shí)子程序的延時(shí)計(jì)算問(wèn)題。對(duì)于程序DELAY: MOV R6,#200DEL1: MOV R7,#250DEL2: DJNZ R7,DEL2DJNZ R6,DEL1RET由指令表可知MOV、DJNZ指令均需用兩個(gè)機(jī)器周期,在采用12MHz晶振時(shí),一個(gè)機(jī)器周期時(shí)間長(zhǎng)度為1us,所以該段程序執(zhí)行時(shí)間約為:[<250*2+2>*200+2]*1us=1000402≈100ms、實(shí)驗(yàn)效果說(shuō)明:發(fā)光二級(jí)管進(jìn)行流水燈操作,從上到下依次點(diǎn)亮。、實(shí)驗(yàn)流程圖否否是開(kāi)始R2=8,ACC=0FEH延時(shí)0.2SP1=ACCACC左移一次,R2=R2-1R2=0?、實(shí)驗(yàn)步驟、Proteus仿真、在Proteus中打開(kāi)設(shè)計(jì)文檔流水燈.DSN;、建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;、如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試參考程序:ORG00HSTART: MOVR2,#8 MOVA,#0FEHLOOP: MOVP1,A LCALLDELAYRLA ;循環(huán)左移DJNZR2,LOOP;判斷移動(dòng)是否超過(guò)8位,未超過(guò)繼續(xù)循環(huán) LJMPSTARTDELAY: MOVR5,#20 ;延時(shí)程序,延時(shí)0.2sD1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2DJNZR5,D1 RET END、實(shí)驗(yàn)板驗(yàn)證、用ISP下載hex程序到CPU、按連接表連接電路、檢查驗(yàn)證結(jié)果、擴(kuò)展實(shí)驗(yàn)a. 改變延時(shí)時(shí)間為1s b. 改變流水燈流動(dòng)方向c.改變流水燈的流動(dòng)樣式設(shè)計(jì)流程和程序:、實(shí)驗(yàn)結(jié)果和體會(huì)、建議實(shí)驗(yàn)二I/O口輸入/輸出實(shí)驗(yàn)—模擬開(kāi)關(guān)一、實(shí)驗(yàn)要求 利用51單片機(jī),按鈕和發(fā)光二級(jí)管,構(gòu)成一個(gè)模擬開(kāi)關(guān)燈的單片機(jī)系統(tǒng)。二、實(shí)驗(yàn)?zāi)康?、了解單片機(jī)I/O輸入輸出的使用;、掌握單片機(jī)I/O口位操作的編程;、掌握分支程序的設(shè)計(jì)與分析方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2.硬件驗(yàn)證實(shí)驗(yàn)〔CPU板+006板硬件連接表CPU板006板P1.0LED1P3.0SW1+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:1開(kāi)關(guān)狀態(tài)的檢測(cè)過(guò)程單片機(jī)對(duì)開(kāi)關(guān)狀態(tài)的檢測(cè)相對(duì)于單片機(jī)來(lái)說(shuō),是從單片機(jī)的P3.0端口輸入信號(hào),而輸入的信號(hào)只有高電平和低電平兩種,當(dāng)撥開(kāi)開(kāi)關(guān)K1撥上去,即輸入高電平,相當(dāng)開(kāi)關(guān)斷開(kāi),當(dāng)撥動(dòng)開(kāi)關(guān)K1撥下去,即輸入低電平,相當(dāng)開(kāi)關(guān)閉合。單片機(jī)可以采用JBBIT,REL或者是JNBBIT,REL指令來(lái)完成對(duì)開(kāi)關(guān)狀態(tài)的檢測(cè)即可。2輸出控制如圖中所示,當(dāng)P1.0端口輸出高電平,即P1.0=1時(shí),根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍?這時(shí)發(fā)光二極管L1熄滅;當(dāng)P1.0端口輸出低電平,即P1.0=0時(shí),發(fā)光二極管L1亮;我們可以使用SETBP1.0指令使P1.0端口輸出高電平,使用CLRP1.0指令使P1.0端口輸出低電平。2.實(shí)驗(yàn)效果說(shuō)明:按下按鈕,燈亮,松開(kāi)按鈕,燈滅。五、實(shí)驗(yàn)程序流程圖是是開(kāi)始K1開(kāi)關(guān)閉合了嗎?L1亮L1滅否六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔I/O實(shí)驗(yàn).dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG00HSTART: JBP3.0,LIG ;判斷開(kāi)關(guān)狀態(tài) CLRP1.0 ;開(kāi)關(guān)閉合,燈亮 SJMPSTARTLIG: SETBP1.0 ;開(kāi)關(guān)打開(kāi),燈滅 SJMPSTART ;返回 END2、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)a.設(shè)計(jì)三路開(kāi)關(guān)輸入,三路發(fā)光二級(jí)管輸出的電路及程序;b.設(shè)計(jì)開(kāi)關(guān)觸發(fā)———延時(shí)1s燈滅程序。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)三8255I/O擴(kuò)展實(shí)驗(yàn)實(shí)驗(yàn)要求利用8255可編程并行口芯片,實(shí)現(xiàn)輸入/輸出實(shí)驗(yàn),實(shí)驗(yàn)中用8255P口做輸出,PB口作輸入。實(shí)驗(yàn)?zāi)康模?.了解8255芯片結(jié)構(gòu)及編程方法;2.了解8255輸入/輸出實(shí)驗(yàn)方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)8255的CS接地址譯碼CS0,則命令字地址為7003H,PA口地址為7000H,PB口地址為7001H,PC口地址為7002H。PA0~PA7〔PA口接LED0~LED7,PB0~PB7〔PB口接K0~K7〔開(kāi)關(guān)量。硬件連接表CPU板006板8255板P2.7CS0D0-D7KEY0-KEY7PB0-PB7LED1-LED8PA0-PA7ALELEWR,RDWR,RDRESETRESET四、實(shí)驗(yàn)說(shuō)明可編程通用接口芯片8255A有三個(gè)八位的并行I/O口,它有三種工作方式。本實(shí)驗(yàn)采用的是方式0:PA、PC口輸出,PB口輸入。很多I/O實(shí)驗(yàn)都可以通過(guò)8255來(lái)實(shí)現(xiàn)。五、實(shí)驗(yàn)程序流程圖六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔8255.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(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、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)設(shè)計(jì)按鍵控制的流水燈,要求不同按鍵按下時(shí)流水燈以不同方式閃動(dòng),閃動(dòng)方案自定。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì):八、建議:實(shí)驗(yàn)四無(wú)譯碼的七段數(shù)碼管顯示實(shí)驗(yàn)一、實(shí)驗(yàn)要求 利用51單片機(jī),一個(gè)7段數(shù)碼管,構(gòu)成一個(gè)單個(gè)LED顯示系統(tǒng)。二、實(shí)驗(yàn)?zāi)康?.了解數(shù)碼管顯示原理。 2.掌握讀表程序的編寫(xiě)。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)〔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)接上拉電阻。四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:1LED數(shù)碼顯示原理七段LED顯示器部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽(yáng)極型。LED數(shù)碼管的g~a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱(chēng)之為字形碼,下面給出共陽(yáng)極的字形碼見(jiàn)表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的字形碼沒(méi)有規(guī)律可循,只能采用查表的方式來(lái)完成我們所需的要求了。這樣我們按著數(shù)字0-9的順序,把每個(gè)數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLEDB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h2.實(shí)驗(yàn)效果說(shuō)明: 數(shù)碼管循環(huán)顯示0~9。五、實(shí)驗(yàn)程序流程圖六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔LED.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG 00HSTART: MOV DPTR,#TABLE ;指針指向表頭地址S1: MOV A,#00H ;設(shè)置地址偏移量 MOVC A,A+DPTR ;查表取得段碼,送A存儲(chǔ) CJNE A,#01H,S2 ;判斷段碼是否為結(jié)束符 LJMP STARTS2: MOV P0,A ;段碼送LED顯示 LCALL DELAY ;指針加1 INC DPTR LJMP S1DELAY: MOV R5,#20 ;延時(shí)子程序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、實(shí)驗(yàn)板驗(yàn)證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)a.將程序改為循環(huán)顯示一串〔如學(xué)號(hào);b.設(shè)計(jì)一個(gè)組成"0”設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)五BCD碼譯碼的多位數(shù)碼管掃描顯示實(shí)驗(yàn)一、實(shí)驗(yàn)要求利用51單片機(jī)、BCD譯碼芯片74LS47和兩位LED構(gòu)成一個(gè)數(shù)碼管掃描顯示系統(tǒng)。二、實(shí)驗(yàn)?zāi)康?.掌握BCD譯碼電路的工作原理。2.掌握多位數(shù)碼管顯示的編程。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)〔CPU板+004顯示板硬件連接表CPU板004板P0.0BCD-AP0.1BCD-BP0.2BCD-CP0.3BCD-DP3.0SEG1P3.1SEG2+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:二進(jìn)制編碼的十進(jìn)制數(shù),簡(jiǎn)稱(chēng)BCD碼<BinarycodedDecimal>,此例中,74LS47完成BCD編碼的功能。 多位LED顯示,先往段碼端口輸出段碼,再選通位選,對(duì)應(yīng)的LED顯示。2.實(shí)驗(yàn)效果說(shuō)明:兩個(gè)數(shù)碼管同時(shí)循環(huán)顯示0~9。五、實(shí)驗(yàn)程序流程圖判斷顯示是否到9?判斷顯示是否到9?是否開(kāi)始A=0,R1=10置段碼置位碼延時(shí)顯示六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔BCDLED.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序: ORG 00HL: MOV A,#0 ;設(shè)置顯示初值 MOV R0,#10 ;設(shè)置顯示個(gè)數(shù)START: MOVP0,A ;向P0口輸出顯示段碼 SETB P3.0 SETB P3.1 ;位選 LCALL DELAY INC A DJNZ R0,START JMP LDELAY:MOV R5,#50 ;延時(shí)程序D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND2、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)設(shè)計(jì)一個(gè)99計(jì)數(shù)器。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)六獨(dú)立式鍵盤(pán)實(shí)驗(yàn)一、實(shí)驗(yàn)要求利用51單片機(jī),8個(gè)按鈕,8路發(fā)光二級(jí)管構(gòu)成一個(gè)獨(dú)立式鍵盤(pán)系統(tǒng)。二、實(shí)驗(yàn)?zāi)康?、掌握多路I/O輸入輸出的編程。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)硬件連接表〔CPU板+006板CPU板006板P1.0~P1.7LED1~LED8P3.0~P3.7SW1~SW8+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:使用分支程序編程方法,對(duì)開(kāi)關(guān)狀態(tài)進(jìn)行監(jiān)測(cè),輸入電平有變化,跳轉(zhuǎn)到相應(yīng)的處理程序進(jìn)行處理,輸出處理結(jié)果。2.實(shí)驗(yàn)效果說(shuō)明: 按下8個(gè)按鈕,點(diǎn)亮對(duì)應(yīng)的燈。五、實(shí)驗(yàn)程序流程圖開(kāi)始開(kāi)始P3=#0FFHP1=#0FEHP3=?P1=#0FDHP1=#0BFHP1=#7FH結(jié)束P3.1=1P3.2=1P3.6=1P3.7=1六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔獨(dú)立式鍵盤(pán).dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(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、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)按鍵后使對(duì)應(yīng)的燈閃爍。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)七計(jì)數(shù)器實(shí)驗(yàn)一、實(shí)驗(yàn)要求8051部定時(shí)計(jì)數(shù)器T0,按計(jì)數(shù)器模式和方式1工作,對(duì)P3.4〔T0引腳進(jìn)行計(jì)數(shù)。將其數(shù)值按二進(jìn)制數(shù)在P1口驅(qū)動(dòng)LED燈上顯示出來(lái)。二、實(shí)驗(yàn)?zāi)康恼莆諉纹瑱C(jī)定時(shí)計(jì)數(shù)器計(jì)數(shù)方式的使用及編程方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)硬件連接表CPU板004板006板P0.0~P0.6LED-A~LED-GP0.7LED-COMP3.4SW1+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:本實(shí)驗(yàn)中部計(jì)數(shù)器起計(jì)數(shù)器的作用。外部事件脈沖由P3.4引入定時(shí)/計(jì)數(shù)器T0,即T0用來(lái)檢測(cè)外部脈沖數(shù)。2.實(shí)驗(yàn)效果說(shuō)明: 由按鍵產(chǎn)生計(jì)數(shù)脈沖,LED分別顯示脈沖個(gè)數(shù)〔10個(gè)以。開(kāi)始開(kāi)始計(jì)數(shù)計(jì)數(shù)、輸出計(jì)數(shù)值設(shè)置工作方式五、實(shí)驗(yàn)程序流程圖開(kāi)始開(kāi)始計(jì)數(shù)計(jì)數(shù)、輸出計(jì)數(shù)值設(shè)置工作方式六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔courter.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:ORG 0 MOV TMOD,#00000101B ;置T0計(jì)數(shù)器方式1 MOV TH0,#0 ;置T0初值 MOV TL0,#0 MOV R0,#10 SETB TR0 ;T0運(yùn)行 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、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)八定時(shí)器實(shí)驗(yàn)一、實(shí)驗(yàn)要求用51單片機(jī)的P1.0口接1個(gè)發(fā)光二級(jí)管,編寫(xiě)程序,控制發(fā)光二級(jí)管閃爍,時(shí)間間隔1S,要求AT89C51部定時(shí)器計(jì)時(shí)。二、實(shí)驗(yàn)?zāi)康恼莆諉纹瑱C(jī)定時(shí)計(jì)數(shù)器定時(shí)方式的使用及編程方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)硬件連接表CPU板006板P1.0LED1+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述:關(guān)于部計(jì)數(shù)器的編程,主要是定時(shí)常數(shù)的位置和有關(guān)控制寄存器的設(shè)置。部計(jì)數(shù)器在單片機(jī)中主要有定時(shí)器和計(jì)數(shù)器兩個(gè)功能。本例使用的是定時(shí)器,定時(shí)1S。CPU運(yùn)行定時(shí)中斷方式,實(shí)現(xiàn)每1S輸出狀態(tài)發(fā)生一次反轉(zhuǎn),即發(fā)光二級(jí)管1S亮一次。定時(shí)器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式0-3,并確定用于定時(shí)還是計(jì)數(shù)。TCON主要功能是為定時(shí)器在溢出時(shí)設(shè)定標(biāo)志位,并控制定時(shí)器的運(yùn)行或停止。部計(jì)數(shù)器用于定時(shí)器時(shí),是對(duì)機(jī)器周期計(jì)數(shù)。每個(gè)機(jī)器周期的長(zhǎng)度是12個(gè)振蕩周期。本例中單片機(jī)晶振12MHZ,選用工作方式2,既8位自動(dòng)重裝方式定時(shí)器,定時(shí)器100us中斷一次,所以定時(shí)常數(shù)的設(shè)置可按以下方法計(jì)算: 機(jī)器周期=12/12MHZ=1us <256-定時(shí)常數(shù)>*1us=100us定時(shí)常數(shù)=156。然后對(duì)100us中斷次數(shù)計(jì)數(shù)10000次,就是1S。2.實(shí)驗(yàn)效果說(shuō)明:發(fā)光二級(jí)管按設(shè)定的定時(shí)時(shí)間閃爍。五、實(shí)驗(yàn)程序流程圖主程序定時(shí)中斷服務(wù)程序定時(shí)中斷入口保護(hù)現(xiàn)場(chǎng)定時(shí)中斷入口保護(hù)現(xiàn)場(chǎng)秒計(jì)數(shù)值減1重新設(shè)置秒計(jì)數(shù)值計(jì)到1S!狀態(tài)位取反恢復(fù)現(xiàn)場(chǎng)中斷返回是否開(kāi)始置T1工作方式設(shè)置時(shí)間常數(shù)設(shè)置初始狀態(tài)位設(shè)置秒計(jì)數(shù)值中斷允許輸出狀態(tài)位等待中斷六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔timer.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:TICK EQU 10000 ;10000×100us=1sT100us EQU 256-100 ;100us時(shí)間常數(shù)〔12MC100us EQU 30H ;100us計(jì)數(shù)單元LEDBUF EQU 40H LED BIT P1.0ORG 00HLJMP START ;跳至主程序 ORG 000BH ;定時(shí)中斷入口地址T0INT: PUSH PSW ;狀態(tài)保護(hù) MOV A,C100us+1 JNZ GOON DEC C100us ;秒計(jì)數(shù)值減1GOON: DEC C100us+1 MOV A,C100us ORL A,C100us+1 JNZ EXIT ;100us計(jì)數(shù)器不為0,返回 MOV C100us,#HIGH<TICK> ;100us計(jì)數(shù)器為0,重置計(jì)數(shù)器 MOV C100us+1,#LOW<TICK> CPL LEDBUF ;取反LEDEXIT: POP PSW RETISTART: MOV TMOD,#02H ;方式2,定時(shí)器 MOV TH0,#T100us ;置定時(shí)器初值 MOV TL0,#T100us MOV IE,#10000010B ;EA=1,IT0=1 SETB TR0 ;開(kāi)始定時(shí) CLR LEDBUF CLR LED MOV C100us,#HIGH<TICK> ;設(shè)置10000次計(jì)數(shù)值 MOV C100us+1,#LOW<TICK>LOOP: MOV C,LEDBUF MOV LED,C LJMP LOOP END2、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)使用其他定時(shí)器其他工作方式設(shè)計(jì)該實(shí)驗(yàn)。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)九單個(gè)外部中斷實(shí)驗(yàn)一、實(shí)驗(yàn)要求利用P3.2接一個(gè)外部中斷輸入,通過(guò)P1口連接8個(gè)發(fā)光二級(jí)管顯示中斷程序的作用。二、實(shí)驗(yàn)?zāi)康?.理解中斷源、中斷標(biāo)志、中斷入口等概念。2.掌握中斷程序的分析與設(shè)計(jì)方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)硬件連接表CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.主要知識(shí)點(diǎn)概述: 外部中斷的響應(yīng)過(guò)程: 1中斷采樣:根據(jù)采樣結(jié)果設(shè)置TCON寄存器中斷響應(yīng)標(biāo)志位的狀態(tài)。 2中斷查詢:查詢TCON標(biāo)志位的狀態(tài),確定是否響應(yīng)。3中斷響應(yīng):保護(hù)斷點(diǎn)容,裝入中斷入口地址,執(zhí)行中斷服務(wù)程序,返回中斷點(diǎn),繼續(xù)執(zhí)行原來(lái)程序。2.實(shí)驗(yàn)效果說(shuō)明:中斷未發(fā)生時(shí),LED做閃爍狀態(tài),當(dāng)有中斷產(chǎn)生,LED呈流水燈操作。五、實(shí)驗(yàn)程序流程圖主程序框圖外部子程序框圖開(kāi)始設(shè)置初始狀態(tài)開(kāi)始設(shè)置初始狀態(tài)等待中斷中斷允許設(shè)置中斷控制寄存器中斷入口流水燈程序中斷返回恢復(fù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔外部中斷.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:;開(kāi)始,P1口燈閃爍,中斷產(chǎn)生,P1口呈流水燈操作。 ORG0000H;程序由地址0開(kāi)始執(zhí)行 LJMPSTART ORG0003H;設(shè)置外部中斷矢量地址 LJMPINT;跳轉(zhuǎn)到中斷控制入口處START:MOVSP,#60HMOVTCON,#00000000BMOVIP,#00000001BMOVIE,#10000001B ;對(duì)中斷進(jìn)行初始化RUN:MOVA,#0LOOP:MOVP1,AMOVR5,#20 LCALLDELAYCPLA LJMPLOOP ;閃爍燈INT: ;中斷服務(wù)程序 PUSHACCPUSHPSW ;保護(hù)現(xiàn)場(chǎng)CLRRS1 ;切換寄存器組SETBRS0CLRCMOVA,#11111111BMOVR4,#16LOOPR: ;流水燈程序RRCAMOVP1,AMOVR5,#20CALLDELAYDJNZR4,LOOPRPOPPSW ;恢復(fù)現(xiàn)場(chǎng)POPACCRETIDELAY:MOVR6,#50 ;延時(shí)程序S1:MOVR7,#100DJNZR7,$DJNZR6,S1DJNZR5,DELAYRETEND2、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)改變中斷觸發(fā)方式或更改中斷服務(wù)程序容重做以上實(shí)驗(yàn),容自定。設(shè)計(jì)流程和程序:七、實(shí)驗(yàn)結(jié)果和體會(huì)八、建議實(shí)驗(yàn)十多個(gè)中斷同時(shí)存在實(shí)驗(yàn)一、實(shí)驗(yàn)要求利用P3.2接一個(gè)外部中斷輸入,同時(shí)使用到單片機(jī)定時(shí)器中斷,通過(guò)P1口連接8個(gè)發(fā)光二級(jí)管顯示中斷的作用。二、實(shí)驗(yàn)?zāi)康牧私庵袛嗲短缀椭袛鄡?yōu)先級(jí)的概念和編程方法。三、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、實(shí)驗(yàn)說(shuō)明1.所用知識(shí)點(diǎn)概述中斷優(yōu)先級(jí):51系統(tǒng)有高、低兩個(gè)中斷優(yōu)先級(jí)。各中斷的優(yōu)先級(jí)通過(guò)中斷優(yōu)先寄存器〔IP進(jìn)行設(shè)定。在進(jìn)行中斷響應(yīng)時(shí),高優(yōu)先級(jí)可以打斷低優(yōu)先級(jí)的中斷服務(wù),形成中斷嵌套。2.實(shí)驗(yàn)效果說(shuō)明外部中斷未發(fā)生時(shí),系統(tǒng)通過(guò)定時(shí)器定時(shí)的方法,使LED做流水燈操作,當(dāng)有中斷產(chǎn)生,LED閃爍5次,完畢返回。五、實(shí)驗(yàn)程序流程圖主程序框圖定時(shí)中斷子程序外中斷中斷子程序開(kāi)始設(shè)置初始狀態(tài)開(kāi)始設(shè)置初始狀態(tài)等待中斷中斷允許設(shè)置中斷控制寄存器否是定時(shí)中斷入口計(jì)數(shù)值重新賦值現(xiàn)場(chǎng)保護(hù)中斷返回流水燈程序恢復(fù)現(xiàn)場(chǎng)溢出次數(shù)>100?外中斷入口外中斷入口閃爍燈程序中斷返回恢復(fù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)六、實(shí)驗(yàn)步驟1、Proteus仿真a.在Proteus中打開(kāi)設(shè)計(jì)文檔多個(gè)中斷.dsn;b.建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;c.如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試。參考程序:;計(jì)時(shí)中斷與外部中斷同時(shí)存在實(shí)驗(yàn);利用計(jì)時(shí)方式,使8只LED燈每隔1s左移一次,當(dāng)外部中斷P3.2出現(xiàn)時(shí)8個(gè)LED燈閃爍5次,閃爍完后返回主程序運(yùn)行。 ORG0000HLJMPSTART ORG0003H ;外部中斷入口LJMPEXT ORG000BH ;定時(shí)中斷入口LJMPTIMSTART: MOVSP,#70H ;建立堆棧區(qū) MOVTMOD,#00000001B ;定時(shí)器0,工作方式1 MOVTH0,#HIGH<65536-10000> ; MOVTL0,#LOW<65536-10000> ;裝計(jì)數(shù)器初值 SETBTR0 ;TR0置1,定時(shí)開(kāi)始 MOVIE,#10000011B ;開(kāi)總中斷,定時(shí)器0中斷允許 MOVIP,#00000001B ;設(shè)定外部中斷0優(yōu)先級(jí)高 MOVR5,#100 ;定時(shí)溢出次數(shù) MOVR1,#0FEH ;LJMP$;***********************************************;TIM: PUSHACC PUSHPSW ;現(xiàn)場(chǎng)保護(hù) MOVTH0,#HIGH<65536-10000> MOVTL0,#LOW<65536-10000> ;重賦計(jì)數(shù)值DJNZR3,LOOP MOVR3,#100 MOVA,R1 MOVP1,A RLA MOVR1,A ;移位LOOP: POPPSW POPACC ;恢復(fù)現(xiàn)場(chǎng) RETI;***********************************************;;外部中斷服務(wù)程序,閃爍5EXT: PUSHACC PUSHPSW MOVA,#00MOVR2,#10LOOP3: MOVP1,A CALLDELAYCPLA DJNZR2,LOOP3 POPPSW POPACC RETI ;***********************************************;;延時(shí)程序DELAY: MOVR5,#20D1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RETEND2、實(shí)驗(yàn)板驗(yàn)證 a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果3、擴(kuò)展實(shí)驗(yàn)設(shè)計(jì)兩個(gè)外部中斷與定時(shí)中斷同時(shí)存在的實(shí)驗(yàn)設(shè)計(jì)流程和程序七、實(shí)驗(yàn)結(jié)果和體會(huì):八、建議:實(shí)驗(yàn)十一矩陣鍵盤(pán)掃描實(shí)驗(yàn)、實(shí)驗(yàn)要求利用4X416位鍵盤(pán)和一個(gè)7段LED構(gòu)成簡(jiǎn)單的輸入顯示系統(tǒng),實(shí)現(xiàn)鍵盤(pán)輸入和LED顯示實(shí)驗(yàn)。、實(shí)驗(yàn)?zāi)康?、理解矩陣鍵盤(pán)掃描的原理;2、掌握矩陣鍵盤(pán)與51單片機(jī)接口的編程方法。、實(shí)驗(yàn)電路及連線、Proteus實(shí)驗(yàn)電路、硬件驗(yàn)證實(shí)驗(yàn)CPU板004板007P2.0~P2.7LED-A~LED-GP1.0~P1.3C1~C4P1.4~P1.7R1~R4+5V+5V+5VGNDGNDGND、實(shí)驗(yàn)說(shuō)明1、主要知識(shí)點(diǎn)概述:本實(shí)驗(yàn)闡述了鍵盤(pán)掃描原理,過(guò)程如下:首先掃描鍵盤(pán),判斷是否有鍵按下,再確定是哪一個(gè)鍵,計(jì)算鍵值,輸出顯示。2、實(shí)驗(yàn)效果說(shuō)明:以數(shù)碼管顯示鍵盤(pán)的作用。點(diǎn)擊相應(yīng)按鍵顯示相應(yīng)的鍵值。、實(shí)驗(yàn)流程圖開(kāi)始掃描鍵盤(pán)有鍵按下?延時(shí)去抖掃描鍵盤(pán)找到閉合鍵開(kāi)始掃描鍵盤(pán)有鍵按下?延時(shí)去抖掃描鍵盤(pán)找到閉合鍵計(jì)算鍵值根據(jù)鍵值得到對(duì)應(yīng)段碼輸出段碼顯示是否、實(shí)驗(yàn)步驟、Proteus仿真、在Proteus中打開(kāi)設(shè)計(jì)文檔鍵盤(pán)掃描.DSN;、建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;、如不能正常工作,打開(kāi)調(diào)試窗口進(jìn)行調(diào)試參考程序:org0000hajmpmainorg0030hmain: movdptr,#table;將表頭放入DPTRlcallkey ;調(diào)用鍵盤(pán)掃描程序 movca,a+dptr ;查表后將鍵值送入ACCmovp2,a ;將Acc值送入P0口ljmpmain ;返回反復(fù)循環(huán)顯示KEY: LCALLKS ;調(diào)用檢測(cè)按鍵子程序 JNZK1;有鍵按下繼續(xù) LCALLDELAY2 ;無(wú)鍵按調(diào)用延時(shí)去抖 AJMPKEY ;返回繼續(xù)檢測(cè)按鍵K1:LCALLDELAY2LCALLDELAY2 ;有鍵按下延時(shí)去抖動(dòng)LCALLKS ;再調(diào)用檢測(cè)按鍵程序 JNZK2 ;確認(rèn)有按下進(jìn)行下一步 AJMPKEY ;無(wú)鍵按下返回繼續(xù)檢測(cè)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)用延時(shí)去抖動(dòng)程序 LCALLKS;調(diào)用按鍵檢測(cè)程序 JNZK4 ;按鍵沒(méi)有松開(kāi)繼續(xù)返回檢測(cè) 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延時(shí)去抖動(dòng)子程序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é)束、實(shí)驗(yàn)板驗(yàn)證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果、擴(kuò)展實(shí)驗(yàn)設(shè)計(jì)其他方式鍵盤(pán)掃描程序。設(shè)計(jì)流程和程序:、實(shí)驗(yàn)結(jié)果和體會(huì)、建議串行端口輸出擴(kuò)充實(shí)驗(yàn)、實(shí)驗(yàn)要求利用移位積存器74LS164、單片機(jī)的串口和7個(gè)LED完成串行端口擴(kuò)展,實(shí)現(xiàn)跑馬燈閃爍。、實(shí)驗(yàn)?zāi)康?、理解串行通訊和并行通訊的含義;2、了解74LS164的工作原理,理解串轉(zhuǎn)并的原理;3、掌握單片機(jī)串口用于并行輸出口擴(kuò)展的原理。、實(shí)驗(yàn)電路及連線1、Proteus實(shí)驗(yàn)電路2、硬件驗(yàn)證實(shí)驗(yàn)〔CPU板+006板首先將006板上撥碼開(kāi)關(guān)撥向ON。CPU板006板P3.0164_A、164_BP3.1164_CLK+5V+5VGNDGND、實(shí)驗(yàn)說(shuō)明1、主要知識(shí)點(diǎn)概述:本實(shí)驗(yàn)用到了兩個(gè)主要知識(shí)點(diǎn)是:74LS164的工作機(jī)制、簡(jiǎn)單的單片機(jī)串口輸出。2、實(shí)驗(yàn)效果說(shuō)明:使用74LS164的并行輸出端接8個(gè)LED,利用它串入并出的功能,把LED按預(yù)先規(guī)定的次序點(diǎn)亮。、實(shí)驗(yàn)流程圖開(kāi)始開(kāi)始查表獲得顯示所需參數(shù)延時(shí)主程序參數(shù)為結(jié)束值向串口發(fā)送參數(shù)串口初始化否是、實(shí)驗(yàn)步驟1、Proteus仿真、在Proteus中打開(kāi)設(shè)計(jì)文檔serialout.DSN;、建立實(shí)驗(yàn)程序并編譯,加載hex文件,仿真;、如不能正常工作,打開(kāi)調(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 ;是則重新開(kāi)始play: cpla ;取到的數(shù)據(jù)反向mov30h,a ;A存入30Hmovsbuf,30h ;30H的值存入SBUFloop1:jbcti,loop2 ;監(jiān)測(cè)TI=1?是則跳到LOOP2jmploop1 ;否則繼續(xù)監(jiān)測(cè),傳輸過(guò)程loop2:callDELAY ;延時(shí)incdptr ;數(shù)據(jù)指針加1jmploop;延時(shí)程序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、實(shí)驗(yàn)板驗(yàn)證a.用ISP下載hex程序到CPUb.按連接表連接電路c.檢查驗(yàn)證結(jié)果、擴(kuò)展實(shí)驗(yàn)用兩片74LS164擴(kuò)展串行端口輸出。設(shè)計(jì)流程和程序:、實(shí)驗(yàn)結(jié)果和體會(huì)、建議串行端口輸入擴(kuò)充實(shí)驗(yàn)、實(shí)驗(yàn)要求利用74LS165、8個(gè)按鍵和8個(gè)LED,實(shí)現(xiàn)并轉(zhuǎn)串的輸入擴(kuò)充實(shí)驗(yàn)。、實(shí)驗(yàn)?zāi)康?、掌握串口用于并行輸入端口擴(kuò)充的編程方法;、理解74LS165的工作原理;、實(shí)驗(yàn)電路及連線、Proteus實(shí)驗(yàn)電路、硬件驗(yàn)證實(shí)驗(yàn)〔CPU板+006板首先將006板上撥碼開(kāi)關(guān)撥向OFF。CPU板006板P3.0165_SOP3.1165_CLK

溫馨提示

  • 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ù)網(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)論