微机原理 实验报告

微机原理与接口技术

实验指导书

班级      

学号  099074   

姓名      

安徽工业大学计算机学院

实验一  存贮器读写实验

一、实验内容

对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。

二、实验步骤

l、将实验系统与PC机连接;

2、在PC机上启功DJ-8086k软件,实验系统进入联机状态;

3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过;

4、运行程序。

5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。

、实验程序清单

CODE     SEGMENT                ;RAM.ASM

ASSUME   CS:CODE

PA      EQU 0FF20H        ;字位口

PB      EQU 0FF21H        ;字形口

PC      EQU 0FF22H        ;键入口

ORG 1850h

START:   JMP START0

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

data1:

db0c0h,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:  MOV AX,0H

    MOV DS,AX

    MOV BX,4000H

    MOV AX,55AAH

    MOV CX,0200H

RAMW1:   MOV DS:[BX],AX

      ADD BX,0002H

      LOOP RAMW1

      MOV AX,4000H

      MOV SI,AX

      MOV AX,5000H

      MOV DI,AX

      MOV CX,0400H

      CLD

      REP MOVSB

         call buf1

         mov cx,0ffh

con1:    push cx

         call disp

         pop cx

         loop con1

         call buf2

con2:    call disp

         jmp con2

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,06H

           MOV BUF+1,02H

           MOV BUF+2,02H

           MOV BUF+3,05H

           MOV BUF+4,06H

           MOV BUF+5,17H

           RET

BUF2:      MOV BUF,17H

           MOV BUF+1,17H

           MOV BUF+2,09H

           MOV BUF+3,00H

           MOV BUF+4,00H

           MOV BUF+5,0dH

           RET

CODE ENDS

END  START

、实验总结

 

   通过该实验让我们了解了如何对存储器进行读写,写入存储器后,如何通过机器检查存储单元内的内容,通过该实验让我对计算机的存储器有了更进一步的认识。

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

一、实验内容                   

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

二、实验步骤

1、按实验原理图连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“ ”插孔和8259的3号中断IR7插孔相连,“ ”端初始为低电平;⑷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:  db0c0h,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,0DFH

        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,0034H

      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

CODE ENDS

END  START

、实验小结

  通过8259单级中断控制器实验,让我对8259中断控制器的接口方法和8259中断控制器的应用编程有了一定的了解。

实验三  8255A并行口实验

一、实验内容

用8255做输出口,控制十二个发光管亮灭,模拟交通灯管理。

二、实验步骤

⒈ 在系统显示监控提示符“P.”时,按SCAL键。

⒉ 按实验原理图连好实验线路

8255A:PB4-PB7对应红灯, PC0-PC3对应绿灯, PC4-PC7对应黄灯

⒊ 在“P.”态时,输入11E0后,按EXEC键;系统显示执行符“┌”,同时Ll-Ll5发光二极管模拟交通灯显示。

三、实验程序清单

CODE        SEGMENT                     ;H8255-2.ASM

ASSUME CS:CODE

IOCONPT EQU 0FF2BH

IOAPT   EQU 0FF28H

IOBPT   EQU 0FF29H

IOCPT   EQU 0FF2AH

    ORG 11e0H

START:      MOV AL,82H

    MOV DX,IOCONPT

    OUT DX,AL

    MOV DX,IOBPT

    IN AL,DX

    MOV BYTE PTR DS:[0601H],AL

    MOV DX,IOCONPT

    MOV AL,80H

    OUT DX,AL

    MOV DX,IOBPT

    MOV AL,DS:[0601H]

    OR AL,0F0H

    OUT DX,AL

    MOV DX,IOCPT

    MOV AL,0F0H

    OUT DX,AL

    CALL DELAY1

IOLED0:     MOV AL,10100101B

    MOV DX,IOCPT

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0F0H

    OUT DX,AL

    MOV CX,8H

IOLED1:     MOV DX,IOBPT

    MOV AL,DS:[0601H]

    AND AL,10101111B

    OUT DX,AL

    CALL DELAY2

    OR AL,01010000B

    OUT DX,AL

    CALL DELAY2

    LOOP IOLED1

    MOV DX,IOCPT

    MOV AL,0F0H

    OUT DX,AL

    CALL DELAY2

    MOV AL,01011010B

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0F0H

    OUT DX,AL

    MOV CX,8H

IOLED2:     MOV DX,IOBPT

    MOV AL,DS:[0601H]

    AND AL,01011111B

    OUT DX,AL

    CALL DELAY2

    OR AL,10100000B

    OUT DX,AL

    CALL DELAY2

    LOOP IOLED2

    MOV DX,IOCPT

    MOV AL,0F0H

    OUT DX,AL

    CALL DELAY2

    JMP IOLED0

DELAY1:     PUSH AX

    PUSH CX

    MOV CX,0030H

DELY2:      CALL DELAY2

    LOOP DELY2

    POP CX

    POP AX

    RET

DELAY2:     PUSH CX

    MOV CX,8000H

DELA1: LOOP DELA1

    POP CX

    RET

CODE ENDS

END  START

四、实验小结

  通过该实验,让我掌握了如何通过8255控制发光二级管,以及发光二级管的工作原理。

实验四  8250串口实验

一、实验内容

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

二、实验步骤

1.用扁平线连JX0(BUS)到JX3(D0~D7),连FF80H孔到CS7,连TXD到RXD(8250实验区)。

2.编辑、调试、运行程序。

3.当系统显示“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,0cH                                    ;BTS=9600

       MOV DX,DATA                             ;ff80H

       OUT DX,AL

       MOV DX,MSB

       MOV AL,00

       OUT DX,AL

;-----------------------------------------------------

       MOV AL,06H                                    7- BIT ,2-STOP

       MOV DX,LINE

       OUT DX,AL

;--------------------------------------------------

       MOV AL,00                                      ;NO-INT

       MOV DX,MSB                              ;8001H

       OUT DX,AL

       MOV AH,10H

       MOV BX,4000H

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

CODE ENDS

END  START

四、实验小结

  通过该实验让我对系统扩展以8250为核心的可编程串行异步通讯接口芯片有了一定了了解,实现了对扩展的串行通讯接口实现自发自收。该实验让我对8250有了更深一步的认识。

实验五  A/D转换实验

一、实验内容

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

二、实验步骤

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

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

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

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

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

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

⑤ 按RST键退出。

三、实验程序清单

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 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

相关推荐