版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 11 章,第11章 并行接口,教學重點 8255A的工作方式和編程 8255A的應(yīng)用 簡易鍵盤的掃描程序 LED數(shù)碼管的多位顯示,并行數(shù)據(jù)傳輸方式,以計算機的字長,通常是8位、16位或32位為傳輸單位,一次傳送一個字長的數(shù)據(jù)適合于外部設(shè)備與微機之間進行近距離、大量和快速的信息交換例如:微機與并行接口打印機、磁盤驅(qū)動器微機系統(tǒng)中最基本的信息交換方法例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間,11.1 并
2、行接口電路8255A,具有多種功能的可編程并行接口電路芯片最基本的接口電路:三態(tài)緩沖器和鎖存器與CPU間、與外設(shè)間的接口電路:狀態(tài)寄存器和控制寄存器還有端口的譯碼和控制電路、中斷控制電路分3個端口,共24個外設(shè)引腳共三種輸入輸出工作方式,11.1.1 8255A的內(nèi)部結(jié)構(gòu)和引腳,1. 外設(shè)數(shù)據(jù)端口,端口A:PA0~PA7A組,支持工作方式0、1、2端口B:PB0~PB7B組,支持工作方式0、1端口C:PC0~PC7
3、僅支持工作方式0A組控制高4位PC4~PC7B組控制低4位PC0~PC3,端口A:PA0~PA7常作數(shù)據(jù)端口,功能最強大端口B:PB0~PB7常作數(shù)據(jù)端口端口C:PC0~PC7可作數(shù)據(jù)、狀態(tài)和控制端口分兩個4位,每位可獨立操作控制最靈活,最難掌握,2. 與處理器接口,D0 ~ D7數(shù)據(jù)線A0 ~ A1地址線RD*讀信號WR*寫信號CS*片選信號RESET復(fù)位信號,11.1.2 8255A的工作方式,方式
4、0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設(shè)適用于查詢和中斷方式的接口電路,方式0輸入時序,,請體會這里8255A的數(shù)據(jù)緩沖作用,方式0輸出時序,8255A對CPU通過它輸出給外設(shè)的數(shù)據(jù)進行鎖存,,方式1輸入引腳:A端口,數(shù)據(jù)選通信號表示外設(shè)已經(jīng)準備好數(shù)據(jù),輸入緩沖器滿信號表示A口已經(jīng)接收數(shù)據(jù),中斷請求信號
5、請求CPU接收數(shù)據(jù),方式1輸入引腳:B端口,方式1需借用端口C用做聯(lián)絡(luò)信號同時還具有中斷請求和屏蔽功能,方式1輸入聯(lián)絡(luò)信號,STB*——選通信號,低電平有效由外設(shè)提供的輸入信號,當其有效時,將輸入設(shè)備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯(lián)絡(luò)信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,
6、要求CPU讀取外設(shè)數(shù)據(jù),方式1輸入時序,STB*和IBF是外設(shè)和8255A間的一對應(yīng)答聯(lián)絡(luò)信號,為的是可靠地輸入數(shù)據(jù),方式1中斷控制,8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復(fù)位禁止中斷對INTE的操作通過寫入端口C的對應(yīng)位實現(xiàn),INTE觸發(fā)器對應(yīng)端口C的位是作應(yīng)答聯(lián)絡(luò)信號的輸入信號的哪一位,只要對那一位置位/復(fù)位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對應(yīng)PC4端口B的INTEB對應(yīng)PC
7、2,方式1輸出引腳:A端口,外設(shè)響應(yīng)信號表示外設(shè)已經(jīng)接收到數(shù)據(jù),輸出緩沖器滿信號表示CPU已經(jīng)輸出了數(shù)據(jù),中斷請求信號請求CPU再次輸出數(shù)據(jù),方式1輸出引腳:B端口,方式1輸出聯(lián)絡(luò)信號,OBF*——輸出緩沖器滿信號,低有效8255A輸出給外設(shè)的一個控制信號,當其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走ACK*——響應(yīng)信號,低有效外設(shè)的響應(yīng)信號,指示8255A的端口數(shù)據(jù)已由外設(shè)接受INTR——中斷請求信號,高
8、有效當輸出設(shè)備已接受數(shù)據(jù)后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù),端口A的INTEA對應(yīng)PC6端口B的INTEB對應(yīng)PC2,方式1輸出時序,OBF*和ACK*是外設(shè)和8255A間的一對應(yīng)答聯(lián)絡(luò)信號,為的是可靠地輸出數(shù)據(jù),方式2雙向方式,方式2將方式1的選通輸入輸出功能組合成一個雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同方式2的數(shù)據(jù)
9、輸入過程與方式1的輸入方式一樣方式2的數(shù)據(jù)輸出過程與方式1的輸出方式有一點不同:數(shù)據(jù)輸出時8255A不是在OBF*有效時向外設(shè)輸出數(shù)據(jù),而是在外設(shè)提供響應(yīng)信號ACK*時才送出數(shù)據(jù),方式2雙向引腳,用PC6設(shè)置INTE1(輸出)用PC4設(shè)置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號,方式2雙向時序,11.1.3 8255A的編程,初始化編程:一個方式控制字采用控制I/O地址:A1A0=11工作過程中:通過數(shù)據(jù)
10、端口對外設(shè)數(shù)據(jù)進行讀寫數(shù)據(jù)讀寫利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBM PC/XT機上,端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H,1. 寫入方式控制字:控制字格式,1. 寫入方式控制字:示例,要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:mov dx,0fffeh;假設(shè)控
11、制端口為FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口,2. 讀寫數(shù)據(jù)端口,初始化編程后:當數(shù)據(jù)端口作為輸入接口時,執(zhí)行輸入IN指令將從輸入設(shè)備得到外設(shè)數(shù)據(jù)當數(shù)據(jù)端口作為輸出接口時,執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給輸出設(shè)備8255A具有鎖存輸出數(shù)據(jù)的能力對輸出方式的端口同樣可以輸入不是讀取外設(shè)數(shù)據(jù)讀取的是上次CPU給外設(shè)的數(shù)據(jù),2. 讀寫數(shù)據(jù)端口:示例,利用8255A的輸出
12、鎖存能力,可實現(xiàn)按位輸出控制 對輸出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假設(shè)為FFFAHin al,dx;讀出B端口原輸出內(nèi)容or al,80h;使PB7=1out dx,al;輸出新的內(nèi)容,3. 讀寫端口C:歸納1,C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出,在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組,3. 讀寫端口C:歸
13、納2,當A和B端口工作在方式1或方式2時,C端口的部分或全部引腳將被征用,其余引腳仍可設(shè)定工作在方式0,3. 讀寫端口C:歸納3,對端口C的數(shù)據(jù)輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設(shè)置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器,端口C的位控制字,位控制字寫入控制端口特別便于置位復(fù)
14、位內(nèi)部中斷允許觸發(fā)器INTE,3. 讀寫端口C:歸納4,讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡(luò)線的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字,端口C的狀態(tài)字,,,,11.2 8255A的應(yīng)用,作為通用的并行接口電路芯片,825A具有廣泛的應(yīng)用應(yīng)用在IBM PC/XT微機上應(yīng)用于打印機接口電路連接簡易鍵盤驅(qū)動L
15、ED數(shù)碼管……,11.2.1 8255A在IBM PC/XT上的應(yīng)用,工作在基本輸入/輸出方式0端口A為方式0輸入,用來讀取鍵盤掃描碼端口B工作于方式0輸出,例如控制揚聲器等端口C為方式0輸入,讀取系統(tǒng)狀態(tài)和配置系統(tǒng)的初始化編程:mov al,10011001b;方式控制字99Hout 63h,al,打印機接口的信號與時序,主機把數(shù)據(jù)送給引腳DATA0~DATA7同時送出數(shù)據(jù)選通信號STROBE*打印機在BUS
16、Y信號線上發(fā)出忙信號打印機處理好輸入的數(shù)據(jù)時撤消忙信號同時又送出一個響應(yīng)信號ACK*,11.2.2 用8255A方式0與打印機接口,8255A的初始化,mov dx,0fffeh;控制端口地址:FFFEHmov al,10000001B;方式控制字:91Hout dx,al;A端口方式0輸出,C端口上輸出、下輸入mov al,00001111B;端口C的復(fù)位置位控制字,使PC7=1out dx,a
17、l,例11.1,打印子程序:查詢,printcprocpush axpush dxprn: mov dx,0fffch;讀取端口Cin al,dx;查詢打印機狀態(tài)and al,04h;PC2=BUSY=0?jnz prn;PC2=1,打印機忙,則循環(huán)等待,例11.1,打印子程序:輸出,mov dx,0fff8h;PC2=0,打印機不忙,則輸出數(shù)據(jù)mov al,ahout dx,
18、al;將打印數(shù)據(jù)從端口A輸出,例11.1,打印子程序:打印,mov dx,0fffeh;從PC7送出控制低脈沖mov al,00001110B;置STROBE*=0out dx,alnop;產(chǎn)生一定寬度的低電平nopmov al,00001111B;置=1out dx,al;最終,STROBE*產(chǎn)生低脈沖信號,例11.1,打印子程序:返回,pop dxpop axretprintce
19、ndp,例11.1,11.2.3 用8255A方式1與打印機接口,8255A方式1與打印機接口時序配合,方式1時序,打印機時序,8255A的初始化,mov dx,0fffehmov al,0a0hout dx,almov al,0ch;使INTEA(PC6)為0,禁止中斷out dx,al……mov cx,counter;打印字節(jié)數(shù)送CXmov bx,offset buffer;取字符串首地址c
20、all prints;調(diào)用打印子程序,例11.2,打印子程序:輸出,printsprocpush ax;保護寄存器push dxprint1:mov al,[bx];取一個數(shù)據(jù)mov dx,0fff8hout dx,al;從端口A輸出,例11.2,打印子程序:查詢,mov dx,0fffchprint2:in al,dxtest al,80h;檢測(PC7)為1否?jz prin
21、t2;為0,說明打印機沒有響應(yīng),繼續(xù)檢測,例11.2,打印子程序:返回,inc bx;為1,說明打印機已接受數(shù)據(jù)loop print1;準備取下一個數(shù)據(jù)輸出pop dx;打印結(jié)束,恢復(fù)寄存器pop axret;返回printsendp,例11.2,11.2.4 雙機并行通信接口,甲機的初始化,mov dx,0fffehmov al,0a0hout dx,al;工作方式字:端口A方
22、式1輸出mov al,0dh;使PC6(INTEA)=1,允許中斷out dx,al,例11.3,甲機發(fā)送程序,trsmt: mov dx,0fffchin al,dx;查詢PC3(INTRA)=1?and al,08hjz trsmtmov dx,0fff8h;發(fā)送數(shù)據(jù)mov al,ahout dx,al,例11.3,乙機的初始化,mov dx,0fffehmov al,
23、98hout dx,al;工作方式字:端口A方式0輸入mov al,01h;使PC0(ACK*)=1,因尚未收到數(shù)據(jù)out dx,al,例11.3,乙機:查詢接收,receive:mov dx,0fffchin al,dx;查詢PC4(OBF*)=0?and al,10hjnz receivemov dx,0fff8h ;接收數(shù)據(jù)in al,dxmov ah,al,
24、例11.3,乙機:接收響應(yīng),mov dx,0fffehmov al,00h;使PC0(ACK*)=0out dx,alnop;適當延時,產(chǎn)生一定寬度的低脈沖nopmov al,01h;使PC0(ACK*)=1out dx,al;產(chǎn)生低脈沖ACK*信號,例11.3,實驗5 并行接口實驗,要求⑴類似習題11.8 要求⑵對應(yīng)例題11.2 請在對比過程中,掌握例題、習題和完成實驗要求,提示,11.3
25、 鍵盤及其接口,鍵盤是微機系統(tǒng)最常使用的輸入設(shè)備小鍵盤:適用于單板機或以微處理器為基礎(chǔ)的儀器,實現(xiàn)數(shù)據(jù)、地址、命令及指令等的輸入獨立鍵盤:通過5芯電纜與PC微機主機連接,11.3.1 簡易鍵盤的工作原理,最簡單的線性結(jié)構(gòu)鍵盤每一個引腳連接一個鍵輸入0/1反映健是否高低,11.3.1 簡易鍵盤的工作原理,常用的矩陣結(jié)構(gòu)鍵盤每行連接一個引腳每列連接一個引腳利用控制線為低、讀取檢測線來識別閉合鍵,1. 掃描法,先使第0行
26、接低電平,其余行為高電平,然后看第0行是否有鍵閉合(通過檢查列線電位實現(xiàn))此后,再將第1行接地,然后檢測列線是否有變?yōu)榈碗娢坏木€。如此往下一行一行地掃描,直到最后一行在掃描過程中,當發(fā)現(xiàn)某一行有鍵閉合時,便在掃描中途退出通過組合行線和列線可識別此刻按下的是哪一鍵,第1段:是否有鍵按下,key1:mov al,00mov dx,rowportout dx,al;使所有行線為低電平 mov dx,colport
27、 in al,dx;讀取列值cmp al,0ffh;判定是否有列線為低電平j(luò)z key1;無閉合鍵,循環(huán)等待call delay;有,延遲20ms清除抖動,鍵盤掃描程序,第2段:識別按鍵(掃描),mov cx,8;行數(shù)送CXmov ah,0feh;掃描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;輸出行值(掃描值)mov dx,c
28、olportin al,dx;讀進列值,鍵盤掃描程序,第2段:識別按鍵(判斷),cmp al,0ffh;判斷有無低電平的列線jnz key3;有,則轉(zhuǎn)下一步處理rol ah,1;無,則移位掃描值loop key2;準備下一行掃描jmp key1;所有行都沒有鍵按下,則返回繼續(xù)檢測key3: ……;此時,al=列值,ah=行值,鍵盤掃描程序,2. 反轉(zhuǎn)法,首先,將行線作為控制線接一個
29、輸出端口,將列線作為檢測線接一個輸入端口CPU通過輸出端口將行線(控制線)全部設(shè)置為低電平,然后從輸入端口讀取列線(檢測線)然后,將行線和列線的作用互換,即將列線作為控制線接輸出端口,行線作為檢測線接輸入端口將剛才讀得的列值從列線所接端口輸出,再讀取行線的輸入值這樣,當一個鍵被按下時,必定可以讀得一對唯一的行值和列值,條件:連接行線和列線的接口電路必須支持動態(tài)改變輸入、輸出方式,第1段:是否有鍵按下,……;設(shè)置行線接輸出
30、端口,列線接輸入端口key2:mov al,00mov dx,rowportout dx,al;設(shè)置行線全為低mov dx,colportin al,dx;讀取列值cmp al,0ffhjz key2;無閉合鍵,循環(huán)等待push ax;有閉合鍵,保存列值 push ax,鍵盤掃描程序,第2段:識別按鍵(反轉(zhuǎn)法),……;設(shè)置行線接輸入端口,列線接輸出端mov dx,c
31、olportpop axout dx,al;輸出列值mov dx,rowportin al,dx;讀取行值pop bx;組合行列值mov ah,bl;此時,al=行值,ah=列值,鍵盤掃描程序,行列值表和鍵代碼表,;鍵盤的行列值表tabledw 0fefeh;鍵0的行列值(鍵值)dw 0fdfeh;鍵1的行列值dw 0fbfeh;鍵2的行列值……;其他鍵的行列值;鍵
32、盤的鍵代碼表chardb ……;鍵0的代碼值db ……;鍵1的代碼值……;其他鍵的代碼值,鍵盤掃描程序,第3段:查找鍵代碼,mov si,offset tablemov di,offset charmov cx,64;CX=鍵的個數(shù)key3:cmp ax,[si] ;與鍵值比較 jz key4;相同,說明查到inc si;不相同,繼續(xù)比較inc siinc di
33、loop key3jmp key1;全部比較完,仍無相同,說明是重鍵,鍵盤掃描程序,第4段:等待按鍵釋放,key4:mov al,[di];獲取鍵代碼送AL……;判斷按鍵是否釋放,沒有則等待call delay;按鍵釋放,延時消除抖動……;后續(xù)處理,鍵盤掃描程序,3. 抖動和重健問題,機械按鍵存在抖動現(xiàn)象當按下或釋放一個鍵時,往往會出現(xiàn)按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)
34、抖動的持續(xù)時間通常不大于10ms采用硬件消抖電路或軟件延時方法解決重鍵指兩個或多個鍵同時閉合出現(xiàn)重鍵時,讀取的鍵值必然出現(xiàn)有一個以上的0是否給予識別和識別哪一個鍵,重健問題的處理,簡單情況:不予識別,認為是錯誤的按鍵通常情況:只承認先識別出來的鍵連鎖法:直到所有鍵都釋放后,讀入下一個鍵巡回法:等被識別的鍵釋放以后,就可以對其他閉合鍵作識別,而不必等待全部鍵釋放正常的組合鍵:都識別出來,11.3.2 PC機鍵盤的工作原理
35、,1. PC機鍵盤的工作過程,鍵盤電路正常工作時不斷地掃描鍵盤矩陣有按鍵,則確定按鍵位置之后以串行數(shù)據(jù)形式發(fā)送給系統(tǒng)板鍵盤接口電路鍵按下時,發(fā)送該鍵的接通掃描碼鍵松開時,發(fā)送該鍵的斷開掃描碼若一直按住某鍵,則以拍發(fā)速率(每秒2~30次)連續(xù)發(fā)送該鍵的接通掃描碼,接通掃描碼反映該鍵在鍵盤上的位置斷開掃描碼(接通掃描碼最高位置1)=接通掃描碼+80H,2. 鍵盤接口電路的工作過程,接收一個串行形式字符以后,進行串并轉(zhuǎn)換然后
36、產(chǎn)生鍵盤中斷IRQ1請求,等待讀取鍵盤數(shù)據(jù)CPU響應(yīng)中斷,則進入09H鍵盤中斷服務(wù)程序:① 讀取鍵盤掃描碼:用IN AL,60H即可② 響應(yīng)鍵盤:系統(tǒng)使PB7=1③ 允許鍵盤工作:系統(tǒng)使PB7=0④ 處理鍵盤數(shù)據(jù)⑤ 給8259A中斷結(jié)束EOI命令,中斷返回,3. PC機鍵盤中斷服務(wù)程序,09H號中斷服務(wù)程序(kbint過程)完成常規(guī)的操作處理鍵盤數(shù)據(jù):將獲取的掃描碼通過查表轉(zhuǎn)換為對應(yīng)的ASCII碼送緩沖區(qū)。對
37、于不能顯示的按鍵,則轉(zhuǎn)換為0,且不再送至緩沖區(qū)鍵盤I/O功能程序(kbget子程序)從緩沖區(qū)中讀取轉(zhuǎn)換后的ASCII碼功能調(diào)用(主程序)循環(huán)顯示鍵入的字符,鍵盤緩沖區(qū),中斷服務(wù)程序與子程序之間傳遞參數(shù)先進先出循環(huán)隊列隊列空進隊列出隊列隊列滿,鍵盤緩沖區(qū),bufferdb 10 dup(0)bufptr1dw 0;隊列頭指針bufptr2dw 0;隊列尾指針,例11.4,鍵盤代碼表,scantbdb 0,
38、1,’1234567890-=’,08h;鍵盤第1排的按鍵,從ESC到退格db 0,’qwertyuiop[]’,0dh;鍵盤第2排的按鍵,從Tab到回車……db 0,0,’789-456+1230.’;右邊小鍵盤,從Num Lock到Del,例11.4,設(shè)置中斷向量1,mov ax,3509hint 21hpush espush bx;保存09H號原中斷向量cli;關(guān)中斷push
39、ds;設(shè)置09H號新中斷向量mov ax,seg kbintmov ds,axmov dx,offset kbint,例11.4,設(shè)置中斷向量2,mov ax,2509hint 21hpop dsin al,21h;允許IRQ1中斷,其他不變push axand al,0fdhout 21h,alsti;開中斷,例11.4,調(diào)用并顯示,start1:call kbget;獲取按鍵的ASC
40、II碼cmp al,1jz start2;是ESC鍵,則退出push ax;保護字符mov dl,al;顯示字符mov ah,2int 21hpop ax;恢復(fù)字符,例11.4,處理回車符,cmp al,0dh;該字符是回車符嗎?jnz start1;不是,取下一個按鍵字符mov dl,0ah;是回車符,則再進行換行mov ah,2int 21hjmp star
41、t1;繼續(xù)取字符,例11.4,恢復(fù)中斷向量,start2:clipop axout 21h,alpop dxpop dsmov ax,2509hint 21hstimov ax,4c00h;返回DOSint 21h,例11.4,子程序:判斷緩沖區(qū)空否,kbgetprockbget1:push bx;保護BXclimov bx,bufptr1;取頭指針
42、cmp bx,bufptr2;與尾指針相等否?jnz kbget2;不相等,說明緩沖區(qū)有字符,轉(zhuǎn)移sti;相等,說明緩沖區(qū)空pop bx jmp kbget1;等待緩沖區(qū)有字符,例11.4,子程序:獲取按鍵字符,kbget2:mov al,buffer[bx];取字符送ALinc bx;隊列頭指針增量cmp bx,10;是否指向隊列末端jc kbget3;沒有,轉(zhuǎn)移m
43、ov bx,0;指針指向隊列末端,則循環(huán),指向始端kbget3:mov bufptr1,bx;設(shè)定新隊列頭指針stipop bxretkbgetendp,例11.4,中斷服務(wù)程序:響應(yīng)鍵盤,kbintprocsti;開中斷push ax;保護寄存器push bxin al,60h;讀取鍵盤掃描碼push axin al,61h;使PB7=1,響應(yīng)鍵盤or
44、 al,80hout 61h,aland al,7fh;使PB7=0,允許鍵盤out 61h,al,例11.4,中斷服務(wù)程序:數(shù)據(jù)處理,pop axtest al,80h;是斷開掃描碼?jnz kbint2;是,則退出mov bx,offset scantb;是接通掃描碼,取表首地址 xlat;將掃描碼轉(zhuǎn)換成ASCII碼cmp al,0;是否為合法的ASCII碼?jz kbint2
45、;不是,則退出,例11.4,中斷服務(wù)程序:指針增量,mov bx,bufptr2mov buffer[bx],al;將ASCII碼存入緩沖區(qū)隊列尾inc bx;隊列尾指針增量cmp bx,10;是否指向隊列末端?jc kbint1;沒有,轉(zhuǎn)移mov bx,0;指針指向隊列末端,則循環(huán),指向始端,例11.4,中斷服務(wù)程序:判斷緩沖區(qū)滿否,kbint1:cmp bx,bufptr1jz
46、kbint2 ;若隊列滿,則退出mov bufptr2,bx;隊列不滿,設(shè)置新的隊列尾指針,例11.4,中斷服務(wù)程序:中斷返回,kbint2:mov al,20h;向8259A發(fā)送普通中斷結(jié)束命令out 20h,alpop bx;恢復(fù)寄存器pop axiret;中斷返回kbintendp,例11.4,實驗6 小鍵盤實驗,認真閱讀教材中掃描法和反轉(zhuǎn)法識別按鍵的程序段 延時子程序可以采
47、用軟件延時程序 延時子程序也可以采用實時時鐘的硬件延時,它更精確,提示,11.4 LED數(shù)碼管及其接口,發(fā)光二極管LED是最簡單的顯示設(shè)備由7段LED就可以組成的LED數(shù)碼管LED數(shù)碼管廣泛用于單板微型機、微型機控制系統(tǒng)及數(shù)字化儀器中LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等,1. LED數(shù)碼管的工作原理,主要部分是7段發(fā)光管順時針分別稱為a、b、c、d、e、f、g有的產(chǎn)品還附帶有一個小數(shù)點h通過7個發(fā)光段的不同組合主要
48、顯示0~9也可顯示A~F(16進制數(shù))還可顯示個別特殊字符:-、P,LED數(shù)碼管的結(jié)構(gòu),共陽極,共陰極,2. 單個LED數(shù)碼管的顯示,單個數(shù)碼管的顯示,LEDtbdb 3fh,06h,5bh,……;顯示代碼表……mov al,1;AL←要顯示的數(shù)字mov bx,offset LEDtbxlat;換碼:AL←DS:[BX+AL]mov dx,portout dx,al;輸出顯示,軟件譯碼,3.
49、多個LED數(shù)碼管的顯示,8個數(shù)碼管:用2個8位輸出端口控制硬件上用公用的驅(qū)動電路來驅(qū)動各數(shù)碼管軟件上用掃描方法實現(xiàn)數(shù)碼顯示,位控制端口電路,位控制端口作用,控制哪個(位)數(shù)碼管顯示當位控制端口的控制碼某位為低電平時,經(jīng)反相驅(qū)動,便在相應(yīng)數(shù)碼管的陽極加上了高電平,這個數(shù)碼管就可以顯示數(shù)據(jù),,位控制:Di=0,相應(yīng)位發(fā)光,,,,段控制端口電路,D0D1D2D3D4D5D6D7,陽極,位0,a b c d e f g h,
50、位1,位2,,,,,,,,,,,,,,,,,,,D0~D7,段控制,,,,正相寄存驅(qū)動,段控制端口作用,控制哪個段顯示,決定具體顯示什么數(shù)碼段控制端口送出顯示代碼到數(shù)碼管相應(yīng)段此端口由8個數(shù)碼管共用,,段控制:Di=0,相應(yīng)段發(fā)光,通過位、段控制端口的共同作用才能確定哪個數(shù)碼管顯示什么數(shù)碼,數(shù)碼緩沖區(qū),;數(shù)據(jù)段LEDdtdb 8 dup(0);數(shù)碼緩沖區(qū);主程序mov si,offset LEDdt
51、call LEDdisp;調(diào)用顯示子程序,例11.5,獲取顯示代碼,LEDdispprocpush axpush bxpush dxmov bx,offset LEDtbmov ah,0feh;指向最左邊數(shù)碼管LED1: lodsb;取出要顯示的數(shù)字xlat cs:LEDtb;得到顯示代碼:AL←CS:[BX+AL],例11.5,數(shù)碼顯示,mov dx,segport;segpo
52、rt為段控制端口out dx,al;送出段碼mov al,ah;取出位顯示代碼 mov dx,bitport;bitport為位控制端口out dx,al;送出位碼call delay;實現(xiàn)數(shù)碼管延時顯示,例11.5,顯示下位數(shù)碼,rol ah,1;指向下一個數(shù)碼管 cmp ah,0feh;最右邊的數(shù)碼管?jnz LED1;顯示下一個數(shù)字pop dxpop bxpop a
53、xret;8位數(shù)碼管都顯示LEDtbdb 0c0h,0f9h, ……LEDdispendp,例11.5,軟件延時,timer= 10;延時常量delayprocpush bxpush cxmov bx,timer;外循環(huán):timer確定的次數(shù)delay1:xor cx,cxdelay2:loop delay2;內(nèi)循環(huán):216次循環(huán),例11.5,軟件延時,dec bxjnz
54、 delay1pop cxpop bxretdelayendp,例11.5,通過控制重復(fù)頻率和延時時間就可以得到各種顯示效果,實驗7 LED數(shù)碼管顯示實驗,請認真閱讀教材中8位數(shù)碼管顯示子程序 延時子程序可以采用軟件延時程序 延時子程序建議采用實時時鐘的硬件延時,它更精確,也便于控制時間,提示,11.5 并行打印機接口,一般采用Centronics標準接口或其簡化接口Centronics接口是的一個
55、并行接口協(xié)議這個協(xié)議規(guī)定了36腳簧式插頭座和信號含義其中前11條線是關(guān)鍵信號,他們是8條數(shù)據(jù)線、3條聯(lián)絡(luò)線(選通、響應(yīng)和打印機忙)還有一些特殊控制線、狀態(tài)線PC系列機的并行打印機接口是一個25針插口,1. 控制打印機的輸出信號,SLCTIN*選擇輸入——相當于打印機選中信號INIT*初始化——使打印機被復(fù)位成初始狀態(tài)AUTOFEEDXT*自動走紙——使打印機打印后自動走紙一行STROBE*選通——用于使打印機接收數(shù)據(jù)的選
56、通信號。負脈沖的寬度在接收端應(yīng)大于0.5?s,數(shù)據(jù)才可靠地存入打印機數(shù)據(jù)緩沖區(qū),2. 反映打印機狀態(tài)的輸入信號,BUSY忙——表示打印機不能接收數(shù)據(jù)ACK*響應(yīng)——打印機接收一個數(shù)據(jù)字節(jié)后就回送一個響應(yīng)的負脈沖信號(脈寬約為5?s),表示打印機已準備好接收新數(shù)據(jù)PE紙用完——說明打印機無紙SLCT選擇——表示處于聯(lián)機選中狀態(tài)ERROR*錯誤——當打印機處于無紙、脫機或錯誤狀態(tài)之一時,這個信號變?yōu)榈碗娖?3. 輸出數(shù)據(jù)線,DA
57、TA0~DATA7——8位并行數(shù)據(jù)信號線打印數(shù)據(jù)通過它們送至打印機8位數(shù)據(jù)的可靠輸出通過選通STROBE*、響應(yīng)ACK*和忙BUSY三個聯(lián)絡(luò)信號控制,打印時序,打印機時序,第11章教學要求,1. 掌握8255A的結(jié)構(gòu)特點和引腳功能2. 掌握8255A的各種工作方式、編程及方式0/1的應(yīng)用3. 理解簡易鍵盤的工作原理、抖動和重鍵問題及解決方法4. 掌握鍵盤掃描程序(掃描法、行反轉(zhuǎn)法)的編寫,第11章教學要求(續(xù)),5. 了解PC
58、機鍵盤的工作原理6. 掌握LED數(shù)碼管的工作原理和多位顯示方法7. 了解并行打印機接口的引腳定義和接口時序習題11(第 274 頁)——11.4 11.7 11.8 11.10 11.11 11.15,8255A的鍵盤和揚聲器控制示意,,打印機時序,,方式1輸出時序,,矩陣結(jié)構(gòu)鍵盤,,機械按鍵的抖動現(xiàn)象,,硬件消抖電路,,鍵位置和掃描碼,,隊列空,隊列中無字符,隊列頭指針等于隊列尾指針,,進隊列,數(shù)據(jù)進入由隊列尾指針指示的單元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- powerpoint-大比特商務(wù)網(wǎng)服務(wù)于電子制造業(yè)
- holtektouchswtich-大比特商務(wù)網(wǎng)服務(wù)于電子制造業(yè)是
- 汽車構(gòu)造概述-大比特商務(wù)網(wǎng)服務(wù)于電子制造業(yè)是中國專業(yè)的
- 微機原理與接口技術(shù)
- 微機原理與接口技術(shù)習題答案5章
- 微機原理與接口技術(shù)大綱
- 微機原理與接口技術(shù)報告
- 微機原理與接口技術(shù)試題
- 微機原理與接口技術(shù)試題及答案a
- 微機原理與接口技術(shù)教案
- 微機原理及接口技術(shù) 實驗報告
- 微機原理及接口技術(shù)復(fù)習題
- 微機原理與接口技術(shù)習題答案
- 微機原理與接口技術(shù)習題 答案
- 微機原理與接口技術(shù)實驗教案
- 微機原理與接口技術(shù)習題庫
- 微機原理與接口技術(shù)(習題答案)
- 微機原理與接口技術(shù)第八章作業(yè)
- 微機原理與接口技術(shù)(第3版)第二章預(yù)備2(0)
- “微機原理與接口技術(shù)”教學方式探討
評論
0/150
提交評論