| 8259A的初始化命令字ICW 初始化命令字ICWl~ICW4.用來(lái)對8259A進(jìn)行初始化。在初始化命令字中有一些位是針對8080/8085 CPU的,因為這兩種CPU早已不用了,所以,在下面命令字的說(shuō)明中對這些位不再作進(jìn)一步的解釋。在寫(xiě)命令字時(shí)這些位取0。 初始化命令字是要寫(xiě)入相應的初始化命令字寄存器中的。對8259A內部寄存器的操作需要通過(guò)端口進(jìn)行。一片8259A占用兩個(gè)端口地址,用端口選擇引腳A0來(lái)選擇。對于一般的微機系統,A0接系統地址總線(xiàn)的最低位A0,這樣,一片8259A占用的兩個(gè)地址是連續的,一個(gè)為偶地址(A0=0),另一個(gè)為奇地址(A0=1)。在下面命令字格式圖示中,左邊都有一個(gè)上方標“A0”的方框,框內有的為0,有的為1,這分別表示該命令字應寫(xiě)入8259A的AO為0的端口和寫(xiě)人A0為1的端口,在一般的微機系統中,分別表示寫(xiě)入8259A的偶地址端口和寫(xiě)入奇地址端口。 1)ICWl ICWl主要用來(lái)設定中斷請求的觸發(fā)方式,是否級聯(lián),初始化過(guò)程中用不用ICW4等。 它的格式和含義如圖5.11所示。圖中一些位格中有英文縮寫(xiě),如D1位中有SNGL (single)”,這是給每一位起一個(gè)名稱(chēng),表示出這一位(也可以是幾位)的含義(一般是該位為l 時(shí)的含義)。這樣說(shuō)起來(lái)比較方便,例如,選擇單片或級聯(lián)是SNGL位,而不必說(shuō)成Icwl的第1位。 ![]() ICWl的D4位恒為1,連同A0為0,作為ICWl的標志。這是因為在初始化時(shí),ICWl是第一個(gè)應寫(xiě)入的,它必須有區別于其他初始化命令字,包括操作命令字的特征(ICW2、ICW3、ICW4的A0都為1,而A0為0對應的操作命令字有兩個(gè):OCW2和OCW3,它們的D4位都為0)。 2)ICW2 ICW2用來(lái)設置中斷向量(在8086系統或PC系列機中,這里所說(shuō)的中斷向量實(shí)際是中斷類(lèi)型碼)。在用于8086/8088系統時(shí),該命令字的格式和含義如圖5.12所示。高5位規定中斷向量的高5位,即同一片8259A的8級中斷的中斷向量的高5位是相同的,而低3位是對應IR線(xiàn)的編碼(000~111)。圖中低3位標“×”表示取值任意,一般取0。有時(shí)將ICW2稱(chēng)為中斷向量字節。 ![]() 3)ICW3 ICW3僅在8259A級聯(lián)時(shí)才需要。對于主片和從片,ICW3的意義不同。 對于主片,ICW3的格式和含義如圖5.13所示。8位的意義相同,某位為0,對應的IR線(xiàn)接中斷請求信號;為1,對應的IR線(xiàn)接從片的中斷請求信號INT。 ![]() 對于從片,ICW3的格式和含義如圖5.14所示。高5位固定為0。低3位是從片的標識碼,等于從片所連接的主片IR輸入端的編碼。例如,一從片的INT接到主片的IR2,則該從片的ICW3應為00000010B(后3位為IR2的編碼010)。 ![]() 從片的標識碼在中斷響應時(shí)要用到。當CPU響應來(lái)自某從片的中斷請求時(shí),連續產(chǎn)生兩個(gè)中斷響應周期。在第一個(gè)中斷響應周期,主片把得到響應的IR編碼送上級聯(lián)線(xiàn)(CAS2~CAS0),從片拿它與自己的標識碼進(jìn)行比較,若結果相同,表明cPu正在響應本片的中斷,于是準備該中斷的中斷向量,在第二個(gè)中斷響應周期將其送上數據總線(xiàn)。 4)ICW4 ICW4的功能較多,用來(lái)設置是否為特殊全嵌套方式,是否為緩沖器方式,是否為自動(dòng)中斷結束中斷方式,是否為8086/8088系統等,其格式和含義如圖5.15所示。 ![]() |
聯(lián)系客服