利用D觸發(fā)器構(gòu)成計(jì)數(shù)器及利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)_第1頁(yè)
利用D觸發(fā)器構(gòu)成計(jì)數(shù)器及利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)_第2頁(yè)
利用D觸發(fā)器構(gòu)成計(jì)數(shù)器及利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)_第3頁(yè)
利用D觸發(fā)器構(gòu)成計(jì)數(shù)器及利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)_第4頁(yè)
利用D觸發(fā)器構(gòu)成計(jì)數(shù)器及利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1-數(shù)字電路實(shí)驗(yàn)設(shè)計(jì):D觸發(fā)器組成的4位異步二進(jìn)制加法計(jì)數(shù)器一、選用芯片74LS74,管腳圖如下:說明:74LS74是上升沿觸發(fā)的雙D觸發(fā)器,D觸發(fā)器的特性方程為二、設(shè)計(jì)方案:用觸發(fā)器組成計(jì)數(shù)器。觸發(fā)器具有0和1兩種狀態(tài),因此用一個(gè)觸發(fā)器就可以表示一位二進(jìn)制數(shù)。如果把n個(gè)觸發(fā)器串起來,就可以表示n位二進(jìn)制數(shù)。對(duì)于十進(jìn)制計(jì)數(shù)器,它的10個(gè)數(shù)碼要求有10個(gè)狀態(tài),要用4位二進(jìn)制數(shù)來構(gòu)成。下圖是由D觸發(fā)器組成的4位異步二進(jìn)制加法計(jì)數(shù)器。

三、實(shí)驗(yàn)臺(tái):四、布線:1、將芯片(1)的引腳4、10連到一起,2、將芯片(2)的引腳4、10連到一起,3、將芯片(1)的引腳10和芯片(2)的引腳10連到一起,4、將芯片(1)的引腳10連到+5V;5、將芯片(1)的引腳1、13連到一起,6、將芯片(2)的引腳1、13連到一起,7、將芯片(1)的引腳13和芯片(2)的引腳13連到一起,8、將芯片(1)的引腳13連到+5V;9、將芯片(1)的引腳3接到時(shí)鐘信號(hào)CP10、將芯片(1)的引腳2、6接到一起,再將引腳2接到引腳1111、將芯片(1)的引腳8、12接到一起,再將芯片(1)的引腳8接到芯片(2)的引腳312、將芯片(2)的引腳2、6接到一起,再將引腳6接到引腳1113、將芯片(1)的引腳5、9分別接到Q0、Q1,再將芯片(2)的引腳5、9分別接到Q2、Q314、分別將兩芯片的14腳接電源+5V,分別將兩芯片的7腳接地0V。五、驗(yàn)證:接通電源on,默認(rèn)輸出原始狀態(tài)0000每輸入一個(gè)CP信號(hào)(單擊CP),的狀態(tài)就會(huì)相應(yīng)的變化,變化規(guī)律為0000(原始狀態(tài))、1000、0100、1100、0010、1010、0110、1110、0001、1001、0101、1101、0011、1011、0111、1111目錄摘要······················································2第1章利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)的概述···········2第2章三種方案的論述與最終方案的確定····················22.1第一種方案的論述··································22.2第二種方案的論述··································52.3第三種方案(最終方案)的論證·······················10第3章測(cè)試結(jié)果及體會(huì)心得·······························13第4章致謝·············································14第5章參考文獻(xiàn)·········································14附錄1方案一Proteus仿真電路效果圖·····················15附錄2方案一源程序代碼································16附錄3方案二Proteus仿真電路效果圖·····················18附錄4方案二源程序代碼································19附錄5方案三(最終方案)Proteus仿真電路效果圖·········20附錄6方案三(最終方案)源程序代碼····················21

摘要:8255A是一種通用的可編程并行I/O接口芯片(ProgrammablePeripherialInterface),它是為Inter系列微處理器設(shè)計(jì)的配套電路,也可用于其它微處理器系統(tǒng)中。通過對(duì)它進(jìn)行編程,芯片可工作于不同的工作方式。此次課程設(shè)計(jì)的目的就是利用端口和8255協(xié)同工作來實(shí)現(xiàn)LED顯示功能,對(duì)8255A芯片進(jìn)行編程使流水燈左移或右移,通過延時(shí)程序使流水燈進(jìn)行順序點(diǎn)亮。通過這次課程設(shè)計(jì)掌握8255A關(guān)鍵詞:8086芯片AT89C51單片機(jī)8255A芯片LED流水燈第1章利用8255A芯片實(shí)現(xiàn)流水燈閃爍設(shè)計(jì)的概述流水燈在日常的生活中有著廣泛的應(yīng)用,例如,許多樓面上的彩燈廣告就是應(yīng)用了流水燈設(shè)計(jì)。此次的課程設(shè)計(jì)的題目是利用了端口和8255A協(xié)同工作來實(shí)現(xiàn)LED顯示功能,編寫程序,使用8255的A口和B口均為輸出,接8個(gè)或16個(gè)發(fā)光二極管,實(shí)現(xiàn)流水燈的顯示效果。在實(shí)驗(yàn)中8255A的A和B兩個(gè)端口不能同時(shí)賦值,從而我們可以用通用寄存器BX對(duì)所需要賦值的數(shù)據(jù)進(jìn)行存儲(chǔ),因?yàn)锽X可以分從高8位寄存器BH和低8位寄存器BL兩部分進(jìn)行獨(dú)立的操作,我們用寄存器BH對(duì)A口進(jìn)行賦值,用寄存器BL對(duì)B口進(jìn)行賦值,通過延時(shí)一段時(shí)間再對(duì)BH和BL進(jìn)行移位和輸出,實(shí)現(xiàn)了流水燈的效果。第2章三種方案的論述與最終方案的確定2.1第一種方案的論述第一種方案,我們使用了8086CPU芯片與8255A芯片一起實(shí)現(xiàn)了流水燈閃爍的設(shè)計(jì),同時(shí)還使用了地址鎖存器74LS373芯片。74ls373是常用的地址鎖存器芯片,它是一個(gè)是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片。在方案一中,當(dāng)8086CPU的引腳ALE(地址鎖存允許信號(hào),輸出,高電平有效,用作地址鎖存器74LS373的鎖存控制信號(hào))處于下降沿時(shí)將8086CPU輸出的地址信息進(jìn)行鎖存,以定義8255A的工作方式。下面先對(duì)74LS373芯片進(jìn)行簡(jiǎn)介:1.地址鎖存器74LS373的內(nèi)部電路與工作原理

引腳功能圖注:管腳引出端功能符號(hào):D0~D7數(shù)據(jù)輸入端OE三態(tài)允許控制端(低電平有效)Q0~Q7輸出端LE鎖存允許端74373三態(tài)緩沖輸出的8D鎖存器(3S,鎖存允許輸入有回環(huán)特性),其輸出端Q0~Q7可直接與總線相連,74LS373的LE端直接與8086CPU的ALE信號(hào)連接。1腳是三態(tài)允許控制端(OE),是低電平有效。當(dāng)1腳是高電平時(shí),不管輸入3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)如何,也不管11腳(LE鎖存允許端)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài))。當(dāng)1腳是低電平時(shí),只要11腳(LE鎖存允許端)上出現(xiàn)一個(gè)下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現(xiàn)輸入腳3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的狀態(tài)。

11腳是鎖存允許端(LE),當(dāng)LE由高變低時(shí),輸出端8位信息被鎖存,直到LE端再次有效。當(dāng)三態(tài)允許控制端OE為低電平時(shí),三態(tài)門導(dǎo)通,允許Q0~Q7輸出,OE為高電平時(shí),輸出懸空。當(dāng)74LS373用作地址鎖存器時(shí),應(yīng)使OE為低電平,此時(shí)鎖存使能端C為高電平時(shí),輸出Q0~Q7狀態(tài)與輸入端D1~D7狀態(tài)相同;當(dāng)LE發(fā)生負(fù)的跳變時(shí),輸入端D0~D7數(shù)據(jù)鎖入Q0~Q7。2.方案一的工作流程簡(jiǎn)述電路圖硬件連接:硬件連線圖注:8086CPU芯片與74LS373芯片在方案一中視為PC總線接口模塊①8255A的引腳WR(寫選通信號(hào))、RD(讀選通信號(hào))分別連到PC總線接口模塊的WR端口、RD端口。②8255A的數(shù)據(jù)端(AD0~AD7)、地址線(A0~A1)分別連到PC總線接口模塊的數(shù)據(jù)線(D0~D7)、地址線(A1~A2)。③8255模塊選通線CS連到PC總線接口模塊的IOY1(CS片選信號(hào),低電平有效,由地址總線經(jīng)I/O端口譯碼電路產(chǎn)生)。④8255的PA0~PA7連到發(fā)光二極管的L1~L8;8255的PB0~PB7連到發(fā)光二極管的L9~L16。程序流程簡(jiǎn)述:8255A的片選信號(hào)CS與地相連,處于低電平有效狀態(tài),8086CPU與8255A之間始終保持通信,8086CPU對(duì)8255A進(jìn)行讀/寫等操作。當(dāng)8086CPU的地址鎖存信號(hào)ALE處于高電平有效時(shí),在T1狀態(tài),8086CPU通過地址/數(shù)據(jù)總線上傳送地址信息,在ALE的下降沿將地址信息鎖存到地址鎖存器74LS373中,定義了8255A的工作方式,使其A口和B口為輸出口,定義了8255A各端口地址。8086CPU先后寫A、B口的起始數(shù)據(jù),并調(diào)用延時(shí)子程序點(diǎn)亮A口燈、B口燈。然后分別調(diào)用左移、右移指令將A口起始數(shù)據(jù)左移再寫入A口、B口起始數(shù)據(jù)右移再寫入B口,點(diǎn)亮下一站盞燈,以此循環(huán)實(shí)現(xiàn)流水燈效果。程序框圖結(jié)論:第一種方案雖然實(shí)現(xiàn)了流水燈閃爍效果,但由于8086CPU芯片所需的程序無(wú)法通過KC51實(shí)現(xiàn)編程,不能達(dá)到本次課程設(shè)計(jì)的培訓(xùn)目的,即對(duì)單片機(jī)的程序編程進(jìn)行訓(xùn)練掌握,要求較高,方案實(shí)現(xiàn)的難度較大,所以我們沒有把方案一作為最終方案。2.2第二種方案的論述第二種方案,我們使用了AT89C51單片機(jī)實(shí)現(xiàn)了流水燈閃爍設(shè)計(jì)。AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。因此,方案二中設(shè)計(jì)的流水燈實(shí)際上是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個(gè)單片機(jī)。下面先對(duì)AT89C51單片機(jī)進(jìn)行簡(jiǎn)介:1.AT89C51單片機(jī)的簡(jiǎn)介AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4Kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128bytes的隨機(jī)存取存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS—51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可以提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。AT89C51管腳分布注:管腳引出端功能符號(hào):◆VCC:供電電壓?!鬐ND:接地?!鬚0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高?!鬚1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收?!鬚2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)?!鬚3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)?!鬚3口管腳備選功能:·P3.0RXD(串行輸入口)·P3.1TXD(串行輸出口)·P3.2/INT0(外部中斷0)·P3.3/INT1(外部中斷1)·P3.4T0(記時(shí)器0外部輸入)·P3.5T1(記時(shí)器1外部輸入)·P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)·P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)◆RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間?!鬉LE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。◆PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)?!鬍A/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H—FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。◆XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入?!鬤TAL2:來自反向振蕩器的輸出。AT89C51提供標(biāo)準(zhǔn)功能有:4K字節(jié)Falsh閃存存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)、計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。2.方案二的工作流程簡(jiǎn)述單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,當(dāng)我們完成了上述硬件原理圖搭建之后,我們還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么來進(jìn)行工作,即編寫程序控制單片機(jī)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,也是我們這次課程設(shè)計(jì)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。從電路原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖?;同理,接在P1.1~P1.7口的其他7個(gè)LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1~LED8依次點(diǎn)亮、熄滅,8只LED燈便會(huì)一亮一暗的做流水燈了。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。在電路原理圖中,我們還應(yīng)注意的便是和AT89C51單片機(jī)接在一起的晶振電路,在電路圖中為AT89C51單片機(jī)提供了頻率參考作用。晶振是晶體振蕩器的簡(jiǎn)稱,在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò)。AT89C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。晶振有一個(gè)重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。硬件原理圖結(jié)論:第二種方案也實(shí)現(xiàn)了流水燈閃爍效果,相對(duì)于第一種方案而言,更簡(jiǎn)單些,這也正是單片機(jī)能廣泛應(yīng)用于各種電路的原因。但由于該方案中,沒有應(yīng)用到8255A芯片實(shí)現(xiàn)接口擴(kuò)展,而我們這次的課程設(shè)計(jì)中一個(gè)主要設(shè)計(jì)目的與要求便是:通過利用端口和8255協(xié)同工作來實(shí)現(xiàn)LED顯示功能,對(duì)8255A芯片進(jìn)行編程使流水燈左移或右移,實(shí)現(xiàn)流水燈閃爍效果。以此來掌握8255A的功能特點(diǎn)、工作原理以及顯示器接口的基本原理與方法技術(shù)。所以我們沒有把方案2.3第三種方案(最終方案)的論證第三種方案,我們使用了AT89C51單片機(jī)與8255A芯片一起實(shí)現(xiàn)了流水燈閃爍的設(shè)計(jì)。從前兩種方案中,我們分別熟悉與掌握了地址鎖存器74LS373芯片和AT89C51單片機(jī)。我們了解到74ls373是常用的地址鎖存器芯片,它是一個(gè)是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片。而AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。在第三個(gè)方案中,我們將詳細(xì)地介紹8255A的內(nèi)部電路、功能特點(diǎn)、工作原理以及在電路中的功能擴(kuò)展與應(yīng)用,這也是我們這次課程設(shè)計(jì)中一個(gè)需要重點(diǎn)掌握的芯片。1.可編程外圍接口芯片8255A的簡(jiǎn)介8255A是Intel公司生產(chǎn)的一種通用的可編程并行I/O接口芯片,它是為Inter系列微處理器設(shè)計(jì)的配套電路,也可用于其它微處理器系統(tǒng)中。通過對(duì)它進(jìn)行編程,芯片可工作于不同的工作方式。8255A有3個(gè)8位并行I/O口,具有3個(gè)通道3種工作方式,其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口;同時(shí)必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程8255的外部引腳和內(nèi)部結(jié)構(gòu)注:管腳引出端功能符號(hào):◆RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式?!鬋S:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/CS=0時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時(shí),8255無(wú)法與CPU做數(shù)據(jù)傳輸.◆RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/RD=0且/CS=0時(shí),允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)?!鬢R:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),即/WR=0且/CS=0時(shí),允許CPU將數(shù)據(jù)或控制字寫入8255?!鬌0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。◆PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入鎖存器?!鬚B0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器,一個(gè)8位的輸入輸出緩沖器?!鬚C0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個(gè)4位的端口,每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。'◆A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器.當(dāng)A0=0,A1=0時(shí),PA口被選擇;當(dāng)A0=0,A1=1時(shí),PB口被選擇;當(dāng)A0=1,A1=0時(shí),PC口被選擇;當(dāng)A0=1.A1=1時(shí),控制寄存器被選擇.8255A的工作方式:方式0:基本輸入輸出方式適用于無(wú)條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設(shè)和查詢和中斷方式的接口電路工作方式控制字C口按位置位/復(fù)位控制字8255A初始化編程:8255A的A,B,C三個(gè)端口的工作方式是在初始化編程時(shí),通過向8255A的控制端口寫入控制字來設(shè)定的。8255A由編程寫入的控制字有兩個(gè):方式控制字和置位/復(fù)位控制字。方式控制字用于設(shè)置端口A,B,C的工作方式和數(shù)據(jù)傳送方向;置位/復(fù)位控制字用于設(shè)置C口的PC7~PC0中某一條口線PCi(i=0~7)的電平。兩個(gè)控制字公用一個(gè)端口地址,由控制字的最高位作為區(qū)分這兩個(gè)控制字的標(biāo)志位。2.方案三的工作流程簡(jiǎn)述方案三中AT89C51單片機(jī)的工作流程與方案一中的8086CPU的工作流程大致相同,但是相對(duì)于第一個(gè)方案而言,省略了地址鎖存器74LS373芯片,直接通過P2.0、P2.1與8255A的A0、A1端相連,傳送地址信號(hào),定義8255A的工作方式,使其A口和B口為輸出口,定義了8255A各端口地址。8255A的片選信號(hào)CS與地相連,處于低電平有效狀態(tài),AT89C51與8255A之間始終保持通信,AT89C51對(duì)8255A進(jìn)行讀/寫等操作。AT89C51單片機(jī)先后寫A、B口的起始數(shù)據(jù),并調(diào)用延時(shí)子程序點(diǎn)亮A口燈、B口燈。然后分別調(diào)用左移、右移指令將A口起始數(shù)據(jù)左移再寫入A口、B口起始數(shù)據(jù)右移再寫入B口,點(diǎn)亮下一站盞燈,以此循環(huán)實(shí)現(xiàn)流水燈效果。與第二個(gè)方案相比較,結(jié)合了第二個(gè)方案的優(yōu)點(diǎn)。在電路圖中和AT89C51單片機(jī)接在一起的晶振電路,AT89C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中,在電路圖中晶振電路為AT89C51單片機(jī)提供了頻率參考作用。開始開始設(shè)置8255A工作方式寫入PA、PB口,并分別對(duì)其數(shù)值位移延時(shí)寫入PA、PB口,并分別對(duì)其數(shù)值位移延時(shí)全部閃爍一次程序流程圖第3章測(cè)試結(jié)果及體會(huì)心得我們把方案三確定為最終方案后,便開始在Proteus軟件上繪制出了仿真效果圖,并通過Keil軟件編寫出了相應(yīng)的源程序匯編文件,導(dǎo)入到了仿真圖中的AT89C51單片機(jī)上,并最終仿真成功,實(shí)現(xiàn)了流水燈閃爍的效果。但整個(gè)實(shí)驗(yàn)過程并不是一帆風(fēng)順的,更不是一蹴而就的。我們通過網(wǎng)上查找相關(guān)資料,在圖書館里查詢與流水燈相關(guān)的書籍,搜集整理出了前面三種方案,并通過實(shí)際的仿真與比較,最終確定了方案三作為我們的最終方案。三個(gè)方案在仿真的過程中都出現(xiàn)了問題,不是源程序有誤就是網(wǎng)上搜集到的相關(guān)資料是錯(cuò)誤的,把我們帶進(jìn)了誤區(qū),但我們最終通過自己討論研究和請(qǐng)教老師,解決了這些問題。把三個(gè)方案都通過Proteus軟件仿真出來了。在這次課程設(shè)計(jì)中,我們分別熟悉掌握了地址鎖存器74LS373芯片、AT89C51單片機(jī)、可編程外圍接口芯片8255A的內(nèi)部電路、功能特點(diǎn)、工作原理以及在電路中的功能擴(kuò)展與應(yīng)用等,使我們對(duì)這些芯片的認(rèn)識(shí)更加深刻,并通過仿真電路圖等實(shí)踐操作更進(jìn)一步掌握了這些芯片的實(shí)際應(yīng)用效果與它們的優(yōu)缺點(diǎn)、在提高我們理論知識(shí)水平與范圍的同時(shí),也提高了我們實(shí)踐能力?!袄碚撆c實(shí)踐相結(jié)合”永遠(yuǎn)使我們學(xué)習(xí)上一條不可繞過的道路,用理論指導(dǎo)實(shí)踐,通過實(shí)踐提高對(duì)理論知識(shí)的認(rèn)知水平,這就是我們這次課程設(shè)計(jì)的一個(gè)較為深刻的體會(huì)。第4章致謝在此,我們鄭重感謝系里給我們提供的這次珍貴的鍛煉機(jī)會(huì)以及張斌老師的熱情指導(dǎo)與幫助。在我們遇到困難而無(wú)法解決的時(shí)候,張斌老師給我們提供了很多有用的方案建議,并為我們提供了對(duì)我們極為有用的資料;當(dāng)我們有些問題不懂疑惑時(shí),張斌老師也耐心給了我們做了清楚的解釋,在此我們表示真摯的感謝。通過課程設(shè)計(jì),我們學(xué)到了很多東西。我們隊(duì)友之間的精密合作與默契對(duì)我們也是一個(gè)重要幫助,沒有我們的合作,不可能會(huì)有所成功。感謝所有幫過我們的老師和同學(xué)們,他們都很熱情幫助我們,為我們提供了他們力所能及的幫助,在此我們對(duì)他們表示真摯的感謝。第5章參考文獻(xiàn)[1]孫俊逸,盛秋林,張錚等單片機(jī)原理及應(yīng)用[M]。北京:清華大學(xué)出版社,2001。[2]蔡美琴,MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M]。北京:高等教育出版社,2000。[3]孫育才,孫華芳,王榮興單片機(jī)原理及應(yīng)用[M]。北京:電子工業(yè)出版社,2003。[4]李鴻,單片機(jī)原理及應(yīng)用[M]。湖南:湖南大學(xué)出版社,2004。[5]丁元杰,單片微機(jī)原理及應(yīng)用第二版[M]。北京:機(jī)械工業(yè)出版社,2001。[6]潘新民,王燕芳編著.微型計(jì)算機(jī)控制技術(shù)。北京:高等教育出版社,2004。[7]馬忠梅單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M]。北京:北京北航出版社,2003。[8]范立南單片微機(jī)接口與控制技術(shù)[M]。沈陽(yáng):遼寧大學(xué)出版社,1996。[9]張友德單片微型機(jī)原理、應(yīng)用與實(shí)踐[M]。上海:復(fù)旦大學(xué)出版社,1992。[10]李華MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M]。北京:北京航空航天大學(xué)出版社,1993。[11]何希慶,高偉MCS-51單片機(jī)原理、實(shí)驗(yàn)、實(shí)例[M].。山東:山東大學(xué)出版社,1989。[12]張毅剛,彭喜元,姜守達(dá)新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M]。哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003。

附錄1方案一Proteus仿真電路效果圖附錄2方案一源程序代碼MY8255_AEQUIOY0+00H*2;8255的A口地址MY8255_BEQUIOY0+01H*2;8255的B口地址MY8255_CEQUIOY0+02H*2;8255的C口地址MY8255_MODEEQUIOY0+03H*2;8255的控制寄存器地址DATASEGMENTLALBDB1DUPAXXDW1BUPCXXDW1BUPDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定義8255工作方式MOVAL,80H;工作方式0,A口和B口為輸出OUTDX,ALBEGIN:MOVDX,MY8255_A;寫A口發(fā)出的起始數(shù)據(jù)MOVAL,01HOUTDX,ALMOVLA,ALMOVDX,MY8255_B;寫B(tài)口發(fā)出的起始數(shù)據(jù)MOVAL,80HOUTDX,ALMOVLB,ALMOVCX,7LOOP1:CALLDALLYMOVAL,LA;將A口起始數(shù)據(jù)左移再寫入A口ROLAL,1MOVLA,ALMOVDX,MY8255_AOUTDX,ALMOVAL,LB;將B口起始數(shù)據(jù)右移再寫入B口RORAL,1MOVLB,ALMOVDX,MY8255_BOUTDX,ALLOOPLOOP1MOVCX,7LOOP2:CALLDALLYMOVAL,LA;將A口起始數(shù)據(jù)右移再寫入A口RORAL,1MOVLA,ALMOVDX,MY8255_AOUTDX,ALMOVAL,LB;將B口起始數(shù)據(jù)左移再寫入B口ROLAL,1MOVLB,ALMOVDX,MY8255_BOUTDX,ALLOOPLOOP2JMPBEGIN;流水燈重新開始DALLYPROC;軟件延時(shí)子程序MOVCXX,CXMOVAXX,AX;這里本應(yīng)該用堆棧,我用CXX,AXX變量代替了MOVCX,0FHD1:MOVAX,0FFFHD2:DECAXJNZD2LOOPD1MOVAX,AXXMOVCX,CXXRETDALLYENDPCODEENDSENDSTART

附錄3方案二Proteus仿真電路效果圖

附錄4方案二源程序代碼ORG

0000H

;單片機(jī)上電后從0000H地址執(zhí)行AJMP

START

;跳轉(zhuǎn)到主程序存放地址處ORG

0030H

;設(shè)置主程序開始地址START:MOV

SP,#60H

;設(shè)置堆棧起始地址為60HCLR

P1.0

;P1.0輸出低電平,使LED1點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.0

;P1.0輸出高電平,使LED1熄滅CLRP1.1

;P1.1輸出低電平,使LED2點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.1

;P1.1輸出高電平,使LED2熄滅CLRP1.2

;P1.2輸出低電平,使LED3點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.2

;P1.2輸出高電平,使LED3熄滅CLRP1.3

;P1.3輸出低電平,使LED4點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.3

;P1.3輸出高電平,使LED4熄滅CLRP1.4

;P1.4輸出低電平,使LED5點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.4

;P1.4輸出高電平,使LED5熄滅CLRP1.5

;P1.5輸出低電平,使LED6點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.5

;P1.5輸出高電平,使LED6熄滅CLRP1.6

;P1.6輸出低電平,使LED7點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.6

;P1.6輸出高電平,使LED7熄滅CLRP1.7

;P1.7輸出低電平,使LED8點(diǎn)亮ACALLDELAY

;調(diào)用延時(shí)子程序SETBP1.7

;P1.7輸出高電平,使LED8熄滅ACALLDELAY

;調(diào)用延時(shí)子程序AJMP

START

;8個(gè)LED流了一遍后返回到標(biāo)號(hào)START處再循環(huán)DELAY

;延時(shí)子程序MOV

R0,#255;延時(shí)一段時(shí)間D1:MOV

R1,#255DJNZ

R1,$DJNZ

R0,D1R

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論