1、微机原理实验报告班级 学号 姓名 实验组别 实验日期 2010/12/24 室温 报告日期 2010/12/26 成绩 报告内容:(目的和要求,原理,步骤,数据,计算,小结等)实验名称: 可编程并行接口8255实验一、实验目的: 了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。二、实验设备:(1) PC机一台;(2) QTH-8086B 16位微机教学实验仪一套。三、实验说明1、8255A的内部结构:(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送
2、的。(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组
3、控制电路控制B口和C口下半部。(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。2、8255A的工作方式:方式0基本输入输出方式;方式1选通输入输出方式;方式2双向选通输入输出方式。3、8255A的状态字:图1 8255方式1的状态字 图2 8255方式2的状态字4、8255A的控制字:1D6D5D4D3D2D1D0特征位A组方式00=方式 01=方式11X=方式2A口0=输出1=输入C口高4位0=输出1=输入B组方式0=方式01=方式1B口0=输出1=输入C口低4位0=输出1=输入图3 8255A方式控制字0D6D5
4、D4D3D2D1D0特征位不用位选择000=C口0位111=C口7位0=复位1=置位图4 C口按位置位/复位控制字四、实验原理图图5 可编程并行接口8255电路五、实验内容(1) 流水灯实验:利用8255的A口循环点亮发光二极管。(2) 交通灯实验:利用8255的A口模拟交通信号灯。(3) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。六、实验步骤1、流水灯实验:(1) 实验连线 该模块的WR、RD分别连到MCU主模块的WR、RD。 该模块的数据(AD0AD7)、地址线(A0A7)分别连到MCU主模块的数据(AD0AD7)、地址线(A0A7)。 82
5、55模块选通线CE连到MCU主模块的地址A15。 8255的PA0PA7连到发光二极管的L0L7。(1) 运行程序:(2) XunHuan.ASM,观察发光二极管。图6 流水灯实验图7 交通灯实验图8 I/O输入输出实验2、交通灯实验:(1) 实验连线: 该模块的WR、RD分别连到MCU主模块的WR、RD。 该模块的数据(AD0AD7)、地址线(A0A7)分别连到MCU主模块的数据(AD0AD7)、地址线(A0A7)。 8255模块选通线CE连到MCU主模块的地址A15。 8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。(2) 运行程序:Trac.
6、ASM,观察发光二极管。3、I/O输入输出实验:(1) 实验连线a) 该模块的WR、RD分别连到MCU主模块的WR、RD。b) 该模块的数据(AD0AD7)、地址线(A0A7)分别连到MCU主模块的数据(AD0AD7)、地址线(A0A7)。c) 8255模块选通线CE连到MCU主模块的地址A15。d) 8255的PA0PA7接开关K0K7,8255的PB0PB7接发光二极管L0L7。(2) 运行程序:Kaiguan.ASM;拨动开关,观察发光二极管。七、实验程序1、流水灯程序;PA口接L1L8 PAGE 60,132 .MODEL small .STACK 20h .DATA 20h A825
7、5 EQU 7000HB8255 EQU 7001HC8255 EQU 7002HD8255 EQU 7003H .CODE ORG 0000H DD 0000FFF0H DD 0000FE80H DD 0000FE80H ORG 0270HMAIN: MOV SP,9000H MOV DX,D8255 ;状态字 MOV AL,80H ;方式0输出 OUT DX,AL MOV DX,A8255 MAIN1: CALL RIGHT CALL LEFT CALL ALLON CALL ALLOFF JMP MAIN1 ;*; /*右移子程序*/;* RIGHT: MOV CL,08H MOV AL
8、,0FFH CLC RIGHT1: RCR AL,1 OUT DX,AL CALL DELAY LOOP RIGHT1 RET ;*; /*左移子程序*/;*LEFT: MOV CL,08H MOV AL,0FFH CLC LEFT1: RCL AL,1 OUT DX,AL CALL DELAY LOOP LEFT1 RET ;*; /*全亮子程序*/;* ALLON: IN AL,00H OUT DX,AL CALL DELAY RET ;*; /*全灭子程序*/;* ALLOFF: IN AL,0FFH OUT DX,AL CALL DELAY RET ;*; /*延时子程序*/;* DE
9、LAY: PUSH CX MOV CX,0FFFFH LOOP $ POP CX RET END 2、交通灯程序 PAGE 60,132 .MODEL small .STACK 20h .DATA 20h A8255 EQU 7000H B8255 EQU 7001H C8255 EQU 7002H D8255 EQU 7003H .CODE ORG 0000H DD 0000FFF0H DD 0000FE80H DD 0000FE80H ORG 0270HMAIN: MOV SP,9000H TRAFFIC: MOV DX,D8255 ;状态口 MOV AL,80H ;方式 0 输出 OUT
10、 DX,AL MOV DX,A8255 ;PA口地址 CALL ST0TRAFFIC1: CALL ST1 CALL ST2 CALL ST3 CALL ST4 JMP TRAFFIC1 ;*; /*初始状态全为红灯*/;* ST0: MOV AL,1BH OUT DX,AL CALL DELAY RET ;*; /*南北为绿灯,东西为红灯子程序*/;*ST1: MOV AL,33H OUT DX,AL CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 RET ;*; /*南北红灯闪烁,东西为红灯子程
11、序*/;*ST2: MOV CL,5H ST20: MOV AL,2BH OUT DX,AL CALL DELAY1 MOV AL,3BH OUT DX,Al CALL DELAY1 LOOP ST20 RET ;*; /*南北为红灯,东西为绿灯子程序*/;* ST3: MOV AL,1EH OUT DX,AL CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 CALL DELAY1 RET ;*; /*南北为红灯,东西黄灯闪烁子程序*/;*ST4: MOV CL,5H ST40: MOV AL,1DH OUT DX,AL
12、CALL DELAY1 MOV AL,1FH OUT DX,AL CALL DELAY1 LOOP ST40 RET;*; /*延时子程序*/;* DELAY1: PUSH CX MOV CX,0FFFFH LOOP $ POP CX RET DELAY: PUSH CX MOV CX,0FFH LOOP $ POP CX RET END3、开关控制程序: PAGE 60,132 .MODEL small .STACK 20h .DATA 20h A8255 EQU 7000H B8255 EQU 7001H C8255 EQU 7002H D8255 EQU 7003H .CODE ORG
13、0000H DD 0000FFF0H DD 0000FE80H DD 0000FE80H ORG 0270Hstart: MOV SP,9000H MOV DX,D8255 ;8255控制口口地址 MOV AL,90H ;控制字 OUT DX,ALS1: MOV DX,A8255 ;读A口数据 IN AL,DX MOV DX,B8255 OUT DX,AL ;送B口 JMP S1 END 八、实验结果运行第一个流水灯程序以后,先是左边第一个LED灯亮,然后亮的灯的位置依次想右移动一个位置,然后到最右端以后再一次向左移动一个位置,再到顶端以后,LED灯全部点亮,然后全部熄灭;运行第二个交通灯控制程序以后,先是两边都是红灯、然后一边是红灯的时候另一边是绿灯,然后状态交换,实现对交通控制灯的模拟;运行第三个开关控制程序时,所有的发光二极管的亮灭状态和对应的控制开关状态相一致,改变开关的状态,则它对应控制的发光二极管的亮灭状态也随之改变。九、实验小结在前几次实验的经验和教训的基础上,这一次综合性的实验进行得还是比较顺利的,并且通过这次实验也系统地更深入地了解了8255这一功能比较综合、全面的芯片。在做交通灯控制实验的时候,观察发现两边的状态其实不对称,后来检查程序没有错误,分析后发现是一边的黄灯对应的发光二极管出现了问题,不能亮。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2