您好,欢迎来到九壹网。
搜索
您的当前位置:首页华南理工大学信工微机实验三

华南理工大学信工微机实验三

来源:九壹网


微机原理实验报告

实验三

班 级: 2016级信息工程 班 姓 名: 学 号: 序 号:

评阅分数:

实验三 微机接口实验系统的熟悉、8255芯片的编程

一、实验目的

1、自学TPC-ZK通用32位微机接口实验系统的组成。

2、掌握实验系统中接口地址译码电路的工作原理及计算方法。 3、掌握简单I/O端口的读写操作。 4、掌握8255的工作原理及编程方法。

二、实验内容

题目1:简单I/O端口的读写操作 (1)端口地址的计算方法

74LS138地址译码器译码输出端/Y0~/Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,/Y0:280H~287H,/Y1:288H~28FH等。

实验要求参考实验指导书上实验一 I/O地址译码

题目2:8255的综合编程

(1)实验电路如图20,8255C口接逻辑电平开关K0~K7,A口接LED显示

电路L0~L7。 编程从8255C口输入数据,再从A口输出。 实验要求参考实验指导书上实验三 可编程并行接口8255

(2)通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为

南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。 十字路口交通灯的变化规律要求:

实验要求参考实验指导书上实验七 交通灯控制实验

 南北路口的绿灯、东西路口的红灯同时亮一定时间。

 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。  南北路口的红灯、东西路口的绿灯同时亮一定时间。

 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。  转(1)重复。

请将交通灯的点亮时间扩大6倍. 附加功能:

1)PC3(PA3)键作为右侧那组信号等的优先控制信号,如果PC3(PA3)键为高,右侧信号灯立即转换成绿灯亮(PC0=1),左侧信号灯红灯亮(PC7=1),其它信号灯为0

2)PC4(PA4)键作为左侧那组信号等的优先控制信号,如果PC4(PA4)键为高,左侧信号灯立即转换成绿灯亮(PC5=1),右侧信号灯红灯亮(PC2=1),其它信号灯为0

3)PC3(PA3)=0,PC4(PA4)=0,依照正常信号灯控制方式。

2.1 实验原理

通过代码实现8255的PA口作为输入端,将按键与PA口相连,通过PA口来检测按键各个状态;PC口与LED灯相连,将从PA读取的状态利用PC输出,从而控制左右红绿灯的亮灭。

而设置PA为输入,PC为输出,首先要做的是:设置控制字寄存器;然后通过方式选择控制字,来读A口写C口。

图(1)程序流程图

2.2 实验代码

data segment

io8255a equ 28ah io8255b equ 28bh

portc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能 db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data ends code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax

mov dx,io8255b mov al,90h

out dx,al ;设置8255为C口输出 mov dx,io8255a re_on: mov bx,0 on: mov dx,288H

IN AL,DX ;把从A端口读到的放到AL中去 test al,8h jnz case1 test al,10h jnz case2

;如果开关都没有打开,执行下面循环灯亮 mov dx,io8255a mov al,portc1[bx] cmp al,0ffh jz re_on

out dx,al ;点亮相应的灯 inc bx

mov cx,200 ;参数赋初值 test al,21h ;是否有绿灯亮 jz de1 ;没有,短延时 mov cx,2000 ;有,长延时

de1: mov di,54000 ;di赋初值9000 de0: dec di ;减1计数 jnz de0 ;di不为0 loop de1 push dx mov ah,06h mov dl,0ffh int 21h

pop dx

jz on ;没有,转到on

exit: mov ah,4ch ;返回 int 21h

case1: mov dx,io8255a ;选择端口C的写入 mov al,81h

out dx,al ;点亮相应的灯 jmp on

case2: mov dx,io8255a ;选择端口C的写入 mov al,24h

out dx,al ;点亮相应的灯 jmp on

code ends

end start

2.3 实验结果

当按键开关K3,K4未打上, LED灯按正常的红绿灯顺序点亮; 当打上K3时,左侧红灯、右侧绿灯点亮,打下K3,LED回到原先的状态,按正常的红绿灯顺序点亮;

当打上K4时,左侧绿灯、右侧红灯点亮,打下K4,LED回到原先的状态,并按正常的红绿灯顺序点亮。

2.4 结果分析

K3 K4打上的时候,红绿灯不能马上跳转,这是因为在红绿灯的延时中,没有一直判断K3 K4的状态,所以只有在执行完一个延时循环之后才会判断按键状态进而跳转对应的交通灯。这对实验功能的实现影响并不大,总体功能都能够实现。如果希望能够立即跳转,可以在延时循环中加上判断按键状态,这样就能够实现极快的跳转。

三、实验感悟

本次实验借助开发箱,模拟了8255的编程。通过一个红绿灯的模拟实现,让我了解了I/O端口地址和输入输出端的设置。对于理论课学到的知识有了更深入的掌握。在这次实验过程中,不仅仅是熟悉了8255,也运用到了前几章学习的汇编指令,如循环,条件跳转等。

总的来说,这次实验收获很多,同时,这也是最后一次微机实验。回顾三次的微机实验,我从最开始接触汇编,到现在能较为熟练地使用汇编编写代码,这都离不开老师的孜孜教诲,感谢老师一直以来的耐心解惑!谢谢老师!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务