8255初始化问题

kusheng176 2010-02-03 07:38:30
我现在在进行8255的初始化

左边是89S51 右边是8255(下面是连接情况)

P00-P07--------------------D0-D7
P20--------------------------A0
P21--------------------------A1
P27--------------------------片选CS

RD、WR和RESET都是相连的 另外 8255的PA、PB作输入 PC作输出
我写了如下的初始化程序
但是不晓得PA、PB、PC口那里怎么写
请问能指点一下我么?
程序如下:


#include <reg52.h>
#include <absacc.h>
#define a8255_PA XBYTE[0x7CFF] /*PA口地址*/
#define a8255_PB XBYTE[0x7DFF] /*PB口地址*/
#define a8255_PC XBYTE[0x7EFF] /*PC口地址*/
#define a8255_CON XBYTE[0x7FFF] /*控制字地址*/

void mDelay(unsigned int Delay) /*延时程序*/
{ unsigned int i=0;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;} }}

main()
{a8255_CON=0x92;
mDelay(1000) ;
}
...全文
434 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wohuazhen 2010-02-21
  • 打赏
  • 举报
回复
8255现在还有这个ic买?
may_june 2010-02-08
  • 打赏
  • 举报
回复
比方这样:
main()
{a8255_CON=0x92;
unsigned char data keys[3] = {0xff,0xff,0xff};
key[0] =a8255_PA ; 读取a输入的值到变量数组
key[1] =a8255_PB ;
... 对输入做处理
...
a8255_PC =key[2]&0x0f; C口是四位输入四位输出

mDelay(1000) ;
}
joukouki 2010-02-06
  • 打赏
  • 举报
回复
貌似不同的編譯器, 用的語句也是不同的..
zhoushunda960 2010-02-05
  • 打赏
  • 举报
回复
楼主你太强了啊!又重新发了一个帖子,问同样的问题。

你程序里不是已经初始化完成了么?a8255_CON=0x92; 就是设置8255状态啊!

接下来你就可以应用了。另外你的延时不用那么长。

譬如让你的c口输出第四位为高,高四位为低,那你就a8255_PC = 0x0f;就行了。

kusheng176 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hallowwar 的回复:]
a8255_PB =0x7878;
这样你就完了,定义好地址后就像寄存器一样操作。
[/Quote]

本人比较笨 请问能讲的详细点么?
hallowwar 2010-02-03
  • 打赏
  • 举报
回复
a8255_PB =0x7878;
这样你就完了,定义好地址后就像寄存器一样操作。
kyzf 2010-02-03
  • 打赏
  • 举报
回复
楼主百度或GOOGLE下 8255程序,或者在CSDN上搜索,
有很多源代码,都可以参考下。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧