南昌大學(xué)單片機(jī)實驗報告_第1頁
南昌大學(xué)單片機(jī)實驗報告_第2頁
南昌大學(xué)單片機(jī)實驗報告_第3頁
南昌大學(xué)單片機(jī)實驗報告_第4頁
南昌大學(xué)單片機(jī)實驗報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實驗報告實驗課程:單片機(jī)原理及應(yīng)用學(xué)生姓名:學(xué)號:專業(yè)班級:指導(dǎo)老師:2013年12月30日

目錄實驗一擴(kuò)展存儲器讀寫實驗 2一.實驗要求 2二.實驗?zāi)康?2三.實驗電路及連線 2四.實驗說明 3五.實驗程序框圖 3六.實驗程序: 4八.實驗結(jié)果和小結(jié) 5實驗四簡單I/O實驗(交通燈控制) 6一.實驗要求 6二.實驗?zāi)康?6三.實驗電路及連線 6四.實驗說明 7五.實驗程序框圖: 7六.實驗程序 8七.軟件仿真 10實驗六定時器實驗 11二.實驗?zāi)康?11三.實驗電路及連線 11四.實驗說明 12六.實驗程序 13七.軟件仿真 14八.實驗結(jié)果和小結(jié) 14實驗十A/D轉(zhuǎn)換實驗 15一.實驗要求 15二.實驗?zāi)康?15三.實驗電路及連線 15四.實驗說明 16五.實驗程序框圖 16六.實驗程序 16七.軟件仿真 17八.實驗結(jié)果和小結(jié) 18

實驗一擴(kuò)展存儲器讀寫實驗一.實驗要求

編制簡單程序,對實驗板上提供的外部存貯器(62256)進(jìn)行讀寫操作。二.實驗?zāi)康?.學(xué)習(xí)片外存儲器擴(kuò)展方法。

2.學(xué)習(xí)數(shù)據(jù)存儲器不同的讀寫方法。三.實驗電路及連線將P1.0接至L1。CS256連GND孔。四.實驗說明1.單片機(jī)系統(tǒng)中,對片外存貯器的讀寫操作是最基本的操作。用戶藉此來熟悉MCS51單片機(jī)編程的基本規(guī)則、基本指令的使用和使用本仿真實驗系統(tǒng)調(diào)試程序的方法。

用戶編程可以參考示例程序和流程框圖。本示例程序中對片外存貯器中一固定地址單元進(jìn)行讀寫操作,并比較讀寫結(jié)果是否一致。不一致則說明讀寫操作不可靠或該存儲器單元不可靠,程序轉(zhuǎn)入出錯處理代碼段(本示例程序通過熄滅一個發(fā)光二極管來表示出錯)。讀寫數(shù)據(jù)的選用,本例采用的是55(0101,0101)與AA(1010,1010)。一般采用這兩個數(shù)據(jù)的讀寫操作就可查出數(shù)據(jù)總線的短路、斷路等,在實際調(diào)試用戶電路時非常有效。

用戶調(diào)試該程序時,可以靈活使用單步、斷點(diǎn)和變量觀察等方法,來觀察程序執(zhí)行的流程和各中間變量的值。

2.在I狀態(tài)下執(zhí)行MEM1程序,對實驗機(jī)數(shù)據(jù)進(jìn)行讀寫,若L1燈亮說明RAM讀寫正常。

3.也可進(jìn)入LCA51的調(diào)試工具菜單中的對話窗口,用監(jiān)控命令方式讀寫RAM,在I狀態(tài)執(zhí)行SX0000↓55,SPACE,屏幕上應(yīng)顯示55,再鍵入AA,SPACE,屏幕上也應(yīng)顯示AA,以上過程執(zhí)行效果與編程執(zhí)行效果完全相同。

注:SX是實驗機(jī)對外部數(shù)據(jù)空間讀寫命令。

4.本例中,62256片選接地時,存儲器空間為0000~7FFFH。五.實驗程序框圖六.實驗程序:ORG0000H;程序入口地址LJMPSTART;長轉(zhuǎn)移STARTORG0040HSTART:MOVSP,#60H;設(shè)置堆棧指針MOVDPTR,#0000H;設(shè)置外部RAM讀寫地址MOVA,#55H;測試的數(shù)據(jù)一MOVB,A;把A的值賦給寄存器BMOVX@DPTR,A;寫外部RAMMOVXA,@DPTR;讀外部RAMXRLA,B;比較讀回的數(shù)據(jù)JNZERROR;不相等就跳轉(zhuǎn)到ERRORMOVA,#0AAH;測試的數(shù)據(jù)二MOVB,A;將A的數(shù)保存到B中MOVX@DPTR,A;寫外部RAMMOVXA,@DPTR;讀外部RAMXRLA,B;比較讀回的數(shù)據(jù)JZPASS;測試通過ERROR:SETBP1.0;測試失敗,點(diǎn)亮LEDSJMP$;在原地跳轉(zhuǎn)PASS:CPLP1.0;LED狀態(tài)(亮/滅)轉(zhuǎn)換MOVR1,#00H;延時子程序DELAY:MOVR2,#00HDJNZR2,$DJNZR1,DELAYLJMPSTART;循環(huán)測試END_七.實驗結(jié)果和小結(jié)實驗結(jié)果可以看到小燈在不停閃爍,說讀寫測試成功,即外部擴(kuò)展的存儲器和連線都沒有問題,測試數(shù)據(jù)選擇AA和55,即10101010和01010101,能使測試的的每一根口線都發(fā)生一次變化,準(zhǔn)確實用。

實驗四簡單I/O實驗(交通燈控制)一.實驗要求以74LS273作為輸出口,控制4個雙色LED燈(可發(fā)紅,綠,黃光),模擬交通燈管理。二.實驗?zāi)康?.學(xué)習(xí)在單片機(jī)系統(tǒng)中擴(kuò)展簡單I/O接口的方法。2.學(xué)習(xí)數(shù)據(jù)輸出程序的設(shè)計方法。3.學(xué)習(xí)模擬交通燈控制的方法。4.學(xué)習(xí)雙色燈的使用。三.實驗電路及連線PO0-PO3接DG1-DG4,PO4-P07接DR1-DR4。CS273接8300H。四.實驗說明1.因為本實驗是交通燈控制實驗,所以要先了解實際交通燈的變化規(guī)律。假設(shè)一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1南北綠燈通車,東西紅燈。過一段時間轉(zhuǎn)狀態(tài)2,南北綠燈閃幾次轉(zhuǎn)亮黃燈,延時幾秒,東西仍然紅燈。再轉(zhuǎn)狀態(tài)3,東西綠燈通車,南北紅燈。過一段時間轉(zhuǎn)狀態(tài)4,東西綠燈閃幾次轉(zhuǎn)亮黃燈,延時幾秒,南北仍然紅燈。最后循環(huán)至狀態(tài)1。2.雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負(fù)端。當(dāng)紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。五.實驗程序框圖:主程序框圖六.實驗程序ORG0000H;程序入口地址LJMPSTART;長轉(zhuǎn)移到STARTORG0040H;START:;主程序MOVSP,#60H;設(shè)置堆棧指針LCALLSTATUS0;初始狀態(tài)(都是紅燈)CIRCLE:LCALLSTATUS1;南北綠燈,東西紅燈LCALLSTATUS2;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈LCALLSTATUS3;南北紅燈,東西綠燈LCALLSTATUS4;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈LJMPCIRCLE;無條件長轉(zhuǎn)移到CIRCLESTATUS0:;狀態(tài)一南北紅燈,東西紅燈MOVDPTR,#8300H;設(shè)置數(shù)據(jù)指針MOVA,#0FH;將累加器賦值FMOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂稭OVR2,#10;延時1秒LCALLDELAY;長調(diào)用延時函數(shù)DELAYRET;子程序返回STATUS1:;狀態(tài)二南北綠燈,東西紅燈MOVDPTR,#08300H;設(shè)置數(shù)據(jù)指針MOVA,#5AH;南北綠燈,東西紅燈MOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#50;延時5秒LCALLDELAY;長調(diào)用DELAYRET;子程序返回STATUS2:;狀態(tài)三南北綠燈閃轉(zhuǎn)黃燈,東西紅燈MOVDPTR,#8300H;設(shè)置數(shù)據(jù)指針MOVR3,#03H;綠燈閃3次FLASH:MOVA,#5FH;將累加器賦值MOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#03H;給R2賦值03HLCALLDELAY;長調(diào)同DELAYMOVA,#5AH;給累加器A賦值5AMOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#03H;給R2賦值03HLCALLDELAY;長調(diào)同DELAYDJNZR3,FLASH;比較是否閃爍了三次,不到則跳轉(zhuǎn)到FLASHMOVA,#0AH;南北黃燈,東西紅燈MOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#10;延時1秒LCALLDELAY;長調(diào)同DELAYRET;子程序返回STATUS3:;狀態(tài)四南北紅燈,東西綠燈MOVDPTR,#8300H;設(shè)置數(shù)據(jù)指針MOVA,#0A5H;給累加器A賦值0A5HMOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#50;延時5秒LCALLDELAY;長調(diào)用DELAY延時RET;子程序返回STATUS4:;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈MOVDPTR,#8300H;設(shè)置數(shù)據(jù)指針MOVR3,#03H;綠燈閃3次FLASH1:MOVA,#0AFH;給累加器A賦值0AFHMOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#03H;給寄存器R2賦值LCALLDELAY;長調(diào)用DELAY延時MOVA,#0A5H;給累加器A賦值0A5HMOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#03H;給寄存器R2賦值LCALLDELAY;長調(diào)用延時函數(shù)DELAYDJNZR3,FLASH1;;比較是否閃爍了三次,不到則跳轉(zhuǎn)到FLASHMOVA,#05H;南北紅燈,東西黃燈MOVX@DPTR,A;將累加器的值寫入數(shù)據(jù)指針?biāo)傅刂罚ㄋ偷絇0)MOVR2,#10;延時1秒LCALLDELAY;長調(diào)用延時程序 NOP;空指令RET;子程序返回DELAY:;延時子程序PUSH2PUSH1PUSH0DELAY1:MOV1,#00HDELAY2:MOV0,#0B2HDJNZ0,$DJNZ1,DELAY2;延時100mSDJNZ2,DELAY1POP0POP1POP2RETEND七、實驗結(jié)果和小結(jié)程序下到實驗板上后,按原理圖插好線,可以觀察到四個方向的燈按照交通燈的變換順序循環(huán)變換。本次程序中主要鍛煉了我們調(diào)用子程序的能力,在匯編中子程序的調(diào)用就相當(dāng)于C中的函數(shù)調(diào)用,而C中調(diào)用函數(shù)需寫聲明,頭文件,一般需要返回值的函數(shù)一次只能返回一個值,匯編中的子程序就顯得比較容意寫,要注意的就是末尾要加RET作為子程序返回標(biāo)志。這種結(jié)構(gòu)化的編程思想大大加強(qiáng)了程序的可讀性,需要在以后的程序中多加練習(xí)。實驗六定時器實驗一.實驗要求由8031內(nèi)部定時器1,按方式1工作,即作為16位定時器使用每0.05秒鐘T1溢出中斷一次。P1口的P1.0-P1.7分別接八個發(fā)光二極管。要求編寫程序模擬一時序控制裝置。開機(jī)后第一秒鐘L0,L2亮,第二秒鐘L1,L3亮,第三秒鐘L4,L6亮,第四秒鐘L5,L7亮,第五秒L0,L2,L4,L6亮,第六秒鐘L1,L3,L5,L7亮,第七秒鐘八個二極管全亮,第八秒鐘全滅,以后又從頭開始,L0,L2亮,然后L1,L3亮一直循環(huán)下去。二.實驗?zāi)康?.學(xué)習(xí)8031內(nèi)部計數(shù)器的使用和編程方法。2.進(jìn)一步掌握中斷處理程序的編程方法。三.實驗電路及連線P1.0--P1.7接L0--L7。四.實驗說明1.關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機(jī)中主要有定時器和計數(shù)器兩個功能。2.內(nèi)部計數(shù)器用作定時器時,是對機(jī)器周期計數(shù)。每個機(jī)器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是11.0592MHz,所以定時常數(shù)的設(shè)置可按以下方法計算:機(jī)器周期=12÷11.0592MHz=1.0857μS(65536-定時常數(shù))*1.0857μS=50mS定時常數(shù)=4C00H3.定時器的有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時器/計數(shù)器的工作方式0~3,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設(shè)定標(biāo)志位,并控制定時器的運(yùn)行或停止等。4.在例程的中斷服務(wù)程序中,因為中斷定時常數(shù)的設(shè)置對中斷程序的運(yùn)行起到關(guān)鍵作用,所以在置數(shù)前要先關(guān)對應(yīng)的中斷,置數(shù)完之后再打開相應(yīng)的中斷。五.實驗程序框圖六.實驗程序ORG0000H;程序入口地址AJMPSTART;絕對跳轉(zhuǎn)到STARTORG001BH;T1中斷入口地址AJMPINT_T1;定時器中斷1入口ORG0100HSTART:;主程序MOVSP,#60H;設(shè)置堆棧指針MOVTMOD,#10H;置定時器T1為方式1MOVTL1,#00H;延時50mS的時間常數(shù)高八位MOVTH1,#4BH;延時50mS的時間常數(shù)低八位;MOVR0,#00H;給R0賦初值MOVR1,#20;給R1賦初值SETBTR1;開定時器1SETBET1;開定時器中斷1SETBEA;開總中斷SJMP$;程序原地跳轉(zhuǎn)INT_T1:;T1中斷服務(wù)子程序PUSHACC;保護(hù)現(xiàn)場,累加器A入棧PUSHPSW;標(biāo)志位寄存器PSW入棧PUSHDPL;數(shù)據(jù)指針低八位入棧PUSHDPH;數(shù)據(jù)指針高八位入棧CLRTR1;關(guān)定時器MOVTL1,#00H;重置;延時50mS常數(shù)MOVTH1,#4BH;同上一句SETBTR1;開定時器DJNZR1,EXIT;判斷是否到一秒MOVR1,#20;到了一秒,重設(shè)延時一秒的常數(shù)MOVDPTR,#DATA1;置常數(shù)表基址MOVA,R0;置常數(shù)表偏移量MOVCA,@A+DPTR;讀常數(shù)表MOVP1,A;送P1口顯示INCR0;移位地址加一,指向下一個數(shù)ANL00,#07H;如果指到了最后一個數(shù)則指向第一數(shù)EXIT:POPDPH;恢復(fù)現(xiàn)場,數(shù)據(jù)指針出棧POPDPL;POPPSW;標(biāo)志位寄存器出棧POPACC;累加器出棧RETI;定時器中斷返回;LED顯示常數(shù)表DATA1:DB0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFHEND八.實驗結(jié)果和小結(jié)將程序下載到實驗板上后,可以觀察小燈按程序所寫的亮滅,并且間隔時間大約為1s,這說明定時器的時間常數(shù)設(shè)置的沒錯。試驗程序以查表的方法讓P1口的輸出在8個狀態(tài)間循環(huán)切換,移植性很強(qiáng),值得學(xué)習(xí)借鑒。在進(jìn)入中斷和退出中斷時要注意幾個特殊寄存器的保護(hù),要遵循先入后出的原則。實驗十A/D轉(zhuǎn)換實驗一.實驗要求利用實驗板上的ADC0809做A/D轉(zhuǎn)換器,利用實驗板上的電位器W1提供模擬量輸入。編制程序,將模擬量轉(zhuǎn)換成二進(jìn)制數(shù)字量,用發(fā)光二極管顯示。二.實驗?zāi)康?.掌握A/D轉(zhuǎn)換與單片機(jī)的接口方法。2.了解A/D芯片ADC0809轉(zhuǎn)換性能及編程。3.通過實驗了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集。三.實驗電路及連線CS0809接8000H。19模塊電位器中心抽頭(即0~5v孔)接至ADC0809的IN0(通道0)。EOC連P3.2(INT0)。將單片機(jī)的P1.0~P1.7接至八位發(fā)光二極管L0--L7。四.實驗說明ADC0809是八位逐次逼近法A/D轉(zhuǎn)換器,每采集一次一般需100us。中斷方式下,A/D轉(zhuǎn)換結(jié)束后會自動產(chǎn)生EOC信號,經(jīng)一級74LS14反相后與8031的INT0相接。本示例程序采取了中斷處理來正確讀取A/D轉(zhuǎn)換的結(jié)果。用戶也可以用延時來保證A/D轉(zhuǎn)換完成。讀取結(jié)果由P1口送至八位發(fā)光二極管顯示。五.實驗程序框圖主程序框圖六.實驗程序A_DPORTEQU8000H;0809通道0地址ORG0000H;主程序入口LJMPSTART;長轉(zhuǎn)移到主程序ORG0003H;外部中斷0地址LJMPINT_0

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論