安工大——《微机原理与接口技术》实验报告

时间:2024.4.20

《微机原理与接口技术》

实验报告

安徽工业大学计算机学院

                                                                         


实验一  8255A应用—数码管动态显示

一、实验目的

1、掌握8255A的工作方式、编程原理和微机接口方法。

2、了解LED数码管动态显示的工作原理及编程方法。

二、实验内容

编制程序,使数码管显示“DICE88”字样。

三、实验步骤  

联机模式:

  (1)在PC机和实验系统联机状态下,运行实验系统dj8086k.exe(双击桌面OTA图标或通过开始-程序-dj8086k-DJ8086k微机原理与接口技术),新建文件并在编辑窗口输入汇编源程序,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

  (2)数码管显示“DICE88”字样。

脱机模式:

(1)在P.态下,通过单板机小键盘,从2DF0地址开始输入机器码(参见附录三),完成后返回监控,输入起始地址2DF0,再按EX键执行。

(2)数码管显示“DICE88”字样。

四、实验程序清单


CODE          SEGMENT           ; display "DICE88"

     ASSUME   CS:CODE 

     ORG 2DF0H

START:        JMP START0

PA      EQU 0FF20H    ;字位口

PB      EQU 0FF21H    ;字形口

PC      EQU 0FF22H    ;键入口

BUF  DB ?,?,?,?,?,?

data1:        db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H

START0:  CALL BUF1

CON1:         CALL DISP

     JMP CON1

DISP:         MOV AL,0FFH                 ;00H

     MOV DX,PA

     OUT DX,AL

     MOV CL,0DFH            ;显示子程序 ,5ms

     MOV BX,OFFSET BUF

DIS1:         MOV AL,[BX]

     MOV AH,00H

     PUSH BX

     MOV BX,OFFSET DATA1

     ADD BX,AX

     MOV AL,[BX]

     POP BX

     MOV DX,PB

     OUT DX,AL

     MOV AL,CL

     MOV DX,PA

     OUT DX,AL

     PUSH CX

DIS2:         MOV CX,00A0H

     LOOP $

     POP CX

     CMP CL,0FEH                 ;01H

     JZ LX1

     MOV AL,0FFH                 ;00H

     MOV DX,PA

     OUT DX,AL

     INC BX

     ROR CL,1                    ;SHR CL,1

     JMP DIS1

LX1:     MOV AL,0FFH

     MOV DX,PB

     OUT DX,AL

     RET

BUF1:         MOV BUF,0DH                 ;实验修改 mov buf,0ah

       MOV BUF+1,01H

       MOV BUF+2,0CH

       MOV BUF+3,0EH

       MOV BUF+4,08H                 ;实验修改mov buf+4,00h

       MOV BUF+5,08H                 ;实验修改mov,buf+5,09h

       RET

CODE ENDS

END  START


 

实验二  8259单级中断控制器实验

一、实验目的

1.掌握8259中断控制器的接口方法。                           

2.掌握8259中断控制器的应用编程。

二、实验内容                            

利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。

三、实验接线图

四、实验步骤

1、按图6-2连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平;⑷8259的CS端接FF80H孔                    

2、输入并运行实验程序,系统显示8259-1。                                  

3、按动AN开关按钮, 按满5次显示good。                         

五、实验程序清单


CODE          SEGMENT                          ;

ASSUME   CS:  CODE

INTPORT1 EQU 0FF80H

INTPORT2 EQU 0FF81H

INTQ3      EQU INTREEUP3

INTQ7      EQU INTREEUP7

PA       EQU 0FF20H              ;字位口

PB       EQU 0FF21H               ;字形口

PC       EQU 0FF22H              ;键入口

ORG 12D0H

START:  JMP START0

BUF       DB ?,?,?,?,?,?

intcnt  db ?

data1:  db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:  CLD

         CALL BUF1

     CALL WRINTVER                         ;WRITE INTRRUPT

     MOV AL,13H

     MOV DX,INTPORT1

     OUT DX,AL

     MOV AL,08H

     MOV DX,INTPORT2

     OUT DX,AL

     MOV AL,09H

     OUT DX,AL

         MOV AL,0F7H

         OUT DX,AL

         MOV intcnt,01H                       ;TIME=1

         STI

WATING:       CALL DISP                            ;DISP 8259-1

         JMP WATING   

WRINTVER: MOV AX,0H

          MOV ES,AX

       MOV DI,002CH

       LEA AX,INTQ3

       STOSW

       MOV AX,0000h

       STOSW

       MOV DI,003CH

       LEA AX,INTQ7

       STOSW

       MOV AX,0000h

       STOSW

       RET

INTREEUP3:    CLI

             push ax

             push bx

             push cx

             push dx

          MOV AL,INTCNT

          CALL CONVERS

          MOV BX,OFFSET BUF                    ;077BH

          MOV AL,10H

          MOV CX,05H

INTRE0:       MOV [BX],AL

          INC BX

          LOOP INTRE0

          MOV AL,20H

          MOV DX,INTPORT1

          OUT DX,AL

          ADD INTCNT,01H

          CMP INTCNT,06H

          JNA INTRE2

    CALL BUF2                            ;DISP:good

INTRE1:       CALL DISP

          JMP INTRE1

CONVERS:      AND AL,0FH

          MOV BX,offset buf                ;077AH

          MOV [BX+5],AL

          RET

INTRE2:       MOV AL,20H

          MOV DX,INTPORT1

          OUT DX,AL

              pop dx

              pop cx

              pop bx

              pop ax

          STI

          IRET

INTREEUP7:    CLI

          MOV AL,20H

          MOV DX,INTPORT1

          OUT DX,AL

       call buf3                      ;disp:err

INTRE3:       CALL DISP

          JMP INTRE3

DISP:    MOV AL,0FFH             ;00H

     MOV DX,PA

     OUT DX,AL

MOV CL,0DFH        ;20H  ;显示子程序 ,5ms

     MOV BX,OFFSET BUF

DIS1:   MOV AL,[BX]

         MOV AH,00H

          PUSH BX

          MOV BX,OFFSET DATA1

            ADD BX,AX

            MOV AL,[BX]

     POP BX

     MOV DX,PB

     OUT DX,AL

     MOV AL,CL

     MOV DX,PA

     OUT DX,AL

     PUSH CX

DIS2:         MOV CX,00A0H

    LOOP $

         POP CX

     CMP CL,0FEH                          ;01H

     JZ LX1

     INC BX

ROR CL,1       ;SHR CL,1

  JMP DIS1

LX1:      MOV AL,0FFH

MOV DX,PB

     OUT DX,AL

       RET

BUF1:         MOV BUF,08H

       MOV BUF+1,02H

       MOV BUF+2,05H

       MOV BUF+3,09H

       MOV BUF+4,17H

       MOV BUF+5,01H

       RET

BUF2:   MOV BUF,09H

       MOV BUF+1,00H

       MOV BUF+2,00H

       MOV BUF+3,0dH

       MOV BUF+4,10H

       MOV BUF+5,10H

       RET

BUF3:         MOV BUF,0eH

       MOV BUF+1,18H

       MOV BUF+2,18H

       MOV BUF+3,10H

       MOV BUF+4,10H

       MOV BUF+5,10H

       RET

CODE ENDS

END  START


实验三  8253、8255、8259综合实验

1.8253计数器实验

要求:计数器1方式0计数,计满3个数产生中断,中断5次后结束。

实验线路见图6-6:

图6-6  8253计数器实验电路图

实验程序:


INTPORT1  EQU 0FF80H

INTPORT2  EQU 0FF81H

INTQ3    EQU INTREEUP3  

TCONTR0   EQU 0043H

TCON1     EQU 0041H

PA        EQU 0FF20H ;字位口

PB        EQU 0FF21H ;字形口

PC        EQU 0FF22H ;键入口

code      segment

          assume cs:code

           ORG 12D0H

START:    JMP START0

BUF       DB ?,?,?,?,?,?

intcnt    db ?

data1  

db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h           db0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:   CLD

       CALL BUF1

          CALL WRINTVER               ;WRITE INTRRUPT

          MOV AL,13H

          MOV DX,INTPORT1

          OUT DX,AL

          MOV AL,08H

          MOV DX,INTPORT2

          OUT DX,AL

          MOV AL,09H

          OUT DX,AL

          MOV AL,0F7H

          OUT DX,AL

          MOV intcnt,01H     ;TIME=1

          MOV DX,TCONTR0

          MOV AL,51H

          OUT DX,AL

          MOV DX,TCON1

          MOV AL,03

          OUT DX,AL

          MOV DX,0FF23H

          MOV AL,80

          OUT DX,AL

          STI

WATING:   CALL DISP         ;DISP 825359

          JMP WATING

WRINTVER: MOV AX,0H

         MOV ES,AX

         MOV DI,002CH

         LEA AX,INTQ3

         STOSW

         MOV AX,0000h

         STOSW

         RET

INTREEUP3: push ax

          push bx

          push cx

          push dx

               MOV DX,TCON1

          MOV AL,03

          OUT DX,AL

         MOV AL,INTCNT

         CALL CONVERS

         MOV BX,OFFSET BUF 

         MOV AL,10H

         MOV CX,05H

INTRE0:   MOV [BX],AL

         INC BX

         LOOP INTRE0

         ADD INTCNT,01H

         CMP INTCNT,06H

         JNA INTRE2

          CALL BUF2     ;DISP:good

INTRE1:   CALL DISP

         JMP INTRE1

CONVERS:  AND AL,0FH

         MOV BX,offset buf   

         MOV [BX+5],AL

         RET

INTRE2:   MOV AL,20H

         MOV DX,INTPORT1

         OUT DX,AL

               pop dx

               pop cx

               pop bx

         pop ax

         IRET

DISP:     MOV AL,0FFH         ;00H

          MOV DX,PA

          OUT DX,AL

          MOV CL,0DFH     ;20H         

          MOV BX,OFFSET BUF

DIS1:     MOV DX,PC

          OUT DX,AL

          MOV AL,[BX]

          MOV AH,00H

          PUSH BX

          MOV BX,OFFSET DATA1

          ADD BX,AX

          MOV AL,[BX]

          POP BX

          MOV DX,PB

          OUT DX,AL

          MOV AL,CL

          MOV DX,PA

          OUT DX,AL

          PUSH CX

DIS2:     MOV CX,00A0H

          LOOP $

          POP CX

          CMP CL,0FEH  ;01H

          JZ LX1

          INC BX

          ROR CL,1     ;SHR CL,1

          JMP DIS1

LX1:      MOV AL,0FFH

          MOV DX,PB

          OUT DX,AL

          RET

BUF1:     MOV BUF,08H

          MOV BUF+1,02H

          MOV BUF+2,05H

          MOV BUF+3,03H

          MOV BUF+4,05H

          MOV BUF+5,09H

          RET

BUF2:     MOV BUF,09H

          MOV BUF+1,00H

          MOV BUF+2,00H

          MOV BUF+3,0dH

          MOV BUF+4,10H

          MOV BUF+5,10H

          RET

CODE      ENDS

END  START要求做的改变:换成计数器0,计满11次后产生中断


2、8253定时器实验

要求:用8253定时器1通道定时,每隔1秒使PA口的指示灯的状态右移一位。主程序反复游走显示8253-A。         8253定时器实验线路见图6-7:

实验程序:


CODE      SEGMENT            ;

ASSUME CS:CODE

INTPORT1  EQU      0FF80H

INTPORT2  EQU      0FF81H

INTQ3    EQU        INTREEUP3

TCONTR0   EQU 0043H

TCON1     EQU      0041H

IOCONPT   EQU      0FF2BH

IOBPT   EQU         0FF29H

IOAPT   EQU        0FF28H

PA        EQU           0FF20H ;字位口

PB        EQU           0FF21H ;字形口

PC        EQU           0FF22H ;键入口

ORG 12D0H

START:    JMP START0

BUF       DB ?,?,?,?,?,?

intcnt    db ?

WEIKONG   DB  ?

data1   db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h     

        db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:   CLD

       CALL BUF1

          CALL WRINTVER               ;WRITE INTRRUPT

          MOV AL,13H

          MOV DX,INTPORT1

          OUT DX,AL

          MOV AL,08H

          MOV DX,INTPORT2

          OUT DX,AL

          MOV AL,09H

          OUT DX,AL

          MOV AL,0F7H

          OUT DX,AL

          MOV intcnt,50         ;软件计数50(1秒=20ms*50);实验修改MOV intcnt,100

          MOV DX,TCONTR0

          MOV AL,74H

          OUT DX,AL

          MOV DX,TCON1             ;计数器1定时20ms

          MOV AX,40000

          OUT DX,AL

           MOV  AL,AH

           OUT DX,AL

          MOV DX,0FF2BH

          MOV AL,82H

          OUT DX,AL

MOV  WEIKONG, 0FEH       ;初始PA0对应位亮

           MOV  AL, WEIKONG               

           MOV  DX, 0FF29H

           OUT DX,AL

          STI

WATING: CALL DISP         ;DISP 8253-A

          JMP WATING

WRINTVER: MOV AX,0H

         MOV ES,AX

         MOV DI,002CH

         LEA AX,INTQ3

         STOSW

         MOV AX,0000h

         STOSW

         RET

INTREEUP3: DEC  INTCNT

           JNZ   INTRE2

           MOV   INTCNT, 50                    ;实验修改 MOV INTCNT,100

ROL  WEIKONG, 1;实验修改 ROR WEIKONG, 1

           MOV  DX, IOAPT 

          MOV AL, WEIKONG

          OUT DX,AL

INTRE2:   MOV AL,20H

         MOV DX,INTPORT1

         OUT DX,AL

               IRET

DISP:     MOV AL,0FFH                   ;00H

          MOV DX,PA

          OUT DX,AL

          MOV CL,0DFH                   ;20H        

          MOV BX,OFFSET BUF

DIS1:     MOV DX,PC

          OUT DX,AL

          MOV AL,[BX]

          MOV AH,00H

          PUSH BX

          MOV BX,OFFSET DATA1

          ADD BX,AX

          MOV AL,[BX]

          POP BX

          MOV DX,PB

          OUT DX,AL

          MOV AL,CL

          MOV DX,PA

          OUT DX,AL

          PUSH CX

DIS2:     MOV CX,0000H

          LOOP $

          POP CX

          CMP CL,0FEH  ;01H

          JZ LX1

          INC BX

          ROR CL,1    

          JMP DIS1

LX1:      MOV AL,0FFH

          MOV DX,PB

          OUT DX,AL

          RET

BUF1:     MOV BUF,08H

          MOV BUF+1,02H

          MOV BUF+2,05H

          MOV BUF+3,03H

          MOV BUF+4,17H

          MOV BUF+5,0AH

          RET

CODE   ENDS

        END    START要求做的改变:改成计数器0,2秒,灯的移动反过来


实验四  8250串口实验

一、实验目的

(1)系统扩展以8250为核心的可编程串行异步通讯接口芯片。

(2)对扩展的串行通讯接口实现自发自收。

二、实验内容

将寄存器AH的内容从10H开始通过8250发送、接收,每次收发后AH的内容自动增1直到FFH为止,同时将每次接收到的数据,依次写到内存4000H~40EFH单元中,实现自发自收。

三、实验接线图

四、实验步骤

用扁平线连JX0(BUS)到JX3(D0~D7),连FF80H孔到CS7,连TXD到RXD(8250实验区)。运行程序8250·ASM或在实验系统处于P态下,按SCAL键,输入29A0,按EXEC即可。当系统显示“8250——good”表示自发自收结束,按RST键,系统返回P态,用内存读写命令检查4000H~40EFH内容是否为10H~FFH,验证其正确性。

五、实验程序清单


CODE     SEGMENT      ;H8250.ASM

ASSUME CS:CODE              ;H8250.ASM

DATA EQU 0ff80H;BTS-LSB 接收发送缓冲器

MSB  EQU  0ff81H  中断允许寄存器和分频次数高

LINE EQU 0ff83H  传输线控制寄存器

LSTAT    EQU      0ff85H  传输线状态寄存器

PA     EQU    0FF20H        ;字位口

PB     EQU    0FF21H        ;字形口

PC     EQU    0FF22H        ;键入口

     ORG 29A0H

START:     JMP START0

BUF     DB ?,?,?,?,?,?

data1:  db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0  c6h,0a1h

                                         db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0: MOV AL,80H                  ;DLAB=1

     MOV DX,LINE

     OUT DX,AL

MOV AL,18H         ;BTS=4800

MOV DX,DATA     ;ff80H

     OUT DX,AL

     MOV DX,MSB

     MOV AL,00

     OUT DX,AL

MOV AL,03H  ;8- BIT ,1-STOP

     MOV DX,LINE

     OUT DX,AL

MOV AL,00          ;NO-INT

MOV DX,MSB (中断允许寄存器);8001H

     OUT DX,AL

MOV AH,10H         ;实验修改MOV AL,40H

MOV BX,4000H       ;实验修改MOV BX,7000H

MAIN:      CALL TXD

     CALL RCV

     MOV [BX],AL

     INC BX

     INC AH

     CMP AH,00H

     JNZ MAIN

     CALL BUF1

     MOV CX,00FFH

S3:      PUSH CX

     CALL DISP

     POP CX

     LOOP S3

     CALL BUF3

S1:           CALL DISP

           JMP S1

TXD:      MOV DX,LSTAT

WAIT1:        IN AL,DX

     TEST AL,20H

     JZ WAIT1

     MOV AL,AH

     MOV DX,DATA

     OUT DX,AL

     RET

RCV:      MOV DX,LSTAT

WAIT2:        IN AL,DX

     TEST AL,01H

     JZ WAIT2

     TEST AL,0EH

     JNZ ERR

     MOV DX,DATA

     IN AL,DX

     RET

ERR:      CALL BUF2

S2:           CALL DISP

                JMP S2

DISP:    MOV AL,0FFH            ;00H

       MOV DX,PA

       OUT DX,AL

MOV CL,0DFH        ;20H ;显示子程序 ,5ms

       MOV BX,OFFSET BUF

DIS1:    MOV AL,[BX]

            MOV AH,00H

       PUSH BX

       MOV BX,OFFSET DATA1

       ADD BX,AX

       MOV AL,[BX]

  POP BX

  MOV DX,PB

  OUT DX,AL

  MOV AL,CL

  MOV DX,PA

  OUT DX,AL

       PUSH CX

DIS2:        MOV CX,00A0H

DELAY:  LOOP DELAY

            POP CX

  CMP CL,0FEH  ;01H

       JZ LX1

       INC BX

ROR CL,1     ;SHR CL,1

       JMP DIS1

LX1:    MOV AL,0FFH

              MOV DX,PB

              OUT DX,AL

              RET

BUF1:   MOV BUF,08H

              MOV BUF+1,02H

              MOV BUF+2,05H

              MOV BUF+3,00H

              MOV BUF+4,17H

              MOV BUF+5,17H

              RET

BUF2:   MOV BUF,08H

            MOV BUF+1,02H

            MOV BUF+2,05H

            MOV BUF+3,00H

            MOV BUF+4,0EH

            MOV BUF+5,18H

            RET

BUF3:   MOV BUF,09H

              MOV BUF+1,00H

              MOV BUF+2,00H

              MOV BUF+3,0DH

              MOV BUF+4,10H

              MOV BUF+5,10H

              RET

CODE ENDS

END  START


实验五  A/D转换实验

一、实验目的

了解模/数转换基本原理,掌握ADC0809的使用方法;
    掌握定时数据采集程序的编制方法。

二、实验内容

1、A/D转换实验

利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。

(1)   实验接线图

ADC0809接线见图6-9

图6-9  ADC0809接线图

(2)实验步骤

① 将0809 CS4插孔连到译码输出FF80H插孔。

② 将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。

③ 运行实验程序,系统上显示“0809 XX”。“XX”表示输入模拟量转换后的数字量。

④ 调节电位器Wl, 显示器上会不断显示新的转换结果。

模拟量和数字量对应关系的典型值为:

0V→00H   +2.5V→80H    +5V→FFH

⑤ 按RST键退出。

(3)实验程序清单


CODE          SEGMENT                ;

ASSUME   CS:CODE

ADPORT  EQU 0FF80h

PA      EQU 0FF20H          ;字位口

PB      EQU 0FF21H          ;字形口

PC      EQU 0FF22H          ;键入口

       ORG 1000H

START:  JMP START0

BUF     DB ?,?,?,?,?,?

data1: 

db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

       db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:  CALL BUF1

ADCON:   MOV AX,00     ;实验修改MOV AX,01

              MOV DX,ADPORT

              OUT DX,AL

              MOV CX,0500H

;DELAY:       LOOP DELAY

            MOV DX,ADPORT

            IN AL,DX

            CALL CONVERS

            CALL DISP

            JMP ADCON

CONVERS:      MOV AH,AL

                AND AL,0FH

                MOV BX,OFFSET BUF

            MOV [BX+5],AL

            MOV AL,AH

            AND AL,0F0H

            MOV CL,04H

            SHR AL,CL

            MOV [BX+4],AL

            RET

DISP:         MOV AL,0FFH                     

         MOV DX,PA

         OUT DX,AL

         MOV CL,0DFH                     

         MOV BX,OFFSET BUF

DIS1:         MOV AL,[BX]

         MOV AH,00H

     PUSH BX

     MOV BX,OFFSET DATA1

            ADD BX,AX

            MOV AL,[BX]

     POP BX

     MOV DX,PB

     OUT DX,AL

     MOV AL,CL

     MOV DX,PA

     OUT DX,AL

     PUSH CX

DIS2:         MOV CX,00A0H

                LOOP $

                POP CX

         CMP CL,0FEH                       

         JZ LX1

         INC BX

         ROR CL,1                        

         JMP DIS1

LX1:          MOV AL,0FFH

         MOV DX,PB

         OUT DX,AL

         RET

BUF1:         MOV BUF,00H

            MOV BUF+1,08H

            MOV BUF+2,00H

            MOV BUF+3,09H

            MOV BUF+4,00H

            MOV BUF+5,00H

            RET

CODE ENDS

END  START


2、数据采集实验

  要求:用8253定时器1通道定时,每隔半秒使从ADC0809的0通道IN0采集一个数据,若模拟电压在0-2V范围内(0-102),则使LED显示器L7-L4亮;若模拟电压大于2V,小于3V,则使L5-L2亮;若模拟电压大于等于3V,则使LED显示器L3-L0亮。

(主程序重复所采集的数据)

(1)实验接线图

数据采集实验系统接线图见图6-11

图6-11  数据采集系统接线图

(3)实验程序清单


CODE          SEGMENT                ;

ASSUME   CS:CODE

INTPORT1      EQU      0FF80H

INTPORT2      EQU      0FF81H

INTQ3         EQU      INTREEUP3

TCONTR0       EQU 0043H

TCON1         EQU      0041H              ;实验修改TCON1 EQU 0040H

IOCONPT       EQU      0FF2BH

IOBPT         EQU      0FF29H

IOAPT         EQU      0FF28H

PA        EQU     0FF20H    ;字位口

PB        EQU     0FF21H    ;字形口

PC        EQU     0FF22H    ;键入口

ADPORT    EQU     0FE00H

ORG 12D0H

START:    JMP START0

BUF       DB ?,?,?,?,?,?

intcnt    db ?

RES       DB  ?

data1   db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h     

        db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:       CLD

        CALL BUF1

          CALL     WRINTVER                

          MOV AL,13H

          MOV DX,INTPORT1

          OUT DX,AL

          MOV AL,08H

          MOV DX,INTPORT2

          OUT DX,AL

          MOV AL,09H

          OUT DX,AL

          MOV AL,0F7H                ;实验修改MOV AL,0FEH

          OUT DX,AL

          MOV intcnt,25       

          MOV DX,TCONTR0

          MOV AL,74H                 ;实验修改MOV AL,34H

          OUT DX,AL

          MOV DX,TCON1            

          MOV AX,40000

          OUT DX,AL

               MOV      AL,AH

            OUT    DX,AL

MOV DX,0FF2BH

          MOV AL,82H

          OUT DX,AL

               STI

WATING:   CALL     DISP               

          JMP WATING

WRINTVER: MOV AX,0H

         MOV ES,AX

         MOV DI,002CH               ;实验修改MOV DI,0020H

         LEA AX,INTQ3

         STOSW

         MOV AX,0000h

         STOSW

         RET

INTREEUP3:  DEC    INTCNT (中断服务程序在此开始)

            JNZ   INTRE2    

            MOV   INTCNT, 25

ADCON:      MOV    AX,00              ;实验修改MOV AX,01

         MOV DX,ADPORT

         OUT DX,AL

         MOV CX,0500H

DELAY:      LOOP   DELAY

          MOV DX,ADPORT

          IN       AL,DX

            MOV    RES,AL

          CALL     CONVERS

MOV      AL,RES

          CMP     AL, 66H             ;实验修改CMP AL,50H

          JA      NEXT1

           MOV     AL, 0F0H           ;实验修改MOV AL,01FH

              MOV     DX, IOAPT

              OUT     DX,AL

              JMP     INTRE2

NEXT1:             CMP     AL, 99H    ;实验修改CMP AL,63H

                JA      NEXT2

                MOV     AL, 0C3H      ;实验修改 MOV AL,0C3H

              MOV     DX, IOAPT

              OUT     DX,AL

              JMP     INTRE2

NEXT2:             MOV     AL, 0FH    ;实验修改 MOV AL,0FCH

              MOV     DX, IOAPT

              OUT     DX,AL

INTRE2:        MOV AL,20H

              MOV DX,INTPORT1

          OUT DX,AL

                   IRET  (中断服务程序在此结束)

CONVERS:           MOV AH, AL

               AND AL, 0FH

               MOV BX, OFFSET BUF

               MOV [BX+5], AL

              MOV AL,AH

              AND AL, 0F0H

              MOV CL, 04H

              SHR AL, CL

              MOV [BX+4], AL

              RET

DISP:         MOV AL, 0FFH        

               MOV DX, PA

               OUT DX, AL

               MOV CL, 0DFH         

               MOV BX, OFFSET BUF

DIS1:         MOV DX, PC

               OUT DX, AL

                   MOV AL, [BX]

                    MOV AH, 00H

               PUSH     BX

               MOV BX, OFFSET DATA1

                   ADD BX, AX

               MOV AL, [BX]

               POP BX

               MOV DX, PB

               OUT DX, AL

               MOV AL, CL

               MOV DX, PA

               OUT DX, AL

               PUSH     CX

DIS2:         MOV CX, 00A0H

               LOOP     $

               POP CX

               CMP      CL,0FEH 

               JZ       LX1

               INC      BX

               ROR      CL, 1    

               JMP DIS1

LX1:          MOV AL, 0FFH

               MOV DX, PB

               OUT DX, AL

               RET

BUF1:         MOV BUF, 00H

               MOV BUF+1, 08H

               MOV BUF+2, 00H

               MOV BUF+3 ,09H

               MOV BUF+4, 00H

               MOV BUF+5, 00H

               RET

CODE               ENDS

                   END    START


更多相关推荐:
微机原理与接口技术实验报告

目录实验一数据传送2实验二算术运算8实验三代码转换15实验四程序的基本结构练习21实验五存储器RAM6264扩展错误未定义书签实验六可编程并行接口8255扩展错误未定义书签实验七可编程计数定时器8253扩展错误...

微机原理与接口技术实验报告

实验一认识Tddebug集成操作软件一实验内容一实验题目数据传送实验1编程将数据段中的一个字符串传送到附加段中并输出附加段中的目标字符串到屏幕上2修改此程序采用字符串传送指令完成二实验目的通过对该程序进行调试查...

微机原理与接口技术实验报告

实验一熟悉汇编语言程序开发过程一实验目的1熟悉与实验有关的系统软件如编辑程序汇编程序连接程序和调试器等的使用2在程序调试过程中学习及掌握调试器CodeView的各种操作命令掌握程序的调试方法及技巧二实验内容用查...

微机原理与接口技术实验报告

微机原理与接口技术实验报告姓名专业班级学号指导教师计算机科学与技术安徽工业大学计算机学院20xx年5月21日微机原理与接口技术实验报告实验一存贮器读写实验一实验目的l熟悉静态RAM的使用方法掌握8088微机系统...

微机原理与接口技术 实验报告

微机原理与接口技术实验报告学院计算机与通信工程学院专业计算机科学与技术班级学号姓名实验一8259中断控制器应用实验一实验目的1掌握PC机中断处理系统的基本原理2掌握可编程中断控制器8259的应用编程方法二实验内...

微机原理与接口技术实验报告

南京信息工程大学微机原理与接口技术综合实验实验报告书微机原理与接口技术课程设计报告题目继电器控制实验设计学院电子与信息工程学院专业通信工程年级10级学生姓名xx学号xxxxxxxx指导教师xx完成时间20xx1...

微机原理与接口技术实验报告 接口部分 大学实验报告免费下载

实验一系统认识实验1实验内容编写实验程序将00H0FH共16个数写入内存3000H开始的连续16个存储单元中2实验源程序SSTACKSEGMENTSTACKDW32DUPSSTACKENDSCODESEGMEN...

微机原理与接口技术实验一实验报告

实验题目实验环境熟悉与简单程序设计实验目的1掌握Masm的下载2掌握DEBUG调试程序的使用方法3掌握简单程序的设计方法实验内容1打开百度首页输入下载masm2用汇编语言编写11的计算过程实验准备1熟练掌握所学...

微机原理与接口技术实验报告

目录目录实验一汇编语言程序设计开发环境2实验二BCD数运算与十进制调整6实验三键盘输入与回显10实验四字符串匹配13实验五用递归计算阶乘17实验六中断服务子程序设计201实验一汇编语言程序设计开发环境实验一汇编...

微机原理与接口技术实验报告 全实例代码

实验一上机练习实验目的1掌握用编辑软件编辑程序文本的方法在DOS环境下熟练掌握用MASM50宏汇编程序对ASM文件进行编译连接等操作步骤2熟悉用DEBUG调试程序实验要求选取教科书中一典型例题用编辑软件在PC机...

微机原理与接口技术实验报告

微机原理与接口技术实验报告学生姓名学生学号学生班级实验一认识Tddebug集成操作软件一实验内容一实验题目数据传送实验1编程将数据段中的一个字符串传送到附加段中并输出附加段中的目标字符串到屏幕上2修改此程序采用...

微机原理及接口技术实验指导书20xx本(SH51-Keil版)

微机原理及接口技术实验指导书北京联合大学机电学院20xx年4月微机原理及接口技术实验指导书目录实验指南GCMCU单片机实验箱简介Keil集成开发环境使用简介实验一数据传送及输入输出接口实验实验二常用数据处理程序...

微机原理与接口技术实验报告(32篇)