微机原理实验报告

微机原理实验报告

班级:自动化72    

组员  梁慕佳    07054031

张乐      07054033

张林鹏    07054034

实验一:8255 并行接口实验

1 实验目的

1. 学习并掌握8255 的工作方式及其应用;

2. 掌握8255 典型应用电路的接法。

2 实验设备

PC机一台,TD-PITE 实验装置一套。

3 实验内容

1. 基本输入输出实验。编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。

2. 流水灯显示实验。编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。

4 实验原理

并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。

                            图2-6-1 8255内部结构及外部引脚图

                            图2-6-2 8255控制字格式

5 实验步骤

1. 基本输入输出实验

本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。用一组

开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出

功能。具体实验步骤如下述:

(1)实验接线图如图2-6-3所示,按图连接实验线路图;

(2)编写实验程序,经编译、连接无误后装入系统;

(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。

    图2-6-3 8255基本输入输出实验接线图

程序如下:

;=========================================================

; 文件名: A82551.ASM

; 功能描述: A口为输入,B口为输出,将读入的数据输出显示

;           IOY1

;=========================================================

SSTACK      SEGMENT STACK

              DW 32 DUP(?)

SSTACK      ENDS

CODE   SEGMENT

              ASSUME CS:CODE

START: MOV DX, 0646H

              MOV AL, 90H      ;方式控制字10010000

              OUT DX, AL

             

AA1:     MOV DX, 0640H

              IN  AL, DX       ;A口读入开关信号

              CALL DELAY    

              MOV DX, 0642H   ;B口送出开关信号,控制LED显示

              OUT DX, AL

              JMP AA1         ;无条件转移,对A口进行循环检测

             

DELAY:       PUSH CX

              MOV CX, 0F00H

AA2:     PUSH AX

              POP  AX

              LOOP AA2

              POP  CX

              RET

             

CODE   ENDS

              END  START

实验结果:

拨动8个开关使之处于一定的位置状态,然后运行程序,则8个LED的亮灭能够正确指示8个开关的位置状态。

如:开关状态:10101001(1表示合,0表示开)

则 LED灯状态:10101001(1表示亮,0表示灭)

2. 流水灯显示实验

使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~

D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图2-6-5所示。实验

一:步骤如下所述:

(1)按图2-6-5连接实验线路图;

(2)编写实验程序,经编译、链接无误后装入系统;

(3)运行程序,观察LED 灯的显示,验证程序功能;

(4)自己改变流水灯的方式,编写程序。

二:实验过程:

    1 实验线路图

图2-6-5 8255流水灯实验接线图

2 程序如下:

=========================================================

; 文件名: A82552.ASM

; 功能描述: A口为输出,B口为输出,流水灯显示

;=========================================================

SSTACK      SEGMENT STACK

              DW 32 DUP(?)

SSTACK      ENDS

CODE   SEGMENT

              ASSUME CS:CODE

START: MOV DX, 0646H

              MOV AL, 80H            ;设置初始化方式控制字

              OUT DX, AL

              MOV BX, 8001H

AA1:     MOV DX, 0640H

              MOV AL, BH

              OUT DX, AL            ;A口输出控制状态

              ROR BH, 1              ;循环右移,控制灯从左向右流水显示

             

              MOV DX, 0642H        

              MOV AL, BL

              OUT DX, AL            ;B口输出控制状态

              ROL BL, 1              ;循环左移,控制灯从右向左流水显示

             

              CALL DELAY

              CALL DELAY

              JMP AA1               ;无条件转移

             

DELAY:       PUSH CX

              MOV CX, 0F000H

AA2:     PUSH AX

              POP  AX

              LOOP AA2

              POP  CX

              RET

             

CODE   ENDS

              END  START

实验结果

D0~D7和D8~D15从中间向两边依次循环显示,即从D7、D8开始分别向两边到D0、D15,依次循环显示。

实验二:8251 串行接口应用实验

1 实验目的

1. 掌握8251 的工作方式及应用;

2. 了解有关串口通讯的知识。

2 实验设备

PC机两台,TD-PITE 实验装置两套。

3 实验内容

1. 数据信号的串行传输实验,循环向串口发送一个数,使用示波器测量TXD 引脚上的波形,以了解串行传输的数据格式。

2. 自收自发实验,将3000H 起始的10 个单元中的初始数据发送到串口,然后自接收并保存到4000H 起始的内存单元中。

3. 双机通讯实验,本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将3000H~3009H 内存单元中共10 个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。

4 实验原理

1. 8251 的基本性能

8251 是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能:

(1)通过编程,可以工作在同步方式,也可以工作在异步方式;

(2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K;

(3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符;

(4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1 个、1.5 个或2 个停止位;

(5)具有奇偶、溢出和帧错误检测能力;

(6)全双工,双缓冲器发送和接收器。

注意,8251 尽管通过了RS-232 规定的基本控制信号,但并没有提供规定的全部信号。

2. 8251的内部结构及外部引脚

8251 的内部结构图如图2-7-1所示,可以看出,8251有7 个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。

8251 的外部引脚如图2-7-2所示,共28 个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。

                          图2-7-1 8251内部结构图

图2-7-2 8251外部引脚图

3. 8251 在异步方式下的TXD 信号上的数据传输格式

图3-7-3 示意了8251 工作在异步方式下的TXD 信号上的数据传输格式。数据位与停止位的位数可以由编程指定。

                    图2-7-3 8251工作在异步方式下TXD信号的数据传输格式

4. 8251的编程

对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。

(1)方式控制字

方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图2-7-4所示。

图2-7-4 8251方式控制字

(2)命令控制字

命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图2-7-5所示的是8251 命令控制字各位的定义。

                         图2-7-5 8251命令控制字格式

(3)状态字

CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如图2-7-6所示。

                             图2-7-6 8251状态字格式

(4)系统初始化

8251 的初始化和操作流程如图2-7-7所示。

图2-7-7 8251初始化流程图

5 实验步骤

1. 数据信号的串行传输

发送往串口的数据会以串行格式从TXD 引脚输出,编写程序,观察串行输出的格式。

一:实验步骤如下:

(1)按图2-7-8连接实验接线;

(2)编写实验程序,经编译、链接无误后装入系统;

(3)运行程序,使用示波器观察TXD 引脚上的波形。

二:实验过程如下:

1. 实验接线

图2-7-8 8251数据串行传输实验线路图

2. 程序如下:

;==========================================================

; 文件名: A82511.ASM

; 功能描述: 研究了解串行传输的数据格式

;==========================================================

M8251_DATA    EQU 0600H         ;设置端口

M8251_CON      EQU 0602H

M8254_2             EQU 06C4H

M8254_CON      EQU 06C6H

SSTACK      SEGMENT STACK

              DW 64 DUP(?)

SSTACK      ENDS

CODE   SEGMENT

              ASSUME CS:CODE

START: CALL INIT

A1:        CALL SEND

              MOV CX, 0001H

A2:        MOV AX, 0F00H

A3:        DEC AX

              JNZ A3

              LOOP A2

              JMP A1

             

INIT:     MOV AL, 0B6H                    ; 8254, 设置通讯时钟

              MOV DX, M8254_CON

              OUT DX, AL

              MOV AL, 0CH

              MOV DX, M8254_2

              OUT DX, AL

              MOV AL, 00H

              OUT DX, AL

              CALL RESET                        ; 8251进行初始化

              CALL DALLY

              MOV AL, 7EH

              MOV DX, M8251_CON          ;8251方式控制字

              OUT DX, AL

              CALL DALLY

              MOV AL, 34H

              OUT DX, AL                           ; 8251控制字

              CALL DALLY

              RET

RESET: MOV AL, 00H                        ; 初始化8251子程序

              MOV DX, M8251_CON        ; 控制寄存器

              OUT DX, AL

              CALL DALLY

              OUT DX, AL

              CALL DALLY

              OUT DX, AL

              CALL DALLY

              MOV AL, 40H

              OUT DX, AL

              RET

DALLY:       PUSH CX

              MOV CX, 5000H

A4:        PUSH AX

              POP AX

              LOOP A4

              POP CX

              RET

SEND:  PUSH AX

              PUSH DX

              MOV AL, 31H

              MOV DX, M8251_CON

              OUT DX, AL

              MOV AL, 55H

              MOV DX, M8251_DATA                   ; 发送数据55H

              OUT DX, AL

              POP DX

              POP AX

              RET

CODE   ENDS

              END START

实验结果:

在示波器上观察到TDX引脚上的波形是方波。

2. 自收自发实验

通过自收自发实验,可以验证硬件及软机设计,常用于自测试。

一:具体实验步骤如下:

(1)参考实验接线图如图2-7-9所示,按图连接实验线路;

(2)编写实验程序,编译、链接无误后装入系统;

(3)使用E 命令更改4000H起始的10 个单元中的数据;

(4)运行实验程序,然后停止程序的运行;

(5)查看3000H 起始的10 个单元中的数据,与初始化的数据进行比较,验证程序功能。

二:实验过程如下:

1. 实验接线

                            图2-7-9 自收自发实验接线图

2. 程序如下:

;===========================================================

; 文件名: A82512.ASM

; 功能描述: 自收自发实验程序, 源地址4000H, 目的地址3000H

;===========================================================

M8251_DATA    EQU 0600H

M8251_CON      EQU 0602H

M8254_2             EQU 06C4H

M8254_CON      EQU 06C6H

SSTACK      SEGMENT STACK

              DW 64 DUP(?)

SSTACK      ENDS

CODE   SEGMENT

              ASSUME CS:CODE

START: MOV AX, 0000H

              MOV DS, AX

              MOV AL, 0B6H               ;初始化8254,得到收发时钟

              MOV DX, M8254_CON

              OUT DX, AL

              MOV AL, 0CH

              MOV DX, M8254_2

              OUT DX, AL

              MOV AL, 00H

              OUT DX, AL

              CALL INIT                      ;复位8251

              CALL DALLY

              MOV AL,7EH

              MOV DX, M8251_CON

              OUT DX, AL                           ;8251方式字

              CALL DALLY

              MOV AL, 34H

              OUT DX, AL                           ;8251控制字

              CALL DALLY

              MOV DI, 3000H

              MOV SI, 4000H

              MOV CX, 000AH                   ;10个数

A1:        MOV AL, [SI]

              PUSH AX

              MOV AL, 37H

              MOV DX, M8251_CON

              OUT DX, AL

              POP AX

              MOV DX, M8251_DATA

              OUT DX, AL                           ;发送数据

              MOV DX, M8251_CON

A2:        IN AL, DX                       ;判断发送缓冲是否为空

              AND AL, 01H

              JZ A2

              CALL DALLY

A3:        IN AL, DX                       ;判断是否接收到数据

              AND AL, 02H

              JZ A3

              MOV DX, M8251_DATA

              IN AL, DX                       ;读取接收到的数据

              MOV [DI], AL

              INC DI

              INC SI

              LOOP A1

A4:        JMP A4

INIT:     MOV AL, 00H                        ;复位8251子程序

              MOV DX, M8251_CON

              OUT DX, AL

              CALL DALLY

              OUT DX, AL

              CALL DALLY

              OUT DX, AL

              CALL DALLY

              ;OUT 81H,AL

              ;CALL DALLY

              ;OUT 80H,AL

              ;CALL DALLY

              MOV AL, 40H

              OUT DX, AL

              RET

DALLY:       PUSH CX

              MOV CX,3000H

A5:        PUSH AX

              POP AX

              LOOP A5

              POP CX

              RET             

CODE   ENDS

              END START

实验结果:

通过查看3000H起始的10个单元的数据,与初始化的数据进行比较,程序的功能得到了验证。

实验中出现的问题及解决过程

两个实验由于原程序都由参考资料给出,所以没有遇到较大问题。

实验的收获与心得

    通过这两次实验,基本上掌握了8251A和8255A的工作方式及初始化编程,以及8255A在各工作方式下的应用操作编程,并且理解了在利用程序控制方式、程序中断方式与外设交换数据时程序的不同结构。

相关推荐