首頁>教育>

實驗三:並行介面晶片8255A的應用

實驗器材:

所需器材

電路圖:

模擬電路圖

《微機原理介面與技術》(8086彙編)期末考試、考研常見考題、習題,題型彙總、知識點總結、專周(十二)之並行介面晶片8255A的應用

程式原始碼:
;author:liuxianfei0810IO3 EQU 0030HCODE  SEGMENT 'CODE'    ASSUME CS:CODE,DS:CODEMAIN PROC FARSTART:MOV AX,CODE      MOV DS,AX	  ;author:liuxianfei0810L:    MOV AL,10000001B; D7:置放向字1有效 D6-5:方式0 D4:埠A輸出; D3:埠C上半部分輸出 D2:方式0 D1:埠B輸出 D0:埠C下半部分輸入; 埠C上半部分 PC7-4        MOV DX,IO3+6;0110 資料匯流排->控制字暫存器 配合OUT指令      OUT DX,AL	  ;author:liuxianfei0810      MOV DX,IO3+4;0100 資料匯流排->埠C 配合OUT指令      MOV AL,00      OUT DX,AL;埠C上半部分輸出0000即:PC7-4=0000	  ;author:liuxianfei0810	  ;MOV DX,IO3+4;0100 埠C->資料匯流排  配合IN指令NOKEY:IN AL,DX    ;採集埠C低 四位資料      AND AL,0FH        CMP AL,0FH  ;判斷是否有按鍵按下      JZ NOKEY           CALL DELAY10;延時消抖	  ;author:liuxianfei0810      IN AL,DX    ;進一步 判斷是否有按鍵按下      MOV BL,0      MOV CX,4	  ;author:liuxianfei0810LP1:  SHR AL,1;右移一位,將最低位移到C標誌中      JNC LP2  ;判斷C標誌,檢測哪個按鍵按下,檢測到跳轉到LP2      INC BL   ;狀態標誌加一,用於後續判斷      LOOP LP1 ;沒檢測到按鍵,繼續檢測	  ;author:liuxianfei0810LP2:  MOV AL,10001000B; D7:置放向字1有效 D6-5:方式0 D4:埠A輸出; D3:埠C上半部分輸入  D2:方式0 D1:埠B輸出 D0:埠C下半部分輸出; 埠C上半部分 PC7-4      MOV DX,IO3+6;0110 資料匯流排->控制字暫存器 配合OUT指令      OUT DX,AL	  ;author:liuxianfei0810      MOV DX,IO3+4;0100 資料匯流排->埠C  配合OUT指令      MOV AL,00   ;埠C下半部分輸出 0000即:PC3-0=0000      OUT DX,AL	  ;author:liuxianfei0810      IN AL,DX  ;採集埠C高 四位資料      AND AL,0F0H      CMP AL,0F0H ;判斷是否有按鍵按下      JZ L		  ;ZF=1 說明無按鍵按下。跳轉到L處,重新檢測按鍵	  ;author:liuxianfei0810      MOV BH,0      MOV CX,4	  ;author:liuxianfei0810LP3:  SHL AL,1  ; 左移一位,將最高位送到C中      JNC LP4   ;判斷C標誌,檢測哪個按鍵按下,檢測到跳轉到LP2      INC BH      LOOP LP3	  ;author:liuxianfei0810LP4:  MOV AX,4      MUL BH      ADD AL,BL      MOV DX,IO3+2;0010 資料匯流排->埠B  配合OUT指令      OUT DX,AL	  ;author:liuxianfei0810      MOV BX,OFFSET SEGDATA      XLAT      MOV DX,IO3;0000 資料匯流排->埠A  配合OUT指令      OUT DX,AL	  ;author:liuxianfei0810      MOV CX,0J1:   LOOP J1;65536*17/fclk      JMP L      RETMAIN  ENDP;author:liuxianfei0810;延時子程式DELAY10 PROC      MOV CX,882      LOOP $;一個loop執行週期17個時鐘週期      RETDELAY10 ENDP;共陰數碼管SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HCODE ENDS END START

(有關8255A晶片講解見後文)

23
最新評論
  • 「完整」2022年中級註冊安全工程師《化工安全實務》真題解析
  • 為何考研大多是二本生,複試透過率卻很低,名師張雪峰告訴你答案