版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
01二月20231第9章
可編程并行接口芯片和串行接口芯片9.18255A并行接口9.28251A串行接口9.18255A并行接口9.1.1并行通信與并行接口9.1.28255A可編程并行接口9.1.38255A的控制字9.1.4~9.1.58255A的工作方式和編程補(bǔ)充:8255A在微機(jī)中的應(yīng)用01二月2023201二月202339.1.1并行通信與并行接口并行通信通信雙方有多條數(shù)據(jù)傳送線(xiàn),二者之間的數(shù)據(jù)(一般以字節(jié)或字為單位)通過(guò)這些數(shù)據(jù)線(xiàn)同時(shí)傳送;01010110
D0D1D2D3D4D5D6D7目的D0D1D2D3D4D5D6D7源01二月20234并行通信的特點(diǎn)優(yōu)點(diǎn):傳輸速度快,信息傳輸效率高;缺點(diǎn):所用電纜多,成本較高;在長(zhǎng)距離傳輸時(shí),電纜間的干擾大,影響數(shù)據(jù)傳送的正確性;適用場(chǎng)合:常用在近距離傳送中使用,如微機(jī)系統(tǒng)中。01二月20235并行接口并行接口:可傳送并行數(shù)據(jù)的接口電路。硬件結(jié)構(gòu):如圖所示一個(gè)或一個(gè)以上具有鎖存或緩沖的數(shù)據(jù)端口;與CPU交換數(shù)據(jù)的控制和狀態(tài)聯(lián)絡(luò)信號(hào);與外設(shè)交換數(shù)據(jù)的控制和狀態(tài)聯(lián)絡(luò)信號(hào);并行接口的識(shí)別:關(guān)鍵是接口與外設(shè)之間的傳送方式;并行接口可分為簡(jiǎn)單接口和可編程接口兩種。CPU與任何接口都是并行的01二月2023601二月20237并行接口的功能實(shí)現(xiàn)并行數(shù)據(jù)的無(wú)條件方式傳送:通過(guò)并行接口內(nèi)的數(shù)據(jù)端口實(shí)現(xiàn)直接的并行數(shù)據(jù)傳送;實(shí)現(xiàn)并行數(shù)據(jù)的查詢(xún)方式傳送:并行接口中具有應(yīng)答機(jī)構(gòu),在數(shù)據(jù)傳送過(guò)程中,通過(guò)狀態(tài)、控制信號(hào)與CPU和外設(shè)聯(lián)絡(luò),以保證數(shù)據(jù)傳送的有效進(jìn)行;實(shí)現(xiàn)并行數(shù)據(jù)的中斷方式傳送:并行接口中具有一定的中斷機(jī)制,可產(chǎn)生中斷請(qǐng)求信號(hào),作為外設(shè)中斷源提交給8259處理,請(qǐng)求數(shù)據(jù)的傳送操作;中斷方式下的數(shù)據(jù)傳送必須與8259配合。01二月20238并行接口的輸入過(guò)程外設(shè)先將數(shù)據(jù)送給接口,并置“數(shù)據(jù)輸入就緒”信號(hào)有效;接口把數(shù)據(jù)接收到數(shù)據(jù)輸入緩沖器的同時(shí),設(shè)置“數(shù)據(jù)輸入應(yīng)答”信號(hào),作為對(duì)外設(shè)的響應(yīng);外設(shè)接到此信號(hào)后,撤消數(shù)據(jù)和“數(shù)據(jù)輸入就緒”信號(hào);數(shù)據(jù)到達(dá)接口后,接口狀態(tài)寄存器中設(shè)置“輸入準(zhǔn)備好”狀態(tài)位,以便CPU查詢(xún),或由中斷機(jī)制生成中斷請(qǐng)求信號(hào);CPU查詢(xún)到“輸入準(zhǔn)備好”的有效信號(hào),或得到中斷請(qǐng)求,進(jìn)行數(shù)據(jù)輸入處理時(shí),從接口中讀取數(shù)據(jù),接口由該讀取操作自動(dòng)復(fù)位“輸入準(zhǔn)備好”狀態(tài)位,結(jié)束一次數(shù)據(jù)輸入操作。01二月20239數(shù)據(jù)輸入過(guò)程示意圖100100111100100111
0111001001100
01010010011
01二月202310并行接口的輸出過(guò)程當(dāng)接口狀態(tài)寄存器的“輸出準(zhǔn)備好”位置位時(shí),CPU將數(shù)據(jù)寫(xiě)入接口的輸出緩沖器;執(zhí)行寫(xiě)入操作后,接口自動(dòng)清除“輸出準(zhǔn)備好”狀態(tài)位,同時(shí)向外設(shè)發(fā)送“數(shù)據(jù)輸出就緒”信號(hào),并將數(shù)據(jù)送到與外設(shè)連接的數(shù)據(jù)總線(xiàn)上;外設(shè)接收到“數(shù)據(jù)輸出就緒”信號(hào)后,開(kāi)始接收數(shù)據(jù),完畢時(shí)向接口發(fā)回“數(shù)據(jù)輸出應(yīng)答”信號(hào);接口收到此信號(hào)后,置位狀態(tài)寄存器中的“輸出準(zhǔn)備好”位,表示當(dāng)前輸出緩沖器中沒(méi)有需要外設(shè)接收的新數(shù)據(jù),等待CPU的下次輸出操作。01二月202311數(shù)據(jù)輸出過(guò)程示意圖11100100111001001101001001111100100111
001
001二月2023129.1.28255A可編程并行接口0、8255A的主要特性1、8255A的外部引腳2、8255A的內(nèi)部結(jié)構(gòu)01二月2023130、8255A的主要特性具有三個(gè)8位的雙向數(shù)據(jù)端口(A口、B口、C口);具有3種工作方式,可通過(guò)編程選擇A口—方式0、1、2;B口—方式0、1;C口—方式0支持無(wú)條件、程序查詢(xún)、中斷等數(shù)據(jù)傳送方式;數(shù)據(jù)端口C口的使用較為特殊:既可作為一個(gè)8位端口,也可作為兩個(gè)4位端口來(lái)使用;即可作為數(shù)據(jù)端口,也可用作聯(lián)絡(luò)信號(hào)配合A、B口工作;既可傳送并行數(shù)據(jù),也可單獨(dú)按位控制,有專(zhuān)門(mén)的控制字。01二月2023141、8255A的外部引腳
數(shù)據(jù)總線(xiàn)B口引腳B口引腳C口引腳A口引腳A口引腳端口地址信號(hào)片選、讀寫(xiě)控制信號(hào)片選、讀寫(xiě)控制信號(hào)復(fù)位信號(hào)01二月2023151、8255A的外部引腳面向CPU的引腳RESET、CS#、RD#、WR#、A1、A0、D7~D0;按下RESET后的復(fù)位狀態(tài)為:
片內(nèi)所有寄存器清零,三個(gè)數(shù)據(jù)端口設(shè)為為輸入狀態(tài);面向外設(shè)的引腳PA0~PA7、PB0~PB7
、PC0~PC7
;01二月2023162、8255A的內(nèi)部結(jié)構(gòu)01二月202317數(shù)據(jù)總線(xiàn)緩沖器三態(tài)雙向8位數(shù)據(jù)緩沖器;8255與CPU之間的數(shù)據(jù)中轉(zhuǎn)站;可傳送的數(shù)據(jù):CPU要寫(xiě)入8255A的控制字;CPU與外設(shè)之間傳送的數(shù)據(jù);CPU要獲取的外設(shè)狀態(tài)字。01二月202318讀寫(xiě)控制邏輯電路——決定CPU的操作類(lèi)型CS#RD#WR#A1A0執(zhí)行的操作類(lèi)型1未選中該8255A芯片XXXX0CPU對(duì)8255A芯片的A端口執(zhí)行讀操作01000CPU對(duì)8255A芯片的A端口執(zhí)行寫(xiě)操作10000CPU對(duì)8255A芯片的B端口執(zhí)行讀操作01010CPU對(duì)8255A芯片的B端口執(zhí)行寫(xiě)操作10010CPU對(duì)8255A芯片的C端口執(zhí)行讀操作01100CPU對(duì)8255A芯片的C端口執(zhí)行寫(xiě)操作10100無(wú)效01110CPU對(duì)8255A芯片的命令端口執(zhí)行寫(xiě)操作101101二月202319A組控制電路和B組控制電路分組情況A組——A口和C口的高4位(PC4~PC7)B組——B口和C口的低4位(PC0~PC3)控制電路的作用:A、B組控制電路接收來(lái)自讀/寫(xiě)部件的命令和CPU寫(xiě)入命令端口的控制字,譯碼后控制對(duì)應(yīng)端口的工作方式和讀/寫(xiě)操作方式。對(duì)C口的按位操作也由此控制部件實(shí)現(xiàn)。01二月202320三個(gè)獨(dú)立的輸入/輸出數(shù)據(jù)端口(A、B、C口)端口特點(diǎn)3個(gè)8位數(shù)據(jù)端口,都由輸入寄存器和輸出寄存器構(gòu)成;A口的輸入/輸出寄存器均有鎖存功能;B、C口的輸出寄存器具有鎖存功能,但其輸入寄存器不能鎖存數(shù)據(jù);C口的獨(dú)特工作方式A、B口工作于方式1、2時(shí),C口的高/低4位分別作為A、B口在數(shù)據(jù)傳輸時(shí)的控制聯(lián)絡(luò)信號(hào)線(xiàn);C口的每一位可獨(dú)立進(jìn)行置/復(fù)位的操作。設(shè)A、B、C口及命令口的端口地址分別為60H~63H。01二月2023219.1.38255A的控制字8255A共包括兩個(gè)控制字工作方式選擇控制字指定8255A的3個(gè)端口工作方式及該方式下的操作類(lèi)型;C口置復(fù)位控制字指定C口的某一位輸出高電平或低電平;CPU對(duì)8255A的編程使用向8255A的命令端口寫(xiě)入工作方式控制字,選擇工作方式;若需要傳送數(shù)據(jù),則對(duì)A、B、C口進(jìn)行數(shù)據(jù)讀寫(xiě);若需要C口發(fā)送命令,則可使用C口置復(fù)位控制字來(lái)設(shè)置;01二月2023221、工作方式選擇控制字的格式1D6D5D4D3D2D1D0A口工作方式00方式001方式110方式211無(wú)效A口的操作方式0輸出1輸入C口高4位操作方式0輸出1輸入B口的工作方式0方式01方式1B口的操作方式0輸出1輸入C口低4位操作方式0輸出1輸入標(biāo)志位01二月202323工作方式選擇控制字應(yīng)用舉例(1/2)例1.A口工作于方式1,輸入口,C口高4位為輸出;B口工作于方式0,輸出口,C口低4位為輸入,試寫(xiě)出初始化程序段。按題目要求寫(xiě)出控制字則初始化程序段為:
MOVAL,0B1H OUT63H,AL1011000101二月202324例2.A口工作于方式2,輸入口;B口工作于方式1,輸出口,試寫(xiě)出初始化程序段。按題目要求寫(xiě)出控制字則初始化程序段為:
MOVAL,0D4H OUT63H,AL11010100工作方式選擇控制字應(yīng)用舉例(2/2)01二月2023252、C口置復(fù)位控制字0D3D2D1D0操作位選擇000PC0001PC1010PC2011PC3…………111PC7選定位的設(shè)置方式0復(fù)位1置位01二月202326C口置復(fù)位控制字應(yīng)用舉例(1/3)例3.使PC2輸出高電平,則相應(yīng)的程序段應(yīng)如何設(shè)置?按題目要求寫(xiě)出控制字則相應(yīng)的程序段為:
MOVAL,05H OUT63H,AL0000D3D2D1D0010101二月202327C口置復(fù)位控制字應(yīng)用舉例(2/3)例4.使PC7輸出一個(gè)負(fù)脈沖,作為外設(shè)的選通信號(hào)。程序段:MOVAL,00001111 OUT63H,AL
MOVCX,50H L1: LOOPL1 MOVAL,00001110 OUT63H,AL
MOVCX,5H L2: LOOPL2 MOVAL,00001111 OUT63H,AL使PC7輸出高電平維持一段時(shí)間使PC7輸出低電平維持一段時(shí)間(短)使PC7輸出高電平01二月202328C口置復(fù)位控制字應(yīng)用舉例(3/3)例5.使PC7輸出方波,經(jīng)濾波放大后送喇叭發(fā)聲。輸出一個(gè)方波子程序:
SPKPROC
MOVAL,00001111 OUT63H,AL
CALLDELAY1
MOVAL,00001110 OUT63H,AL
CALLDELAY1 RET SPKENDP連續(xù)方波:
L:CALLSPKJMPL可控連續(xù)方波:
L:CALLSPK……………………JL條件轉(zhuǎn)移指令01二月202329應(yīng)用控制字的注意要點(diǎn)寫(xiě)入時(shí)間:工作方式控制字要在使用8255A之前寫(xiě)入其命令端口;C口置/復(fù)位控制字在8255A工作的任何時(shí)候進(jìn)行的;兩個(gè)控制字寫(xiě)入同一命令端口,即63H;一定不能將置/復(fù)位控制字寫(xiě)入C口(62H)中;對(duì)C口的設(shè)置可以有兩種方法:使用C口置/復(fù)位控制字,每次設(shè)置一個(gè)PC位的輸出狀態(tài);無(wú)論初始化時(shí)該P(yáng)C位的輸入輸出狀態(tài)均可;直接寫(xiě)C口,每次必須同時(shí)設(shè)置多個(gè)(4或8)PC位的輸出狀態(tài);初始化時(shí),該P(yáng)C位應(yīng)為輸出狀態(tài);01二月2023309.1.4~9.1.5
8255A工作方式及編程應(yīng)用1、基本輸入/輸出方式(方式0)2、選通輸入/輸出方式(方式1)3、雙向輸入/輸出方式(方式2)01二月2023311、基本輸入/輸出方式(方式0)方式0的工作特點(diǎn):基本的輸入/輸出方式,此方式?jīng)]有固定的聯(lián)絡(luò)信號(hào),A、B、C三個(gè)端口均可作為數(shù)據(jù)端口工作于此方式下;單向I/O方式,即每次初始化后,指定端口(兩個(gè)8位端口和兩個(gè)4位端口)只能作為輸入端口或輸出端口;方式0下的數(shù)據(jù)傳送,可以是無(wú)條件方式,或查詢(xún)方式;方式0下的查詢(xún)傳送方式,需要使用C口中的某些PC位自定義為所需的聯(lián)絡(luò)信號(hào)。01二月202332例6.利用8255A控制8個(gè)發(fā)光二極管的亮和滅,要求每隔0.5s依次點(diǎn)亮L7~L0一次,周而復(fù)始,硬件連接如下圖。分析:發(fā)光二極管上有電流通過(guò)時(shí),會(huì)被點(diǎn)亮;PA端輸出1,二極管熄滅;PA端輸出0,二極管點(diǎn)亮編寫(xiě)循環(huán)程序,控制PA7~PA0每隔0.5s依次輸出0,而后變?yōu)?,即可滿(mǎn)足題目要求。01二月202333例6的控制程序8255A初始化控制字:A口方式0,輸出端口,即控制字為10000000初始化程序段:
MOVAL,80HOUT63H,ALA口按要求輸出數(shù)據(jù)程序段:
MOVAH,7FH
LOOP:MOVAL,AHOUT60H,AL
CALLDELAY1
RORAH,1JMPLOOP延時(shí)0.5秒控制數(shù)據(jù)01二月202334例7.利用8255A的A口方式0設(shè)計(jì)并行打印機(jī)接口。
要求:CPU采用查詢(xún)方式將緩沖區(qū)BUF中的256個(gè)字符通過(guò)接口送到打印機(jī)打印。采用查詢(xún)方式:在接口和打印機(jī)之間必須要有聯(lián)絡(luò)控制信號(hào),以返回打印機(jī)狀態(tài),及控制打印機(jī)工作;打印機(jī)的控制信號(hào)和工作時(shí)序;接口電路和打印機(jī)之間的連接,及信號(hào)控制的完成。打印內(nèi)容:程序中CPU必須先將要打印的數(shù)據(jù)從緩沖區(qū)BUF中逐個(gè)讀出,在查詢(xún)到打印機(jī)就緒狀態(tài)后送到接口中。01二月202335打印機(jī)的控制信號(hào)和工作時(shí)序控制信號(hào):STB#:輸入,打印機(jī)選通信號(hào);BUSY:輸出,表示忙狀態(tài)信號(hào);ACK#:輸出,打印機(jī)工作結(jié)束應(yīng)答信號(hào);工作時(shí)序需要打印數(shù)據(jù)時(shí),CPU先查看打印機(jī)的BUSY忙信號(hào),若BUSY=0,則將數(shù)據(jù)送數(shù)據(jù)總線(xiàn);數(shù)據(jù)穩(wěn)定后,發(fā)STB#選通信號(hào),打印機(jī)即讀入數(shù)據(jù),同時(shí)使BUSY信號(hào)有效,通知主機(jī)停止送數(shù);打印機(jī)處理完當(dāng)前數(shù)據(jù)后,使ACK#響應(yīng)信號(hào)有效,同時(shí)使BUSY失效,通知主機(jī)可以發(fā)下一個(gè)數(shù)據(jù)。01二月202336打印機(jī)與接口之間的連接圖思考:8255A工作于方式0下,與打印機(jī)之間的聯(lián)絡(luò)信號(hào)如何設(shè)置?所需要的選通信號(hào)和狀態(tài)信號(hào)對(duì)8255A來(lái)說(shuō)分別是輸入和輸出的兩種狀態(tài),可使用C口作為聯(lián)絡(luò)信號(hào),并且把高低4位分別定義為輸入和輸出兩種操作方式,以滿(mǎn)足聯(lián)絡(luò)需要。PC7PC2PA7~PA0STB#BUSYD7~D001二月202337程序流程圖開(kāi)始初始化8255A和數(shù)據(jù)指針禁止打印取數(shù)據(jù)由接口送至打印機(jī)打印機(jī)忙?使8255A控制選通打印機(jī)修改數(shù)據(jù)指針需打印數(shù)據(jù)傳送完畢?結(jié)束YNYN01二月202338初始化程序段(8255A)A口作為數(shù)據(jù)輸出口,工作于方式0;B口沒(méi)有使用;C口作為查詢(xún)聯(lián)絡(luò)信號(hào):PC7——輸出的選通信號(hào);PC2——輸入的狀態(tài)信號(hào)。8255A的工作方式控制字為8255A的初始化程序段
MOVAL,81H OUT63H,AL1000000181H01二月202339初始化程序段(數(shù)據(jù)指針)使用間接尋址或相對(duì)尋址的方式對(duì)連續(xù)的存儲(chǔ)空間尋址;打印BUF緩沖區(qū)中的256個(gè)字符,故取操作數(shù)的程序?yàn)檠h(huán)次數(shù)已知的循環(huán)程序,需要設(shè)置循環(huán)計(jì)數(shù)器CX。間接尋址方式:
MOVSI,OFFSETBUF(或LEASI,BUF)MOVCX,256AGAIN:…………MOVAL,[SI]…………INCSILOOPAGAIN相對(duì)尋址方式:
MOVSI,0MOVCX,256AGAIN:…………MOVAL,BUF[SI]…………INCSILOOPAGAIN01二月202340打印的選通與禁止打印機(jī)的選通信號(hào)STB#由8255A的PC7控制;PC7輸出高電平,禁止打印機(jī)工作;PC7輸出下降沿,選通打印機(jī)工作;0111101110禁止打?。?/p>
MOVAL,0FH OUT63H,AL選通打?。?/p>
MOVAL,0EHOUT63H,ALNOPNOPMOVAL,0FHOUT63H,AL01二月202341“
打印機(jī)忙”判斷
數(shù)據(jù)的輸出打印讀取8255A的PC2的狀態(tài),以判斷下一步操作。0-空閑,可以輸出欲打印數(shù)據(jù);1-忙,上次數(shù)據(jù)尚未打印完畢,CPU需等待。程序段
WAIT:INAL,62H;讀C口
ANDAL,04H;判斷PC2狀態(tài)
JNZWAIT;若BUSY=1,則等待
……
……;否則,取下一打印數(shù)據(jù)
OUT60H,AL;將數(shù)據(jù)由A口送至打印機(jī)01二月202342例7.8255A方式0下的查詢(xún)傳送源程序
……MOVAL,81HOUT63H,ALMOVSI,0MOVCX,256MOVAL,0FHOUT63H,ALWAIT:INAL,62HANDAL,04HJNZWAITMOVAL,BUF[SI]OUT60H,ALMOVAL,0EHOUT63H,ALNOPNOPMOVAL,0FHOUT63H,ALINCSILOOPWAIT
……8255A初始化PC7=1禁止打印查詢(xún)PC2的狀態(tài),決定是否打印打印機(jī)就緒后,CPU送出要打印的數(shù)據(jù)通過(guò)PC7選通打印機(jī)開(kāi)始接收數(shù)據(jù)并打印循環(huán)繼續(xù)以查詢(xún)方式輸出數(shù)據(jù)并打印01二月2023432、選通輸入/輸出方式(方式1)方式1的工作特點(diǎn):選通輸入/輸出方式,A、B口可工作于方式1下,由指定的PC位作為固定的聯(lián)絡(luò)信號(hào)使用;輸入和輸出操作所需的聯(lián)絡(luò)信號(hào)不同,但各操作的聯(lián)絡(luò)信號(hào)都存在著固定的時(shí)序關(guān)系,要嚴(yán)格遵循。單向I/O方式,要改變輸入/輸出狀態(tài),必須重寫(xiě)工作方式控制字;方式1可使用查詢(xún)或中斷的方式傳送數(shù)據(jù);帶選通的單向IO方式01二月202344方式1輸入操作的聯(lián)絡(luò)信號(hào)(1/2)
選通信號(hào)STB#:外設(shè)8255A,低電平有效該信號(hào)有效期間,數(shù)據(jù)由外設(shè)傳送至8255A;8255A分別使用PC4、PC2作為STBA#和STBB#。輸入緩沖器滿(mǎn)信號(hào)IBF:由8255A輸出,高電平有效該信號(hào)有效表示當(dāng)前8255A的輸入緩沖器中有新數(shù)據(jù),等待CPU讀取,并且禁止外設(shè)再次送入數(shù)據(jù);作用是:應(yīng)答外設(shè)的STB#信號(hào);或供CPU查詢(xún)的狀態(tài)位;8255A分別使用PC5、PC1作為IBFA和IBFB
。01二月202345方式1輸入操作的聯(lián)絡(luò)信號(hào)(2/2)
中斷請(qǐng)求信號(hào)INTR:8255ACPU,高電平有效該信號(hào)由8255A的內(nèi)部控制邏輯產(chǎn)生,用于中斷傳送方式下,向CPU發(fā)出輸入請(qǐng)求;8255A分別使用PC3、PC0作為INTRA和INTRB。中斷允許信號(hào)INTE:8255A內(nèi)部控制信號(hào),高電平有效INTE=1時(shí),8255A才有可能產(chǎn)生INTR請(qǐng)求;否則不會(huì)產(chǎn)生INTR信號(hào);對(duì)INTE的設(shè)置位同STB#信號(hào)位(PC4、PC2),屬于8255A的內(nèi)部操作,不影響STB#信號(hào)的狀態(tài)。01二月202346方式1下輸入聯(lián)絡(luò)信號(hào)示意圖中斷機(jī)制:當(dāng)STB#=1(外設(shè)輸入數(shù)據(jù)已結(jié)束)、IBF=1(輸入緩沖器中有新數(shù)據(jù))、INTE=1(允許中斷)時(shí),使INTR有效;01二月202347方式1輸入操作的工作時(shí)序外設(shè)將準(zhǔn)備好的數(shù)據(jù)送至數(shù)據(jù)線(xiàn)上,并發(fā)有效的STB#信號(hào);STB#下降沿將數(shù)據(jù)送入8255A的輸入緩沖器中,并8255A置IBF有效,禁止外設(shè)再次輸入數(shù)據(jù);STB#自動(dòng)維持一段時(shí)間后,其上升沿使8255A內(nèi)部邏輯生成INTR中斷請(qǐng)求信號(hào),請(qǐng)求CPU執(zhí)行中斷,讀入數(shù)據(jù);CPU在中斷服務(wù)時(shí)執(zhí)行讀操作,RD#前沿撤銷(xiāo)INTR,后沿撤銷(xiāo)IBF,結(jié)束一次數(shù)據(jù)的輸入操作。外設(shè)送出數(shù)據(jù)STB#IBFINTRRD#CPU響應(yīng)中斷CPU讀入數(shù)據(jù)接口讀入數(shù)據(jù)01二月202348方式1輸出操作的聯(lián)絡(luò)信號(hào)(1/2)
輸出緩沖器滿(mǎn)信號(hào)OBF#:由8255A輸出,低電平有效該信號(hào)有效,表示8255A的輸出緩沖寄存器中有新數(shù)據(jù)等待外設(shè)讀??;用于通知外設(shè)取走新數(shù)據(jù);或供CPU查詢(xún)狀態(tài);8255A分別使用PC7、PC1作為OBFA#和OBFB#。外部應(yīng)答信號(hào)ACK#:外設(shè)8255A,低電平有效對(duì)OBF#的應(yīng)答信號(hào),8255A收到該信號(hào)時(shí),表示外設(shè)已從8255A中取走數(shù)據(jù),結(jié)束本次輸出操作;8255A分別使用PC6、PC2作為ACKA#和ACKB#。01二月202349方式1輸出操作的聯(lián)絡(luò)信號(hào)(2/2)
中斷請(qǐng)求信號(hào)INTR:8255ACPU,高電平有效該信號(hào)由8255A的內(nèi)部控制邏輯產(chǎn)生,用于中斷傳送方式下,向CPU發(fā)出輸出數(shù)據(jù)的請(qǐng)求;8255A分別使用PC3、PC0作為INTRA和INTRB。中斷允許信號(hào)INTE:8255A內(nèi)部控制信號(hào),高電平有效INTE=1時(shí),8255A才有可能產(chǎn)生INTR請(qǐng)求;否則不會(huì)產(chǎn)生INTR信號(hào);對(duì)INTE的設(shè)置位同ACK#信號(hào)位(PC6、PC2),屬于8255A的內(nèi)部操作,不影響ACK#信號(hào)的狀態(tài)。01二月202350方式1下輸出聯(lián)絡(luò)信號(hào)示意圖中斷機(jī)制:當(dāng)OBF#=1(輸出緩沖器空)、ACK#=1(外設(shè)結(jié)束上一數(shù)據(jù)的輸出操作)、INTE=1(允許中斷)、WR#=1(CPU完成一次數(shù)據(jù)的寫(xiě)操作)時(shí),INTR有效;01二月202351方式1輸出操作的工作時(shí)序CPU輸出數(shù)據(jù)到8255A的輸出緩沖器,WR#有效,其前沿撤消INTR信號(hào),后沿設(shè)置OBF#信號(hào);外設(shè)得到OBF#有效信號(hào)后,讀取數(shù)據(jù),并發(fā)出ACK#應(yīng)答信號(hào),通知8255A;ACK#前沿撤銷(xiāo)OBF#,即表示輸出緩沖器空,可以開(kāi)始新的輸出操作,后沿使8255A內(nèi)部邏輯產(chǎn)生新的中斷請(qǐng)求INTR。接口讀入數(shù)據(jù)CPU送出數(shù)據(jù)WR#OBF#INTRACK#外設(shè)讀入數(shù)據(jù)01二月202352方式1下的C口狀態(tài)方式1下,某些PC位作為固定的聯(lián)絡(luò)信號(hào)配合A、B口工作;對(duì)于C口中不使用的其他位,仍然可以作為數(shù)據(jù)端口;A、B口輸出操作時(shí):OBF#AACK#AI/OI/OINTRAACK#BOBF#BINTRBA、B口輸入操作時(shí):I/OI/OIBFASTB#AINTRASTB#BIBFBINTRBA口輸入、B口輸出操作時(shí):I/OI/OIBFASTB#AINTRAACK#BOBF#BINTRB01二月202353例8.利用8255A的A口方式1設(shè)計(jì)并行打印機(jī)接口。
要求:CPU采用查詢(xún)方式將存放在緩沖區(qū)BUF的256個(gè)字符通過(guò)接口送到打印機(jī)打印。A口工作于方式1,作為輸出口,指定的聯(lián)絡(luò)信號(hào) OBFA#(PC7)、ACKA#(PC6)、INTRA(PC3)打印機(jī)的聯(lián)絡(luò)信號(hào)BUSY、STB#、ACK#與方式0下的工作情況相似,只是在方式1下必須使用指定PC位的聯(lián)絡(luò)信號(hào),而不能隨意自定義;方法1:將A口的OBF#、ACK#信號(hào)作為打印機(jī)的聯(lián)絡(luò)信號(hào)方法2:自定義打印機(jī)的選通信號(hào)01二月202354將A口的OBF#、ACK#信號(hào)作為打印機(jī)的聯(lián)絡(luò)信號(hào)CPU從A口送出要打印數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)01001查詢(xún)等待OBF#無(wú)效數(shù)據(jù)01二月202355方式1下查詢(xún)控制方式的傳送程序
MOVAL,10100000BOUT63H,AL
LEASI,BUFMOVCX,256
NEXT:MOVAL,[SI]OUT60H,AL
INCSIAGAIN:INAL,62HTESTAL,80HJZAGAINLOOPNEXT初始化程序段(8255A和數(shù)據(jù)指針)CPU查詢(xún)接口的輸出狀態(tài)(OBF#,PC7),判斷是否開(kāi)始下一個(gè)數(shù)據(jù)的輸出操作。CPU輸出數(shù)據(jù)到8255A的A口01二月2023563、雙向輸入/輸出方式(方式2)工作特點(diǎn):雙向選通輸入/輸出方式,只有A口可以使用;設(shè)有專(zhuān)用的輸入/輸出聯(lián)絡(luò)信號(hào)線(xiàn)(IBFA、STBA#、OBF#A、ACK#A、INTRA),各聯(lián)絡(luò)信號(hào)的時(shí)序關(guān)系同方式1;工作于方式2下A口既可以作數(shù)據(jù)輸入端口,也可以作數(shù)據(jù)輸出端口;可以用于查詢(xún)和中斷方式的數(shù)據(jù)傳送。帶選通的雙向IO方式01二月202357方式2下的聯(lián)絡(luò)信號(hào)及狀態(tài)字A口工作于方式2下,B口工作于方式1下,C口狀態(tài):OBF#AACK#AIBFASTB#AINTRAI/OI/OI/OA口工作于方式2下,C口狀態(tài):OBF#AACK#AIBFASTB#AINTRASTB#BIBFBINTRBOBF#AACK#AIBFASTB#AINTRAACK#BOBF#BINTRB仍然對(duì)應(yīng)著8255A的內(nèi)部中斷允許信號(hào)INTEA口工作于方式2下,控制字為:110無(wú)效無(wú)效01二月202358補(bǔ)充:8255A在微機(jī)系統(tǒng)中的應(yīng)用8255A在IBMPC/XT機(jī)中的應(yīng)用使用一片8255A工作于方式0下;A口:輸入/輸出加電自檢時(shí)為輸出,輸出當(dāng)前檢測(cè)部件的標(biāo)志信號(hào);正常工作時(shí)為輸入,用于讀取鍵盤(pán)的掃描碼;B口:輸出一些控制信號(hào)鍵盤(pán)管理、RAM和I/O通道檢驗(yàn)、揚(yáng)聲器的控制等;C口:輸入方式高4位為狀態(tài)測(cè)試位,低4位讀取系統(tǒng)配置開(kāi)關(guān)狀態(tài)。01二月2023598255A在PC/XT機(jī)中的部分應(yīng)用示意圖8255APB1PB0驅(qū)動(dòng)電路揚(yáng)聲器GATE2CLK2時(shí)鐘信號(hào)與門(mén)8253的2#通道PA7~PA0PB7PB6鍵盤(pán)掃描碼輸出0,使A口接收到的是鍵盤(pán)數(shù)據(jù)輸出1,給鍵盤(pán)送時(shí)鐘信號(hào)01二月2023609.28251A串行接口9.2.1串行接口的概念9.2.28251A可編程串行接口9.2.38251A的編程及應(yīng)用9.2.1串行接口的概念1、串行通信與串行接口2、串行數(shù)據(jù)傳送方式3、串行通信方式4、數(shù)據(jù)傳輸率5、信號(hào)的調(diào)制與解調(diào)01二月20236101二月2023621、串行通信與串行接口串行通信:使用一根/對(duì)信息傳輸線(xiàn),將數(shù)據(jù)、控制、狀態(tài)等信息按順序逐位傳送;串行傳送的數(shù)據(jù)有固定的格式來(lái)區(qū)分信息類(lèi)型;串行通信的雙方要約定通信傳送的波特率。串行通信適用于遠(yuǎn)距離傳送。傳送效率比并行通信低,但容易進(jìn)行差錯(cuò)控制;串行接口中需要進(jìn)行數(shù)據(jù)的串-并轉(zhuǎn)換;利用接口內(nèi)部的移位邏輯實(shí)現(xiàn);P264圖9-132、串行數(shù)據(jù)傳送方式單工(Simplex)收發(fā)雙方由一根單向的信息線(xiàn)連接;半雙工(HalfDuplex)收發(fā)雙方通過(guò)一根雙向的信息線(xiàn)連接;全雙工(FullDuplex)收發(fā)雙方通過(guò)兩根單向信息線(xiàn)連接;多工(multiplex)通過(guò)將一個(gè)信道劃分為若干個(gè)頻帶或時(shí)間片的復(fù)用技術(shù),從而使多路信號(hào)同時(shí)共享信道;01二月20236301二月202364單工數(shù)據(jù)傳送方式單工(Simplex)收發(fā)雙方通過(guò)一根單向的信息線(xiàn)連接,只能進(jìn)行數(shù)據(jù)的發(fā)送或接收,一旦連接確定數(shù)據(jù)的傳送方向即不可更改。特點(diǎn):兩站點(diǎn)之間僅有一根單向的信息線(xiàn);每個(gè)站點(diǎn)中僅需要一個(gè)發(fā)送器,或接收器。接收器發(fā)送器AB發(fā)送器接收器AB01二月202365半雙工數(shù)據(jù)傳送方式半雙工(HalfDuplex)收發(fā)雙方通過(guò)一根雙向的信息線(xiàn)連接,既可發(fā)送數(shù)據(jù)又可接收數(shù)據(jù),但通信雙方不能同時(shí)收發(fā)數(shù)據(jù)。特點(diǎn):兩站點(diǎn)之間只有一根雙向信息線(xiàn);每端都有發(fā)送器和接收器,需有收/發(fā)切換電子開(kāi)關(guān);因有切換,會(huì)產(chǎn)生時(shí)間延遲。發(fā)送器接收器發(fā)送器接收器AB01二月202366全雙工數(shù)據(jù)傳送方式全雙工(FullDuplex)收發(fā)雙方通過(guò)兩根單向信息線(xiàn)連接,分別負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收,通信雙方都能在同一時(shí)刻進(jìn)行發(fā)送和接收操作。特點(diǎn):每一端都有發(fā)送器和接收器;有兩條相互獨(dú)立的單向信息傳送線(xiàn)。發(fā)送器接收器接收器發(fā)送器AB01二月202367多工數(shù)據(jù)傳送方式多工(multiplex)通過(guò)將一個(gè)信道劃分為若干個(gè)頻帶或時(shí)間片的復(fù)用技術(shù),從而使多路信號(hào)同時(shí)共享信道;特點(diǎn):在一條線(xiàn)路上傳輸不同的信號(hào)頻率;使用多路復(fù)用器或多路集中器等專(zhuān)用的通信設(shè)備。發(fā)送1發(fā)送n……接收1接收n……復(fù)用器復(fù)用器數(shù)據(jù)3、串行通信方式——異步通信異步通信以字符為單位傳送數(shù)據(jù),字符與字符之間是異步傳送的,而位與位之間則是同步傳送;數(shù)據(jù)格式:數(shù)據(jù)位(5~8位)、起始位(1位,值恒為0)、校驗(yàn)位(可選)、停止位(1位、1.5位、2位可選,值恒為1);01二月20236811000010111000空閑位起始位數(shù)據(jù)位0低高校驗(yàn)位停止位3、串行通信方式——同步通信同步通信以數(shù)據(jù)塊為單位傳送,每個(gè)數(shù)據(jù)塊包括多個(gè)字符;字符內(nèi)部的位傳送和字符之間的傳送都要嚴(yán)格同步;同步方法有外同步和內(nèi)同步兩種;數(shù)據(jù)格式01二月202369同步字符數(shù)據(jù)……數(shù)據(jù)CRC1CRC2同步字符同步字符數(shù)據(jù)……數(shù)據(jù)CRC1CRC2數(shù)據(jù)……數(shù)據(jù)CRC1CRC2外同步信號(hào)單同步方式雙同步方式外同步方式01二月2023704、數(shù)據(jù)傳輸率(1/2)波特率單位時(shí)間內(nèi)傳送二進(jìn)制數(shù)據(jù)的位數(shù),即串行通信的數(shù)據(jù)傳輸率。單位1波特=1bit/s(位/秒)常用的標(biāo)準(zhǔn)波特率:110、300、600、1200、2400、4800、9600、19200b/s注意:波特率與字符傳輸率是不同的。01二月2023714、數(shù)據(jù)傳輸率(2/2)波特率因子每傳送一位二進(jìn)制數(shù)據(jù)所需要的時(shí)鐘脈沖個(gè)數(shù);波特率、波特率因子、時(shí)鐘頻率的關(guān)系:時(shí)鐘頻率=波特率×波特率因子例如:給定時(shí)鐘頻率f=19.2kHz,若選擇波特率因子為16,則該串行通信的波特率為多少?波特率=19.2×103/16=1200bps。01二月2023725、信號(hào)的調(diào)制與解調(diào)計(jì)算機(jī)的串行通信是借用現(xiàn)有的電話(huà)網(wǎng)進(jìn)行的:所謂調(diào)制與解調(diào),指的就是波形變換(頻譜變換),即將信號(hào)的頻譜變換成接收方適合的頻譜。調(diào)制器(Modulator)是一個(gè)波形變換器,它將數(shù)字波形變換成適合于模擬信道傳輸?shù)牟ㄐ危唤庹{(diào)器是一個(gè)波形識(shí)別器,將模擬信號(hào)恢復(fù)成數(shù)字信號(hào);計(jì)算機(jī)MODEMMODEM模擬信號(hào)數(shù)字信號(hào)數(shù)字信號(hào)CRT10101010101001二月202373調(diào)制方法調(diào)幅(AM)載波的振幅隨數(shù)字信號(hào)而變化;1—有載波;0—無(wú)載波。調(diào)頻(FM)載波的頻率隨數(shù)字信號(hào)而變化;0—f1;1—f2。調(diào)相(PM)載波的初始相位隨數(shù)字信號(hào)而變化;0—相位0度;1—相位180度。f1f2FMAM0100110度180度PM9.2.2可編程串行通信接口芯片8251A1、8251A的主要特性2、8251A的外部引腳特性3、8251A的內(nèi)部結(jié)構(gòu)01二月2023751、8251A的主要特性8251A是一個(gè)全雙工雙緩沖器的可編程串行接口芯片;同步方式波特率為0~64Kbps,可自動(dòng)插入/檢測(cè)同步字符;可通過(guò)編程方式設(shè)置數(shù)據(jù)格式,同步方式,同步字符等;異步方式波特率為0~19.2Kbps;可通過(guò)編程方式設(shè)置數(shù)據(jù)格式、波特率因子;具有發(fā)送/接收緩沖器,可以工作于全雙工的傳輸方式;具有出錯(cuò)檢測(cè)功能,能檢出奇偶、超越、幀格式等錯(cuò)誤;01二月2023762、8251A的外部引腳特性01二月202377(1)面向CPU的引腳三態(tài)雙向數(shù)據(jù)總線(xiàn)D0~D7讀寫(xiě)信號(hào)RD#、WR#片選信號(hào)CS#復(fù)位信號(hào)RESET:持續(xù)6個(gè)時(shí)鐘周期的高電平,即使芯片處于待命狀態(tài);片內(nèi)尋址的地址線(xiàn)C/D#:(308H、309H)1——訪(fǎng)問(wèn)8251A的命令/狀態(tài)端口(寫(xiě)命令、讀狀態(tài));0——訪(fǎng)問(wèn)8251A的數(shù)據(jù)端口(讀寫(xiě)數(shù)據(jù))。01二月202378(2)狀態(tài)信號(hào)(1/4)發(fā)送就緒信號(hào)TXRDY:高電平有效,輸出當(dāng)8251A的內(nèi)部狀態(tài)允許發(fā)送(TxEN置位),外設(shè)就緒(CTS#引腳有效),且發(fā)送緩沖器空時(shí),該信號(hào)有效;有效時(shí),CPU可將并行數(shù)據(jù)寫(xiě)入8251的發(fā)送緩沖器;CPU寫(xiě)入數(shù)據(jù)后,該信號(hào)自動(dòng)無(wú)效;中斷方式時(shí),可作為中斷請(qǐng)求信號(hào);
查詢(xún)方式時(shí),可作為狀態(tài)信號(hào);CPU查詢(xún)狀態(tài)字的D0位(TXRDY位)來(lái)決定是否傳送數(shù)據(jù);01二月202379(2)狀態(tài)信號(hào)(2/4)發(fā)送器空信號(hào)TXE(TXEMPTY):高電平有效,輸出有效時(shí),8251A發(fā)送器中的數(shù)據(jù)已送到外設(shè);同步方式下,若CPU不能及時(shí)向8251A輸出一個(gè)新的數(shù)據(jù),則該信號(hào)變?yōu)橛行У母唠娖?,同時(shí)發(fā)送器在數(shù)據(jù)輸出線(xiàn)上插入同步字符,以填補(bǔ)傳輸空隙。注意區(qū)分:TXRDY=1 ——發(fā)送緩沖器空TXE=1 ——發(fā)送移位寄存器空01二月202380(2)狀態(tài)信號(hào)(3/4)接收就緒信號(hào)RXRDY:高電平有效,輸出有效時(shí),外設(shè)已將串行數(shù)據(jù)送入8251A,并完成轉(zhuǎn)換,等待CPU讀??;CPU讀取數(shù)據(jù)后,該信號(hào)自動(dòng)無(wú)效;若CPU不能及時(shí)取走這個(gè)數(shù)據(jù),新接收的數(shù)據(jù)將其覆蓋,發(fā)生數(shù)據(jù)丟失,稱(chēng)為“超越錯(cuò)”,反映在狀態(tài)字中;中斷方式時(shí),可作為中斷請(qǐng)求信號(hào);
查詢(xún)方式時(shí),可作為狀態(tài)信號(hào);CPU查詢(xún)狀態(tài)字的D1位(RXRDY位)來(lái)決定是否傳送數(shù)據(jù);01二月202381(2)狀態(tài)信號(hào)(4/4)雙功能引腳SYNDET/BD:高電平有效同步方式下,作為同步檢出信號(hào)SYNDET;內(nèi)同步時(shí),芯片內(nèi)部電路搜索同步字符,找到則使該引腳輸出高電平,同時(shí)設(shè)置狀態(tài)寄存器;外同步時(shí),片外檢測(cè)電路檢測(cè)到同步字符,從該引腳輸入高電平,使8251A在下一個(gè)接收時(shí)鐘RxC開(kāi)始裝配字符。異步方式下,作為中止符檢測(cè)信號(hào)BD;若8251A檢測(cè)到對(duì)方發(fā)送的中止符,則從該引腳輸出高電平,同時(shí)將設(shè)置狀態(tài)寄存器。01二月202382(3)時(shí)鐘信號(hào)接收器輸入時(shí)鐘RXC:同步方式下,接收方的RxC與發(fā)送方的TxC使用同一個(gè)時(shí)鐘,且RxC的頻率等于波特率;異步方式下,RxC的頻率可設(shè)定為波特率的1、16或64倍。發(fā)送器輸入時(shí)鐘TXC:與接收器時(shí)鐘RxC的規(guī)定相同;工作時(shí)鐘CLK:為芯片內(nèi)部電路提供定時(shí),不用做收發(fā)數(shù)據(jù);時(shí)鐘周期范圍:0.42μs~1.35μs01二月202383(4)面向調(diào)制解調(diào)器的信號(hào)(1/2)數(shù)據(jù)終端就緒信號(hào)DTR#:低電平有效,輸出有效時(shí),表示8251A準(zhǔn)備就緒,可以接收數(shù)據(jù);數(shù)據(jù)裝置就緒信號(hào)DSR#:低電平有效,輸入有效時(shí),表示調(diào)制解調(diào)器準(zhǔn)備就緒,完成輸入數(shù)據(jù)的轉(zhuǎn)換;作為DTR#的應(yīng)答信號(hào);接收數(shù)據(jù)線(xiàn)RXD:輸入以上聯(lián)絡(luò)信號(hào)就緒后,通過(guò)RXD輸入數(shù)據(jù);8251A接收01二月202384(4)面向調(diào)制解調(diào)器的信號(hào)(2/2)請(qǐng)求發(fā)送信號(hào)RTS#:低電平有效,輸出有效時(shí),8251A已準(zhǔn)備好發(fā)送數(shù)據(jù);可由軟件定義;允許發(fā)送信號(hào)CTS#:低電平有效,輸入有效時(shí),表示調(diào)制解調(diào)器已準(zhǔn)備好接收數(shù)據(jù);作為RTS#的響應(yīng)信號(hào),通知8251A發(fā)送數(shù)據(jù);發(fā)送數(shù)據(jù)線(xiàn)TXD:輸出以上聯(lián)絡(luò)信號(hào)就緒后,通過(guò)TXD輸出數(shù)據(jù);8251A發(fā)送01二月2023853、8251A的內(nèi)部結(jié)構(gòu)串/并轉(zhuǎn)換接收緩沖器并/串轉(zhuǎn)換O發(fā)送緩沖器發(fā)送控制電路接收控制電路TXDTXRDYTXETXCRXDRXRDYRXCSYNDET/BD內(nèi)部總線(xiàn)數(shù)據(jù)總線(xiàn)緩沖器讀/寫(xiě)控制邏輯電路調(diào)制解調(diào)電路D0~D7RESETCLKC/DRDWRCSDSRDTRCTSRTSOOOOOO發(fā)送器接收器01二月202386接收器(概述)電路組成:接收緩沖器、接收移位寄存器(串-并轉(zhuǎn)換電路)、接收控制電路;有關(guān)接收工作:當(dāng)命令控制字中的“允許接收”RXE和“數(shù)據(jù)終端準(zhǔn)備好”DTR有效時(shí),接收器開(kāi)始監(jiān)視RXD上串行數(shù)據(jù);接收數(shù)據(jù)對(duì)同步和異步兩種方式采用不同的處理過(guò)程,并將接收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),存放在接收緩沖器中;接收緩沖器接收到數(shù)據(jù),即設(shè)置“接收準(zhǔn)備好”RXRDY狀態(tài)信號(hào),通知CPU讀取數(shù)據(jù);雙緩沖結(jié)構(gòu)01二月202387發(fā)送器(概述)電路組成:發(fā)送緩沖器、發(fā)送移位寄存器(并-串轉(zhuǎn)換電路)、發(fā)送控制電路;有關(guān)發(fā)送工作:TXRDY有效時(shí),CPU將并行數(shù)據(jù)寫(xiě)入發(fā)送數(shù)據(jù)緩沖器;當(dāng)外設(shè)就緒后,發(fā)回有效的CTS#信號(hào),若命令控制字中的TXEN有效,則采用同步、異步方式將數(shù)據(jù)封裝并發(fā)送;數(shù)據(jù)發(fā)送結(jié)束,使TXE引腳有效,CPU可再次寫(xiě)入下一個(gè)數(shù)據(jù);01二月202388調(diào)制/解調(diào)控制電路作用實(shí)現(xiàn)8251A與外界之間的聯(lián)絡(luò)控制;遠(yuǎn)距離傳送時(shí)提供與調(diào)制解調(diào)器的聯(lián)絡(luò)應(yīng)答信號(hào);近距離傳送時(shí)提供與外設(shè)的聯(lián)絡(luò)應(yīng)答信號(hào)。9.2.38251A的編程及應(yīng)用1、8251A的命令字與狀態(tài)字2、8251A的初始化編程3、8251A的應(yīng)用舉例01二月2023901、8251的命令字與狀態(tài)字方式字對(duì)8251A的工作方式進(jìn)行選擇,約定雙方的通信方式,數(shù)據(jù)格式,傳送速率等問(wèn)題。命令字確定8251A的實(shí)際操作類(lèi)型,迫使8251A進(jìn)入某種操作或工作狀態(tài),以便接收或發(fā)送數(shù)據(jù)。狀態(tài)字保存能反映8251A當(dāng)前工作狀態(tài)的狀態(tài)字,包括數(shù)據(jù)收發(fā)的就緒狀態(tài)、同步狀態(tài)、出錯(cuò)信息等內(nèi)容。01二月202391①方式控制字格式S1S0EPPENL1L0B1B0同步方式異步方式00內(nèi)同步雙同步無(wú)效01外同步雙同步1位停止位10內(nèi)同步單同步1.5位停止位11外同步單同步2位停止位校驗(yàn)選擇*0無(wú)校驗(yàn)01奇校驗(yàn)11偶校驗(yàn)數(shù)據(jù)長(zhǎng)度005位016位107位118位同、異步方式00同步方式01異步方式波特率因子為110異步方式波特率因子為1611異步方式波特率因子為6401二月202392方式字應(yīng)用舉例(1/2)例1:異步通信中,若幀數(shù)據(jù)格式為:字符長(zhǎng)度8位,停止位2位,奇校驗(yàn),波特率因數(shù)是16。相關(guān)的初始化程序段:
MOVDX,309H
;8251命令口
MOVAL,0DEH
;異步工作方式字
OUTDX,ALS1S2EPPENL1L0B1B00DEH110111102位停止位奇校驗(yàn)字符長(zhǎng)度為8位波特率因子為1601二月202393方式控制字應(yīng)用舉例(2/2)相關(guān)的初始化程序段:
MOVDX,309H
;8251命令口
MOVAL,1CH
;同步工作方式字
OUTDX,ALS1S2EPPENL1L0B1B01CH00011100雙同步、內(nèi)同步奇校驗(yàn)字符長(zhǎng)度為8位同步方式例2:同步通信中,若幀數(shù)據(jù)格式為:字符長(zhǎng)度8位,雙同步字符,內(nèi)同步方式,奇校驗(yàn)。01二月202394②命令字格式EHIRRTSERSBRKRXEDTRTXEN搜索同步字符0不搜索1搜索內(nèi)部復(fù)位0無(wú)效1復(fù)位命令發(fā)送請(qǐng)求0置RTS#無(wú)效1置RTS#有效狀態(tài)寄存器的錯(cuò)誤標(biāo)志復(fù)位0不復(fù)位1復(fù)位發(fā)中止字符0正常操作1發(fā)中止字符接收允許0禁止接收1允許接收數(shù)據(jù)終端準(zhǔn)備好0置DTR#無(wú)效1置DTR#有效發(fā)送允許0禁止發(fā)送1允許發(fā)送01二月202395關(guān)于命令字D0位(TXEN)、D2位(RXE)分別可作為發(fā)送和接收的允許控制位,0—禁止,1—允許;D1位(DTR)、D5位(RTS)設(shè)置對(duì)應(yīng)引腳的狀態(tài),設(shè)置位狀態(tài)與引腳狀態(tài)相反;D3位(SBRK)強(qiáng)迫TXD為低電平,發(fā)送連續(xù)的空號(hào)(中止符);D7位(EH)同步工作方式下,允許8251A搜索同步字符;01二月202396命令字應(yīng)用舉例(1/2)例3:使8251內(nèi)部復(fù)位??刂瞥绦蚨危?/p>
MOVDX,309H
MOVAL,40HOUTDX,ALEHIRRTSERSBRKRXEDTRTXEN010000008251A初始化時(shí),一定要在寫(xiě)方式控制字之前先使用復(fù)位命令對(duì)8251A進(jìn)行內(nèi)部的復(fù)位操作。01二月202397命令控制字應(yīng)用舉例(2/2)例4:使8251A同時(shí)允許接收和發(fā)送??刂瞥绦蚨危?/p>
MOVDX,309H
MOVAL,05HOUTDX,ALEHIRRTSERSBRKRXEDTRTXEN0000010101二月202398③狀態(tài)字格式數(shù)據(jù)裝置就緒同步檢出格式錯(cuò)超越錯(cuò)奇偶錯(cuò)發(fā)送器空接收就緒發(fā)送就緒DSRSYNDETFEOEPETXERXRDYTXRDYD7D6D5D4D3D2D1D0錯(cuò)誤標(biāo)志位狀態(tài)字是在8251A工作期間中自動(dòng)設(shè)置的;對(duì)應(yīng)位置1,表示該狀態(tài)有效。FE、OF、PE三個(gè)標(biāo)志位的置位并不會(huì)中止8251A的工作,但可以使用命令控制字的ER位使之復(fù)位;01二月202399狀態(tài)字應(yīng)用舉例(1/2)例5:查詢(xún)8251A接收器是否準(zhǔn)備好。
MOVDX,309H;狀態(tài)口
L: INAL,DX ;讀狀態(tài)字
ANDAL,02H
;查D1=1?(RXRDY)
JZL;未準(zhǔn)備好,則等待
MOVDX,308H
;數(shù)據(jù)口
INAL,DX01二月2023100狀態(tài)字應(yīng)用舉例(2/2)例6:檢查8251A接收的數(shù)據(jù)是否出錯(cuò)。
MOVDX,309H;狀態(tài)口
INAL,DX TESTAL,38H
;檢查FE,OE,PE三位
JNZERROR;若其中有一位為1,則出錯(cuò)01二月20231012、8251A的初始化編程8251A僅有一個(gè)命令端口(309H),且命令字沒(méi)有標(biāo)志位,故8251A根據(jù)命令字的寫(xiě)入順序區(qū)分命令字的類(lèi)型;異步方式下的初始化:復(fù)位命令——方式命令字——命令控制字——數(shù)據(jù)收發(fā)同步方式下的初始化復(fù)位命令——方式命令字——同步字符——命令控制字——數(shù)據(jù)收發(fā)課本P269圖9-168251A的編程流程圖01二月2023102異步方式下的初始化舉例例7:假設(shè)8251A工作于異步方式,波特率因子為16,每字符7個(gè)數(shù)據(jù)位,偶校驗(yàn),2位停止位,工作于接收和發(fā)送狀態(tài),使RTS#和DTR#有效,試寫(xiě)出初始化程序段。方式控制字命令控制字S1S2EPPENL1L0B1B00FAH111110102位停止位偶校驗(yàn)字符長(zhǎng)度為7位波特率因子為16EHIRRTSERSBRKRXEDTRTXEN0011011137H01二月2023103異步方式下的初始化程序段
MOVDX,309HMOVAL,
40H
;復(fù)位命令
OUTDX,ALMOVAL,
0FAH
;方式命令字
OUTDX,ALMOVAL,
37H
;命令控制字
OUTDX,AL01二月2023104同步方式下的初始化舉例例8:假定8251A工作于同步方式,單同步字符16H,內(nèi)同步,偶校驗(yàn),每字符7個(gè)數(shù)據(jù)位,試寫(xiě)出初始化程序段。方式控制字命令控制字S1S2EPPENL1L0B1B00B8H10111000內(nèi)同步,單同步偶校驗(yàn)字符長(zhǎng)度為7位同步方式EHIRRTSERSBRKRXEDTRTXEN101101110B7H01二月2023105同步方式下的初始化程序段
MOVDX,309HMOVAL,
40H
;復(fù)位命令
OUTDX,AL
MOVAL,
0B8H
;方式命令字
OUTDX,AL
MOVAL,
16H
;設(shè)置同步字符
OUTDX,ALMOVAL,
0B7H
;命令控制字
OUTDX,AL01二月20231063、8251A的應(yīng)用舉例8251A的數(shù)據(jù)傳送可采用查詢(xún)方式或中斷方式;查詢(xún)方式:先讀取狀態(tài)信息,再傳送數(shù)據(jù);狀態(tài)寄存器D0=1(TxRDY)——8251A發(fā)送就緒,CPU可以寫(xiě)數(shù)據(jù);狀態(tài)寄存器D1=1(RxRDY)——8251A已接收一幀數(shù)據(jù)并完成串并轉(zhuǎn)換,CPU可以讀入數(shù)據(jù);中斷方式:8251A發(fā)硬件的請(qǐng)求信號(hào)給CPU;8251A使用TxRDY、RxRDY引腳作為發(fā)送、接收中斷請(qǐng)求;收發(fā)均采用中斷方式時(shí),TxRDY、RxRDY通過(guò)或門(mén)與INTR相連;CPU響應(yīng)中斷時(shí),查詢(xún)狀態(tài)寄存器,區(qū)分是發(fā)送中斷還是接收中斷。01二月2023107例9.編寫(xiě)使8251A發(fā)送數(shù)據(jù)的程序段。要求:將8251A設(shè)置為異步傳送方式,波特率因子為64,采用偶校驗(yàn),1位停止位,7位數(shù)據(jù)位。8251A與外設(shè)有握手信號(hào),采用查詢(xún)方式發(fā)送數(shù)據(jù)。S1S2EPPENL1L0B1B007BH011110111位停止位偶校驗(yàn)字符長(zhǎng)度為7位波特率因子64EHIRRTSERSBRKRXEDTRTXEN0011000131H方式控制字命令控制字01二月2023108控制程序段
MOV DX,309H ;控制口地址 MOV AL,40H
;復(fù)位命令
OUT DX,AL
MOV AL,7B
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年心靈指導(dǎo)服務(wù)合同
- 2026年職業(yè)公益活動(dòng)企劃合同
- 2026年危險(xiǎn)廢物污染易發(fā)區(qū)保護(hù)保險(xiǎn)合同中
- 等級(jí)保護(hù)測(cè)評(píng)合同
- 2025年農(nóng)業(yè)科技創(chuàng)新與合作項(xiàng)目可行性研究報(bào)告
- 2025年風(fēng)能發(fā)電與儲(chǔ)能結(jié)合項(xiàng)目可行性研究報(bào)告
- 2025年智能音樂(lè)教育APP開(kāi)發(fā)項(xiàng)目可行性研究報(bào)告
- 生豬搬運(yùn)合同范本
- 海外代理協(xié)議合同
- 紅酒展會(huì)合同范本
- 電力安全風(fēng)險(xiǎn)管理
- 甘肅扶貧貸款管理辦法
- 原發(fā)性小腸腫瘤多學(xué)科綜合治療中國(guó)專(zhuān)家共識(shí)解讀課件
- 甲狀腺膿腫課件
- 醫(yī)學(xué)類(lèi)大學(xué)生職業(yè)規(guī)劃
- 2026版高中漢水丑生生物-第六章第1節(jié):細(xì)胞增殖 (第1課時(shí))
- 同型半胱氨酸的檢測(cè)及臨床應(yīng)用
- 【MOOC答案】《電子線(xiàn)路設(shè)計(jì)、測(cè)試與實(shí)驗(yàn)(二)》(華中科技大學(xué))章節(jié)作業(yè)慕課答案
- 2025年高考數(shù)學(xué)立體幾何檢測(cè)卷(立體幾何中的三角函數(shù)應(yīng)用)
- 2025年綜合類(lèi)-衛(wèi)生系統(tǒng)招聘考試-護(hù)士招聘考試歷年真題摘選帶答案(5卷100題)
- 駐外銷(xiāo)售人員管理辦法
評(píng)論
0/150
提交評(píng)論