关于使用8255,与端口复用的心得体会_8255的使用
关于使用8255,与端口复用的心得体会由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“8255的使用”。
一:端口复用
1.液晶,数码管,AD/DA,,8255可同时共用一组端口
Ad与8255数据端口复用时要做反干扰处理,如下图。
解释
①:关闭数码管锁存和12864使能。防止AD转换时AD转换出的数据通过导线传到12864和数码管中。影响现实
②:gs端口接的是74LS245的G口,G口低电平使A端与B端导通使AD数据端口与P0导通。
③:读取P0口数据之前先把P0口的数据清零,同样为了减少干扰 ④:74LS245的G口高电平使A端与B端高阻状态使AD数据端口与P0断开。防止在执行数码管或其他需总线程序时,ad转换电平信号通过排线传输到数码管或其他数据端口上。
2.都具有时序操作的两条线可以考虑复用
例如:ds18b20与液晶的RW/RS, 做防干扰处理
8255的A0/A1/RD/WR可以与AD转换的CS/RD/WR共用(没干扰)液晶的CS1/CS2不要与数码管的CS1/CS2共用
3.不同时间段中的端口可以共用,(设标志变量)
例如:两个按键,如果要求在不同工作过程按下,则可以复用一个端口,检测到端口有低电平后判断现在是那个工作过程;
不同工作过程执行不同的程序
4.液晶与矩阵键盘的共用
液晶与矩阵键盘的共用时键盘会影响液晶的显示,当你按下第一横排最后一个按键后,液晶数据端口的d0和d7会同时被拉成低电平,这样12864的显示就会清屏。
为了不使12864清屏所以要跟换矩阵键盘的一个借口如下图
.上图中,矩阵键盘的前7的接口都接在P0与8255、12864共用,唯独最后的一个接口,接在P1口上,这样即使你按下第一排最后一个按键后12864的D0和D7不会同时为低电平,所以矩阵键盘就影响不了12864了。
二:8255与单片机端口分配
单片机:
需要使用8255时P0除了接8255并口数据端,还可接12864,1602,数码管,0809,DS18b20数据总线。P2,P3可接机械手传感器信号输出端(优先三个工位的限位检测开关),和液晶与数码管的控制端。P1可接机械手控制端,及其它继电器,或步进电机的CP端口。
不需要用8255时就不多说了随意。
关于什么时候选择使用8255也是很重要的,个人建议:
只有使用机械手才需要只用8255;
在不使用机械手时不需要考虑,当然,矩阵键盘,独立按键,数码管,12864液晶,1602液晶,0832,0809,点阵,ds18b20,数据总线接口都可以共用。
8255 :
8255端口优先接键盘,(独立键盘最好使用总线操作),机械手传感器(优先上到位,下到位,工位1与工位2颜色分辨传感器)还有发光二极管。
当数码管或液晶数据端口共用8255P0口时,数码管段位锁存和液晶的时序操作端口,不能接在8255上
8255位操作时一定要把输出端口的位寻址变量数据更新到端口,输入端口一定要把端口数据更新到变量,如下图。
(P6为定义的可位寻址访问寄存器的变量,Pc为8255的Pc端口,adcs/adrd/adwr都接在Pc端口上)
补充: 1.如果程序中途需要改变
8255端口的输入输出设置,不能直接改变,必须先复位。
2.若有时发现执行程序时部分功能时好时坏而却还与8255密切相关,在你查不到原因时,在出现错误的地方给8255复位也是一个不错的选择。如下图,按键扫描子函数中出错,使按键失灵,该有的电平没有送出来,按键又刚好接在8255上面,因此我选则在刚刚进入按键子函数后给8255复位一次。然后再进入按键扫面函数。问题迎刃而解。
红色分界线上面的是8255复位程序,下面才是按键扫面子函数。
Fw接在8255rst口上。
Good luck!
谭有为
2013年11月18日星期一