预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验4单片机端口扩展 实验目的 通过此实验学习单片机I/O口的扩展,实验通过扩展芯片8255A实现。 实验内容 通过8255A芯片进行单片机I/O口扩展。 实验步骤 1、在Proteus环境中绘制仿真电路图。在前面实验中加入一个74LS373锁存器(关键词‘74LS373’),一个8255A扩展芯片(关键词‘8255A’),LED灯,电阻,开关(关键词‘BUTTON’)搭建如图5-1所示仿真电路。 图5-1I/O扩展实验仿真电路图 2、连线说明: 74LS373锁存器11引脚主要进行信号的状态选择控制,它直接与CPU的ALE管脚相连,当它为“1”时,锁存器输出状态(Q0~Q7)同输入状态(D0~D7);当它由“1”变“0”时,数据打入锁存器中。本文设计中用锁存器出口的Q0、Q1和Q7与8255A芯片的A0、A1和/CS管脚相连,/CS管脚为片选信号输入管脚,A0、A1为8255A芯片出口模式选择信号引脚。 3、8255A端口地址确定简介: 端口地址随硬件电路连接的变化而变化,一片8255A占4个端口地址:PA口、PB口、PC口、控制口,由/CS、A1、A0决定。/CS、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址: 16位总线访问地址=片选地址+片内地址 /CS、A1、A0与地址总线的连接方案不同,端口地址也就不同。 比如: 将没有连接的地址线设为1,由上面的连接方式,8255A四个端口地址分别为: PA=7FFCH;PB=7FFDH;PC=7FFEH;控制口=7FFFH;端口地址与电路连接关系密切,端口地址的正确确定是CPU对8255访问的关键。 在本实验电路设计中,利用锁存器实现端口地址的锁存,由连线可以看到P0.0、P0.1和P0.7分别与8255A芯片的A0、A1和/CS引脚相连,则可以确定本实验8255A芯片各端口地址为: PA=FF7CH;PB=FF7DH;PC=FF7EH;控制口=FF7FH 4、8255A的控制字介绍: (1)工作方式控制字:作用是设置3个并行口I/O选择和设置8255A的工作方式。 PA口有3种工作方式,PB口有2种工作方式,PC口只有一种工作方式0,各个端口的工作方式这里不再详细介绍。在方式1或方式2,PC口自动作为PA口、PB口的控制信号。位为0时,为输出口;为1时,为输入口。 方式控制字各位的含义: 标志位A组方式设置A口C上口B组方式B口C下口11/01/01/01/01/01/01/0含义方式0、1、2输入/输出输入/输出方式0、1输入/输出输入/输出在本实验中,设置8255A芯片A口为输出,B口为输入,均工作在方式0,则控制字设定为:0X82即可。 (2)PC口置/复位控制字:其作用是用来设置PC口某位输出高电平或低电平。实现某些位控制,如启/停外设、开关的通/断、继电器的吸合/释放等。 5、编写如下代码: ORG0000H MOVDPTR,#0FF7FH;片外数据存储器地址指针DPTR赋初值 MOVA,#82H;确定PA、PB、PC口的工作方式 MOVX@DPTR,A;写入工作方式控制字 MOVP2,#0FFH;片外数据存储器地址指针P2和R1赋初值 MOVR1,#7DH;指针指向PB口 Loop:MOVXA,@R1;读PB口的数据 DECR1;指针指向PA口 MOVX@R1,A;把读回来PB口的数据写向PA口 INCR1;指针指向PB口 ACALLDelay;调用延时子程序 SJMPLoop;返回,重新读PB口数据 Delay:MOVR7,#10;软件延时子程序 Loop3:MOVR6,#200 Loop2:MOVR5,#200 Loop1:DJNZR5,Loop1 DJNZR6,Loop2 DJNZR7,Loop3 RET 6、在Keil环境下打开库函数的方法很简单,只是需要选中需要打开的库函数,(如图5-2所示)然后点击鼠标右键,选中标签,库函数中的定义就出现在软件界面了,需要关闭时,在库函数的标签上,点击鼠标右键选择Close即可(如图5-3所示)。 图5-2库函数打开 图5-3库函数关闭