版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理與接口
——第八章:并行通信和串行通信皖西學(xué)院計(jì)算機(jī)系并行通信和串行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A1左旭坤(zxk78@)第八章:并行通信和串行通信并行通信和串行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A2左旭坤(zxk78@)第八章:并行通信和串行通信在計(jì)算機(jī)領(lǐng)域中有兩種數(shù)據(jù)通信方式:串行通信和并行通信。并行通信:數(shù)據(jù)在多條并行1位寬的傳輸線上同時(shí)由源傳送到目的。以1字節(jié)的數(shù)據(jù)為例,在并行傳送中,1字節(jié)的數(shù)據(jù)通過8條并行傳輸線同時(shí)由源傳送到目的。串行通信:數(shù)據(jù)在單條1位寬的傳輸線上,一位一位地按順序分時(shí)傳送。以1字節(jié)為例,在串行傳送中,1字節(jié)的數(shù)據(jù)要通過一條傳輸線分8次由低位到高位按順序一位一位地傳送。源目的0
11
0
1
0
1
0源目的距離:并行——近距離傳送(通常小于30米)
串行——遠(yuǎn)距離傳送(幾米~數(shù)千公里)速度:并行快得多。3左旭坤(zxk78@)第八章:并行通信和串行通信并行通信和串行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A4左旭坤(zxk78@)實(shí)現(xiàn)并行通信的接口就是并行接口。輸入/輸出固定的并行接口(74LS244/74LS373等)輸入/輸出可變的可編程并行接口(8255A等)對(duì)于第一類并行接口,芯片內(nèi)部只有數(shù)據(jù)緩沖或鎖存器,沒有控制寄存器或狀態(tài)寄存器。結(jié)構(gòu)簡(jiǎn)單,使用不靈活對(duì)于第二類并行接口,芯片內(nèi)含有控制寄存器或狀態(tài)寄存器,可通過指令控制接口的工作方式。結(jié)構(gòu)復(fù)雜,使用靈活。第八章:并行通信和串行通信5左旭坤(zxk78@)第八章:并行通信和串行通信并行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A6左旭坤(zxk78@)第八章:并行通信和串行通信概述Intel8255A是一種通用的可編程序并行I/O接口芯片,又稱“可編程外設(shè)接口芯片”,是為Intel8080/8085系列微處理?yè)?jù)設(shè)計(jì)的,也可用于其它系列的微機(jī)系統(tǒng)。可由程序來改變其功能,通用性強(qiáng)、使用靈活。通過8255A,CPU可直接同外設(shè)相連接,是應(yīng)用最廣的并行I/O接口芯片。含3個(gè)獨(dú)立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的控制和鎖存能力??赏ㄟ^編程設(shè)置各端口的工作方式和數(shù)據(jù)傳送方向(入/出/雙向)。7左旭坤(zxk78@)第八章:并行通信和串行通信去CPU去外設(shè)8255A的內(nèi)部結(jié)構(gòu)8左旭坤(zxk78@)第八章:并行通信和串行通信8255A的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器:三態(tài)8位雙向緩沖器,與系統(tǒng)數(shù)據(jù)總線連接的緩沖部件;傳送數(shù)據(jù)、控制字、狀態(tài)字的通道。3個(gè)8位數(shù)據(jù)端口(PA、PB、PC):PA口與PB口用作輸入/出的數(shù)據(jù)端口,PC口也可用作數(shù)據(jù)傳輸(高低4位可分別設(shè)置為輸入/輸出)或作為聯(lián)絡(luò)信號(hào),配合PA和PB口使用(狀態(tài)端口)。A組、B組控制:這兩組控制電路根據(jù)CPU發(fā)出的控制命令來控制8255A的工作方式(控制端口)。讀/寫控制邏輯:用來管理數(shù)據(jù)輸入和輸出、并負(fù)責(zé)控制CPU向控制端口發(fā)送命令。9左旭坤(zxk78@)第八章:并行通信和串行通信8255A的引腳功能DIP封裝,共40個(gè)引腳。1.連接系統(tǒng)總線的主要引腳D0~D7:數(shù)據(jù)線,連CPU數(shù)據(jù)總線;RESET:復(fù)位輸入,接系統(tǒng)總線的RESET;CS:片選信號(hào),接譯碼器;RD:讀命令輸入,接CPU的RD;WR:寫命令輸入,接CPU的WR;A0,A1:片內(nèi)端口地址選擇,根據(jù)A0和A1可分別對(duì)芯片內(nèi)的4個(gè)端口進(jìn)行讀寫操作。10左旭坤(zxk78@)第八章:并行通信和串行通信8255A的引腳功能A1、A0端口選擇情況,見右表
由CS、A1、A0、RD、WR引腳的不
同組合,實(shí)現(xiàn)各種不同的功能。見下表:A1
A0端口0
00
11
01
1ABC控制口CSA1A0RDWR功
能0
000
1對(duì)端口A讀0
0101對(duì)端口B讀01001對(duì)端口C讀01非法,不能對(duì)控制口讀輸入0對(duì)端口A寫0對(duì)端口B寫0對(duì)端口C寫0對(duì)控制口寫輸出1
×
×
×
×
×
×
×
1
1數(shù)據(jù)緩沖器為三態(tài)斷開011111100000101001111左旭坤(zxk78@)第八章:并行通信和串行通信8255A的引腳功能2.連接外設(shè)端的引腳PA0~PA7:A口數(shù)據(jù)線,接外設(shè);PB0~PB7:B口數(shù)據(jù)線,接外設(shè);PC0~PC7:C口數(shù)據(jù)線或聯(lián)絡(luò)線,接外設(shè)或CPU。12左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式方式0——基本輸入/輸出方式(A、B、C口)方式1——選通工作方式(A、B口)方式2——雙向選通傳送方式(僅A口)某端口工作于哪一種方式,可通過軟件編程來指定。即向8255的控制口寫入方式控制字來決定其工作方式。13左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式0(基本輸入/輸出方式)特點(diǎn):
(1)8255A相當(dāng)于三個(gè)獨(dú)立的8位數(shù)據(jù)口。
(2)各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時(shí)實(shí)現(xiàn)輸入及輸出。
(3)C端口即可以是一個(gè)8位的簡(jiǎn)單接口,也可以分為兩個(gè)獨(dú)立的4位端口。
(4)設(shè)置為輸出口時(shí)有鎖存能力,設(shè)置為輸入口有緩沖能力。適用于:
無條件輸入輸出方式。14左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式0(基本輸入/輸出方式)INAL,8255數(shù)據(jù)端口地址;讀操作①外設(shè)將數(shù)據(jù)送到8255輸入緩沖器中;②CPU給出有效的8255地址;③CPU發(fā)讀命令,將8255A輸入緩沖器中數(shù)據(jù)讀入CPU的AL寄存器中。OUT8255數(shù)據(jù)端口地址,AL;寫操作①CPU給出有效的8255地址;②CPU發(fā)寫命令,將CPU的AL寄存器中數(shù)據(jù)寫入8255A輸出鎖存器中。③外設(shè)通過輸出鎖存器將數(shù)據(jù)取走15左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式1(選通工作方式)利用一組選通控制信號(hào)控制A端口和B端口的數(shù)據(jù)輸入輸出。特點(diǎn):
A、B口作輸入或輸出口,C口分為兩部分,其部分位(6位)固定用作A口、B口的聯(lián)絡(luò)信號(hào)。C口的剩余位仍可作數(shù)據(jù)位使用。A口、B口在作為輸入和輸出時(shí),C口提供的聯(lián)絡(luò)信號(hào)不同。方式1的應(yīng)用:主要用于查詢或中斷控制方式下的輸入輸出。說明:C口除部分位用作聯(lián)絡(luò)信號(hào)外,其余位(2位)可工作在方式0下,作為輸入或輸出線。16左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式1(選通工作方式)A或B口設(shè)為方式1輸入
C口提供的聯(lián)絡(luò)信號(hào):選通信號(hào)(STB):
由外設(shè)輸入。=0時(shí),
將外設(shè)數(shù)據(jù)送入8255的輸入鎖存器。A組
對(duì)應(yīng)PC4;B組對(duì)應(yīng)PC2。輸入鎖存器滿信號(hào)(IBF):
由8255A輸出。
=1時(shí),表示鎖存器中有未取走的數(shù)據(jù),CPU用IN指令取走數(shù)據(jù)后,此信號(hào)被清除。A組對(duì)應(yīng)PC5;B組對(duì)應(yīng)PC1。PA7~PA0PC4PC5PC3INTEAIBFAINTRAD7~D0輸入設(shè)備(到CPU)PB7~PB0PC2PC1PC0INTEBD7~D0IBFBINTRB輸入設(shè)備(到CPU)17左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式1(選通工作方式)A或B口設(shè)為方式1輸入C口提供的聯(lián)絡(luò)信號(hào):中斷允許位(INTE):是否允許發(fā)出INTR請(qǐng)求。
無外部引腳,通過對(duì)PC4/PC2置1或清0來實(shí)現(xiàn)中斷允許控制。中斷請(qǐng)求信號(hào)(INTR):
由8255A輸出。中斷允許
時(shí)(INTE=1和IBF為高電平),向CPU請(qǐng)求中斷,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。A組對(duì)應(yīng)PC3;B組對(duì)應(yīng)PC0。PA7~PA0PC4PC5PC3INTEAIBFAINTRAD7~D0輸入設(shè)備(到CPU)PB7~PB0PC2PC1PC0INTEBD7~D0IBFBINTRB輸入設(shè)備(到CPU)18左旭坤(zxk78@)方式1輸入工作過程1.外設(shè)準(zhǔn)備好數(shù)據(jù),通過READY引腳向PC4輸出STB信號(hào)(低電平);2.8255收到STB信號(hào)后,通過PA口將外設(shè)數(shù)據(jù)鎖存到數(shù)據(jù)鎖存器,并使IBF信號(hào)為高電平;3.CPU通過控制字,使PC4=1,使能8255內(nèi)部的中斷允許(INTE=1);4.若采用查詢方式,則CPU通過判斷PC5是否為1,來決定是否用IN指令到PA口取數(shù);取完數(shù)后,PC5自動(dòng)變低,清除IBF信號(hào);5.若采用中斷方式,8255通過PC3向CPU的INTR發(fā)出中斷請(qǐng)求,CPU接受中斷,執(zhí)行IN指令,從8255數(shù)據(jù)鎖存器讀取數(shù)據(jù)。19左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式1(選通工作方式)A或B口設(shè)為方式1輸出C口提供的聯(lián)絡(luò)信號(hào):輸出緩沖器滿信號(hào)(OBF):8255A輸出。
=0時(shí),表示輸出緩沖器為滿,此時(shí)CPU不能發(fā)送新數(shù)據(jù)。A組對(duì)應(yīng)PC7;B組對(duì)應(yīng)PC1響應(yīng)信號(hào)(ACK):外設(shè)輸入。=0時(shí)表示
外設(shè)已從數(shù)據(jù)端口取走數(shù)據(jù)。此信號(hào)使OBF
變高。A組對(duì)應(yīng)PC6;B組對(duì)應(yīng)PC2。PA7~PA0PC7PC6PC3INTEAINTRAD7~D0輸出設(shè)備(到CPU)PB7~PB0PC1PC2PC0INTEBD7~D0INTRB輸出設(shè)備(到CPU)20左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式1(選通工作方式)A或B口設(shè)為方式1輸出
C口提供的聯(lián)絡(luò)信號(hào):中斷請(qǐng)求信號(hào)(INTR):
8255輸出。=1時(shí)請(qǐng)求CPU輸出下一個(gè)數(shù)據(jù)。
A組對(duì)應(yīng)PC3;B組對(duì)應(yīng)PC0。中斷允許位(INTE):INTE=1和OBF為高
電平時(shí),允許產(chǎn)生INTR信號(hào)。無外部引腳,通過對(duì)PC7/PC1置1實(shí)現(xiàn)。PA7~PA0PC7PC6PC3INTEAINTRAD7~D0輸出設(shè)備(到CPU)PB7~PB0PC1PC2PC0INTEBD7~D0INTRB輸出設(shè)備(到CPU)21左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式2(雙向選通傳送方式)特點(diǎn):雙向方式——既是輸入口,又是輸出口。利用C口的5條線提供傳輸聯(lián)絡(luò)信號(hào)。類似于A口方式1下輸入和輸出的組合。工作時(shí)輸入、輸出都能鎖存。只有A口可工作在方式2下。當(dāng)A組工作在方式2時(shí),B組可工作在方式0或方式1下。應(yīng)用:可用于中斷或查詢輸入輸出方式。說明:當(dāng)A口工作于方式2時(shí),B口可工作于方式1(此時(shí)C口的剩余位剛好用作B口選通控制線);B口也可工作于方式0(此時(shí)C口的剩余位只能用作方式0下的輸入輸出線)。22左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式2(雙向選通傳送方式)C口提供的聯(lián)絡(luò)信號(hào):選通信號(hào)(STB):
由外設(shè)輸入。=0時(shí),將外設(shè)數(shù)據(jù)送入8255的輸入鎖存器。對(duì)應(yīng)PC4。輸入鎖存器滿信號(hào)(IBF):
由8255A輸出。=1時(shí)表示新的數(shù)據(jù)已寫入緩沖器,
CPU用IN指令取走數(shù)據(jù)后,
此信號(hào)被清除。對(duì)應(yīng)PC5。PA7~PA0PC6PC7D7~D0PC4PC5IBFAINTEA2INTEA1PC3INTRA23左旭坤(zxk78@)第八章:并行通信和串行通信8255A的工作方式——方式2(雙向選通傳送方式)C口提供的聯(lián)絡(luò)信號(hào):輸出緩沖器滿信號(hào)(OBF):
8255A輸出。=0時(shí)表示輸出緩沖器有新數(shù)據(jù)。對(duì)應(yīng)PC7。響應(yīng)信號(hào)(ACK):外設(shè)輸入。
=0時(shí)表示外設(shè)已從數(shù)據(jù)端口取
走數(shù)據(jù)。此信號(hào)使OBF變高。
對(duì)應(yīng)PC6。中斷請(qǐng)求信號(hào)(INTR):
8255輸出。=1提出中斷請(qǐng)求。A組對(duì)應(yīng)PC3。中斷允許位(INTE):輸入中斷允許信號(hào)由對(duì)PC4置1實(shí)現(xiàn);輸出中斷允許信號(hào)由對(duì)PC6置1實(shí)現(xiàn)。PA7~PA0PC6PC7D7~D0PC4PC5IBFAINTEA2INTEA1PC3INTRA24左旭坤(zxk78@)方式2輸出工作過程CPU通過控制字使PC6=1,使能中斷允許位(INTE=1);若采用中斷方式,當(dāng)8255數(shù)據(jù)緩沖器空,則通過PC3向CPU發(fā)中斷請(qǐng)求信號(hào);CPU接受中斷請(qǐng)求,執(zhí)行OUT指令,將數(shù)據(jù)送入8255數(shù)據(jù)緩沖器;若采用查詢方式,CPU通過測(cè)試PC7是否為1來決定是否用OUT指令將數(shù)據(jù)送入8255緩沖器;當(dāng)外設(shè)取完數(shù)后,向8255的PC6發(fā)出ACK信號(hào)(低電平),說明外設(shè)已取走當(dāng)前數(shù)據(jù),8255可準(zhǔn)備新數(shù)據(jù)。此信號(hào)會(huì)清除OBF信號(hào);25左旭坤(zxk78@)第八章:并行通信和串行通信8255A的初始化
可以利用軟件編程確定8255的3個(gè)端口工作于何種方式下。8255A的各種工作方式由CPU對(duì)8255A寫入控制命令字來設(shè)定,這個(gè)過程稱為“初始化”。8255A有2種控制命令字:
方式選擇控制字——確定3個(gè)端口的工作方式;
C口置位/復(fù)位控制字——確定C口某一位的初始狀態(tài),當(dāng)C口某位做為狀態(tài)信號(hào)線時(shí)適用。26左旭坤(zxk78@)關(guān)于兩個(gè)命令字的討論a.方式選擇控制字是對(duì)8255A的3個(gè)端口的工作方式及功能進(jìn)行指定,即進(jìn)行初始化,初始化工作要在使用8255A之前做。b.C口置位/復(fù)位控制字只是對(duì)C口的輸出進(jìn)行控制,它可放在初始化程序后的任何地方。c.兩種不同命令字的最高位(D7)分配了不同的標(biāo)志位,之所以要設(shè)置標(biāo)志位是為了識(shí)別兩個(gè)不同的命令。第八章:并行通信和串行通信在命令字中設(shè)置標(biāo)志位是解決多個(gè)命令字寫入同個(gè)端口經(jīng)常采用的方法之一。27左旭坤(zxk78@)第八章:并行通信和串行通信8255A的初始化——方式選擇控制字D7D6D5D4D3D2D1D0C口低位選擇,1入0出B口I/O選擇,1入0出B口方式選擇,0=方式01=方式1B組C口高位選擇,1入0出A口I/O選擇,1入0出A口方式選擇00=方式001=方式11X=方式2D7=1,方式控制字標(biāo)志A組28左旭坤(zxk78@)第八章:并行通信和串行通信8255A的初始化——C口置位/復(fù)位控制字D7D6D5D4D3D2D1D0置位/復(fù)位選擇1=置位,0=復(fù)位D7=0為置位/復(fù)位控制字標(biāo)志D3D2D1位選擇000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7無效29左旭坤(zxk78@)第八章:并行通信和串行通信8255A的初始化
8255A初始化編程可以分兩步進(jìn)行:
首先把方式選擇控制字寫入控制口,確定所用端口的工作方式,如果8255工作A口或B口工作于非方式0下,再通過寫C口置位/復(fù)位控制字來設(shè)置相關(guān)信號(hào)
完成了初始化編程之后,CPU就可以用IN和OUT指令通過8255A與外設(shè)交換數(shù)據(jù)了。30左旭坤(zxk78@)【例8-1】:8255A的控制器寄存器地址為0120H,工作狀態(tài)為A口方式0輸入,B口方式1輸出,C口低半字節(jié)輸入,C口高半字節(jié)輸出,寫出它的初始化程序段;如果要把C口的PC4置位,寫出它的初始化程序段。
方式選擇控制字:10010101B=95H
C口置位/復(fù)位控制字:00001001=09H
初始化程序段:
MOVDX,0120H ;8255A控制字寄存器口地址MOVAL,95H;設(shè)置方式選擇控制字OUTDX,AL;送入控制字寄存器中MOVDX,0120H
MOVAL,09H;使PC4=1的控制字OUTDX,AL
第八章:并行通信和串行通信31左旭坤(zxk78@)第八章:并行通信和串行通信交通燈運(yùn)行規(guī)則:(1)開機(jī)后所有燈閃爍3次(2)東西紅燈亮,南北綠燈亮(3)南北綠燈滅,南北黃燈閃(4)南北紅燈亮,東西綠燈亮(5)東西綠燈滅,東西黃燈閃(6)返回第(2)步設(shè)計(jì)實(shí)例1:方式08255實(shí)現(xiàn)交通燈控制32左旭坤(zxk78@)A口地址:0040H;B口地址:0042H;C口地址:0044H;控制口地址:0046H利用8225的B口低4位控制四個(gè)路口黃燈;利用8255的C口控制四個(gè)路口的紅燈和綠燈;所有端口都工作于方式0輸出。硬件設(shè)計(jì)33左旭坤(zxk78@)軟件設(shè)計(jì)34左旭坤(zxk78@)軟件設(shè)計(jì)程序設(shè)計(jì)技巧——利用同一個(gè)延時(shí)子程序,實(shí)現(xiàn)長(zhǎng)延時(shí)和短延時(shí)……MOVBX,1000
;短延時(shí),外循環(huán)次數(shù)為1000CALLDELY……MOVBX,15000
;長(zhǎng)延時(shí),外循環(huán)次數(shù)為15000CALLDELY……DELYPROC;延時(shí)子程序NEXT2:MOVCX,500;內(nèi)循環(huán)次數(shù)固定為500NEXT1:LOOPNEXT1DECBX;外循環(huán)次數(shù)由主程序中的BX值決定JNZNEXT2RETDELYENDP35左旭坤(zxk78@)第八章:并行通信和串行通信數(shù)碼管按一定速度顯示1~8數(shù)字按下1#~8#按鍵若按鍵號(hào)和當(dāng)前數(shù)碼管顯示數(shù)字相等,則顯示“G”,并加快數(shù)碼管數(shù)字變化速度;若按鍵號(hào)和當(dāng)前數(shù)碼管顯示數(shù)字不等,則顯示“E”,并減慢數(shù)碼管數(shù)字變化速度;設(shè)計(jì)實(shí)例2:方式1反應(yīng)力測(cè)試游戲PA口接數(shù)碼管,方式0輸出PB口接8個(gè)按鍵,方式1輸入利用查詢方式完成PB口的輸入操作,PC口提供的聯(lián)絡(luò)信號(hào)有:
PC1——IBF(輸入緩沖器滿信號(hào));PC2——STB(選通信號(hào))36左旭坤(zxk78@)第八章:并行通信和串行通信硬件結(jié)構(gòu)PB口方式1輸入(查詢)工作原理:當(dāng)有按鍵按下,與門輸出端變成低電平,作為選通信號(hào)送至PC2選通信號(hào)到來后,會(huì)使緩沖器滿信號(hào)置位(PC1=1)CPU通過查詢PC1是否為1,決定是否執(zhí)行IN指令從PB口讀取按鍵值37左旭坤(zxk78@)第八章:并行通信和串行通信軟件流程38左旭坤(zxk78@)第八章:并行通信和串行通信編程技巧——根據(jù)鍵值判斷按鍵號(hào)鍵值和鍵號(hào)對(duì)應(yīng)規(guī)則:1#鍵按下——PB口讀取鍵值:11111110B2#鍵按下——PB口讀取鍵值:11111101B3#鍵按下——PB口讀取鍵值:11111011B……8#鍵按下——PB口讀取鍵值:01111111B和01H相與=0和02H相與=0和04H相與=0和80H相與=0MOVBX,0101HL0:MOVDX,42HINAL,DX
TESTAL,BL
JZEXIT1INCBHROLBL,1CMPBL,01HJNZL0MOVBH,1JMPL0EXIT1:MOVAL,BH39左旭坤(zxk78@)第八章:并行通信和串行通信設(shè)計(jì)16個(gè)按鍵,分別表示數(shù)字1~16按下相應(yīng)按鍵數(shù)碼管顯示對(duì)應(yīng)數(shù)字設(shè)計(jì)實(shí)例3:方式0多位數(shù)碼管顯示及矩陣鍵盤40左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理
若使按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。
矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上,其結(jié)構(gòu)如圖所示。由圖可知,一個(gè)4×4的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5V上。當(dāng)無鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識(shí)別按鍵是否按下的關(guān)鍵。41左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理按鍵的識(shí)別——掃描法下面以圖中8號(hào)鍵的識(shí)別為例來說明掃描法識(shí)別按鍵的過程。按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時(shí)處在高電平,顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起行線電平的變化,因此,必須使所有列線處在低電平,只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的行電平才會(huì)由高電平變?yōu)榈碗娖?。CPU根據(jù)行電平的變化,便能判定相應(yīng)的行有鍵按下。8號(hào)鍵按下時(shí),第2行一定為低電平,然而,第2行為低電平時(shí),能否肯定是8號(hào)鍵按下呢?回答是否定的。因?yàn)?、10、11號(hào)鍵按下同樣使第2行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都處在低電平,可在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,另一時(shí)刻,讓下一列處在低電平,依此循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。采用鍵盤掃描后,再來觀察8號(hào)鍵按下時(shí)的工作過程,當(dāng)?shù)?列處于低電平時(shí),第2行處于低電平,而第1、2、3列處于低電平時(shí),第2行卻處在高電平,由此可判定按下的鍵應(yīng)是第2行與第0列的交叉點(diǎn),即8號(hào)鍵。42左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理PA口低4位做行線,接高電平PC口低4位做列線PA工作于方式0輸入,PC工作于方式0輸出PA口地址:40H,PC口地址:44H43左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理
CHECK:MOVH,0;行列號(hào)變量清0MOVL,0MOVAL,0F0H;所有列輸出低電平
OUT44H,ALINAL,40H;讀行值
CMPAL,0FFHJZCHECK;若都為高電平則無鍵按下,等待
MOVCX,50LOOP$;延時(shí)
INAL,40H;重讀行值
CMPAL,0FFHJZCHECK;無鍵按下一直等待
44左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理
MOVBL,01HMOVBH,0FEH;從第一列開始測(cè)試,PC0=0NEXT:MOVAL,BHOUT44H,AL;置PCi為低電平NEXTH:INAL,40H;讀行值
TESTAL,BLJZWAIT0;該行有鍵按下,則計(jì)算鍵值
ROLBL,1;該行無鍵按下,判斷下一行
CMPBL,10HJZNEXTL;當(dāng)前列狀態(tài)下沒有任何行有鍵按
;下,則轉(zhuǎn)為對(duì)下一列的測(cè)試INCH;每判斷一行,行號(hào)加1JMPNEXTH;再對(duì)下一行進(jìn)行判斷
45左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理NEXTL:MOVH,0;對(duì)下一列測(cè)試前,首先;清0行號(hào)
MOVBL,01H;每個(gè)列狀態(tài)都要從第一;行開始判斷ROLBH,1;對(duì)下一列測(cè)試,讓下一;個(gè)PC口輸出低電平
INCL;每測(cè)試一列,列號(hào)加1JMPNEXT;返回行判斷程序46左旭坤(zxk78@)第八章:并行通信和串行通信矩陣鍵盤原理WAIT0:IN
AL,40H
CMPAL,0FFH
JNZ
WAIT0
;若有鍵按下,則等該按;鍵松開后再計(jì)算鍵值
MOVCX,50
LOOP$
;延時(shí)消抖
IN
AL,40H
CMPAL,0FFH
JNZ
WAIT0
MOVDH,H;以下程序計(jì)算當(dāng)前按鍵
MOVDL,L;鍵值
SHL
DH,1
SHL
DH,1
;行號(hào)乘4
ADD
DH,DL;加列號(hào)
INC
DH
MOVV,DH;鍵值保存到變量V47左旭坤(zxk78@)第八章:并行通信和串行通信多片數(shù)碼管顯示原理PB接數(shù)碼管數(shù)據(jù)線,向數(shù)碼管發(fā)送顯示碼PC6=0PC7=1,點(diǎn)亮第一片PC6=1PC7=0,點(diǎn)亮第二片PB口地址:42H共陰極數(shù)碼管48左旭坤(zxk78@)第八章:并行通信和串行通信多片數(shù)碼管顯示原理CMPAL,0JZGEWEI;若商為0,直接顯示余數(shù)
MOVAL,80HOUT44H,AL;PC6=0,PC7=1,點(diǎn)亮十位
MOVBL,DLMOVAL,[SI+BX]OUT42H,AL;取十位顯示碼,送PB口
CALLDELY;延時(shí)
MOVAL,0OUT42H,AL;關(guān)顯示,消除鬼影
GEWEI:MOVAL,40HOUT44H,AL;PC6=1,PC7=0,點(diǎn)亮個(gè)位
MOVBL,DHMOVAL,[SI+BX]OUT42H,AL;取個(gè)位顯示碼,送PB口
CALLDELY;延時(shí)
MOVAL,0OUT42H,AL;關(guān)顯示,消除鬼影LEASI,LED;SI指向顯示碼首址
XORAX,AXMOVAL,V;鍵值送AXMOVBL,10DIVBLMOVDX,AXXORBX,BXCMPDX,0;若結(jié)果為0,退出
JZEXIT149左旭坤(zxk78@)第八章:并行通信和串行通信并行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A50左旭坤(zxk78@)第八章:并行通信和串行通信串行通信線路的工作方式單工方式半雙工方式全雙工方式51左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的數(shù)據(jù)收發(fā)方式在串行通信中有兩種基本的通信方式:即異步通信和同步通信。串行異步通信通信的雙方進(jìn)行異步串行通信時(shí)必須遵守異步串行通信控制規(guī)程,也稱異步通信協(xié)議,他的特點(diǎn)是通信雙方以一個(gè)字符(包括一些特定的附加位)作為數(shù)據(jù)傳輸單位。52左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的數(shù)據(jù)收發(fā)方式在串行通信中有兩種基本的通信方式:即異步通信和同步通信。2.串行同步通信
串行同步通信是靠同步字符來完成收發(fā)雙方同步的,通信雙方用統(tǒng)一時(shí)鐘控制通信過程,與異步通信相比一個(gè)顯著的特點(diǎn)是同步通信方式所用的數(shù)據(jù)格式?jīng)]有起始位和停止位,一次傳送的字符個(gè)數(shù)是可變的,但字符與字符間不允許有空隙。53左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的數(shù)據(jù)收發(fā)方式在串行通信中有兩種基本的通信方式:即異步通信和同步通信。3.異步通信和同步通信比較同步相對(duì)于異步,傳輸效率高(無停止位,起始位)。異步相對(duì)于同步,實(shí)現(xiàn)簡(jiǎn)單,接收和發(fā)送兩方的時(shí)鐘不需要嚴(yán)格同步。54左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的接口標(biāo)準(zhǔn)在串行通信中常見的接口電路標(biāo)準(zhǔn)有RS-232C、RS-422、RS-485等,PC機(jī)上的兩個(gè)COM口就遵從RS-232C標(biāo)準(zhǔn)RS-232C電平標(biāo)準(zhǔn)采用負(fù)邏輯:+3V~+15V:邏輯“0”;-3V~-15V:邏輯“1”55左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的接口標(biāo)準(zhǔn)在串行通信中常見的接口電路標(biāo)準(zhǔn)有RS-232C、RS-422、RS-485等,PC機(jī)上的兩個(gè)COM口就遵從RS-232標(biāo)準(zhǔn)RS-232C信號(hào)定義有DB-9和DB-25兩種信號(hào)標(biāo)準(zhǔn)(P300)計(jì)算機(jī)常采用的電平標(biāo)準(zhǔn)為TTL:2.4V~5V:邏輯“1”;0V~0.4V:邏輯“0”當(dāng)計(jì)算機(jī)與RS-232C器件連接時(shí)需要加電平轉(zhuǎn)換的接口電路,如:MC1488,MC1489,MAX232等56左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的傳輸率所謂傳輸率就是指每秒傳輸多少位,習(xí)慣稱為波特率,單位bps。常見波特率:110、300、600、1200、2400、4800、9600、19200、28800、33600,目前最高可達(dá)56Kbps.57左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的檢錯(cuò)技術(shù)串行數(shù)據(jù)在傳輸過程中,由于干擾而引起誤碼是難免的,這直接影響通信系統(tǒng)的可靠性,對(duì)通信中的檢錯(cuò)能力是衡是一個(gè)通信系統(tǒng)的重要內(nèi)容。奇偶校驗(yàn)奇偶校驗(yàn)是最簡(jiǎn)單最常用的校驗(yàn)方法。它的基本原理是在所傳輸?shù)挠行?shù)據(jù)中附加即檢驗(yàn))。利用檢驗(yàn)位的存在,使整個(gè)信息中“1”的個(gè)數(shù)具有奇數(shù)或偶數(shù)的特性。信息經(jīng)過線路傳輸后,若原來所具有的“1”的個(gè)數(shù)的奇偶性發(fā)生了變化,則說明出現(xiàn)了傳輸錯(cuò)誤,可由專門的檢測(cè)電路檢測(cè)出來。這種利用信息位中“1”的個(gè)數(shù)的奇偶性來達(dá)到檢驗(yàn)?zāi)康牡木幋a稱為奇偶校驗(yàn)碼。使整個(gè)信息位“1”的個(gè)數(shù)為奇數(shù)的編碼叫奇校驗(yàn)碼;而使整個(gè)信息位“1”的個(gè)數(shù)為偶數(shù)的編碼叫偶校驗(yàn)碼。附加的信息位稱為奇偶校驗(yàn)位,簡(jiǎn)稱校驗(yàn)位。需要傳送的數(shù)據(jù)位本身稱為有效信息位。58左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的檢錯(cuò)技術(shù)串行數(shù)據(jù)在傳輸過程中,由于干擾而引起誤碼是難免的,這直接影響通信系統(tǒng)的可靠性,對(duì)通信中的檢錯(cuò)能力是衡是一個(gè)通信系統(tǒng)的重要內(nèi)容。奇偶校驗(yàn)例1:有效信息位是1011101,若采用偶校驗(yàn),則附加的校驗(yàn)位是1。最后得到的信息是10111011
例2:有效信息位是1011011,若采用奇校驗(yàn),則附加的校驗(yàn)位是0。最后得到的信息是10110110
解碼:接收器在接收數(shù)據(jù)時(shí),將接收到的整個(gè)信息經(jīng)由專門的檢測(cè)電路統(tǒng)計(jì)。對(duì)于例1,若“1”的個(gè)數(shù)仍為偶數(shù),則認(rèn)為接收的數(shù)據(jù)是正確的;否則,表明有差錯(cuò)出現(xiàn),應(yīng)停止使用這個(gè)數(shù)據(jù),要求重新發(fā)送,或作其他專門處理。59左旭坤(zxk78@)第八章:并行通信和串行通信串行通信的檢錯(cuò)技術(shù)串行數(shù)據(jù)在傳輸過程中,由于干擾而引起誤碼是難免的,這直接影響通信系統(tǒng)的可靠性,對(duì)通信中的檢錯(cuò)能力是衡是一個(gè)通信系統(tǒng)的重要內(nèi)容。奇偶校驗(yàn)電路60左旭坤(zxk78@)第八章:并行通信和串行通信并行通信并行接口可編程并行接口芯片8255A串行通信可編程串行接口芯片8251A61左旭坤(zxk78@)第八章:并行通信和串行通信
Intel8251A是通用同步/異步收發(fā)器USART(UniversalSynchronous/AsynchronousReceiverandTransmitter),是專為Intel微處理器設(shè)計(jì)的,可用作CPU和串行外設(shè)的接口電路。一、8251A的基本性能
⑴可用于同步和異步傳送。⑵同步傳送:5-8位/字符,內(nèi)部或外部字符同步,自動(dòng)插入同步字符。⑶異步傳送:5-8位/字符,時(shí)鐘速率為通信速率的1、16、64倍。⑷可產(chǎn)生啟動(dòng)位和停止位;可檢查假啟動(dòng)位。⑸波特率:異步:DC-19.2K;同步:DC-64K。⑹完全雙工、雙緩沖器發(fā)送和接收。⑺誤差檢測(cè):具有奇偶、溢出和幀錯(cuò)誤等檢測(cè)電路。⑻全部輸入輸出與TTL電平兼容;單一+5V電源。⑼與Intel8080、8085、8088/8086CPU兼容。62左旭坤(zxk78@)第八章:并行通信和串行通信二、8251A的引腳和內(nèi)部結(jié)構(gòu)
63左旭坤(zxk78@)第八章:并行通信和串行通信二、8251A的引腳和內(nèi)部結(jié)構(gòu)
CD:
內(nèi)部寄存器選擇信號(hào)TxD:
串行數(shù)據(jù)發(fā)送,輸出,串行通信線。TxRDY:
發(fā)送器準(zhǔn)備好,輸出,表明8251的狀態(tài)。TxEMPT:
發(fā)送緩沖器空,輸出,表明8251的狀態(tài)。TxC:
發(fā)送時(shí)鐘,異步方式下,此頻率為波特率的若干倍(波特率因子);同步方式下此頻率與波特率相同。RxD:
串行數(shù)據(jù)接收,輸入,串行通信線。RxRDY:
接收器準(zhǔn)備好,輸出,表明8251的狀態(tài)。SYNDET/BRKDET:
同步檢測(cè)/斷路檢測(cè),雙向。RxC:
接收時(shí)鐘,異步方式下,此頻率為波特率的若干倍(波特率因子);同步方式下此頻率與波特率相同。CLK:時(shí)鐘輸入,內(nèi)部定時(shí)用,同步方式下大于波特率30倍,異步方式下大于波特率4.5倍。CTS:
允許發(fā)送、輸出。64左旭坤(zxk78@)第八章:并行通信和串行通信三、8251A的內(nèi)部寄存器
C/D功能0000l0l01×001l×1l00×CPU從8251A讀數(shù)據(jù)CPU從8251A讀狀態(tài)CPU寫數(shù)據(jù)到8251ACPU寫控制命令到8251AUSART總線浮空(無操作)CSRDWR65左旭坤(zxk78@)第八章:并行通信和串行通信四、8251A的工作過程——接收器工作過程
接收器的功能是在接收時(shí)鐘的作用下接收RxD引腳上的串行數(shù)據(jù)并按指定的方式把它轉(zhuǎn)換為并行數(shù)據(jù)。在異步方式下,當(dāng)接收器成功的接收到起始位后,8251A便接收數(shù)據(jù)位、校驗(yàn)位、直到停止位。在內(nèi)同步方式時(shí),8251A首先搜索同步字符,在RxD是以一次一位的方式移動(dòng)數(shù)據(jù),在接收到每一位時(shí)都將現(xiàn)在接收的8位與同步字符寄存器的內(nèi)容進(jìn)行比較,若相等就搜索結(jié)束,使SYNDET位=1表示已經(jīng)同步,然后開始接收數(shù)據(jù)。在外同步方式時(shí),通過SYNDET引腳檢測(cè)到外部電路提供的同步信號(hào)之后,開始接收數(shù)據(jù)。無論在什么方式下,接收的同時(shí)都可以進(jìn)行校驗(yàn),若發(fā)現(xiàn)錯(cuò)誤,則在狀態(tài)寄存器中保存,以便CPU處理;當(dāng)校驗(yàn)無錯(cuò)時(shí),才將并行數(shù)據(jù)存放在接收數(shù)據(jù)緩沖器中,并發(fā)出接收器準(zhǔn)備好信號(hào)(RxRDY=1),通知CPU取數(shù)。66左旭坤(zxk78@)第八章:并行通信和串行通信四、8251A的工作過程——發(fā)送器工作過程
發(fā)送器的功能是,首先把待發(fā)送的并行數(shù)據(jù)轉(zhuǎn)換成所要求的幀格式并加上校驗(yàn)位,然后在發(fā)送時(shí)鐘的作用下,在TxD引腳上一位一位地串行發(fā)送出去。在異步方式時(shí),發(fā)送器總是要加上起始位,并根據(jù)命令字的設(shè)定加上奇偶校驗(yàn)位和停止位;在同步方式下,發(fā)送器最先發(fā)送的是同步字符,而在隨后發(fā)送的數(shù)據(jù)中除了奇偶校驗(yàn)位外不再插入別的位,如果在發(fā)送過程中CPU未及時(shí)提供發(fā)送數(shù)據(jù),發(fā)送器就自動(dòng)發(fā)送同步字符。不管哪種方式,發(fā)送完一幀數(shù)據(jù)后,發(fā)送器準(zhǔn)備好信號(hào)置位(TxRDY=1),通知CPU發(fā)送下一個(gè)數(shù)據(jù)。67左旭坤(zxk78@)第八章:并行通信和串行通信五、8251A的控制字和狀態(tài)字
8251A的控制字有兩個(gè),一個(gè)是工作模式控制字,另一個(gè)是操作命令控制字。前者用來定義8251A的工作方式,它必須緊接在8251A復(fù)位后由CPU寫入;后者用來指定芯片的實(shí)際操作,只有在寫入了模式字后,才能由CPU寫入。1、工作模式控制字68左旭坤(zxk78@)第八章:并行通信和串行通信五、8251A的控制字和狀態(tài)字
8251A的控制字有兩個(gè),一個(gè)是工作模式控制字,另一個(gè)是操作命令控制字。前者用來定義8251A的工作方式,它必須緊接在復(fù)位后由CPU寫入;后者用來指定芯片的實(shí)際操作,只有在寫入了方式字后,才能由CPU寫入。2、操作命令控制字69左旭坤(zxk78@)第八章:并行通信和串行通信五、8251A的控制字和狀態(tài)字
8251A工作過程中執(zhí)行命令進(jìn)行數(shù)據(jù)傳輸?shù)墓ぷ鳡顟B(tài)字放在狀態(tài)寄存器中,CPU通過IN指令讀控制/狀態(tài)口操作工作狀態(tài)字。70左旭坤(zxk78@)第八章:并行通信和串行通信六、8251A的編程
初始化編程步驟步驟一:8251A系統(tǒng)復(fù)位后,用OUT指令寫入控制端口工作模式命令字。規(guī)定雙方的通信方式(同步/異步),數(shù)據(jù)格式(數(shù)據(jù)位和停止位長(zhǎng)度、校驗(yàn)特征、同步字符特征)及傳輸速率(波特率因子)等參數(shù)。步驟二:如果8251A工作在同步方式,應(yīng)由CPU執(zhí)行OUT指令向控制端口寫入規(guī)定的1個(gè)或2個(gè)字節(jié)的同步字符。步驟三:不論同步方式還是異步方式(復(fù)位命令除外),均再由CPU執(zhí)行OUT指令向控制端口再寫入操作命令控制字,控制8251A允許發(fā)送/接收。步驟四:CPU就可通過查詢8251A的工作狀態(tài)字內(nèi)容或采用中斷方式,進(jìn)行正常的串行通信發(fā)送/接收工作。71左旭坤(zxk78@)第八章:并行通信和串行通信六、8251A的編程
8251A復(fù)位方法:若要對(duì)8251A復(fù)位,可向其控制口,先送3個(gè)00H,再送1個(gè)40H。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【優(yōu)化方案】2021高考英語(yǔ)(外研版)總復(fù)習(xí)階段綜合檢測(cè)(一)
- 2024廢棄電器電子產(chǎn)品線上線下耦合回收集成技術(shù)規(guī)范
- 【名師一號(hào)】2020-2021學(xué)年高中英語(yǔ)(人教版)必修一雙基限時(shí)練14
- 人教版2022年高三第二輪復(fù)習(xí)-專題六-第1講-第1講-種群和群落
- 2022年學(xué)校教學(xué)工作總結(jié)范文
- 陜西省渭南市尚德中學(xué)2024-2025學(xué)年高一上學(xué)期第一次階段性生物試卷(含答案)
- 【全程復(fù)習(xí)方略】2020年北師版數(shù)學(xué)文(陜西用)課時(shí)作業(yè):第六章-第五節(jié)合情推理與演繹推理
- 【全程復(fù)習(xí)方略】2022屆高考化學(xué)(人教版)一輪總復(fù)習(xí)單元評(píng)估檢測(cè)(8)電化學(xué)基礎(chǔ)
- IT工作半年總結(jié):組織好工作流程-提升工作效率
- 2022高考(新課標(biāo))數(shù)學(xué)(理)大一輪復(fù)習(xí)試題:第十章-概率10-9a
- 8位半萬(wàn)用表大比拼
- 品牌管理部績(jī)效考核指標(biāo)
- 《數(shù)學(xué)廣角——數(shù)與形》評(píng)課稿
- 瀝青路面施工監(jiān)理工作細(xì)則
- 物業(yè)設(shè)備設(shè)施系統(tǒng)介紹(詳細(xì)).ppt
- 公司走賬合同范本
- 獲獎(jiǎng)一等獎(jiǎng)QC課題PPT課件
- 人教版小學(xué)三年級(jí)數(shù)學(xué)上冊(cè)判斷題(共3頁(yè))
- 國(guó)際項(xiàng)目管理手冊(cè)The Project Manager’s Manual
- 小學(xué)五年級(jí)思政課教案三篇
- 華為內(nèi)部虛擬股管理暫行條例
評(píng)論
0/150
提交評(píng)論