请看8255的使用

[复制链接]
2898|6
 楼主| lhblast 发表于 2010-9-3 11:47 | 显示全部楼层 |阅读模式
各位:8255a的D0-D7连接P0口,cs接P2.5,  A0接P2.4,   A1接P2.7.    /rd  接单片机的/rd.    /wr  接单片机的/wr.

2.7  2.6  2.5  2.4  2.3  2.2  2.1  2.0  0.7  0.6  0.5  0.4  0.3  0.2  0.1   0.0
  A1        cs    A0
  0     0    0     0     0     0     0     0     0     0     0     0    0    0     0      0     0x0000 a8255
  0     0    0     1     0     0     0     0     0     0     0     0    0    0     0      0     0x1000 b8255
  1     0    0     0     0     0     0     0     0     0     0     0    0    0     0      0     0x8000 c8255
  1     0    0     1     0     0     0     0     0     0     0     0    0    0     0      0     0x9000 contro

#define  a8255  XBYTE[0x0000]
#define  b8255  XBYTE[0x1000]
#define  c8255  XBYTE[0x8000]
#define  contro  XBYTE[0x9000]
初始化:
contro  =0x00d0;//A口是输入,工作在方式2。

读A口:
buff  =  a8255;



以上的程序有错误吗?为什么从A口读出得值不对阿?请指教。读的时候还需要控制/rd  和/wr两个口线吗?
以下读法也不对。
rd=0;
wr=1;
buff  =a8255;
ayb_ice 发表于 2010-9-3 11:56 | 显示全部楼层
还是要上图才行
 楼主| lhblast 发表于 2010-9-3 11:58 | 显示全部楼层
那里不明白?写得不清楚吗
 楼主| lhblast 发表于 2010-9-3 12:51 | 显示全部楼层
请指教
calor 发表于 2010-9-3 20:03 | 显示全部楼层
楼主第一个程序用的存储器映射的编程,不需要控制WD、RD。
但是8255的读写时序要与你所使用的单片机的读写时序一致。

8255很简单,仔细看下资料吧。
song0 发表于 2010-12-11 12:58 | 显示全部楼层
没写清楚
airwill 发表于 2010-12-11 13:32 | 显示全部楼层
楼主的程序用的是存储器接口,不需要控制WD、RD。
但是端口要初始化, 在工作前, 设置所有用到的口线为 1.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部