南昌大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告及程序_第1頁(yè)
南昌大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告及程序_第2頁(yè)
南昌大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告及程序_第3頁(yè)
南昌大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告及程序_第4頁(yè)
南昌大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告及程序_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

大爭(zhēng)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課程:?jiǎn)纹瑱C(jī)原理與應(yīng)用實(shí)驗(yàn)學(xué)生姓名:學(xué)號(hào):專業(yè)班級(jí):電力系統(tǒng)及其自動(dòng)化111班2013年12月16日?南昌大學(xué)賣驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:.實(shí)驗(yàn)成績(jī)—實(shí)驗(yàn)一、I/O口的應(yīng)用一、實(shí)驗(yàn)要求單片機(jī)P1.0口外接8個(gè)LED燈,P3.0口接開(kāi)關(guān),電路圖如下,當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),流水燈從L1到L7依次間隔0.2秒循環(huán)點(diǎn)亮,在任意位置當(dāng)開(kāi)關(guān)合上時(shí),流水燈便從L7燈開(kāi)始,按照L7到L6的順序點(diǎn)亮,晶振選用11.0592MH。二、選擇元器件80C51CrystalCAP22pceramic22p3watt10kLED-BIRGSWITCH三、放置元器件及連線用導(dǎo)線連接八位邏輯電平輸出模塊的K0到CPU模塊的RXD(P3.0口);用8位數(shù)據(jù)線連接八位邏輯電平顯示模塊的JD2B到CPU模塊的JD8(P1口)。四、實(shí)驗(yàn)程序程序要求:用延時(shí)程序設(shè)計(jì)燈每間隔0.2秒循環(huán)點(diǎn)亮1、匯編程序:ORG0000HLJMPSTARTSTART:MOVSP,#60H;設(shè)置堆棧JBP3.0,ZY;若開(kāi)關(guān)斷開(kāi),P3.0為1,轉(zhuǎn)到左移子程序JNBP3.0,YY;若開(kāi)關(guān)合上,P3.0為0,轉(zhuǎn)到右移子程序YY:MOVA,#7FH;ACALLYY1RET右移程序ZY:MOVA,#0FEH;ACALLZY1RET左移程序

YY1:MOVP1,A;將入送入P1,燈從L7開(kāi)始亮ACALLDELAYS;延時(shí)RRA;右移一位JNBP3.0,YY1;判斷開(kāi)關(guān)是否合上,若合上,P3.0為0,轉(zhuǎn)到Y(jié)Y1,繼續(xù)右移JBP3.0,START;若開(kāi)關(guān)斷開(kāi),P3.0為1,轉(zhuǎn)到START,重新從L1燈開(kāi)始左移RETZY1:MOVP1,A;將入送入P1,燈從L1開(kāi)始亮ACALLDELAYS;延時(shí)RLA;左移一位JNBP3.0,START;若開(kāi)關(guān)合上,P3.0為0,轉(zhuǎn)到START,重新從L7燈開(kāi)始右移JBP3.0,ZY1;若開(kāi)關(guān)斷開(kāi),P3.0為1,轉(zhuǎn)到ZY1,繼續(xù)左移RETDELAYS:MOVR6,#2;延時(shí)0.2sDELAYS2:MOVR4,#100;延時(shí)100msDELAYS1:MOVR5,#230;延時(shí)1msLOOP:NOPNOPDJNZR5,LOOPDJNZR4,DELAYS1DJNZR6,DELAYS2RETEND四、實(shí)驗(yàn)心得通過(guò)本次對(duì)實(shí)驗(yàn)程序進(jìn)行了仿真與調(diào)試,因此實(shí)驗(yàn)順利完成,但有些時(shí)候還是有問(wèn)題,本次試驗(yàn),是我們更加對(duì)I/O口有進(jìn)一步了解,是我們更好地掌握所學(xué)的知識(shí)現(xiàn)象:打開(kāi)開(kāi)關(guān),我們觀察到L1到L7燈循環(huán)亮。南昌大學(xué)賣驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:.實(shí)驗(yàn)成績(jī):南昌大學(xué)賣驗(yàn)報(bào)告實(shí)驗(yàn)二、外部中斷實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)外部中斷技術(shù)的基本使用方法。二、實(shí)驗(yàn)內(nèi)容INT0端接單次脈沖發(fā)生器。按一次脈沖產(chǎn)生一次中斷,CPU使P1.0狀態(tài)發(fā)生一次反轉(zhuǎn),P1.0接LED燈,以查看信號(hào)反轉(zhuǎn)。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)說(shuō)明1)外部中斷的初始化設(shè)置共有三項(xiàng)內(nèi)容:中斷總允許即EA=1,外部中斷允許即EXi=1(i=0或1),中斷方式設(shè)置。中斷方式設(shè)置一般有兩種方式:電平方式和脈沖方式,本實(shí)驗(yàn)選用后者,其前一次為高電平后一次為低電平時(shí)為有效中斷請(qǐng)求。因此高電平狀態(tài)和低電平狀態(tài)至少維持一個(gè)周期,中斷請(qǐng)求信號(hào)由引腳INT0(P3.2)和INT1(P3.3)引入。2)中斷服務(wù)的關(guān)鍵:a、保護(hù)進(jìn)入中斷時(shí)的狀態(tài)。堆棧有保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場(chǎng)的功能使用PUSH指令,在轉(zhuǎn)中斷服務(wù)程序之前把單片機(jī)中有關(guān)寄存單元的內(nèi)容保護(hù)起來(lái)。b、必須在中斷服務(wù)程序中設(shè)定是否允許中斷重入,即設(shè)置EX0位。c、用POP指令恢復(fù)中斷時(shí)的現(xiàn)場(chǎng)。3)中斷控制原理:中斷控制是提供給用戶使用的中斷控制手段。實(shí)際上就是控制一些寄存器,51系列用于此目的的控制寄存器有四個(gè):TCON、IE、SCON及IP。4)中斷響應(yīng)的過(guò)程:首先中斷采樣然后中斷查詢最后中斷響應(yīng)。采樣是中斷處理的第一步,5)對(duì)于本實(shí)驗(yàn)的脈沖方式的中斷請(qǐng)求,若在兩個(gè)相鄰周期采樣先高電平后低電平則中斷請(qǐng)求有效,6)IE0或IE1置“1”;否則繼續(xù)為“0”。所謂查詢就是由CPU測(cè)試TCON和SCON中各標(biāo)志位的狀7)態(tài)以確定有沒(méi)有中斷請(qǐng)求發(fā)生以及是那一個(gè)中斷請(qǐng)求。中斷響應(yīng)就是對(duì)中斷請(qǐng)求的接受,是在中斷查詢之后進(jìn)行的,當(dāng)查詢到有效的中斷請(qǐng)求后就響應(yīng)一次中斷。8)本實(shí)驗(yàn)需要用到CPU模塊(F3區(qū))和八位邏輯電平顯示模塊(B5區(qū))、單次脈沖模塊(E3區(qū))。五、實(shí)驗(yàn)預(yù)習(xí)要求學(xué)習(xí)教材的相關(guān)內(nèi)容,根據(jù)實(shí)驗(yàn)要求畫出程序流程圖,寫出實(shí)驗(yàn)程序。六、實(shí)驗(yàn)步驟系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),用導(dǎo)線連接單次脈沖模塊的輸出端到CPU模塊的P32;CPU模塊的P10接八位邏輯電平顯示模塊的燈。啟動(dòng)PC機(jī),打開(kāi)THGMW-51軟件,輸入源程序,并編譯源程序。編譯無(wú)誤后,下載程序運(yùn)行。連續(xù)按動(dòng)單次脈沖產(chǎn)生電路的按鍵,發(fā)光二極管L0每按一次狀態(tài)取反,即隔一次點(diǎn)亮。七、實(shí)驗(yàn)程序匯編程序ORG0000HLJMPMAINORG0003HLJMPITOPORG1000HMAIN:MOVSP,#60HSETBEX0SETBIT0SETBEAHERE:SJMPHEREITOP:CPLP1.0RETIEND2、C語(yǔ)言程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED二P「0;voidmain()(IE0=1;IT0=1;EX0=1;EA=1;while(1);}voidzhongduan()interrupt0(LED=!LED;//取反}八、結(jié)果分析:運(yùn)行程序后,連續(xù)按動(dòng)單次脈沖產(chǎn)生電路的按鍵,發(fā)光二極管L0每按一次狀態(tài)取反,即隔一次點(diǎn)亮,綜合分析,本實(shí)驗(yàn)主要有2個(gè)模塊:中斷模塊和主程序模塊,主程序主要是用來(lái)初始化中斷的,包括中斷模式的選擇,中斷開(kāi)關(guān)的打開(kāi),當(dāng)脈沖變化時(shí)觸發(fā)中斷,硬件自動(dòng)產(chǎn)生ACALL指令,跳轉(zhuǎn)到中端口執(zhí)行程序。九、實(shí)驗(yàn)心得通過(guò)這次實(shí)驗(yàn),我學(xué)到了如何通過(guò)外部的控制,對(duì)單片機(jī)實(shí)現(xiàn)中斷的處理,外部中斷首先要初始化設(shè)置,中斷總允許即EA=1,外部中斷允許即EXi=1(i=0或1),中斷方式的選擇可以選擇電平方式或者脈沖方式。本次試驗(yàn)外部中斷,通過(guò)程序的仿真與調(diào)試,我們完成了實(shí)驗(yàn),本次試驗(yàn),是我們了解外部中斷的原理及如何應(yīng)用,讓我們?nèi)フ莆諏W(xué)到的知識(shí),印象更深刻,學(xué)以致用。現(xiàn)象:按一次脈沖產(chǎn)生一次中斷,CPU使P1.0狀態(tài)發(fā)生一次反轉(zhuǎn),P1.0接LED燈,以查看信號(hào)反轉(zhuǎn)。南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:,實(shí)驗(yàn)成績(jī):南昌大學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三、定時(shí)器'計(jì)時(shí)器的應(yīng)用一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)51單片機(jī)內(nèi)部計(jì)數(shù)器的使用和編程方法。二、實(shí)驗(yàn)內(nèi)容單片機(jī)P1.0口外接8個(gè)LED燈,P3.0口接開(kāi)關(guān),電路圖如下,當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),流水燈從L1到L7依次間隔0.5秒循環(huán)點(diǎn)亮,在任意位置當(dāng)開(kāi)關(guān)合上時(shí),流水燈便從L7燈開(kāi)始,按照L7到L6的順序點(diǎn)亮,晶振選用11.0592MH。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)說(shuō)明關(guān)于內(nèi)部計(jì)數(shù)器的編程主要是定時(shí)常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計(jì)數(shù)器在單片機(jī)中主要有定時(shí)器和計(jì)數(shù)器兩個(gè)功能。本實(shí)驗(yàn)使用的是定時(shí)器,定時(shí)為0.2秒鐘。定時(shí)器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON°TMOD用于設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式0-3,并確定用于定時(shí)還是用于計(jì)數(shù)。TCON主要功能是為定時(shí)器在溢出時(shí)設(shè)定標(biāo)志位,并控制定時(shí)器的運(yùn)行或停止等。內(nèi)部計(jì)數(shù)器用作定時(shí)器時(shí),是對(duì)機(jī)器周期計(jì)數(shù)。每個(gè)機(jī)器周期的長(zhǎng)度是12個(gè)振蕩器周期。假設(shè)實(shí)驗(yàn)系統(tǒng)的晶振是11.0592MHZ,程序工作于方式1,定時(shí)器50mS,中斷一次。中斷10次為0.5秒。五、選擇元器件8、80C519、Crystal10、CAP11、22pceramic22p12、3watt10k13、LED-BIRG14、SWITCH六、放置元器件及連線仿真電路圖:七、實(shí)驗(yàn)步驟1)先畫出仿真電路圖,載入程序進(jìn)行仿真2)在實(shí)驗(yàn)箱上,系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),用導(dǎo)線連接CPU模塊P10到八位邏輯電平顯示模塊的L0.啟動(dòng)PC機(jī),打開(kāi)THGMW-51軟件,輸入源程序,并編譯源程序。編譯無(wú)誤后,下載程序運(yùn)行。3)運(yùn)行程序觀察實(shí)驗(yàn)現(xiàn)象。八、實(shí)驗(yàn)程序程序要求:用定時(shí)器0采用方式1使燈每間隔0.5秒循環(huán)點(diǎn)亮匯編程序ORG0000HLJMPSTRATORG000BHLJMPITOPORG0100HSTRAT:JBP3.0,MAIN1JNBP3.0,MAIN2CHUSHI:MOVB,#0AHMOVSP,#60HMOVTMOD,#01HMOVTL0,#00HMOVTH0,#4CHSETBTR0SETBET0SETBEARETMAIN1:MOVA,#0FEHMOVP1,AACALLCHUSHIHERE:SJMPHERE;等待中斷MAIN2:MOVA,#7FHMOVP1,AACALLCHUSHISJMPHERE;等待中斷ZY:RLAMOVP1,AJBP3.0,RETURNRETYY:RRAMOVP1,AJNBP3.0,RETURNRETITOP:MOVTL0,#00HMOVTH0,#4CHDJNZB,RETURNMOVB,#0AHJBP3.0,ZYJNBP3.0,YYRETURN:RETIEND七、結(jié)果分析運(yùn)行程序后,發(fā)光二極管L0每隔一秒點(diǎn)亮一次,實(shí)驗(yàn)主要有2個(gè)模塊:定時(shí)初始化模塊和中斷模塊,主程序主要是用來(lái)初始化定時(shí)的,包括定時(shí)模式的選擇,為方式2模式,該模式精度高能夠準(zhǔn)確定時(shí),還包括定時(shí)器的初值設(shè)定,設(shè)定為100us,當(dāng)定時(shí)標(biāo)志位高電位時(shí)自動(dòng)跳轉(zhuǎn)到中斷程序中,如果未滿10000次就還得繼續(xù)返回主程序無(wú)法實(shí)現(xiàn)CPLLEDBuf指令。而要實(shí)現(xiàn)本功能,最重要的是orla,C100us+1這條語(yǔ)句,只有當(dāng)計(jì)數(shù)單元的高位和低位都位0才使得a為0,也就是說(shuō)只有計(jì)滿10000次才能跳轉(zhuǎn)。否則跳轉(zhuǎn)到exit。九、實(shí)驗(yàn)心得本次實(shí)驗(yàn)室定時(shí)器與計(jì)數(shù)器,通過(guò)實(shí)驗(yàn)程序的仿真與調(diào)試,我順利完成實(shí)驗(yàn)。本次試驗(yàn),我們了解定時(shí)器與計(jì)數(shù)器的工作原理與應(yīng)用,使我們更好在編程中如何去應(yīng)用定時(shí)器,讓我們學(xué)到的知識(shí)更深刻。南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):實(shí)驗(yàn)四、交通燈控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆帐致房诮煌艨刂品椒?。二、?shí)驗(yàn)內(nèi)容利用系統(tǒng)提供的雙色LED顯示電路,和四位靜態(tài)數(shù)碼管顯示電路模擬十字路口交通信號(hào)燈。4位LED數(shù)碼管顯示時(shí)間,LED顯示紅綠燈狀態(tài)。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)說(shuō)明和電路原理圖交通信號(hào)燈控制邏輯如下:假設(shè)一個(gè)十字路口為東西南北走向。開(kāi)始為四個(gè)路口的紅燈全部亮之后,東西路口的綠燈亮,南北路口的紅燈亮,東西路口方向通車,延時(shí)一段時(shí)間后(20秒),東西路口的綠燈,閃爍若干次后(3秒),東西路口的綠燈熄滅,同時(shí)東西路口的黃燈亮,延時(shí)一段時(shí)間后(2秒),東西路口的紅燈亮,南北路口的綠燈亮,南北路口方向通車,延時(shí)一段時(shí)間后(20秒),南北路口的綠燈閃爍若干次后(3秒),南北路口的綠燈熄滅,同時(shí)南北路口的黃燈亮,延時(shí)一段時(shí)間后(2秒),再切換到東西路口的綠燈亮,南北路口的紅燈亮,之后重復(fù)以上過(guò)程。雙色LED是由一個(gè)紅色LED管芯和一個(gè)綠色LED管芯封裝在一起,共用負(fù)極,當(dāng)紅色正端加高電平,綠色正端加低電平時(shí),紅燈亮;紅色正端加低電平,綠色正端加高電平時(shí),綠燈亮;兩端都加高電平時(shí),黃燈亮。本實(shí)驗(yàn)需要用到CPU模塊(F3區(qū))、靜態(tài)數(shù)碼管/雙色LED顯示模塊(B4區(qū))。雙色LED顯示電路原理參見(jiàn)圖18-1。五、實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài)。P10同時(shí)接G1、G3;P11同時(shí)接R1、R3;P1.2同時(shí)接G2、G4;P1.3同時(shí)接R2、R4;P1.6、P1.7分別接靜態(tài)數(shù)碼顯示的DIN、CLK。2)啟動(dòng)PC機(jī),打開(kāi)THGMW-51軟件,輸入源程序,并編譯源程序。編譯無(wú)誤后,下載程序運(yùn)行。3)觀察十字路口交通燈效果。六、實(shí)驗(yàn)程序

;//*****************************************************************;功能:雙色LED模擬交通燈信號(hào),并通過(guò)調(diào)用靜態(tài)數(shù)碼顯示狀態(tài)時(shí)間。;接線:P1.0同時(shí)接G1、G3,P1.1接R1、R3,P1.2接G2、G4,P1.3同時(shí)接R2、R4,;P1.6、P1.7接靜態(tài)數(shù)碼顯示的DIN、CLK。;//******************************************************************SECOND1EQU30H;東西秒寄存器SECOND2EQU31H;南北秒寄存器DBUFEQU40H;顯示緩沖1TEMPEQU44H;顯示緩沖2LED_G1BITP1.0;東西綠燈LED_R1BITP1.1;東西紅燈LED_G2BITP1.2;南北綠燈LED_R2BITP1.3;南北紅燈DinBITP1.6;串彳丁顯示數(shù)據(jù)CLKBITP1.7;串行顯示時(shí)鐘ORG0000HLJMPSTARTORG0100HSTART:LCALLSTATE0;調(diào)用狀態(tài)0LCALLDELAY;調(diào)用延時(shí)MOVTMOD,#01H;置T0工作萬(wàn)式1MOVTH0,#3CH;置T0定時(shí)初值50mSMOVTL0,#0B0HSETBTR0;啟動(dòng)T0CLREALOOP:MOVR2,#20;置1S計(jì)數(shù)初值50mS*20=1SMOVR3,#20;紅燈20SMOVSECOND1,#25;東西秒顯示初值25SMOVSECOND2,#25;南北秒顯示初值25SLCALLDISPLAYLCALLSTATE1;調(diào)用狀態(tài)1WAIT1:JNBTF0,WAIT1;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HSETBTR0;啟動(dòng)T0DJNZR2,WAIT1;判如到否?未到繼續(xù)狀態(tài)1MOVR2,#20;置50mS計(jì)數(shù)初值DECSECOND1;東西秒顯示減一DECSECOND2;南北秒顯示減一LCALLDISPLAY

DJNZR3,WAIT1;狀態(tài)1維持20S****************************************************;MOVR2,#5;置50mS計(jì)數(shù)初值5*4=20MOVR3,#3;綠燈閃3SMOVR4,#4;閃爍間隔200mSMOVSECOND1,#5;東西秒顯示初值5SMOVSECOND2,#5;南北秒顯示初值5SLCALLDISPLAYWAIT2:LCALLSTATE2;調(diào)用狀態(tài)2JNBTF0,WAIT2;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR4,WAIT2;判200mS到否?未到繼續(xù)狀態(tài)2CPLLED_G1;東西綠燈閃MOVR4,#4;閃爍間隔200mSDJNZR2,WAIT2;判1S到否?未到繼續(xù)狀態(tài)2MOVR2,#5;置50mS計(jì)數(shù)初值DECSECOND1;東西秒顯示減一DECSECOND2;南北秒顯示減一LCALLDISPLAYDJNZR3,WAIT2;狀態(tài)2維持3S****************************************************7MOVR2,#20;置50mS計(jì)數(shù)初值MOVR3,#2;黃燈2SMOVSECOND1,#2;東西秒顯示初值2SMOVSECOND2,#2;南北秒顯示初值2SLCALLDISPLAYWAIT3:LCALLSTATE3;調(diào)用狀態(tài)3JNBTF0,WAIT3;查詢30mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR2,WAIT3;判1S到否?未到繼續(xù)狀態(tài)3MOVR2,#20;置50mS計(jì)數(shù)初值DECSECOND1;東西秒顯示減一DECSECOND2;南北秒顯示減一LCALLDISPLAYDJNZR3,WAIT3;狀態(tài)3維持2S****************************************************;MOVR2,#20;置50mS計(jì)數(shù)初值MOVR3,#20;紅燈20SMOVSECOND1,#25;東西秒顯示初值25SMOVSECOND2,#25;南北秒顯示初值25SLCALLDISPLAYWAIT4:LCALLSTATE4;調(diào)用狀態(tài)4JNBTF0,WAIT4;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR2,WAIT4;判1S到否?未到繼續(xù)狀態(tài)4MOVR2,#20;置50mS計(jì)數(shù)初值DECSECOND1;東西秒顯示減一DECSECOND2;南北秒顯示減一LCALLDISPLAYDJNZR3,WAIT4;狀態(tài)4維持20S****************************************************7MOVR2,#5;置50mS計(jì)數(shù)初值5*4=20MOVR4,#4;閃爍間隔200mSMOVR3,#3;綠燈閃3SMOVSECOND1,#5;東西秒顯示初值5SMOVSECOND2,#5;南北秒顯示初值5SLCALLDISPLAYWAIT5:LCALLSTATE5;調(diào)用狀態(tài)5JNBTF0,WAIT5;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值100mSMOVTL0,#0B0HDJNZR4,WAIT5;判200mS到否?未到繼續(xù)狀態(tài)5CPLLED_G2;南北綠燈閃MOVR4,#4;閃爍200mSDJNZR2,WAIT5;判1S到否?未到繼續(xù)狀態(tài)5MOVR2,#5;置100mS計(jì)數(shù)初值DECSECOND1;東西秒顯示減一DECSECOND2;南北秒顯示減一LCALLDISPLAYDJNZR3,WAIT5;狀態(tài)5維持3S****************************************************;MOVR2,#20;置50mS計(jì)數(shù)初值MOVR3,#2;黃燈2SMOVSECOND1,#2;東西秒顯示初值2SMOVSECOND2,#2;南北秒顯示初值2SLCALLDISPLAYWAIT6:LCALLSTATE6;調(diào)用狀態(tài)6JNBTF0,WAIT6;查詢100mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值100mSMOVTL0,#0B0HDJNZR2,WAIT6MOVR2,#20DECSECOND1DECSECOND2LCALLDISPLAYDJNZR3,WAIT6LJMPLOOPSTATE0:MOVP1,#0CLRLED_G1SETBLED_R1CLRLED_G2SETBLED_R2RETSTATE1:SETBLED_G1CLRLED_R1CLRLED_G2SETBLED_R2RETSTATE2:CLRLED_R1CLRLED_G2SETBLED_R2RETSTATE3:SETBLED_G1SETBLED_R1CLRLED_G2SETBLED_R2RETSTATE4:CLRLED_G1SETBLED_R1SETBLED_G2CLRLED_R2RETSTATE5:CLRLED_G1SETBLED_R1CLRLED_R2RETSTATE6:CLRLEDG1;判1S到否?未到繼續(xù)狀態(tài)6;置100mS計(jì)數(shù)初值;東西秒顯示減一;南北秒顯示減一;狀態(tài)6維持2S;大循環(huán);狀態(tài)0;東西紅燈亮;南北紅燈亮;狀態(tài)1;東西綠燈亮;南北紅燈亮;狀態(tài)2;南北紅燈亮;狀態(tài)3;東西黃燈亮;南北紅燈亮;狀態(tài)4;東西紅燈亮;南北綠燈亮;狀態(tài)5;東西紅燈亮;狀態(tài)6SETBLED_R1;東西紅燈亮SETBLED_G2SETBLED_R2;南北黃燈亮RETDISPLAY:;數(shù)碼顯示MOVA,SECOND1;東西秒寄存器MOVB,#10;16進(jìn)制數(shù)拆成兩個(gè)10進(jìn)制數(shù)DIVABMOVDBUF+1,AMOVA,BMOVDBUF,AMOVA,SECOND2;南北秒寄存器MOVB,#10;16進(jìn)制數(shù)拆成兩個(gè)10進(jìn)制數(shù)DIVABMOVDBUF+3,AMOVA,BMOVDBUF+2,AMOVR0,#DBUFMOVR1,#TEMPMOVR7,#4DP10:MOVDPTR,#LEDMAPMOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR0INCR1DJNZR7,DP10MOVR0,#TEMPMOVR1,#4DP12:MOVR7,#8MOVA,@R0DP13:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR7,DP13INCR0DJNZR1,DP12RETLEDMAP:DB3FH,6,5BH,4FH,66H,6DH;0,1,2,3,4,5DB7DH,7,7FH,6FH,77H,7CH;6,7,8,9,A,BDB58H,5EH,7BH,71H,0,40H;C,D,E,F(xiàn),,-Delay:movr5,#5DLoop0:movr6,#0DLoop1:movr7,#0DLoop2NOPNOPdjnzr7,DLoop2djnzr6,DLoopldjnzr5,DLoop0retEND七、結(jié)果分析運(yùn)行程序后,開(kāi)始為四個(gè)路口的紅燈全部亮之后,東西路口的綠燈亮,南北路口的紅燈亮,東西路口方向通車,延時(shí)一段時(shí)間后(20秒),東西路口的綠燈,閃爍若干次后(3秒),東西路口的綠燈熄滅,同時(shí)東西路口的黃燈亮,延時(shí)一段時(shí)間后(2秒),東西路口的紅燈亮,南北路口的綠燈亮,南北路口方向通車,延時(shí)一段時(shí)間后(20秒),南北路口的綠燈閃爍若干次后(3秒),南北路口的綠燈熄滅,同時(shí)南北路口的黃燈亮,延時(shí)一段時(shí)間后(2秒),再切換到東西路口的綠燈亮,南北路口的紅燈亮,之后重復(fù)以上過(guò)程。要實(shí)現(xiàn)以上功能還必須知道雙色LED是由一個(gè)紅色LED管芯和一個(gè)綠色LED管芯封裝在一起,公用負(fù)端。當(dāng)紅色正端加高電平,綠色正端加低電平時(shí),紅燈亮;紅色正端加低電平,綠色正端加高電平時(shí),綠燈亮;兩端都加高電平時(shí),黃燈亮。也正是源于此,才能夠產(chǎn)生黃色信號(hào)分析:本實(shí)驗(yàn)共分為5個(gè)模塊,交通燈初始模塊,6種交通狀態(tài)的調(diào)用模塊,6種交通狀態(tài)和1個(gè)初始狀態(tài)模塊,顯示模塊,以及延時(shí)模塊,每一個(gè)狀態(tài)的原理如下:首先調(diào)用交通狀態(tài)模塊中的各狀態(tài),以此達(dá)到各I/O端口的設(shè)置,然后進(jìn)行延時(shí),設(shè)置定時(shí)器的工作方式,初值,接著采用中斷查詢的方式來(lái)判斷狀態(tài)是否結(jié)束,最后調(diào)用顯示模塊,當(dāng)然,在每隔狀態(tài)也是需要進(jìn)行循環(huán)設(shè)置和顯示的。另外在說(shuō)顯示模塊,采用動(dòng)態(tài)顯示的方式,利用數(shù)據(jù)線和控制線串行顯示數(shù)碼管,節(jié)約了導(dǎo)線成本。八,實(shí)驗(yàn)心得通過(guò)本次實(shí)驗(yàn),我對(duì)交通燈有了更進(jìn)一步的了解,交通燈是有6中狀態(tài)的。本實(shí)驗(yàn)由于功能強(qiáng)大,所以我也學(xué)會(huì)和鞏固了很多以前的知識(shí),這是對(duì)定時(shí)器與計(jì)數(shù)器的應(yīng)用,使我們更加對(duì)它們應(yīng)用的了解,如何去應(yīng)用定時(shí)器與計(jì)數(shù)器。南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:.實(shí)驗(yàn)成績(jī):實(shí)驗(yàn)五串轉(zhuǎn)并與并轉(zhuǎn)串實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆帐褂?4LS164擴(kuò)展輸出的方法。掌握使用74LS165擴(kuò)展輸入的方法。二、實(shí)驗(yàn)內(nèi)容使用74LS165擴(kuò)展輸入數(shù)據(jù),使用74LS164擴(kuò)展輸出數(shù)據(jù)。74LS165的并行口接八位邏輯電平輸出(開(kāi)關(guān)),CPU使用P1.0、P1.1和P1.2串行讀入開(kāi)關(guān)狀態(tài);74LS164的并行口接一只數(shù)碼管,CPU使用P1.3和P1.4串行輸出剛讀入的開(kāi)關(guān)狀態(tài),使之在數(shù)碼管上顯示出來(lái)。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)說(shuō)明和電路原理圖1)74LS165為8位移位寄存器,其引腳功能如下:S/L:移位/置數(shù)端,低電平有效。P0?P7:并行數(shù)據(jù)輸入端。QH、QH:串行數(shù)據(jù)輸出端。CLK、CKLINH:時(shí)鐘信號(hào)輸入端。2)74LS164為串行輸入并行輸出移位寄存器,其引腳功能如下:A、B:串行輸入端;Q0?Q7:并行輸出端;MR:清零端,低電平有效;CLK:時(shí)鐘脈沖輸入端,上升沿有效。3)用P1端口輸出數(shù)據(jù)時(shí),要編程位移數(shù)據(jù),每操作一個(gè)數(shù)據(jù)位,對(duì)應(yīng)一個(gè)移位脈沖。4)本實(shí)驗(yàn)需要用到CPU模塊(F3區(qū))、八位邏輯電平輸出模塊(E4區(qū))和靜態(tài)數(shù)碼管顯示模塊(B4區(qū))。74LS165電路原理圖參見(jiàn)圖5-1,74LS164電路原理圖參見(jiàn)圖8-2。注:74LS164集成電路芯片在主板反面。

U3EVCC—74LS165圖5-174LS165電路16圖5-274LS164電路五、實(shí)驗(yàn)預(yù)習(xí)要求學(xué)習(xí)教材的相關(guān)內(nèi)容,根據(jù)實(shí)驗(yàn)要求畫出程序流程圖,寫出實(shí)驗(yàn)程序。六、實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài)。用導(dǎo)線對(duì)應(yīng)連接八位邏輯電平輸出模塊的QH165、CLK165、SH/LD到CPU模塊的P10、P11、P12。用導(dǎo)線對(duì)應(yīng)連接靜態(tài)數(shù)碼管顯示模塊的DIN、CLK到CPU模塊的P13、P14。2)啟動(dòng)PC機(jī),打開(kāi)THGMW-51軟件,輸入源程序,并編譯源程序。編譯無(wú)誤后,下載程序運(yùn)行。3)觀察數(shù)碼(八段碼)管的亮滅與撥動(dòng)開(kāi)關(guān)的狀態(tài)是否一致。撥動(dòng)開(kāi)關(guān)撥下輸出為低電平,段碼點(diǎn)亮。七、實(shí)驗(yàn)參考程序本實(shí)驗(yàn)參考程序“8_164165”位于THGMW軟件文件夾下THGMW\Exp\51文件夾。;//****************************************************************;//*文件名:164165串轉(zhuǎn)并,并轉(zhuǎn)串實(shí)驗(yàn)程序;功能:把開(kāi)關(guān)量通過(guò)74**165串行輸入到內(nèi)存,并通過(guò)74**164串行輸出到數(shù);碼管上顯示。;接線:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD,;P1.3、P1.4接靜態(tài)數(shù)碼顯示的DIN、CLK。;//****************************************************************TOC\o"1-5"\h\zQH165BITP1.0CLK165BITP1.1SH_LDBITP1.2DAT164BITP1.317CLK164BITP1.4MEMORYEQU30HORG0000HAJMPSTARTORG00B0HSTART:setbCLK165clrSH_LDsetbSH_LDmovr7,#8Input:rramovc,QH165movACC.7,cclrCLK165nopsetbCLK165djnzr7,InputmovMEMORY,AmovA,MEMORYmovr6,#8Output:rrcAmovDAT164,CclrCLK164setbCLK164djnzr6,OutputacallDELAYsjmpSTARTDELAY:movR0,#5DD2:movR1,#0FFHdjnzR1,$djnzR0,DD2RETEND七、結(jié)果分析程序運(yùn)行之后,串行信號(hào)成功轉(zhuǎn)為并行輸出信號(hào),數(shù)碼管被點(diǎn)亮,試驗(yàn)取得成功。通過(guò)程序的編寫和電路的連接基本上實(shí)現(xiàn)的實(shí)驗(yàn)的要求。實(shí)驗(yàn)通過(guò)使用74LS165擴(kuò)展輸入數(shù)據(jù),使用74LS164擴(kuò)展輸出數(shù)據(jù),達(dá)到了串轉(zhuǎn)并、并轉(zhuǎn)串的實(shí)驗(yàn)?zāi)康摹0?、心得體會(huì)通過(guò)本次對(duì)程序的仿真與調(diào)試,我完成了實(shí)驗(yàn),使我們了解了串轉(zhuǎn)并與并轉(zhuǎn)串的原理與應(yīng)用,使我們更好的掌握了所學(xué)到的知識(shí),如何去應(yīng)用它。南昌大學(xué)賣驗(yàn)報(bào)告學(xué)生姓名:吳曉峰學(xué)號(hào):6100311019專業(yè)班級(jí):電力系統(tǒng)111班實(shí)驗(yàn)類型:口驗(yàn)證□綜合□設(shè)計(jì)口創(chuàng)新實(shí)驗(yàn)日期:實(shí)驗(yàn)成績(jī):實(shí)驗(yàn)六、8255控制鍵盤與顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、了解8255芯片結(jié)構(gòu)及編程方法2、掌握通過(guò)8255并行口讀取開(kāi)關(guān)數(shù)據(jù)的方法二、實(shí)驗(yàn)內(nèi)容用8255可編程并行口做一個(gè)鍵盤、顯示掃描實(shí)驗(yàn),把按鍵輸入的鍵值,顯示在8255控制的七段數(shù)碼管上。8255PB口做鍵盤輸入線,PC口做顯示掃描線,PA口做顯示數(shù)據(jù)線。三、實(shí)驗(yàn)原理本實(shí)驗(yàn)需要用到CPU模塊(F3區(qū))、8255模塊(C6區(qū))、8279鍵盤與顯示模塊(E7區(qū))。8255鍵盤與顯示電路原理圖參見(jiàn)圖7-1A、圖7-1B,及前一實(shí)驗(yàn)的圖6-1。CS_8255接8000H,則8255狀態(tài)/命令口地址為8003H,PA口地址為8000H,PB口地址為8001H、PC口地址為8002H。RP2E郵6gnD3-U匚O成3EDQ>VCCoo4g。寸en五、仿真程序文件名:8255KDforMCU51功能:8255控制鍵盤顯示實(shí)驗(yàn)接線:連接8279鍵盤顯示模塊的JD3E到8255模塊的JD3C(PA口);JD2E到8255模塊的JD4C(PB口);JD4E到8255模塊的JD5C(PC口);用導(dǎo)線連接8255模塊的CS_8255到地。D8255AEQU8000H;8255PA口地址D8255BEQU8001H;8255PB口地址D8255CEQU8002H;8255PC口地址D8255EQU8003H;8255狀態(tài)/命令口地址

LEDBUFEQU50H;顯示緩存KEYVALEQU60H;讀到的鍵碼;-ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#80HMOVDPTR,#D8255MOVA,#90H;MOVX@DPTR,AMOVLEDBUF,#10HMOVLEDBUF+1,#11HMOVLEDBUF+2,#11HMO

溫馨提示

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