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

微机原理与接口技术

实验报告

说明: wps_clip_image-7715

       安徽工业大学计算机学院

20##年5月21日


实验一  存贮器读写实验

一、实验目的

l、熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法。

2、掌握静态RAM读写数据编程方法。

二、实验内容

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

三、实验接线图(系统中已连接好)

四、实验步骤

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

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

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

4、运行程序。

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

五、本次实验总结(体会、感想与建议)

本次实验对DJ—8086k软件有了初步的了解,熟悉了DJ-8086k软件环境下编辑、调试程序,连续运行等内容,掌握了下位机和计算机的简单连接方式。

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

一、实验目的

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

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

二、实验内容                   

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

三、实验程序框图

hw7

图6-2 主程序流程

IR3中断服务程序:

hw7

图6-3 IR3中断服务程序流程

IR7中断服务程序:

hw7

图6-4 IR7中断服务流程

四、实验步骤

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

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

2、输入并运行实验程序,系统显示8259-1。                          3、按动AN开关按钮, 按满5次显示good。                    

、思考题

若用IR5产生中断,要求修改硬件和软件并调试成功。

修改代码如下:

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,0FFH

    OUT DX,AL

    MOV DX,IOBPT

    MOV AL,00FH

    OUT DX,AL

    CALL DELAY1

IOLED0:     MOV AL,01011111B

    MOV DX,IOBPT

    OUT DX,AL

    MOV AL,11111010B

    MOV DX,IOCPT

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0FFH

    OUT DX,AL

    MOV CX,8H

IOLED1:     MOV DX,IOCPT

    MOV AL,DS:[0601H]

    AND AL,10101111B

    OUT DX,AL

    CALL DELAY2

    OR AL,01011111B

    OUT DX,AL

    CALL DELAY2

    LOOP IOLED1

    MOV DX,IOBPT

    MOV AL,00FH

    OUT DX,AL

    CALL DELAY2

    MOV AL,10101111B

    MOV DX,IOBPT

    OUT DX,AL

    MOV AL,11110101B

    MOV DX,IOCPT

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0FFH

    OUT DX,AL

    MOV CX,8H

IOLED2:     MOV DX,IOCPT

    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

六、本次实验总结

我认为,在学习中要考虑到“学以致用”,不能过分强调课程的系统性和基本理论的完整性,而应该侧重于基本方法和应用实例。从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能力才是最终目的。

实验三  8255A并行口实验

一、实验目的

掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容

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

三、实验程序框图

四、实验步骤

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

⒉ 按图6-5连好实验线路

8255A:PC0->L3,PC1->L6,PC2->L9,PC3->L12,PC4->L2,PC5->L5,PC6->L8,PC7->L11;

      PB4->L1,PB5->L4,PB6->L7,PB7->L10

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

五、思考题

如果通过8255A控制发光二极管,PB4-PB7对应红灯, PC0-PC3对应绿灯, PC4-PC7对应黄灯, 以模拟交通路灯的管理,将如何实现。

硬件连接如下:

8255A:PC0->L3,PC1->L6,PC2->L9,PC3->L12,红

PC4->L2,PC5->L5,PC6->L8,PC7->L11;绿

PB4->L1,PB5->L4,PB6->L7,PB7->L10

代码修改如下:

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,0FFH

    OUT DX,AL

    MOV DX,IOBPT

    MOV AL,00FH

    OUT DX,AL

    CALL DELAY1

IOLED0:   MOV AL,01011111B

    MOV DX,IOBPT

    OUT DX,AL

    MOV AL,11111010B

    MOV DX,IOCPT

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0FFH

    OUT DX,AL

    MOV CX,8H

IOLED1:   MOV DX,IOCPT

    MOV AL,DS:[0601H]

    AND AL,10101111B

    OUT DX,AL

    CALL DELAY2

    OR AL,01011111B

    OUT DX,AL

    CALL DELAY2

    LOOP IOLED1

    MOV DX,IOBPT

    MOV AL,00FH

    OUT DX,AL

    CALL DELAY2

    MOV AL,10101111B

    MOV DX,IOBPT

    OUT DX,AL

    MOV AL,11110101B

    MOV DX,IOCPT

    OUT DX,AL

    CALL DELAY1

    CALL DELAY1

    OR AL,0FFH

    OUT DX,AL

    MOV CX,8H

IOLED2:   MOV DX,IOCPT

    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

六、本次实验总结

虽然实验箱只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。而且实验也教会我们在团队中要善于与人相处,与人共事,为以后出去工作与人合作打下一定的基础。

实验四  8250串口实验

一、实验目的

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

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

二、实验内容

将寄存器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,验证其正确性。

四、思考题

如果使用通讯协议:1个起始位,7位数据位,2个停止位,波特率:9600。

系统将如何实现。

实验实现代码如下:

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

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的使用方法;
   

二、实验内容

A/D转换实验

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

三、实验流程图

hw1

图6-10  A/D转换流程

四、实验步骤

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

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

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

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

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

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

⑤ 按RST键退出。

五、心得体会

在实验过程中我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够好,我只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解,而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解

相关推荐