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

1、1.2.3.第一章單片機(jī)軟件實(shí)驗(yàn)實(shí)驗(yàn)一內(nèi)存操作實(shí)驗(yàn)?zāi)康恼莆諗?shù)據(jù)傳送指令;掌握各種數(shù)據(jù)傳送指令的尋址方式;熟練運(yùn)用keil環(huán)境對(duì)匯編程序進(jìn)行調(diào)試:掌握數(shù)拯傳送、復(fù)制等程序的設(shè)計(jì)與調(diào)試方法。預(yù)習(xí)要求理解數(shù)據(jù)傳送指令和循環(huán)指令的使用;理解如何對(duì)內(nèi)部寄存器、內(nèi)部RAM、外部RAM的讀寫:理解各種尋址方式,尤其是較為抽象的變址尋址及相對(duì)尋址的方式: 認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容,自行編寫程序,填寫實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)設(shè)備計(jì)算機(jī)1臺(tái);4. 基礎(chǔ)型實(shí)驗(yàn)內(nèi)容 下列程序的功能是給外部RAM800080FFH的256個(gè)單元的內(nèi)容賦值,賦值的內(nèi) 容取決于程序中A的賦值。在Keil環(huán)境運(yùn)行該程序,并觀察寄存器及內(nèi)存單元的 變化。設(shè)置

2、塊起始地址設(shè)置塊長(zhǎng)度當(dāng)前地址內(nèi)容清零地址加1ORG 0000HSTART EQU 8000HMAIN:MOVDPTR, SSTARTMOV RO, #Offh;:起始地址;:設(shè)置256字節(jié)計(jì)數(shù)值MOV A, #1HLoop: MOVXDPTR, AINCDPTR;;指向下一個(gè)地址DJNZ RO, loop;:計(jì)數(shù)值減 1SJMP $ END下列程序?qū)?000H起始的256個(gè)字節(jié)存儲(chǔ)塊移動(dòng)到4000H起始的256個(gè)字節(jié)存儲(chǔ)塊,在Keil環(huán)境運(yùn)行如下程序,觀察寄存器及存儲(chǔ)單元的變化匚LOOP:ORG0000HMOVDPTR, #3000HMOVA,#01HMOVR5, #0MOVXDPTR, AI

3、NCDPTRDJNZR5, LOOPMOVRO, #30HMOVRb #00HMOVR2, #40HMOVR3, #00HMOVR7, #0MOVDPH, ROMOVDPL, R1MOVXA, DPTRMOVDPH, R2MOVDPL, R3MOVXDPTR, ALOOP1:INC R1INC R3DJNZ R7, L00P1SJMP $END5. 設(shè)計(jì)型實(shí)驗(yàn)內(nèi)容 在kcil環(huán)境修改內(nèi)部RAH 30H3FH的內(nèi)容分別為hOOHYOFH,設(shè)計(jì)程序?qū)崿F(xiàn)將內(nèi) 部RAH30H-3FH到40H-4FH的數(shù)據(jù)塊拷貝。 在kcil環(huán)境修改內(nèi)部RAH 30H3FH的內(nèi)容分別為#OOH-#OFH,設(shè)計(jì)程序?qū)崿F(xiàn)將

4、片 內(nèi)30H3FH單元的內(nèi)容復(fù)制到片外1030H103FH中。 在kcil環(huán)境修改內(nèi)部RAM 30H3FH的內(nèi)容分別為#OOH-#OFH,設(shè)計(jì)程序?qū)崿F(xiàn)將內(nèi) 部RAM3OH3FH內(nèi)容逆序拷貝到外部數(shù)XRAM: 0000HOOOFH中。使用單步. 斷點(diǎn)方式調(diào)試程序,查看特殊功能寄存器、內(nèi)部數(shù)據(jù)RAM、外部數(shù)據(jù)空間的變化。實(shí)驗(yàn)二數(shù)制及代碼轉(zhuǎn)換1. 實(shí)驗(yàn)?zāi)康?了解微機(jī)系統(tǒng)中的數(shù)制與代碼表示方法; 掌握計(jì)算機(jī)中使用的各種代碼轉(zhuǎn)換方法; 掌握實(shí)現(xiàn)分支、循環(huán)的指令及其程序的編寫方法;2. 預(yù)習(xí)要求 理解十進(jìn)制數(shù)、十六進(jìn)制數(shù)的數(shù)制表示方法; 理解BCD碼.ASCII碼編碼方式; 如何實(shí)現(xiàn)十六進(jìn)制數(shù)與BCD碼之

5、間的轉(zhuǎn)換: 如何實(shí)現(xiàn)ASCII碼與BCD碼之間的轉(zhuǎn)換。3. 實(shí)驗(yàn)設(shè)備計(jì)算機(jī)1臺(tái)。4基礎(chǔ)型實(shí)驗(yàn)內(nèi)容 以下程序完成單字節(jié)的ASCII碼到十六進(jìn)制數(shù)轉(zhuǎn)換,完成空白處程序填寫,并在 Keil環(huán)境運(yùn)行程序,觀察寄存器及內(nèi)存單元的變化。LMuMoyMOVABRESULT, AA, RO;轉(zhuǎn)換高位RESULT EQU 30HORG0000HMOVA, #41H;“A” 的 ASCII 碼CLRCSUBBA,;轉(zhuǎn)換為十六進(jìn)制值A(chǔ)MOVRESULT, ALJMP$END 以下程序完成單字節(jié)的BCD碼到十六進(jìn)制數(shù)轉(zhuǎn)換,在Keil環(huán)境運(yùn)行程序,觀察寄 存器及內(nèi)存單元的變化。RESULT EQU 30HORG 000

6、0HMOV A,#23HMOV RO, AANL A, #OFOHSWAP AMOV B, #0AHMOV B, #OFHADD A, RESULTMOV RESULT, A ;轉(zhuǎn)換低位SJMP $END 以下程序?qū)巫止?jié)十六進(jìn)制數(shù)A的值轉(zhuǎn)換為十進(jìn)制數(shù),存放在30H32H中,完成 空白處程序填寫,并在Keil環(huán)境運(yùn)行程序,觀察寄存器及內(nèi)存單元的變化。RESULT EQU 30HORG0000HMOVA, #7BHMOVB, #DIVABMOVRESULT, A;除以100得百位數(shù)MOVA, BMOVB, #MOVRESULT+b A;除以10得十位數(shù)MOVRESULT+2, B;余數(shù)為個(gè)位數(shù)S

7、JMP$END5.設(shè)計(jì)型實(shí)驗(yàn)內(nèi)容 設(shè)一串字母的ASCII存于30H起始的單元中,設(shè)計(jì)程序判斷字母是否為大寫字母, 是則將大寫字母的ASCII字符轉(zhuǎn)換成小寫字母的ASCII字符,為小寫則不轉(zhuǎn)換。 將單字節(jié)十六進(jìn)制數(shù)D8H轉(zhuǎn)換為十進(jìn)制數(shù),存放在30H33H中。, 設(shè)計(jì)程序,將十六進(jìn)制數(shù)614EH轉(zhuǎn)換成ASCII碼,使用單步、斷點(diǎn)方式調(diào)試程序, 査看結(jié)果。實(shí)驗(yàn)三算術(shù)運(yùn)算1. 實(shí)驗(yàn)?zāi)康?掌握算術(shù)運(yùn)算類、邏輯運(yùn)算類指令的使用方法; 掌握BCD碼、補(bǔ)碼數(shù)制表示方法: 掌握運(yùn)算程序及循環(huán)程序的編寫和調(diào)試方法。2. 預(yù)習(xí)要求 理解8051單片機(jī)的算術(shù)運(yùn)算指令; 理解補(bǔ)碼表示數(shù)值的方法; 理解壓縮、非壓縮BCD

8、碼表示數(shù)值的方法; 如何實(shí)現(xiàn)多位數(shù)的BCD碼加、乘、除運(yùn)算; 如何實(shí)現(xiàn)多位數(shù)的BCD碼減法運(yùn)算; 預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容,以及相關(guān)課程內(nèi)容。3. 實(shí)驗(yàn)設(shè)備計(jì)算機(jī)1臺(tái)。4. 基礎(chǔ)型實(shí)驗(yàn)內(nèi)容 以下程序完成單字節(jié)的BCD碼加法功能,完成空白處程序填寫,并在Keil環(huán)境運(yùn) 行程序,觀察寄存器及內(nèi)存單元的變化。RESULT EQU 30HORG 0000HMOV A, #99HMOV B,#99HADD _,_ ; BCD碼相加并得到BCD碼結(jié)果MOV RESULT, AMOV A, #00H A, #00HMOV RESULT+1, A;高位處理LJMP $END 下列程序完成多字節(jié)BCD碼加法運(yùn)算。內(nèi)部RA

9、M30H開始的4字節(jié)長(zhǎng)的BCD碼 和外部RAM 1000H開始的4字廿長(zhǎng)的BCD碼相加,結(jié)果放在1100H開始的單元 中(從低字節(jié)到高字節(jié))。ORG0000HCLRcMOVR5, #04HMOVR0.#30HMOVRl.#10HMOVR2.#00HMOV R3、#11HMOV R4.#00HL1:MOV DPH.R1MOV DPL.R2MOVX A,DPTRADDC A, R0DA A;十進(jìn)制調(diào)整MOV DPH.R3MOV DPL.R4MOVX DPTR.AINC R2INC R4INC ROL2:DJNZ R5,L1JNC L3MOV DPTR.#1104H ;有進(jìn)位則結(jié)果的第五個(gè)字節(jié)置1M

10、OV A.#01HMOVX DPTR,AL3:NOPEND5. 設(shè)計(jì)型實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)程序,實(shí)現(xiàn)任意字節(jié)壓縮BCD碼的相加,使用單步、斷點(diǎn)方式調(diào)試程序,查 看結(jié)果。 設(shè)il程序,實(shí)現(xiàn)多字節(jié)十六進(jìn)制數(shù)的減法123456HOO5634H,使用單步、斷點(diǎn)方 式調(diào)試程序,査看結(jié)果。 在內(nèi)部RAM的30H單元開始,有一串帶符號(hào)數(shù)據(jù)塊,其長(zhǎng)度在10H單元中。編 程求英中正數(shù)與負(fù)數(shù)的和,并分別存入2CH與2EH開始的2個(gè)單元中。(負(fù)數(shù)存 放形式為補(bǔ)碼)。請(qǐng)分別在30H單元開始寫入5個(gè)正數(shù)、11個(gè)負(fù)數(shù)和9個(gè)正數(shù)、7 個(gè)負(fù)數(shù)的情況,記錄程序運(yùn)行結(jié)果。例如:輸入69H,65Hr7H, -25H ,47H.56H,

11、3H,17H.6H5H.45H, -1H, 57H. 23H ,5H J3H則正數(shù)的和89,負(fù)數(shù)的和-199H.實(shí)驗(yàn)四比較和査表1. 實(shí)驗(yàn)?zāi)康?掌握比較指令的使用及循環(huán)程序的編寫方法: 掌握字符查找的思路和算法; 理解并能運(yùn)用査表和散轉(zhuǎn)指令。2. 預(yù)習(xí)要求 理解掌握比較程序的設(shè)訃思路; 理解多分支結(jié)構(gòu)程序的編程方法: 預(yù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,編寫程序及實(shí)驗(yàn)預(yù)習(xí)報(bào)告。3. 實(shí)驗(yàn)設(shè)備 計(jì)算機(jī)4. 基礎(chǔ)型實(shí)驗(yàn)內(nèi)容 以下子程序完成一個(gè)兩位十六進(jìn)制數(shù)到ASCII碼的轉(zhuǎn)換,數(shù)值存放在R2中,轉(zhuǎn)換 結(jié)果地位存于R2髙位存于R3o用PC做基址實(shí)現(xiàn)。ORG 0000HHEXA: MOV R2.#1BHMOV A.R2

12、ANL A#0FHADD A,#09HMOVC AA+PCXCH A,R2ANL A#0F0HSWAP AADD AJ02HMOVC AA+PCMOV R3.ARETTAB:DB t0,;lV2,3l;4,DB ATBTCTDTETFEND5. 設(shè)計(jì)型實(shí)驗(yàn)內(nèi)容 分別用近程?hào)吮碇噶詈瓦h(yuǎn)程?hào)吮碇噶?,査找R3內(nèi)容的平方值。R3內(nèi)容小于等于0FH,即平方值為單字節(jié)數(shù)據(jù)。 在外部RAM 1000H開始處有10H個(gè)帶符號(hào)數(shù),請(qǐng)找出英中的最大值和最小值,分別存入內(nèi)部RAM的MAX、MIN單元。 分別用近程?hào)吮碇噶詈瓦h(yuǎn)程查表指令,査找R3內(nèi)容的平方值。平方值為兩個(gè)字節(jié)數(shù)據(jù)。第二章單片機(jī)硬件實(shí)驗(yàn)硬件實(shí)驗(yàn)需要連接

13、訃算機(jī)與8OC51的仿真器,在實(shí)驗(yàn)詢要理解相關(guān)的硬件 電路,按實(shí)驗(yàn)指導(dǎo)書中的硬件連接方法正確連線,才能保證實(shí)驗(yàn)的正常進(jìn)行,得 到正確結(jié)果。硬件實(shí)驗(yàn)時(shí)要注意以下兒點(diǎn):A根據(jù)實(shí)驗(yàn)指導(dǎo)書正確進(jìn)行模塊與模塊之間接口的連接;注意一定要在實(shí)驗(yàn)系 統(tǒng)上電前進(jìn)行接口的連接,千萬(wàn)不能帶電操作。2、用吊行數(shù)據(jù)通信線連接汁算機(jī)與仿真器,把仿真器插到模塊的鎖緊插座中, 請(qǐng)注意仿真器的方向:缺口朝上。(斷電時(shí)進(jìn)行)3、進(jìn)行KEIL軟件的設(shè)置(KEIL軟件使用見(jiàn)附錄一),編輯匯編源程序,編譯, 直至編譯無(wú)誤。4、打開80C51模塊電源和總電源,可以單步或跟蹤或全速方式運(yùn)行程序,同時(shí) 觀察運(yùn)行結(jié)果(注意:要停止調(diào)試,按TH

14、KL-C51仿真器上的Reset按鍵)。5、也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到 89S52/89S51芯片中運(yùn)行(注意:芯片缺口朝上;不建議使用)。(ISP燒錄器 的使用查看附錄二)注:1、在做完實(shí)驗(yàn)時(shí)記得養(yǎng)成一個(gè)好習(xí)慣:把相應(yīng)單元的短路帽和電源開關(guān)還原到 原來(lái)的位置!以下將不再重述。2、不要插拔實(shí)驗(yàn)系統(tǒng)上的模塊和芯片,不要打開與本實(shí)驗(yàn)不相關(guān)模塊的電源。注意不能帶電進(jìn)行模塊之間導(dǎo)線的連接!!實(shí)驗(yàn)一 I/O控制實(shí)驗(yàn)1.實(shí)驗(yàn)?zāi)康恼莆栈綢O輸入輸出操作指令:熟練運(yùn)用keil環(huán)境對(duì)硬件接口進(jìn)行調(diào)試。2.預(yù)習(xí)要求理解51單片機(jī)IO的輸入、輸岀控制方式:理解PO、P1、P2

15、、P3 口做為普通的10口有何區(qū)別。理解實(shí)現(xiàn)軟件延時(shí)程序設(shè)計(jì)的延時(shí)時(shí)間估算:認(rèn)真預(yù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,設(shè)計(jì)岀器件之間的實(shí)驗(yàn)連接線,自行編寫程序,填寫實(shí)驗(yàn)報(bào)告。3.實(shí)驗(yàn)設(shè)備il算機(jī)1臺(tái):ZDGDTH-1型80C51實(shí)驗(yàn)開發(fā)系統(tǒng)1套:2號(hào)導(dǎo)線4條:8P數(shù)據(jù)線1條。4.基礎(chǔ)型實(shí)驗(yàn)內(nèi)容8位邏輯電平顯示的接口電路設(shè)計(jì)如圖1-1所示,用P1 口做輸出口,接八位邏輯 電平顯示,程序功能使發(fā)光二極管從右到左輪流循環(huán)點(diǎn)亮。用8P數(shù)據(jù)線將D2區(qū)80C51/C8051F020MCU模塊的JD1 (P1 口)與A5區(qū)8位邏輯 電平顯示模塊JD1A5相連。在Keil環(huán)境運(yùn)行該程序,觀察發(fā)光二極管顯示情況。5101TLEDI

16、C |23LED2C4LED3C5LED4C6LED5C7LED6C8LED7C9LEDBCVCCVCC U11BVCCLE 0EQLD1Q2D2Q3D3Q4D4Q5D5Q6D6Q?D7Q8D8GND74LS3731.0LIL2L3=3L4L5dl?LGL?VCCJD1A5圖8位八位邏輯電平顯示接口電路Pl 口循環(huán)點(diǎn)燈程序框圖ORG0LOOP:MOVA, #OFEHMOVR2,#8OUTPUT:MOVPl, ARLAACALLDELAYDJNZR2,OUTPUTLJMPLOOPDELAY:MOVR6,#0:延時(shí)程序MOVR7, #0DELAYLOOP:DJNZR6, DELAYLOOPDJNZ

17、R7,DELAYLOOPRETEND 8位撥動(dòng)開關(guān)的接口電路設(shè)計(jì)如圖12所示,假設(shè)采用P1 口控制LED顯示,P2 口 接收撥碼開關(guān)的輸入值,用8P數(shù)據(jù)線將D2區(qū)80C51/C8051F020MCU模塊的JDKP1 口)、JD1 (P2 口)分別與A5區(qū)八位邏輯電平顯示模塊JD1A5. C6區(qū)8位撥動(dòng)開關(guān) 模塊JD1C6相連。在Keil環(huán)境運(yùn)行該程序,使用單步、斷點(diǎn)、連續(xù)運(yùn)行調(diào)試程序, 査看結(jié)果。KOH n亠KL H n12門P9EK1_ 金K2H n丁P10E _OhK3H n12 K3P11ELS3E3KOLS4E3KILS5E3丄K2LS6E3一LK3K4K5S7ES8EP15EK7vc

18、c燦OE:L000000HP2,#OFFHA. P2Pl,ALLVCC卜RLLEDOVCCRBSE7hipR2FcjrKEYVCCC3A.22網(wǎng)HHr.ill払g 22 pFPl.0VCCPl .1P03Pl .2PO 1Pl.3PO.QPl”P0.3PISPO*Pl P0.5Pl JPO石RSIasesiP0JEbP3Z)rRXDP3.W7XDALEPROGPSJfUUOP3E14P33iUUlP2JP3.4f?0P2Z;P3.3f71P2.5P2AF3.7rRI?P2JX7AL2F2JX7AUP2 V3$P2.0U1F 20=jcnORGLL:MOVNOPMOVNOPMOVUMPEND 如圖13所示,假設(shè)釆用Pl0 口控制外部LED,撥動(dòng)開關(guān)控制外部中斷,用二號(hào)導(dǎo)線將D2區(qū)8OC51/C8O51FO2OMCU模塊的P1.0、P3.2 口分別與A 5區(qū)八位邏輯電平顯示模塊的LO. C8區(qū)單次脈沖輸出相連。并在Keil壞境運(yùn)行程序,觀察實(shí)驗(yàn)現(xiàn)象。圖1-3外部中斷及LED顯示電路流程圖為:主程序框圖外部中斷子程序框圖源程序:MAIN:ORG0000HUMPMAINORG0003HUMPINTERRUPTORG0030HCLRP1.0MOVTCON.#01HMOVIE.#81HSJMP$PUSHPSWCPLP1.0POPPSW;保護(hù)現(xiàn)場(chǎng);恢復(fù)現(xiàn)場(chǎng)INT

溫馨提示

  • 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)論