打印

8255没反应,帮我看看

[复制链接]
2335|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
agua4auto|  楼主 | 2007-6-11 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位兄弟,帮忙看看吧~
8255一直没反应,就写了很简单的程序看看,可是依然么反应.

换过8255了,应该不是片子的问题.虽然我吧A0和A1在373上的位置接反了,现在没有烙铁就没有改过来,不过控制口11地址和PA口00地址没关系的嘛.

然后就是感觉奇怪的是,8255初始化读端口地址,那各口对外应该呈现高电平,可是现实都是低的.

用的6M晶振,而且添加了延时,应该8255也没那么慢吧~我晕了~

#include <absacc.h>
#include <reg51.h>

#define IOUT     PBYTE[0x00]    //8255A各端口地址
#define RelayOUT PBYTE[0x01]
#define DAOUT    PBYTE[0x02]
#define COM8255  PBYTE[0x03]

sbit CS = P3^3;

void main(void)
{
    unsigned char idata i;
    
    for(i = 0;i<100;i++)
        ;
    CS = 0x00;
    COM8255 = 0x80;
    CS = 0x01;

    for(i = 0;i<100;i++)
        ;
    CS = 0x00;
    IOUT = 0xff;
    CS = 0x01;
    P1 = 0;
}

相关帖子

沙发
wjy1107| | 2007-6-12 08:05 | 只看该作者

PBYTE[0x03]

俺真的不知道这个是什么意思,呵呵!
程序到哪里是“那各口对外应该呈现高电平,可是现实都是低的”这样的阿?

使用特权

评论回复
板凳
daguang72| | 2007-6-12 08:29 | 只看该作者

老掉牙的东西怎么还在用

使用特权

评论回复
地板
agua4auto|  楼主 | 2007-6-12 08:37 | 只看该作者

PBYTE和XBYTE一样都是指定外部地址;

0x03是8255控制口地址,A0,A1接的P0.0和P0.1;
我感觉复位后应该是高电平的,可是8255没有;

那现在用什么器件扩展了??

使用特权

评论回复
5
ayb_ice| | 2007-6-12 09:32 | 只看该作者

8255还买得到吗。。。

使用特权

评论回复
6
gyt| | 2007-6-12 10:39 | 只看该作者

买得到

使用特权

评论回复
7
agua4auto|  楼主 | 2007-6-12 10:46 | 只看该作者

....我已经买到了

可是,没反应啊,LS的看看我的程序没问题吧??

使用特权

评论回复
8
agua4auto|  楼主 | 2007-6-12 11:18 | 只看该作者

我把动作全部分解下来,8255是工作的;

    P0 = 0x03;
    ALE = 1;
    ALE = 0;
    CS = 0x00;
    P0 = 0x80;
    WR1 = 0;
    WR1 = 1;
    CS = 0x01;

    P0 = 0x00;
    ALE = 1;
    ALE = 0;
    CS = 0x00;
    P0 = 0xff;
    WR1 = 0;
    WR1 = 1;
    CS = 0x01;
    
    P0 = 0x01;
    ALE = 1;
    ALE = 0;
    CS = 0x00;
    P0 = 0xff;
    WR1 = 0;
    WR1 = 1;
    CS = 0x01;    

可是为什么用直接PA = 0xff不行呢??
这条对应的汇编是: MOV A,#0xff
                  MOV R0,#0x00
                  MOVX @R0,A
MOVX的时候WR信号应该是有的吧?不过我在示波器上没看到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

86

帖子

0

粉丝