人人范文网 范文大全

东南大学自动化学院微机实验6、7实验报告

发布时间:2020-03-03 01:58:02 来源:范文大全 收藏本文 下载本文 手机版

《微机实验及课程设计》实验报告

学号

08

东南大学

《微机系统与接口(含实验)》

实验报告

实验六

8255 并行输入输出

实验七

串行通信

名:

号:

08

业:

实 验 室:

金智楼516

实验时间: 2018年05月08日

报告时间: 2018年06月03日

评定成绩:

审阅教师:

《微机实验及课程设计》实验报告

学号

08

一.实验目的与内容

1.实验目的:

(1)掌握 8255 方式 0 的工作原理及使用方法,利用直接输入输出进行控制显示; (2)掌握 8 段数码管的动态刷新显示控制;

(3)分析掌握 8255 工作方式1时的使用及编程,进一步掌握中断处理程序的编写。 (4)了解串行通信的基本原理,认识串行收发过程; (5)掌握串行接口芯片 8251 的工作原理和编程方法。

2.实验内容:

(1)实验六 8255 并行输入输出

基本实验内容和要求 1)8255方式0:简单输入输出

实验电路如图3.7-1,8255C口输入接逻辑电平开关K0~K7,编程A口输出接LED显示电路L0~L7;用指令从C口输入数据,再从A口输出。注意实验箱中的8255既引出了A、B、C口引脚排线,也提供了PA0-PA7,PB0-PB7,PC0-PC7的信号连接孔,成组开关、数码管,8段LED显示器也如此,可根据需要设计选用。

推荐接线:

8255/JP8(PC7---PC0) 8255/JP6(PA7---PA0) 8255/CS

接逻辑开关/JP1(K7---K0) 接LED显示/JP2(L7---L0) 接I/O译码/Y1(288H---28FH) 2)编程将 A 口 L0-L7 控制成流水灯,流水间隔时间由软件产生;流水方向由 K0 键在线控制,随时 可切换;流水间隔时间也可由 K4~K7 键编码控制,如 0000 对应停止,0001 对应 1 秒,1111 对应 15 秒, 大键盘输入 ESC 键退出。8段数码管。

3)8段数码管静态显示:按图 3.7-3 连接好电路,将 8255 的 A 口 PA0~PA6(JP6)分别与七段

《微机实验及课程设计》实验报告

学号

08

数码 管的段码驱动输入端 a~DP 相连(JP3),位码驱动输入端 S1 接+5V(选中),S0 接地(关闭)。编程从键盘 输入一位十进制数字(0~9),在七段数码管上显示出来。

4)8段数码管动态显示:按图 3.7-4 连接好电路,七段数码管段码连接不变,位码驱动输入端 S

1、S0 接 8255 C 口的 PC

1、PC0。编程在两个数码管上显示“56”。(注意字符变换之间应使段位全灭,避免显 示“影子”)

(2)实验七 串行通信 基本实验内容和要求

1)按图 3.8-1 连接好电路,其中 8254 计数器用于产生 8251 的发送和接收时钟,TXD 和 RXD 直接相连(注意: 实验系统未采用 MC1488/1489 或 ICL232 等长线收发器,故有关 RS232/422 等电平标准及转 换内容可自行参考相关资料);

2)编写测试程序,初始化 8251,实现连续发送固定字符,用示波器观察发送波形,试用多种不同字符格式和字符。

《微机实验及课程设计》实验报告

学号

08

3)编程实现从键盘输入一个字符, 将其 ASCII 码加 1 后发送出去,再接收回来在屏幕上显示,实现自发自收。

《微机实验及课程设计》实验报告

学号

08

二.基本实验原理

(1)实验六 8255并行输入输出

1)实验箱上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

2)七段数码管的字型代码表如表 3.7-1:

3)参考流程图(图3.7-5,3.7-6)

《微机实验及课程设计》实验报告

学号

08

(2)实验七 串行通信

编程提示

1)图 3.8-1 电路 8251 的控制口地址为 2B9H,数据口地址为 2B8H。

2)8253 计数器的计数初值= 时钟频率 /( 波特率× 波特率因子 ),这里的时钟频率接脉冲源1MHz,波特率若选 1200,波特率因子若选16,则计数器初值为52。

4)收发采用查询方式,参考流程图(见图 3.8-2) 6

《微机实验及课程设计》实验报告

学号

08

《微机实验及课程设计》实验报告

学号

08

三.方案实现与测试

1.实验六 8255并行输入输出

(1)8255方式0:简单输入输出

实验电路如图3.7-1,8255C口输入接逻辑电平开关K0~K7,编程A口输出接LED显示电路L0~L7;用指令从C口输入数据,再从A口输出。

推荐接线:

8255/JP8(PC7---PC0) 8255/JP6(PA7---PA0) 8255/CS

接逻辑开关/JP1(K7---K0) 接LED显示/JP2(L7---L0) 接I/O译码/Y1(288H---28FH) 1) 按照上图所示电路搭接电路,接线图如下:

2) 在纯DOS或者桌面上的TPC集成开发环境中编译运行如下代码:

8255 简单输入输出 (程序名:8255_io.asm)

8255 控制寄存器端口地址 28BH A 口的地址 288H

《微机实验及课程设计》实验报告

学号

08

C 口的地址 28AH ioport equ 3100h-0280h ;tpc 卡中设备的 I/O 地址 io8255a equ ioport+288h io8255c equ ioport+28ah

;8255A 口地址 ;8255C 口地址

io8255k equ ioport+28bh ;8255 控制寄存器端口地址 stacks segment stack db 100 dup (?) stacks ends code segment aume cs:code,:stacks main proc far start: mov ax,stacks

mov ,ax mov dx,io8255k ;设 8255 为 C 口输入,A 口输出 mov al,8bh out dx,al inout: mov dx,io8255c ;从 C 口输入一数据

in al,dx mov dx,io8255a ;从 A 口输出刚才自 C 口所输入的数据 out dx,al mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自 C 口输入,A 口输出

mov ah,4ch ;否则返回 DOS 操作系统 int 21h main endp code ends end start 3) 实验结果记录如下图所示:

《微机实验及课程设计》实验报告

学号

08

(2) 8段数码管静态显示实验

1) 按图下图连接好电路,将 8255 的 A 口 PA0~PA6(JP6)分别与七段数码 管的段码驱动输入端 a~DP 相连(JP3),位码驱动输入端 S1 接+5V(选中),S0 接地(关闭)。

2) 在纯DOS或者桌面上的TPC集成开发环境中编译运行如下代码:

8255_led_s.asm源程序: data segment ioport io8255a io8255b equ 3100h-0280h equ 288h equ 28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,\'Input a num (0--9h):\',0dh,0ah,\'$\' data ends stacks segment stack

《微机实验及课程设计》实验报告

学号

08

db 100 dup (?) stacks ends code segment aume cs:code,ds:data,:stacks start: mov ax,stacks

mov ,ax mov ax,data mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov ax,80h out dx,al : mov dx,offset mesg1 ;显示提示信息

mov ah,09h int 21h mov ah,01 ;从键盘接收字符 int 21h cmp al,\'0\' ;是否小于0 jl exit ;若是则退出 cmp al,\'9\' ;是否大于9 jg exit ;若是则退出

sub al,30h ;将所得字符的ASCII码减30H mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp ;转SSS exit: mov ah,4ch ;返回DOS int 21h code ends end start

3) 实验现象记录如下:

《微机实验及课程设计》实验报告

学号

08

(3) 8段数码管动态显示实验

1)按图下图所示电路搭接好电路,七段数码管段码连接不变,位码驱动输入端 S

1、S0 接 8255 C 口的 PC

1、PC0。编程在两个数码管上显示“56”。(注意字符变换之间应使段位全灭,避免显示“影子”)

2)在纯DOS或者桌面上的TPC集成开发环境中编译运行如下代码:

8255 动态显示‘56’参考程序 (程序名:8255_led_d.asm) data segment ioport equ 3100h-0280h io8255a equ ioport+288h io8255c equ ioport+28ah io8255k equ ioport+28bh

;tpc 卡中设备的 I/O 地址 ;8255A 口地址 ;8255C 口地址

;8255 控制寄存器端口地址

《微机实验及课程设计》实验报告

学号

08

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码 buffer1 db 5,6 bz dw ? data ends stacks segment stack db 100 dup (?)

;存放要显示的个位和十位

;位码

stacks ends code segment aume cs:code,:stacks,ds:data start: mov ax,stacks

mov ,ax mov ax,data mov ds,ax mov dx,io8255k ;将 8255 设为 A 口输出 mov al,80h out dx,al mov di,offset buffer1 ;设 di 为显示缓冲区

loop2: mov bh,02 lll:

mov al,0

;送全灭段码

mov dx,io8255a ;自 8255A 口输出 out dx,al mov byte ptr bz,bh push di dec di add di, bz mov bl,[di] ;bl 为要显示的数 pop di mov bh,0 mov si,offset led ;置 LED 数码表偏移地址为 SI add si,bx ;求出对应的 LED 数码 mov al,byte ptr [si] mov dx,io8255a ;自 8255A 口输出 out dx,al mov al,byte ptr bz ;使相应的数码管亮 mov dx,io8255c 13

《微机实验及课程设计》实验报告

学号

08

out dx,al mov cx,3000 delay: loop delay ;延时

mov bh,byte ptr bz shr bh,1 jnz lll mov dx,0ffh mov ah,06 int 21h je loop2 ;有键按下则退出

mov dx,io8255c mov al,0 out dx,al mov ah,4ch ;返回 DOS 操作系统 int 21h ;关掉数码管显示

code ends end start

3)实验结果记录如下:

《微机实验及课程设计》实验报告

学号

08

2.实验七 串行通信

基本实验内容和要求

1) 按图 3.8-1 连接好电路,其中 8254 计数器用于产生 8251 的发送和接收时钟,TXD 和 RXD 直接相连

2) 在纯DOS或者桌面上的TPC集成开发环境中编译运行如下代码:

参考程序:程序名:8251.asm data segment ioport equ 3100h-0280h io8253a equ ioport+280h io8253b equ ioport+283h io8251a equ ioport+2b8h io8251b equ ioport+2b9h mes2 dd mes1 data ends stacks segment stack db 100 dup (?) stacks ends code segment aume cs:code,ds:data,:stacks main proc far start: mov ax,stacks

;tpc 卡中设备的 io 地址 ;计数器 0 地址 ;8253 控制寄存器地址 ;8251 数据口地址 ;8251 控制口地址

mes1 db \'you can play a key on the keybord!\',0dh,0ah,24h mov ,ax

《微机实验及课程设计》实验报告

学号

08

mov ax,data mov ds,ax mov dx,io8253b ;设置 8253 计数器 0 工作方式 mov al,16h out dx,al mov dx,io8253a mov al,52 ;给 8253 计数器 0 送初值 out dx,al mov dx,io8251b ;初始化 8251 xor al,al mov cx,03 ;向 8251 控制端口送 3 个 0 loop delay mov al,40h ;向 8251 控制端口送 40H,使其复位 call out1 mov al,4eh ;设置为 1 个停止位,8 个数据位 call out1 ;波特率因子为 16 mov al,27h ;向 8251 送控制字允许其发送和接收 call out1 lds dx,mes2 ;显示提示信息 mov ah,09 int 21h in al,dx test al,01 ;发送是否准备好 jz waiti mov ah,01 ;是,从键盘上读一字符 int 21h cmp al,27 ;若为 ESC,结束 jz exit mov dx,io8251a inc al out dx,al ;发送 mov cx,0F00h

;延时

next: mov dx,io8251b in al,dx test al,02 ;检查接收是否准备好 jz next in al,dx ;没有,等待 ;准备好,接收

16 delay: call out1 waiti: mov dx,io8251b s51: loop s51 mov dx,io8251a

《微机实验及课程设计》实验报告

学号

08

inc al mov dl,al ;如果需要处理,如加 1 mov ah,02 ;将接收到的字符显示在屏幕上 int 21h jmp waiti int 21h

;向外发送一字节的子程序 exit: mov ah,4ch ;退出 main endp out1 proc near

out dx,al push cx mov cx,0F00h ;延时

pop cx ret gg: loop gg out1 endp code ends end start

3) 实验现象:输入1,回显3,因为发时加1,接受时又加1。

修改代码,持续输入55,用示波器观察发送发送过程和波特率,删掉源码中接受和发送部分,在原发送部分加如下代码:

out2: mov al,55h mov dx,io8251a out dx,al mov cx,0f00h 实验现象:

每16次RCLK脉冲对应一个数据位。

《微机实验及课程设计》实验报告

学号

08

四.提高与创新研究

五.分析与总结

通过这两次实验,我大致了解并掌握了 8255三种方式的工作原理及使用方法以及利用它直接输入输出进行控制显示的方法,掌握了8段数码管的动态刷新显示控制方法;进一步掌握了中断处理程序的编写,了解串行通信的基本原理,深入认识了串行收发过程,掌握了串行接口芯片 8251 的工作原理和编程方法,特别是对8255的A组控制,B组控制以及8255控制字有了更加深入的理解

微机实验报告

微机实验报告

微机实验报告数模转换器和模数转换器实验

电子科技大学微机实验报告 实验5

电子科技大学微机实验报告 实验4

【微机实验】东南大学微型计算机原理及应用实验二

微机原理实验报告

微机组装实验报告

微机实验报告要求

自动化学院专业介绍7

东南大学自动化学院微机实验6、7实验报告
《东南大学自动化学院微机实验6、7实验报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档