杭电微机原理8255A并口实验讲义.docx
- 文档编号:1392770
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:9
- 大小:146.82KB
杭电微机原理8255A并口实验讲义.docx
《杭电微机原理8255A并口实验讲义.docx》由会员分享,可在线阅读,更多相关《杭电微机原理8255A并口实验讲义.docx(9页珍藏版)》请在冰豆网上搜索。
杭电微机原理8255A并口实验讲义
微型计算机原理与接口
技术实验报告
班
级:
学
号:
姓
名:
指导老师:
朱亚萍
实验名称:
8255A并行口实验
(一)
8255A并行口实验
(二)
2015年12月9日
实验四8255A并行口实验
(一)
一、实验目的
1.掌握8255A和微机接口方法;
2.掌握8255A的工作方式和编程原理
二、实验内容
用8255PA口控制PB口。
三、实验接线图
四、编程指南
1.8255A芯片简介:
8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0:
基本输入/输出方式;
方式I:
选通输入/输出方式;
方式2:
双向选通工作方式;
2.使8255A端口A工作在方式0并作为输入口,读取KI-K8个开关量,PB口工作在方式0作为输出口。
五、实验程序框图
图4-2
六、实验步骤
1.断电连接导线,8255A芯片A口的PA0-PA7依次和开关量输入KI-K8相连,8255A芯片B口的PB0-PB7依次接LI-L8;
2.在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);
3.编译下载;
4.全速运行,运行程序。
七、实验程序
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
MAINENDP
CODEENDS
ENDMAIN
八、实验结果
闭合或断开开关,相应的发光二极管会亮或灭。
九、实验中遇到的问题及解决方式
8255A的端
问题:
编程过程中不知道此实验平台的8255A的端口地址解决:
查阅实验指导书中对实验平台的简介,最终得到了口地址。
实验五8255A并行口实验
(二)
、实验目的
掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭
实验内容
用8255A做输出口,控制十二个发光管亮灭,模拟交通灯管理
三、实验接线图
四、编程指南
1.通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,
PC4-PC7寸应绿灯,以模拟交通路灯的管理;
2.要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口
l、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全
亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,I、3路口的绿灯熄灭,而I、3路口的黄灯开始闪烁,闪烁若干次以后,I、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到I、3路口方向,之后,重复上述过程;
3.程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输
出状态;
4.各发光二极管共阳极,使其点亮应使8255A相应端口的位清0
五、实验程序框图
图5-2
六、实验步骤
1.断电连接导线,按图6-4连好实验线路:
8255APC0->L3,PCJ>L6,PC2->L9,PC—>L12,PC4>L2,PC5->L5,PC6->L8,PC7->L11;
PB4>L1,PB5->L4,PB6->L7,PB7->L10;
2.在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);
3.编译下载;
4.全速运行,运行程序
七、实验程序
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
START:
MOV
DX,0FF2BH
;控制字寄存器
MOV
AL,80H
;控制字
OUT
DX,AL
;写入控制字
MOV
DX,0FF2AH
;指向C口
MOV
AL,0FFH
;控制字
OUT
DX,AL
;C口全部置咼电平
MOV
DX,0FF29H
;指向B口
MOV
AL,0FFH
;控制字
OUT
DX,AL
;B口全部置咼电平
MOV
DX,0FF2AH
;指向C口
MOV
AL,0F0H
;控制字
OUT
DX,AL
;C口控制红灯全亮
CALL
DELAY2
;调用延时函数,延时3s左右
GRY:
MOV
DX,0FF2AH
;指向C口
MOV
AL,0A5H
;控制字
OUT
DX,AL
;C口控制2、4红灯亮,1、3绿灯亮
CALL
DELAY2
;调用延时函数,延时3s左右
MOV
AL,0F5H
;控制字
OUT
DX,AL
;C口控制1、3绿灯灭
MOV
DX,0FF29H
;指向B口
MOV
CX,8
;设置循环次数,让黄灯闪烁8次
NEXT1:
MOV
AL,0AFH
;控制字
OUT
DX,AL
;B口控制1、3黄灯亮
MOV
AL,0FFH
;控制字
CALL
DELAY1
;调用延时函数,延时300ms左右
OUT
DX,AL
;B口控制1、3黄灯灭
CALL
DELAY1
;调用延时函数,延时300ms左右
LOOP
NEXT1
;循环
MOV
DX,0FF2AH
;指向C口
MOV
AL,5AH
;控制字
OUT
DX,AL
;C口控制1、3红灯亮,2、4绿灯亮
CALL
DELAY2
;调用延时函数,延时3s左右
MOV
AL,0FAH
;控制字
OUT
DX,AL
;C口控制2、4绿灯火
MOV
DX,0FF29H
;指向B口
MOV
CX,8
;设置循环次数,让黄灯闪烁8次
NEXT2:
MOV
AL,05FH
;控制字
OUT
DX,AL
;B口控制2、4黄灯亮
初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,I、3路口的绿灯熄灭,而
1、3路口的黄灯开始闪烁,闪烁若干次以后,I、3路口红灯亮,而同时
2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到l、3路口方向,之后,重复上述过程。
九、实验中遇到的问题及解决方式
问题:
程序好不容易编译成功后,下载运行时发现十二个灯完全不按我事先设定的方式进行变化。
解决:
再一次回顾接线图,发现发光二极管是共阳极连接,需送“0”才能使对应灯亮,因此为我计算的数据取反后就可以正常运行了。
问题:
取反后,程序仍然有一些时候灯不按我预想的方式点亮。
解决:
猜测是B口与C口在初始状态时值可能不确定或全为0。
按照这种想法,在初始化时加上了将B口与C口全部初始置1,保证所有灯初始状态都是灭。
问题:
加上初始化后,发现程序运行到黄灯闪烁时就只执行一次黄灯闪烁。
解决:
在闪烁过程中,程序两次用到了CX,第一次用来决定黄灯闪烁次数,
第二次是用来延时,因此CX在延时后就变成0了,导致闪烁只执行一次就退出。
因此,按此想法,在延时程序中必须将CX压入堆栈保护,延时完毕再弹出。
加上此段程序后,实际下载运行终于完全符合实验要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 8255 并口 实验 讲义