




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
任務(wù)7用單片機(jī)和可編程并行接口控制交通燈教學(xué)導(dǎo)航任務(wù)單任務(wù)準(zhǔn)備案例示范知識梳理與總結(jié)任務(wù)作業(yè)教學(xué)導(dǎo)航教知識重點(diǎn)(1)外部總線結(jié)構(gòu)、鎖存器、總線驅(qū)動(dòng)器(2)存儲(chǔ)器芯片結(jié)構(gòu)及存儲(chǔ)器的擴(kuò)展(3)8255A結(jié)構(gòu)及工作方式、控制字的設(shè)置知識難點(diǎn)存儲(chǔ)器擴(kuò)展芯片地址確定、8255A工作方式的應(yīng)用推薦教學(xué)方式以任務(wù)入手,通過8255A控制交通燈系統(tǒng)這一任務(wù)的實(shí)現(xiàn),讓讀者掌握單片機(jī)輸入/輸出口擴(kuò)展、存儲(chǔ)器擴(kuò)展、8255A的應(yīng)用。建議學(xué)時(shí)8學(xué)時(shí)學(xué)推薦學(xué)習(xí)方法通過硬件電路設(shè)計(jì)及制作、軟件編程、仿真調(diào)試與系統(tǒng)運(yùn)行,理解相關(guān)理論知識,學(xué)會(huì)應(yīng)用。必須掌握的理論知識(1)外部總線結(jié)構(gòu)、鎖存器、總線驅(qū)動(dòng)器(2)存儲(chǔ)器芯片結(jié)構(gòu)及存儲(chǔ)器擴(kuò)展的方法(3)擴(kuò)展的存儲(chǔ)器芯片地址范圍的確定(4)8255A結(jié)構(gòu)及工作方式、控制字的設(shè)置必須掌握的技能(1)利用相關(guān)芯片擴(kuò)展I/O口及存儲(chǔ)器擴(kuò)展技術(shù);(2)8255A三種工作方式的應(yīng)用[任務(wù)單]任務(wù)描述用8255做輸出口,控制十二個(gè)發(fā)光二極管亮滅,模擬交通燈系統(tǒng)。初始態(tài)為四個(gè)路口的紅燈全亮之后,東西路口的綠燈亮,南北路口的紅燈亮,東西路口方向通車;延時(shí)20s,東西路口的綠燈閃爍3次后熄滅,黃燈亮3s后,東西路口紅燈亮,而同時(shí)南北路口的綠燈亮,南北路口方向開始通車;南北路口的綠燈閃爍3次后熄滅,黃燈亮3s后,再切換到南北路口紅燈亮,東西路口的綠燈亮,東西方向通車;之后重復(fù)以上過程。任務(wù)要求1、自行設(shè)計(jì)利用8255做輸出口連接十二個(gè)發(fā)光二極管實(shí)現(xiàn)交通燈功能的電路圖;2、按上述設(shè)計(jì)的電路圖設(shè)計(jì)交通燈控制系統(tǒng)程序。實(shí)現(xiàn)方法(1)利用Proteus仿真軟件對設(shè)計(jì)的電路及程序進(jìn)行調(diào)試;(2)繪制電路板,焊接元件;(3)硬件仿真,燒錄程序。任務(wù)準(zhǔn)備7.1單片機(jī)簡單I/O擴(kuò)展7.2存儲(chǔ)器的擴(kuò)展7.38255A可編程并行I/O接口7.1MCS-51單片機(jī)的簡單擴(kuò)展7.1.1外部總線結(jié)構(gòu)地址鎖存器A15~A8A7~A0D7~D0數(shù)據(jù)總線DB控制總線CB并行串行中斷輸入計(jì)數(shù)脈沖復(fù)位RXDTXDINT0INT1T0T1RESETP1P2P0ALEWRRDPSENEA8051地址總線AB7.1.1外部總線結(jié)構(gòu)1.地址總線傳送存儲(chǔ)單元或外設(shè)的地址P0口低8位地址總線(一般需要加一級鎖存器)P2口高8位地址總線2.數(shù)據(jù)總線P0提供數(shù)據(jù)線,傳送數(shù)據(jù)、指令和信息P0口分時(shí)復(fù)用的雙向數(shù)據(jù)總線和低8位地址總線3.控制總線3.控制總線用來傳送各種控制信息/:片外數(shù)據(jù)存儲(chǔ)器RAM和外設(shè)接口的讀寫控制信號。PSEN:片外程序存儲(chǔ)器的讀控制;ALE:地址鎖存控制;下降沿鎖存P0口的低8位地址EA:片內(nèi)/片外程序存儲(chǔ)器選擇信號,EA=0時(shí),只訪問外部程序存儲(chǔ)器7.1.2地址鎖存器和總線驅(qū)動(dòng)器1.地址鎖存器帶三態(tài)緩沖輸出:74LS373、8282帶清除端:74LS273D0D1D2D3D4D5D6D7LEOEQ0Q1Q2Q3Q4Q5Q6Q774LS373347813141718112569121516191ALED0D1D2D3D4D5D6D7STBOEQ0Q1Q2Q3Q4Q5Q6Q78282123456781191918171615141312VCCGND1020D0D1D2D3D4D5D6D7CLKCLRQ0Q1Q2Q3Q4Q5Q6Q774LS2733478131417181112569121516191ALE10kΩ74LS373功能表8282的功能表和74LS373相似,表中的G端和8282的STB端對應(yīng)輸入輸出OELEDQLHHHLHLLLL×Q不變H××高阻態(tài)74LS273功能表74LS273只有清除端為高電平才具鎖存功能,鎖存器控制為CLK,上升沿鎖存數(shù)據(jù)。單片機(jī)ALE(下降沿鎖存地址)引腳需接反相器輸入輸出CLRCLKDQL××LH↑HHH↑LLHL×Q不變2.總線驅(qū)動(dòng)器當(dāng)單片機(jī)外接芯片較多,超出總線負(fù)載能力,必須加總線驅(qū)動(dòng)器。驅(qū)動(dòng)器可增強(qiáng)單片機(jī)對外圍接口電路的驅(qū)動(dòng)能力,而且可以起到對負(fù)載波動(dòng)的隔離作用根據(jù)驅(qū)動(dòng)的方向可分為單向總線驅(qū)動(dòng)器和雙向總線驅(qū)動(dòng)器
單向驅(qū)動(dòng)器74LS244、74LS241用于地址總線驅(qū)動(dòng)雙向驅(qū)動(dòng)器74LS245用于數(shù)據(jù)總線驅(qū)動(dòng)總線驅(qū)動(dòng)器芯片管腳1A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y3141Y4122Y192Y272Y352Y431G12G1974LS24410231617198765418191112131415&A0A1B0A2A3A4A5A6A7DIRB3B4B5B6B720B1B274LS245+5VPSENRDGGND7.1.3并行I/O口簡單擴(kuò)展1、用鎖存器擴(kuò)展簡單輸出口(1)用74LS377擴(kuò)展8位輸出口圖7-4為利用鎖存器74LS377擴(kuò)展的簡單輸出口的接口電路。74LS377為帶有允許輸出端的8D鎖存器。D7~D0為其輸入端口,輸出端口為Q7~Q0,CLK為時(shí)鐘控制端,上升沿鎖存。圖中P0口的P0.0和P0.1引腳分別作為地址選擇線與兩個(gè)74LS377的片選控制端相連,使得兩個(gè)74LS377的口地址分別為0XFFFE和0XFFFD。當(dāng)某一個(gè)74LS377該輸出口被選中,且CLK端電平正跳時(shí),P0口數(shù)據(jù)鎖存到74LS377的輸出端,從而實(shí)現(xiàn)數(shù)碼管的靜態(tài)顯示。案例12用單片機(jī)擴(kuò)展口控制秒表源程序清單:#include<reg51.h>#include<absacc.h>#defineaddr377_1XBYTE[0XFFFE]#defineaddr377_2XBYTE[0XFFFD]unsignedcharled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedtime=0,count=20;主函數(shù)和中斷服務(wù)函數(shù)voidmain(){addr377_1=addr377_2=led[0];TMOD=01;TH0=-50000>>8;TL0=-50000;EA=1;ET0=1;TR0=1;while(1);}voidisr_time()interrupt1{TH0=-50000>>8;TL0=-50000;count--;if(count==0){count=20;time=(time+1)%60;addr377_1=led[time/10];addr377_2=led[time%10];}}(2)74LS373擴(kuò)展簡單的8位輸出口案例13:用單片機(jī)擴(kuò)展口控制流水燈P2.7、P2.6引腳分別與片選控制G端相連,以選通鎖存器案例13:用單片機(jī)擴(kuò)展口控制流水燈利用該電路使16個(gè)發(fā)光二極管實(shí)現(xiàn)從左至右逐一點(diǎn)亮的流水燈效果的程序#include<reg51.h>sbitp27=P2^7;sbitp26=P2^6;sbitp36=P3^6;unsignedcharcword=0xfe;voidmain(){unsignedinti,j;p27=1;p26=0;p36=0;while(1)
{
for(i=0;i<8;i++){P0=cword;for(j=50000;j>0;j--);cword=(cword<<1)|1;}P0=cword;cword=0xfe;p27=~p27;p26=~p26;
}}2、用三態(tài)門74LS244擴(kuò)展8位輸入口P2.7和相“或”控制信息的輸入案例14用單片機(jī)擴(kuò)展輸入口進(jìn)行開關(guān)控制#include<reg51.h>#include<absacc.h>#defineaddr244XBYTE[0X3FFF]//74LS244的地址為3FFFHvoidmain(){unsignedcharmdata;while(1){mdata=addr244;//從74LS244中讀取數(shù)據(jù)(按鍵的開合狀態(tài))P1=mdata;}}7.2存儲(chǔ)器的擴(kuò)展7.2.1程序存儲(chǔ)器的擴(kuò)展7.2.2數(shù)據(jù)存儲(chǔ)器的擴(kuò)展7.2.3存儲(chǔ)器的綜合擴(kuò)展7.2.1程序存儲(chǔ)器的擴(kuò)展外擴(kuò)的存儲(chǔ)器芯片通過地址總線、數(shù)據(jù)總線和控制總線同單片機(jī)相連地址總線是單向輸入的,其數(shù)目與芯片容量有關(guān)。如容量為2K×8時(shí),地址線有11根,即211=2048。容量為16K×8時(shí),地址線有14根,即214。數(shù)據(jù)線是雙向的,即可輸入,也可輸出,其數(shù)目與數(shù)據(jù)位數(shù)有關(guān)。如2K×8的芯片,其數(shù)據(jù)線有8根;控制線主要有讀/寫控制線與片選線兩種。由于可以擴(kuò)展多個(gè)存儲(chǔ)芯片,需要用片選信號來確定哪個(gè)芯片被選中。讀/寫控制線決定芯片進(jìn)行讀/寫操作。
1.程序存儲(chǔ)器芯片MaskROM型:掩膜ROMOPTROM型:一次可編程ROMEPROM型:可擦除可編程ROME2PROM型:電可擦除可編程ROMFlashROM型:閃速只讀存儲(chǔ)器1.程序存儲(chǔ)器芯片典型的EPROM芯片(Intel公司):2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。在這些芯片上均設(shè)有玻璃窗口,在紫外線下照射20分鐘左右,存儲(chǔ)器的各位信息均變?yōu)?,通過相應(yīng)的編程器將工作程序固化到這些芯片中,便可成為MCS-51的外部程序存儲(chǔ)器。(1)并行2716EPROM的特點(diǎn)2716的存儲(chǔ)容量為16384(2K×8)位,24線的雙列直插式器件,單一+5V供電,運(yùn)行時(shí)最大功耗為252mW,維持功耗為132mW,讀出時(shí)間最大為450ns。(2)引腳說明O0~O7數(shù)據(jù)線:傳送存儲(chǔ)單元內(nèi)容。根數(shù)與單元數(shù)據(jù)位數(shù)相同。A0~A10地址線:選擇芯片內(nèi)部一個(gè)存儲(chǔ)單元。根數(shù)由存儲(chǔ)器容量決定。CE片選線:選擇存儲(chǔ)器芯片。CE無效,其他信號線不起作用。OE:數(shù)據(jù)讀選通線,Vcc:+5V主電源Vpp:編程電源(+25V)GND:接地端(3)2716的工作方式P2.2P2.0P0.78031P0.0ALEPSEN………2.單片程序存儲(chǔ)器擴(kuò)展...D7Q7
373D0Q0
G控制線11根地址線8根數(shù)據(jù)線(1)單片2716存儲(chǔ)器擴(kuò)展電路A10A8A7A0
2716O7O0OECEGND…………EA總線連接1)地址總線的連接P0.0~P0.7和P2.0~P2.2連接地址總線A0~A10低8位地址信號AB0~AB7,高3位地址信號AB8~AB102)數(shù)據(jù)總線的連接P0.0~P0.7連接數(shù)據(jù)總線D0~D73)片選端及控制總線的連接PSEN連接OE:片外程序存儲(chǔ)器讀控制信號ALE連接鎖存器G:地址鎖存允許控制信號EA接地:選擇片外程序存儲(chǔ)器(2)讀取外部程序存儲(chǔ)器的時(shí)序不執(zhí)行MOVX指令數(shù)據(jù)輸入執(zhí)行MOVX指令3.多片程序存儲(chǔ)器擴(kuò)展最大擴(kuò)展容量64K外擴(kuò)多片存儲(chǔ)器進(jìn)行的選擇:片選:選存儲(chǔ)器芯片,片選信號區(qū)別不同芯片的地址空間。字選:選中該芯片中的相應(yīng)存儲(chǔ)器單元片選方法:(1)線選法
單片機(jī)剩余高位地址總線直接連接各存儲(chǔ)器片選線。各芯片間地址不連續(xù)有相當(dāng)數(shù)量的地址不能使用,否則造成片選混亂(2)地址譯碼法單片機(jī)剩余高位地址總線通過地址譯碼器輸出片選信號。(1)線選法 各存儲(chǔ)器芯片的地址空間:ABi:1514131211109876543210~1514131211109876543210
Ⅰ:1100000000000000~1100
011111111111=C000H~C7FFHⅡ:1010
000000000000~1010
011111111111=A000H~A7FFHⅢ:0110
000000000000~0110
011111111111=6000H~67FFHA0~A7A8~A10D0~D7CEOE2716(I)A0~A7A8~A10D0~D7CEOE2716(II)A0~A7A8~A10D0~D7CEOE2716(III)O0~O7GD0~D7OE74LS373P0.0~P0.7PSEN
P2.7P2.6P2.5ALEP2.2~P2.08051(2)地址譯碼法3-8地址譯碼器:74LS138地址譯碼法原理譯碼法選址就是利用地址譯碼器對系統(tǒng)的片外高位地址進(jìn)行譯碼,以其譯碼輸出作為存儲(chǔ)器芯片的片選信號,將地址劃分為連續(xù)的地址空間塊,避免了地址的間斷。(1)完全譯碼:地址譯碼器使用了全部地址線,地址與存儲(chǔ)單元一一對應(yīng)。
(2)部分譯碼:地址譯碼器僅使用了部分地址,地址與存儲(chǔ)單元不是一一對應(yīng)。部分譯碼也會(huì)浪費(fèi)大量的存儲(chǔ)單元,對于要求存儲(chǔ)器容量較大的微機(jī)系統(tǒng),一般不采用。但對于單片機(jī)系統(tǒng)來說,由于實(shí)際需要的存儲(chǔ)器容量不大,采用部分譯碼器可以簡化譯碼電路。
A0~A7A8~A10D0~D7CEOE2716(III)A0~A7A8~A10D0~D7CEOE2716(II)A0~A7A8~A10D0~D7CEOE2716(I)O0~O7GD0~D7OE74LS373P0.0~P0.7PSENP2.5P2.4P2.3ALEP2.2~P2.08051各存儲(chǔ)器芯片的地址空間:Abi:1514131211109876543210~15141312
111098
76543210
Ⅰ:0000000000000000~0000
011111111111=0000H~07FFHⅡ:0000
100000000000~0000
111111111111=0800H~0FFFHⅢ:0001
000000000000~0001
011111111111=1000H~17FFH
CY0BY1AY2G2AG2BG1+5V1387.2.2數(shù)據(jù)存儲(chǔ)器的擴(kuò)展MCS-51系列單片機(jī)的內(nèi)部一般都僅有128字節(jié)或256字節(jié)的RAM數(shù)據(jù)存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器使用相同的64KB地址空間,但兩者卻是相互獨(dú)立的的存儲(chǔ)空間,具有各自獨(dú)立的控制信號線和讀寫操作指令。同時(shí),外部的數(shù)據(jù)存儲(chǔ)器和其它I/O接口芯片的擴(kuò)展統(tǒng)一編址。1.數(shù)據(jù)存儲(chǔ)器芯片典型的SRAM芯片有Intel公司的:6216(2K×8)、6264(8K×8)、62128(16K×8)等存儲(chǔ)器的外部信號線:I/O0~I(xiàn)/O7:8位數(shù)據(jù)線A0~A12:
13位地址線:
CE1片選線1:低電平有效CE2片選線2:高電平有效OE:讀選通信號輸入線WE:寫允許信號輸入線CE1CE2WEOE方式D0~D71×××未選中高阻抗×0××未選中高阻抗0111輸出禁止高阻抗0101寫Din0110讀Dout6264的工作方式2.數(shù)據(jù)存儲(chǔ)器擴(kuò)展(1)單片6264數(shù)據(jù)存儲(chǔ)器擴(kuò)展(2)多片6264數(shù)據(jù)存儲(chǔ)器擴(kuò)展ABi:15141312111098
76543210~1514131211109876543210
Ⅰ:0100000000000000~0100011111111111=4000H~5FFFHⅡ:0010100000000000~0010111111111111=2000H~3FFFHⅢ:0000000000000000~0001111111111111=0000H~1FFFHO0~O7GD0~D7OE74LS373+5VCY0BY1AY2G2AG2B
G1138A0~A7A8~A10D0~D7CE1OE6264(I)WEA0~A7A8~A10D0~D7CE1OE6264(II)WEA0~A7A8~A10D0~D7CE1OE6264(III)WEP0.0~P0.7RDP2.7P2.6P2.5ALEP2.4~P2.08051WR(3)外部數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送#include<reg51.h>unsignedcharxdataDATABUFF[100]_at_0x00;//外部RAM,地址從0000H開始voiddelay();voidmain(){unsignedcharcword;inti;for(i=0;i<100;i++)DATABUFF[i]=i;for(i=0;i<100;i++){cword=DATABUFF[i];P1=cword;delay();}while(1);}voiddelay(){unsignedinti,j;for(i=1000;i>0;i--)for(j=100;j>0;j--);}利用Proteus調(diào)試程序的方法:(1)點(diǎn)擊仿真按鈕,系統(tǒng)開始全速運(yùn)行,可以看到寫入P1的數(shù)據(jù)由P1連接的發(fā)光二極管以二進(jìn)制形式顯示。(2)點(diǎn)擊暫停按鈕,系統(tǒng)暫時(shí)停下來了,點(diǎn)擊“Debug”菜單下的“MemoryContents-U3”子菜單,這時(shí)系統(tǒng)將彈出“MemoryContents-U3”窗口,(4)讀取外部存儲(chǔ)器的時(shí)序1)外部數(shù)據(jù)存儲(chǔ)器讀周期2)外部數(shù)據(jù)存儲(chǔ)器寫周期7.2.3存儲(chǔ)器的綜合擴(kuò)展地址總線和數(shù)據(jù)總線公用片外ROM用到PSEN,片外RAM用到RD與WE各芯片地址是多少?7.38255A可編程并行I/O接口7.3.18255A的結(jié)構(gòu)及引腳數(shù)據(jù)端口A、B、C(包含I/O數(shù)據(jù)鎖存器,控制寄存器和狀態(tài)寄存器)端口A:包括一個(gè)8位的數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位的數(shù)據(jù)輸入鎖存器,可作為數(shù)據(jù)輸入或輸出端口,并工作于三種方式中的任何一種。端口B:包括一個(gè)8位的數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位的數(shù)據(jù)輸入緩沖器,可作為數(shù)據(jù)輸入或輸出端口,作數(shù)據(jù)輸入口時(shí),沒有鎖存功能。端口B不能工作于方式2。端口C:
結(jié)構(gòu)和B口相同,但在方式字控制下分為兩個(gè)4位的端口,每個(gè)4位端口都有4位的鎖存器,用來配合端口A與端口B鎖存輸出控制信號和輸入狀態(tài)信號1.8255A組成結(jié)構(gòu)A組控制和B組控制電路實(shí)現(xiàn)對8255A端口工作方式的控制
A組:PA和PC4~7B組:PB和PC0~3
數(shù)據(jù)總線緩沖器三態(tài)雙向8位緩沖器,8255A和單片機(jī)數(shù)據(jù)總線接口讀/寫控制邏輯電路單片機(jī)控制信號(RD、WR、RESET)地址總線控制信號(A1、A0)片選信號(CS)1.8255A組成結(jié)構(gòu)2.8255A的引腳電源和地線:VCC、GND與單片機(jī)相連的引腳(14條)RESET復(fù)位信號,高電平有效CS片選信號,低電平有效RD讀信號,低電平有效WR寫信號,低電平有效D7~D0雙向三態(tài)數(shù)據(jù)線,和單片機(jī)數(shù)據(jù)總線相連A1、A0端口選擇信號與外設(shè)相連的引腳(24條)PA7~PA0:A口輸入/輸出引腳PB7~PB0:B口輸入/輸出引腳PC7~PC0:C口輸入/輸出引腳8255A的控制信號與端口工作狀態(tài)CSA1A0RDWR工作狀態(tài)00000000000010011×1×0100101×1×0001111×011110000×11讀A口讀B口讀C口寫A口寫B(tài)口寫C口寫控制字寄存器芯片未選中非法狀態(tài)非法狀態(tài)7.3.28255A的工作方式1.方式0——基本的輸入/輸出方式不需要任何聯(lián)絡(luò)(選通、握手)信號,相當(dāng)于該端口在單片機(jī)與外設(shè)之間建立一個(gè)直接的數(shù)據(jù)通信,端口A、B、C都可作為輸入或輸出口使用。應(yīng)用場合:無條件傳送數(shù)據(jù):默認(rèn)為傳送數(shù)據(jù)的雙方均已準(zhǔn)備好。查詢方式傳送數(shù)據(jù):可以由程序定義C口的某些位作為聯(lián)絡(luò)信號線,以配合A口、B口完成查詢方式下的數(shù)據(jù)傳送。2.方式1——選通的輸入/輸出方式無論是輸入還是輸出都通過應(yīng)答關(guān)系實(shí)現(xiàn),這時(shí)端口A或B用作數(shù)據(jù)口,端口C的一部分引腳用作握手信號線與中斷請求線。若端口A、B只有一個(gè)工作于方式1,另一個(gè)端口和端口C的其它位可工作于方式0若端口A和B同時(shí)工作于方式1,端口C余下的兩位還可用于傳送數(shù)據(jù)或控制信號等。A口方式1輸入組態(tài)
B口方式1輸入組態(tài)A口方式1輸出組態(tài)
B口方式1輸出組態(tài)INTE:中斷允許信號INTR:中斷請求信號項(xiàng)目
PC7PC6PC5PC4PC3PC2PC1PC0輸入方式I/OI/OIBFASTBAINTRASTBBIBFBINTRB輸出方式OBFAACKAI/OI/OINTRAACKBOBFBINTRB輸入選通信號,有效時(shí),外設(shè)把數(shù)據(jù)送至A口或B口的輸入鎖存器輸入緩沖器滿信號,有效時(shí),表示數(shù)據(jù)已送入輸入鎖存器,尚未被單片機(jī)取走。它由信號置位,由信號的上升沿復(fù)位。
輸出緩沖器滿信號,有效時(shí),表示A口或B口已經(jīng)接收到了來自單片機(jī)的數(shù)據(jù),外設(shè)可以取走該數(shù)據(jù)。它由信號上升沿置為有效,由的有效信號置為高電平。外設(shè)收到輸出數(shù)據(jù)后的響應(yīng)信號,有效時(shí),表示外設(shè)已經(jīng)接收到了A口或B口的數(shù)據(jù),同時(shí)置位信號。方式1的輸入過程方式1的輸出過程方式2雙向傳送方式僅適用于端口A,PA7~PA0作為雙向的數(shù)據(jù)總線端口C有5條引腳用作A的握手信號線和中斷請求線B口和C口余下的3位仍可工作于方式0或1A組方式選擇00-方式001—方式11×—方式2端口A1—輸入0—輸出端口C(上半部1—輸入0—輸出7.3.38255A的控制字1.方式選擇控制字B組方式選擇0—方式01—方式1端口B1—輸入0—輸出端口C(下半部)1—輸入0—輸出標(biāo)志位D7=1D7D6D5D4D3D2D1D02.C口按位置位/復(fù)位控制字D7D6D5D4D3D2D1D0標(biāo)志位D7=0未使用位選擇000—PC0001—PC1010—PC2011—PC3100—PC4101—PC5110—PC6111—PC70—復(fù)位1—置位7.3.48255A應(yīng)用實(shí)例8255A各端口的地址A口:0111111111111100B7FFCHB口:0111111111111101B7FFDHC口:0111111111111110B7FFEHD口:0111111111111111B7FFFH1.8255工作方式設(shè)定實(shí)例7-1:用8255A芯片擴(kuò)展MCS-51單片機(jī)的并行I/O接口,由圖示可知8255A芯片A口、B口、C口和控制字寄存器的地址分別為7FFCH、7FFDH、7FFEH和7FFFH,現(xiàn)要求其3個(gè)數(shù)據(jù)端口均工作在方式0,其中A口和C口的高4位作為輸出口,B口和C口的低4位作為輸入口。實(shí)例7-1根據(jù)題意,A口方式0輸出:D6D5D4=000B口方式0輸入:D2D1=01C口的高4位輸出:D3=0C口的低4位輸出:D0=1因此8255A的工作方式控制字為10000011B,即83H實(shí)例7-1#include<reg51.h>#include<absacc.h>#defineaddrcXBYTE[0x7FFF]voidmain(){addrc=0x83;……}例6-2:同上題8255A芯片,要求對C口的PC7位置0,PC5位置1。解:根據(jù)C口按位置位/復(fù)位控制字的格式,對PC7位置0其控制字為0EH,對PC5位置1其控制字為0BH。#include<reg51.h>#include<absacc.h>#defineaddrcXBYTE[0x7FFF]voidmain(){addrc=0x0E;addrc=0x0B;……}2.工作方式0的應(yīng)用
8255A工作在基本的輸入輸出方式下,A口、B口均可置為輸入方式或輸出方式,但不能既作輸入又作輸出;在工作方式0下,C口不提供固定的聯(lián)絡(luò)信號,C口的高4位和低4位也可分別設(shè)置為輸入方式或輸出方式。實(shí)例7-4從8255A的A口讀入8個(gè)按鈕狀態(tài),送到8255A的B口輸出,當(dāng)某一按鈕按下則對應(yīng)發(fā)光二極管亮,否則滅。
實(shí)例7-4#include<reg51.h>#include<absacc.h>#defineaddraXBYTE[0xFFF8]#defineaddrbXBYTE[0xFFF9]#defineaddrconXBYTE[0xFFFB]voidmain(){unsignedcharcdata;addrcon=0x90;while(1){cdata=addra;addrb=cdata;}}小技巧:1.8255A的負(fù)載能力有限,因此外接I/O設(shè)備時(shí)要接總線驅(qū)動(dòng)器,本例用的是74LS240。2.8255A的、A1、A0分別接74LS373的Q2、Q1、Q0,則其A口、B口、控制字寄存器的地址的最后三位為000、001和011,不用地址位設(shè)為1,則地址分別為FFF8H、FFF9H、FFFBH。3.工作方式1的應(yīng)用
8255A工作在選通的輸入輸出方式下,A口、B口由編程可分別設(shè)定為輸入口或輸出口,而C口則分為兩部分,分別用作A口和B口的控制信號和同步信號,為8255A與CPU或外部設(shè)備之間傳送狀態(tài)信息及中斷請求信號。7.3.5單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)方法(1)確定任務(wù):開發(fā)任何一個(gè)應(yīng)用系統(tǒng),都必須以市場需求為前提。因此,在系統(tǒng)設(shè)計(jì)前,首先要進(jìn)行廣泛的市場調(diào)查,了解該系統(tǒng)的市場應(yīng)用概況,分析系統(tǒng)當(dāng)前存在的問題,研究系統(tǒng)的市場前景,確定系統(tǒng)開發(fā)設(shè)計(jì)的目的和目標(biāo)。在此基礎(chǔ)上,再對系統(tǒng)的具體實(shí)現(xiàn)進(jìn)行規(guī)劃,包括應(yīng)該采集的信號的種類、數(shù)量、范圍,輸出信號的匹配和轉(zhuǎn)換,控制算法的選擇,技術(shù)指標(biāo)的確定等。(2)總體設(shè)計(jì)在對應(yīng)用系統(tǒng)進(jìn)行總體設(shè)計(jì)時(shí),應(yīng)根據(jù)應(yīng)用系統(tǒng)提出的各項(xiàng)技術(shù)性能指標(biāo),擬訂出性價(jià)比最高的一套方案。首先,應(yīng)根據(jù)任務(wù)的繁雜程度和技術(shù)指標(biāo)要求選擇機(jī)型。選定機(jī)型后,再選擇系統(tǒng)中要用到的其它外圍元器件,如傳感器、執(zhí)行器件等。在總體方案設(shè)計(jì)過程中,對軟件和硬件進(jìn)行分工是一個(gè)重要的環(huán)節(jié)。用硬件實(shí)現(xiàn)速度比較快,節(jié)省CPU的時(shí)間,但系統(tǒng)的硬件接線復(fù)雜、系統(tǒng)成本較高。用軟件實(shí)現(xiàn)則較為經(jīng)濟(jì),但要更多地占用CPU的時(shí)間,原則上,能夠由軟件實(shí)現(xiàn)的任務(wù)就盡量用軟件來實(shí)現(xiàn),以降低成本,簡化硬件結(jié)構(gòu)。如果系統(tǒng)回路多、實(shí)時(shí)性要求強(qiáng),則要考慮用硬件完成。同時(shí),還要求大致規(guī)定各接口電路的地址、軟件的結(jié)構(gòu)和功能、上下位機(jī)的通信協(xié)議、程序的駐留區(qū)域及工作緩沖區(qū)等??傮w方案一旦確定,系統(tǒng)的大致規(guī)模及軟件的基本框架就確定了。(3)硬件電路圖設(shè)計(jì)硬件的設(shè)計(jì)是根據(jù)總體設(shè)計(jì)要求,在選擇完單片機(jī)機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元件,并設(shè)計(jì)出系統(tǒng)的電路原理圖,經(jīng)過必要的實(shí)驗(yàn)后完成工藝結(jié)構(gòu)設(shè)計(jì)、電路板制作和樣機(jī)的組裝。主要硬件設(shè)計(jì)包括:1)單片機(jī)電路設(shè)計(jì):主要完成時(shí)鐘電路、復(fù)位電路、供電電路的設(shè)計(jì)。2)擴(kuò)展電路和輸入/輸出通道設(shè)計(jì):主要完成程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、I/O接口電路、傳感器電路、放大電路、多路開關(guān)、A/D轉(zhuǎn)換電路、開關(guān)量接口電路、驅(qū)動(dòng)及執(zhí)行機(jī)構(gòu)的設(shè)計(jì)。3)控制面板設(shè)計(jì):主要完成按鍵、開關(guān)、顯示器、報(bào)警等電路的設(shè)計(jì)。4)軟件設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計(jì)是研制過程中任務(wù)最繁重的一項(xiàng)工作,難度也比較大。單片機(jī)應(yīng)用系統(tǒng)的軟件主要包括兩大部分:用于管理單片機(jī)微機(jī)系統(tǒng)工作的監(jiān)控程序和用于執(zhí)行實(shí)際具體任務(wù)的功能程序。對于前者,應(yīng)盡可能利用現(xiàn)成微機(jī)系統(tǒng)的監(jiān)控程序。為了適應(yīng)各種應(yīng)用的需要,許多單片機(jī)開發(fā)系統(tǒng)的監(jiān)控軟件功能相當(dāng)強(qiáng),并附有豐富的實(shí)用子程序,可供用戶直接調(diào)用,例如鍵盤管理程序、顯示程序等。因此,在設(shè)計(jì)系統(tǒng)硬件邏輯和確定應(yīng)用系統(tǒng)的操作方式時(shí),就應(yīng)充分考慮這一點(diǎn)。這樣可大大減少軟件設(shè)計(jì)的工作量,提高編程效率。后者要根據(jù)應(yīng)用系統(tǒng)的功能要求來編程序。例如,外部數(shù)據(jù)采集、控制算法的實(shí)現(xiàn)、外設(shè)驅(qū)動(dòng)、故障處理及報(bào)警程序等等。軟件設(shè)計(jì)通常采用模塊化程序設(shè)計(jì)、自頂向下的程序設(shè)計(jì)方法。(5)系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試。硬件調(diào)試的任務(wù)是排除系統(tǒng)的硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障。軟件調(diào)試是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,除發(fā)現(xiàn)和解決程序錯(cuò)誤外,也可以發(fā)現(xiàn)硬件故障。案例15單片機(jī)控制簡單智能設(shè)備假設(shè)8255A連接一臺(tái)智能設(shè)備(該智能設(shè)備由89C51控制,例如打印機(jī)等),主控機(jī)U1向8255A分別傳送0~9,8255A接收到將該數(shù)字在智能設(shè)備的數(shù)碼管中閃爍5次,如果8255A工作在方式1,請實(shí)現(xiàn)之。請單擊左圖(1)控制字分析:8255A的A口PA0~PA7,連接智能外部設(shè)備的8根數(shù)據(jù)線(本例是U3的P2口),作為輸出口;工作在方式1的中斷方式下,方式控制字為10100000B,即A0H;根據(jù)產(chǎn)生中斷的條件,應(yīng)先置PC6(INTEA)為1,因此,C口的控制字為0DH。(2)源程序:#include<reg51.h>#include<absacc.h>#defineaddraXBYTE[0xFFF8]#defineaddrconXBYTE[0xFFFB]unsignedcharcword=0;voidmain(){addrcon=0x0D;//PC6(INTEA)置1,允許B口中斷addrcon=0xA0;//A口的輸出方式1IT1=0;EX1=1;EA=1;addra=cword;while(1);}中斷服務(wù)函數(shù)voidisr_int1()interrupt2{cword++;if(cword<10){addra=cword;}elseEX1=0;}/*中斷服務(wù)函數(shù):當(dāng)一個(gè)數(shù)字輸出到8255A處理完后,再將下一個(gè)數(shù)字送到8255A再進(jìn)行處理,依次類推,直到將9送到8255A處理完成后停止傳送數(shù)據(jù)。*/智能設(shè)備程序:本例中的智能設(shè)備是由89C51控制的,要把從8255A的A口收到的數(shù)據(jù)從P2口接收,再從P1口輸出到數(shù)碼管顯示。為了配合8255A的方式1,8255A的PC7連接U3(89C51)的P3.3(外部中斷1的輸入端),PC6連接U3的P3.0,當(dāng)8255A的A口接收到數(shù)據(jù),則將PC7()變?yōu)榈碗娖剑纯上騏3發(fā)出中斷請求,在中斷服務(wù)程序中,讀取P2的值,將P2的值顯示在數(shù)碼管上,延時(shí)一段時(shí)間后數(shù)碼管熄滅達(dá)到閃爍效果,閃爍5次完將P3.0變?yōu)榈碗娖剑?255A的PC6變?yōu)榈碗娖剑ǎ?,該引腳的低電平使置1,當(dāng)返回主程序時(shí),置P3.0為1,則滿足INTRA為1的條件,則該信號經(jīng)非門后送到主控機(jī)U1的P3.3,產(chǎn)生外部中斷1的中斷請求。智能設(shè)備程序#include<reg51.h>sbitP30=P3^0;unsignedcharled[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};voidmain(){IT1=0;EX1=1;EA=1;while(1){P30=1;}}智能設(shè)備中斷服務(wù)函數(shù)voidint1()interrupt2{unsignedcharcword,i;inttime;P2=0XFF;cword=P2;for(i=0;i<5;i++){P1=led[cword];for(time=10000;time>0;time--);P1=0xff;for(time=10000;time>0;time--);}}本例是利用89C51和數(shù)碼管虛擬一臺(tái)智能設(shè)備,例如打印機(jī),打印機(jī)內(nèi)部是由單片機(jī)控制打印頭運(yùn)動(dòng)實(shí)現(xiàn)打印功能,但在Proteus仿真軟件中無法仿真打印機(jī),因此筆者設(shè)計(jì)了這樣一個(gè)虛擬的智能設(shè)備。案例16用單片機(jī)和8255A控制交通燈用8255做輸出口,控制十二個(gè)發(fā)光二極管亮滅,模擬交通燈系統(tǒng)。
(1)確定任務(wù)可由8255A的PA、PB口連接12個(gè)發(fā)光二極管,分別代表四個(gè)路口的紅、綠、黃燈,初始態(tài)為四個(gè)路口的紅燈全亮之后,東西路口的綠燈亮20秒,南北路口的紅燈亮,東西路口方向通車;延時(shí)一段時(shí)間后,東西路口的綠燈熄滅,黃燈開始閃爍,每隔0.5s閃爍1次,閃爍3次后,東西路口紅燈亮,而同時(shí)南北路口的綠燈亮20秒,南北路口方向開始通車;延時(shí)一段時(shí)間后,南北路口的綠燈熄滅,黃燈開始閃爍,每隔0.5s閃爍1次,閃爍6次后,,再切換到東西路口的綠燈亮,東西方向通車;之后重復(fù)以上過程。(2)總體設(shè)計(jì)根據(jù)本任務(wù)的要求,選用AT89S51,配備晶振電路和復(fù)位電路,晶振頻率為12MHz,四個(gè)路口的紅、綠、黃交通燈由8255A控制。(3)硬件電路設(shè)計(jì)為了方便線路連接,8255的PA的低6位分別接西、北路口的紅、黃、綠燈(發(fā)光二極管,采用共陽極的連接方式),PB口的低6位分別接?xùn)|、南路口的紅、黃、綠燈,設(shè)計(jì)的原理圖如圖所示。請單擊左圖(4)軟件設(shè)計(jì)參考任務(wù)5中的有關(guān)知識,各路口的燈亮的規(guī)律與PA、PB口的取值有關(guān)系到,其規(guī)律如表所示。規(guī)律PB5PB4PB3PB2PB1PB0PA5PA4PA3PA2PA1PA0十六進(jìn)制數(shù)東綠東黃東紅南綠南黃南紅西綠西黃西紅北綠北黃北紅紅燈全亮1101101101100x36東西綠燈亮,南北紅燈亮0111100111100x1E東西黃燈亮,南北紅燈亮1011101011100x2E東西紅燈亮,南北綠燈亮1100111100110x33東西紅燈亮,南北黃燈亮1101011101010x35(4)軟件設(shè)計(jì)本任務(wù)涉及兩個(gè)定時(shí)時(shí)間,一是每個(gè)路口的綠燈亮20s,另一個(gè)是黃燈閃爍時(shí)間間隔0.5s,顯然最容易實(shí)現(xiàn)的方法就是利用定時(shí)器,可以用定時(shí)器0控制路口綠燈亮的時(shí)間,用定時(shí)器1控制黃燈閃爍的時(shí)間間隔,但是兩個(gè)定時(shí)器的定時(shí)都不可達(dá)到20s或1s,所以可以讓兩個(gè)定時(shí)器都工作于方式1,定時(shí)時(shí)間為50ms,引進(jìn)兩個(gè)變量time(初值為400)和timey(初值為20),當(dāng)定時(shí)器發(fā)出中斷時(shí),這兩個(gè)變量分別減1,直到為0則達(dá)到定時(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)安全管理員-初級工練習(xí)題庫含參考答案
- 水的凈化和純化教學(xué)設(shè)計(jì)-2023-2024學(xué)年九年級化學(xué)科粵版上冊
- 編版小學(xué)語文一年級下冊第四單元教學(xué)初探2試卷含答案
- 2024云南文山州富寧縣建設(shè)投資集團(tuán)有限公司選聘職業(yè)經(jīng)理人1人筆試參考題庫附帶答案詳解
- 2024“才聚齊魯成就未來”山東省環(huán)保發(fā)展集團(tuán)生態(tài)有限公司權(quán)屬企業(yè)職業(yè)經(jīng)理人招聘3人筆試參考題庫附帶答案詳解
- 機(jī)器學(xué)習(xí)原理與應(yīng)用電子教案 5.4K近鄰
- 2025至2030年中國活套兒童蕎麥皮枕數(shù)據(jù)監(jiān)測研究報(bào)告
- 《第一單元 初識Photoshop 第1課 認(rèn)識Photoshop 三、簡單的編輯加工》教學(xué)設(shè)計(jì)教學(xué)反思-2023-2024學(xué)年初中信息技術(shù)人教版七年級下冊
- 2025至2030年中國汽車音箱喇叭數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年邯鄲幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫帶答案
- 人民音樂家 教案-2023-2024學(xué)年高中人音版(2019)必修《音樂鑒賞》
- 國家義務(wù)教育質(zhì)量監(jiān)測心理健康和德育測試題
- 絕經(jīng)綜合征(中醫(yī))評定量表
- 揚(yáng)帆藍(lán)天無人機(jī)法律法規(guī)與應(yīng)用培訓(xùn)教案課件
- 工會(huì)經(jīng)費(fèi)列支范圍及工會(huì)經(jīng)費(fèi)支出范圍
- 成人高考課件
- 村委會(huì)會(huì)議簽到表
- 哲學(xué)與人生全套課件146P
- 中考物理復(fù)習(xí)交流
- 敬老院設(shè)備采購?fù)稑?biāo)方案(技術(shù)方案)
- 充電樁采購安裝售后服務(wù)方案
評論
0/150
提交評論