1.设8255a芯片的地址A0-A3H,编号8255a芯片的A口的PA6,PA7位进行置位输出,而不改变其余端口原来的状态的初始化程序

51单片机8255A扩展IO口与单片机连接_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
23页4下载券18页2下载券36页1下载券26页1下载券161页2下载券 161页免费42页2下载券2页免费36页2下载券19页2下载券
喜欢此文档的还喜欢8页免费3页免费21页免费5页免费5页1下载券
51单片机8255A扩展IO口与单片机连接|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:1.27MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢6.2 可编程并行接口8255A
你的位置:第六章 并行接口
| 第二节 可编程并行接口8255A
您已学习:
第二节 可编程并行接口8255A
&&&&所谓可编程实际上就是具有可选择性,并且是用编程的方法进行选择。例如,选择芯片中的哪一个或哪几个数据端口与外设连接;选择端口中的哪一位或哪几位作输入、哪一位或哪几位作输出;选择端口与CPU之间采用哪种方式传送数据等,均可由用户在程序中写入方式字或控制字来进行指定。因此,它们具有广泛的适应性及很高的灵活性,在微机系统中得到广泛应用。对于各种型号的CPU都有与其配套的并行接口芯片。如Intel公司8255A(PPI),Zilog公司IZ-80PIO。Motorola公司MC6820(PIA)等,它们的功能虽有差异,但工作原理基本相同。本节着重讨论8255A芯片。
&&&&8255A的外部特性和内部结构
&&&&[1]8255A的基本特性
①8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片,它为Intel系列CPU与外部设备之间提供TTL电平兼容的接口,如打印机,A/D、D/A转换器,键盘,步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的PC口还具有按位置位/复位功能,为按位控制提供了强有力的支持。
②8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送、应答方式(查询)传送和中断方式传送,与此相应,8255A设置了0方式、1方式以及2方式(双向传送)。
③8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。8255A在执行命令过程中和执行命令完毕之后,它所产生的状态保留在状态字中,以供查询。
④8255APC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用,等等。这是使用8255的难点所在,学习时要特别注意。C口的使用情况,请见后面关于“与外部设备的连接信号线”。
⑤8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这3类寄存器进行访问。
&&&&[2]8255A的外部引线与内部结构
&&&&8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图7.1所示(见第六章动画演示(图7.1))。
&&&&(1)外部引脚
&&&&它作为接口电路的8255A具有面向CPU和面向外设两个方向的连接能力。因此,它的引脚分成两部分。
与系统总线的连接信号
面向数据总线的有:
D0 ~D7:双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据。
面向地址总线的有:
CS:选片信号,低电平有效,由系统的高位地址线经I/O端口地址译码电路产生。而为低电平时,才能对8255A进行读写操作。当在为高电平时,切断CPU与芯片的联系。
A1,A0:芯片内部端口地址信号,与系统地址总线低位相连,用来寻址8255A内部寄存器。两位地址,可形成片内4个端口地址。
面向控制总线的有:
RD:读信号,低电平有效。CPU通过执行IN指令使而有效,即发读信号将数据或状态信号从8255A读至CPU。
WR:写信号,低电平有效。CPU通过执行OUT指令使了WR有效,即发写信号,将命令代码或数据写入8255A。
RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输人方式他出寄存器和状态寄存器被复位井巨屏蔽中断请求;四条面向外设的情思线是现高阻悬浮状态。这种势态,一直维持到用方式命令才能改变,使其进人用户所需的工作方式。
与外部设备的连接信号
PA0~PA7:端口A的输人/输出线。
PB0~PB7:端口B的编人/输出线。
PC0~PC7:端口C的输入/输出线。
这四根信号线均可用来连接I/O设备和传送信息。尽管有时也利用他们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据读入,而不是作8255A的状态口读入的。A口和B口作数据口输入/输出时,是8位一起行动的,即使是只用到其中的某一位,也要同时输入/输入8位。
C口的作用是与8255A的工作方式有关,它除了作数据口以外,还有其它用途,故C口的使用比较特殊,单独介绍如下:
a.作数据口。C口作数据口时和A口、B口不一样,它是把8位分成高4位和低4位两部分,高4位PC4~PC7与A口一起组成A组,低4位PC0~PC3与B口组成B组。因此,C口作为数据口输入输出时,是4位一起行动,即使只使用其中的一位,也要4位一起输入输出。
b.作状态口。8255A在1,2在方式下,有固定的状态字,是从C口读人的。此时人C口就是8255的状态口。而A口和B口不能作8255A本身的状态口用。
c.作专用(固定)联络信号线。8255A的1,2方式是一种应答方式,在传送过程中需要进行应答的联络信号。因此,在1,2方式下C口的大部分引脚分配作了固定的联络线。
A口和B口的引脚有时也作联络信号用,但它们不是固定的。
d.作按位控制用。C口的8个引用可以单独从1个引脚输出高/低电子。此时C口是作按位控制用而不是作数据输出用。
C口的这些特殊应用,扩展了8255A的功能,以后将逐步介绍。
&&&&(2)内部结构
&&&&8255A的内部结构如图72所示。它由以下4个部分组成(见第六章动画演示(图7.2))。
①数据总线缓冲器。这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。所有数据的发送与接收,以及CPU发出的命令字和从8255A来的状态信息都是通过该缓冲器传送的。
②读/写控制逻辑。读/写控制逻辑由读信号RD、写信号WR、选片信号CS以及端口选择信号A1A0等组成。读/写控制逻辑控制了总线的开放、关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输人数据从相应的端口送到CPU。8255A的基本操作及在PC系统和实验平台上的端口地址如表7.1所示(见第六章动画演示(表7.1))。
③输人/输出端口A、B、C。8255A包括3个8位输人输出端口(port)。每个端口都有一个数据输人寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中PC口的8位可分为两个4位端口(0方式下),也可以分成一个5位端口和一个3位端口(2方式下)来使用n。
④A组和B组控制电路。控制A工和C三个端口的工作方式人组控制A口和C口的上半部(PC4~PC7)在组控制B口和C口的下半部(PC0~PC3)的工作方式和输人输出。A组、B组的命令寄存器还接收按位控制命令,以实现对PC口的按位置位/复位操作。
&&&&8255A的编程命令
&&&&8255A的编程命令包括工作方式命令和对阿口的按位操作命令,它们是用户使用8255A来组建各种接口电路的重要工具,要熟练掌握。由于这两个命令都是送到8255A的同一个命令端口,故为了让8255A能识别是哪个命令,采用在命令代码中设置特征位的方法。若写人的命令字的最高位D7=1,则是工作方式命令;若写人的命令字D7=0,则是巩口的按位置位/复位命令。下面讨论这两个命令字的作用及格式。
作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输人还是作输出。
格式:8位,其中最高位是特征位,一定要写1,其余各位的定义如下,应根据用户的设计要求填写1或0。
从方式命令的格式可知人组有3种方式(0方式、1方式、2方式),而B组只有2种工作方式(0方式、1方式)。端口PC分成2部分,上半部属A组,下半部属B组。所有3个并行端口,置1指定为输人,置0指定为输出。利用工作方式命令的不同代码组合,可以分别选择A组和B组的工作方式和各端口是输人还是输出。
例1:要把A口指定为1方式,输人,C口上半部定为输出;B口指定为0方式,输出,C口下半部定为输人,则工作方式命令代码是:B或B1H。
若将此命令代码写到8255A的命令寄存器即实现了对8255A作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为:
MOV DX,nH;8255A命令口地址
MOV AL,0B1H;初始化命令
OUT DX,AL;送到命令口。
按位置位/复位命令字
作用:指定PC口的某一位(某一个引脚)输出高电平或低电平。
格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0。
利用按位置位/复位命令可以使PC口的8根线中的任意1根置成高电平输出或低电平输出。
例2:若要把C口的PC2引脚置成高电平输出,则命令字应该为B或05H。
将该命令的代码写人8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为:
MOV DX,303H;8255A命令口地址
MOV AL,05H;使PC2=1命令
OUT DX,AL;送到命令口
如果要使引脚PC2输出低电位,则程序段为:
MOV DX,303H;8255A命令口地址
MOV AL,04H;使PC2=0命令
OUT DX,AL;送到命令口
按位置位/复位命令产生的输出信号,可作为控制开关的通/断,继电器的吸合/释放,电机的启/停等操作的选通信号。
利用C口的按位控制特性还可以产生正、负脉冲或方波输出,对外设进行控制。
例3:利用8255的PC,产生负脉冲,作打印机接口电路的数据选通信号,其程序段为:
MOV DX,303H;8255A命令口
MOV AL,B;置代PC7=0
OUT DX,AL
NOP ;维持低电平NO
MOV AL,B;置PC7=1
OUT DX,AL
例4:利用8255A的巩,产生方波,经滤波和功放后,送到喇叭,使产生不同频率的声音.其程序段为:
OUT SPK PROC
MOV DX,303H ;8255A命令口
MOV AL,B ;置PC6=1
OUT DX,AL
CALL DELAY1;PC6输出高电平维持的时间
MOV AL,B;置PC6=0
OUT DX,AL;
CALL DELAY1;PC6输出低电平维持的时间
OUTSPK ENDP
若改变DELAY1的延时时间,即可改变喇叭发声的频率。
关于两个命令的讨论
①方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。也就是说,凡是用到8255A,就一定要先初始化。
②按位置位/复位命令只是对PC口的输出进行控制,使用它并不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。
③两个命令的最高位D7都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。在命令代码中设置特征位(标志位)是解决多个命令写人同一个命令口时如何进行识别而经常采用的方法之一。由于8255A两个命令的特征位不同,D7=l时,为工作方式命令;D7=0时,为按位置位/复位命令。因此,可以判断,命令代码的值等于、大于80H的,是工作方式命令;小于80H的,是按位置位/复位命令,并且奇数值是置位命令而偶数值是复位命令。
④按位置位/复位的命令代码只能写人命令口。这个问题经常有人弄错。因为表面看起来,按位置位/复位命令是对C口进行操作,所以,也就以为可以把按位置位/复位的命令代码写到C口(数据口)。这是错误的想法,因为按位置位/复位是一个命令,它就要按命令的定义格式来处理每一位,如果把它写入C口,就会按C口的数据定义格式来处理。这两种定义完全不同的格式是不能互换的,所以它只能写到命令口,按命令定义来处理。
A口和B口另一个有趣的使用方法
A口和B口也可以按位输出高/低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现方法也不同。C口按位输出是以命令的形式送到命令寄存器去执行的,而A口、B口的按位输出是以送数据到A口、B口来实现的。其具体做法是;若要使某一位置高电瓶,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,字节中使该位为1,其他位为0,然后在送到同一端口,即可使该位置位。若要使某一位置,低电平,则先读入1个字节,再将它“与”上一个字节,字节中该位为0,其他位为1,然后再送到同一端口,即可实现对该位的复位而不影响其他位的状况。
当然,能够这样作的条件是8255A的输出有锁存能力,若定义数据口为输出而对其执行IN指令时,所读到的内容就是上次输出时锁存的数据,而不是读人外设送来的数据。
例5。若要使PA7位输出高/低电平,则用下列程序段:
使PA7输出高电平:
MOV DX,300H ;PA数据口地址
IN AL, DX ;读入A口原输出内容
MOV AH,AL ;保存原输出内容
OR AL,80H ;使PA7=l
OUT DX,AL ;输出PA7
MOV AL,AH ;恢复原输出内容
OUT DX,AL
使PA7输出低电平
MOV DX,300H ; A口地址
IN AL, DX ;读入端口原输出值
MOV AH,AL ;保存原输出值
AND AL,7FH ;使PA7=0
OUT DX,AL ;输出PA7
MOV AL,AH ;恢复原输出值
OUT DX,AL
用这种方法不仅可实现使单独一位输出高/低电平,还可以使几位同时输出高/低电平。
例6:使B口的PB1和PB0同时置位复位,其程序如下:
MOV DX,301H ;PB数据口地址
IN AL, DX ;读人原输出值
MOV AH,AL ;保存原输出值
OR AL,03H ;使PB1 PB0=11
OUT DX,AL ;同时输出PB1 PB0
AND AL,0FCH ;使PB1 PB0=00
OUT DX,AL ;同时输出PB1 PB0
&&&&8255A的工作方式
&&&&在使用8255A时,除了对3个并行端口分配作输人或输出之外,还要考虑输人输出的方式。同样是输人(或输出),若方式不同,8255A的引脚(主要是C口的引脚)的信号功能定义不一样,工作时序也不一样,在接口设计时,硬件连接和软件编程也不一样,所以要研究和分析8255A的工作方式。
&&&&8255A的工作方式与端口有关,PA口有3种方式(0方式、l方式J方式),PB口和PC口只有2种方式(0方式、1方式)。
&&&&8255A的3种工作方式,各有何特点?分别用在什么场合?以及在微机系统中如何进行连接?这是并行接口电路硬件设计要解决的问题。下面将分别进行讨论。8255a_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
20页免费190页免费50页免费81页免费3页免费 55页免费47页免费5页免费6页2下载券60页免费
喜欢此文档的还喜欢20页免费33页免费34页免费65页免费81页免费
8255a|微​机​原​理​与​接​口​技​术​中​的25​a​课​件
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:651.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢微型计算机原理与接口技术第9章 可编程外围接口芯片8255A 可作为第6章的后半部分第四版_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
56页免费36页免费36页免费44页免费64页免费 20页免费24页免费60页免费24页免费12页免费
喜欢此文档的还喜欢88页免费159页免费
微型计算机原理与接口技术第9章 可编程外围接口芯片8255A 可作为第6章的后半部分第四版|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:8.90MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢6并行接口8255A_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
60页免费33页免费107页免费52页免费60页免费 26页免费36页免费55页免费77页1下载券2页免费
喜欢此文档的还喜欢60页2下载券
6并行接口8255A|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:1.29MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 8255a 控制端口地址 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信