8255初始化的作用是设置工作方式及A、B、C口的输入/输出状态。
初始化程序举例如下:
MOV DX, 203H ;8255控制口地址送入DX
MOV AL,101000B ;方式控制字: A口方式0输入,B口方式0输出,C口方式0输出
OUT DX, AL ;方式控制字从AL输出到8255控制口,8255初始化
地址范围 8CH~8FH
控制字为 10110011B=B3H
初始化程序 MOV DX,8FH
MOV AL,B3H
OUT DX,AL
1、地址确定
因为A10A9A8A7A6A5A4A3=01010011,A2A1=11为控制字端口,A2A1=10为C口,A2A1=01为B口,A2A1=00为A口,A0为0,所以8255A地址范围为24CH~24FH。
2、控制字确定
因为A口为方式0输出,B口为方式0输入,所以控制字为10000010B=82H
3、初始化程序
MOV AL,82H
MOV DX,24FH
OUT DX,AL
附8255知识:
8255是微机并行接口芯片。
8255是可编程I/O口扩展芯片。对8255输入不同的指令可改变I/O口的工作方式。8255与单片机系统连接方式简单,工作方式由程序设定,图2为8255的引脚图。
8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、 PC7~PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。通过CS、A0、A1、RD和WR对4个寄存器进行 *** 作。
1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。4)D0~D7为数据口。
向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。这里只介绍应用最多的方式0。方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一个端口都可以设定为输入或输出,PC口还可以进行位 *** 作。控制寄存器各位的含义如图3所示。 SLPC-24中8255工作在方式0。PA、PB为输入口、PC为输出口,对控制寄存器写入的数据为10010010B,即92H。
别人 写的 我看见了 你好好看看吧
我记得有个8255A芯片,是端口拓展用的,时间太长了,具体记不清。
1、查数据手册,找8255A的指令用法,学会必须的指令。
2、查数据手册,找8255A的数据线、地址线的连接方法,看管脚图,确定原理图。
3、查数据手册,找8255A的封装,绘制电路板,Protel里有这个芯片的封装,可以直接用。
4、制板、焊件、调试,如果是面包板,就确定该连接的都连接好。
5、程序思路:
1、给8255A初始化指令,让A\B\C口都输出高或低电平,连接LED查看是否工作正常。
2、程序要求出方波,就是一会儿出高电平,一会儿出低电平就是方波。
3、主程序中:
1、初始化51的各个寄存器。
2、初始化8255A
3、发指令给8255A,让A口0线出低电平
4、第一个延时程序,控制低电平持续时间,可以用加法比较延时,也可用定时器。
5、发指令给8255A,让A口0线出高电平
6、第二个延时程序,控制高电平持续时间,同4
7、LOOP循环到程序3位置。死循环即可。
用示波器看输出的波形,调整4、6的参数,使得方波满足你要的高低电平时间,不要特意计算程序一条指令是多少时间,延时多少时间,那样即麻烦,又不准,8255A是有执行延迟的,所以用示波器看输出最准。
这些是02年我大二时学的,好久不用。
估计你是用来完成老师的作业,实际干活,没人用8255的。不知我猜对了没有。
为什么写入的是63h?
是因为8255的内部结构是有四个寄存器与cpu分别相连,相当于cpu传出来的数据可以放在8255的A寄存器 B寄存器 C寄存器 控制寄存器四个寄存器中,其中每个寄存器分配有单元地址,60对应A寄存器的地址入口,顺序下来就是63对应控制寄存器的地址入口,,既然是要把控制字存入寄存器,使8255按照控制字的指向工作的话,就是把控制字10010110B存入控制寄存器中,自然就是把63h的地址存入dx中咯,如果是60h的话不就是把控制字存入A寄存器了吗?
其实我们上周才上的微机原理,刚好讲这章,我的理解是这样~
以上就是关于8255 初始化的作用是什么 2. 8255 初始化的内容包括哪儿部分全部的内容,包括:8255 初始化的作用是什么 2. 8255 初始化的内容包括哪儿部分、8255A初始化题目、有关单片机的作业题目 初始化并行I/O芯片8255,使其A口,B口,C口为基本I/O输出口 程序应该怎么设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)