8255A初始化编程、端口地址的计算 8255a编写初始化程序

  8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。

  8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A, B,C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCii=0~7)的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。

 (1)方式控制字的格式

  8255A工作方式控制字的格式如图7.11所示。
         

         图7。11 8255A工作方式控制字的格式

 D0:设置PC3~PC0的数据传送方向。D0=1为输入;D0=0为输出。

 D1:设置B口的数据传送方向。D1=1为输入;D1=0为输出.

 D2:设置B口的工作方式。D2=1为方式1;D2=0为方式0。

 D3:设置PC7~PC4的数据传送方向。D3=1为输入;D3=0为输出。

 D4:设置A口的数据传送方向。D4=1为输入;D4=0为输出。

 D6D5:设置A口的工作方式。D6D5=00为方式0,D6D5=01为方式1,D6D5=10或11为方式2。

 D7:方式控制字的标志位,恒为1。

  例如,将8255A的A口设定为工作方式0输入,B口设定为工作方式1输出,C口没有定义,工作方式控制字为10010100B。

(2)C口置位/复位控制字的格式

  8255A C口置位/复位控制字的格式如图7.12所示。

  8255AC口置位/复位控制字用于设置C口某一位口线PCii=0~7)输出为高电平(置位)或低电平(复位),对各端口的工作方式没有影响。

  D3~D1:8种状态组合000~111对应表示PC0~PC7。

  D0:用来设定指定口线PCi为高电平还是低电平。当D0=1时,指定口线PCi输出高电平;当D0=0时,指定口线PCi输出低电平。

         

         图7.12  8255A C口置位/复位控制字的格式

  D6~D4没有定义,状态可以任意,通常设置为0。D7位作为标志位,恒为0。例如,若把PC2口线输出状态设置为高电平,则置位/复位控制字为00000101B。

 (3)8255A初始化编程

  8255A的初始化编程比较简单,只需要将工作方式控制字写入控制端口即可。另外,C口置位/复位控制字的写入只是对C口指定位输出状态起作用,对A口和B口的工作方式没有影响,因此只有需要在初始化时指定C口某一位的输出电平时,才写入C口置位/复位控制字。

  【例7.1】设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序(设8255A的端口地址为FF80H~FF83H)。

初始化程序如下:
   MOV  DX, 0FF83H    ; 控制寄存器端口地址为FF83H
   MOV  AL, 10000110B  ; A口方式0, 数据输出, B口方式1, 数据输入
   OUT  DX, AL     ;将控制字写入控制端

  【例7.2】将8255A的C口中PC0设置为高电平输出,PC5设置为低电平输出,编写初始化程序(设8255A的端口地址为FF80H~FF83H)。
8255A初始化编程、端口地址的计算 8255a编写初始化程序
初始化程序如下:

  MOV  DX, 0FF83H         ; 控制端口的地址为FF83H
  MOV  AL, 00000001B        ; PC0设置为高电平输出
  OUT  DX, AL           ; 将控制字写入控制端口
  MOV  AL, 00001010B        ; PC5设置为低电平输出
  OUT  DX, AL           ; 将控制字写入控制端口

原创]关于8255的端口地址的计算

2007-06-03 12:17

书上就丢下这样一句话:

8255的片选信号CS及口地址选择线A0A1分别由8031的P0.7和P0.0、P0.1经地址锁存后提供。故8255的A、B、C口及控制口地址分别为FF7CH、FF7DH、FF7EH、FF7FH。

再上网找,看到很多人的提问都被那些"大虾" 丢下一句话,"看书去",汗...

经过两天的摸索,终于有点发现了,请看下面的资料:

资料1:

图2是采用74HC2244芯片进行输入接口扩展的原理电路,图3是读P0口的时序。由图3可以看出,当P2.7和RD同为低电平时,74HC2244才能将输入端的数据送到单片机的P0口。其中,P2.7决定了74HC244的地址,0000H-7FFFH(共32K)地址都可以访问这个单元,这就是用线选法所带来的副作用。通常可选择其中的最高地址作为这个芯片的地址来写程序,如这个芯片的地址是7FFFH。但这仅仅是一种习惯,并不是规定,当然也完全可以用0000H作为这个芯片的地址。当确定了地址之后,其接口的输入操作程序如下:

资料2:

由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可以像访问外部RAM存储器单元那样访问外部的P0口接口芯片

所以,8255的扩展端口地址不是唯一的,在0000H~FFFFH,除了cs,A0,A1这三个位固定外,其他可以任意,

如cs占用p2.7,A1占用P0.1,A0占用P0.0,那么可用的端口地址是:

A口:(cs=P2.7=0,A1A0=P0.1P0.0=00)0000H~7FFCH

B口:(cs=P2.7=0,A1A0=P0.1P0.0=01)0001H~7FFDH

C口:(cs=P2.7=0,A1A0=P0.1P0.0=10)0002H~7FFEH

控制口:(cs=P2.7=0,A1A0=P0.1P0.0=11)0003H~7FFFH,

通常可选择其中的最高地址作为这个芯片的地址来写程序

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/32670.html

更多阅读

GPSGATE怎么设置GPS共享端口 精 gpsgate pc破解版

GPSGATE怎么设置GPS共享端口 精——简介在我们用GPS的时候有时候需要共享几个端口GPS端口,那么怎么用GPSgate共享呢!这里说一下GPSgate设置端口共享的方法!GPSGATE怎么设置GPS共享端口 精——工具/原料?GPSgate?CNT?GPSGPSGATE怎

内网端口穿透 windows ngrok

内网端口穿透,是通过开放的第三方端口穿透软件,如nat123端口映射,通过内网IP映射到外网,实现在无公网IP时,一样可以外网访问内网应用。端口穿透nat123端口映射的使用方法如下。1.在内网安装nat123端口穿透软件。启用并添加映射。配

解决端口被占用问题 如何解决端口占用问题

? ??查找被占用的端口,比如8600端口被占用?执行命令:?netstat -tln | grep 8083 该命令可以查看指定端口8083的使用情况.查看端口属于哪个程序??执行命令:?lsof?-i?:8083 ?该命令可以查看端口被哪个进程占用.杀掉占用端

教你如何禁用U盘、屏蔽USB端口的三种方法 游戏端口被屏蔽

在企业里面,有时候我们处于电脑自身安全、商业机密保护的需要,常常要禁用电脑USB接口,尤其是禁用带有USB存储功能的设备,如U盘、移动硬盘和手机存储卡等,但同时又不能完全屏蔽USB接口的使用,因为现在很多的鼠标和键盘都是USB端口。这种情

声明:《8255A初始化编程、端口地址的计算 8255a编写初始化程序》为网友岁拽起分享!如侵犯到您的合法权益请联系我们删除