如题,因为8155只需要低八位地址,P2想留做他用,故想采用普通IO模拟地址总线、ALE、WR等端口方式实现。按照时序图写出程序,但实验失败,在此求助,先谢过啦。代码如下:
#include
#include
sbit AL = P2^0; //ALE
sbit W = P2^2; //WR
//xdata char XPP _at_ 0xff00;
//xdata char XPC _at_ 0xff03;
void main(void)
{
while( 1 )
{
W = 1;
AL = 1;
P0 = 0x00; //8155命令字设置入口地址
AL = 0;
W = 0;
P0 = 0x0C; //写入数据设置PC口输出
W = 1;
_nop_();
_nop_();
W = 1;
AL = 1;
P0 = 0x03; //PC口入口地址
AL = 0;
W = 0;
P0 = 0x00; //写入数据PC口输出0x00
W = 1;
_nop_();
_nop_();
}
}
[ 本帖最后由 moon30000 于 2009-10-12 16:45 编辑 ]
8155很贵 你为何不用其他的IO扩展方式呢?使用HC373或者245都是可以的啊 建议你换芯片
南京璞晓电子 www.cpx0.com需要
msn:njlianjian@hotmail.com
谢谢,这种扩展确实更好一些,不过刚来到这个公司,硬件已经做好了,只能这样了。
引用: 原帖由 makechinawei 于 2009-10-14 08:34 发表
这个我做过,看看资料没有问题的
谢谢楼上的,不过也看了一些资料,上面的程序也是按照时序图写的,也试了很多次,可还是不成功。