打印

请教 89c51到 8255驱动的电路问题

[复制链接]
4789|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kitty81|  楼主 | 2008-4-7 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  现在有这种现象 请帮帮

89c51 扩展的8255 I/O输出

电路描述  89c51+8255+74HC244+光藕   这是输出

方真器调试输出时 伟福(全速运行) 电路输出都正常

但是把程序烧到89C51里 了 输出就没有了呢?

帮我看看?  

相关帖子

沙发
zgl7903| | 2008-4-7 09:09 | 只看该作者

复位、晶振、EA管脚

使用特权

评论回复
板凳
kitty81|  楼主 | 2008-4-7 12:23 | 只看该作者

忘说了

 单片机 在 晶振: 22.1184M  不好使
        在        11.0592M  好使

我用的读写8255的指令使   XBYTE[0xXXXX] 的操作

我估计这应该使时序的问题  

但是要使还用22.1184的晶振  那么怎么解决呢?

请高手帮帮

使用特权

评论回复
地板
gyt| | 2008-4-7 15:01 | 只看该作者

LS说的是

使用特权

评论回复
5
kitty81|  楼主 | 2008-4-7 15:11 | 只看该作者

应该不使复位的 问题

我用C口做输入 读的是拨码开关 8位数据   每次读的这个数据都送到显示 证明读的数据对
然后在把C口读的数据送到 A 口和B口  这时在11.0592 时好使

换了22.1184 就没有输出了  

就是找不到原因了?
  while(1){
               SendData_7219(0x04,rd8255b_C);   //送显示
               delay1ms(1);
               temp=rd8255b_C;     //   读C
               delay1ms(1);
               wr8255b_A=temp;    //    写A
               delay1ms(1);
               wr8255b_B=temp;     //   写B
          
          }

使用特权

评论回复
6
huangqi412| | 2008-4-7 20:59 | 只看该作者

还用这个芯片,好象只有实验室有

使用特权

评论回复
7
古道热肠| | 2008-4-7 21:43 | 只看该作者

8255速度慢,换成82C55 试试

俺过去用电脑的并口,工作在EPP模块,读写就出错,改成模拟EPP时序,慢速读写正常,而相同的程序用HC573和HC244读写完全正常。

顺便问一句,用的是那种耗电老大,发热特严重的8255吗?如果是,您就低速试试就可以了,千万别用来做产品,缺点太多了。

使用特权

评论回复
8
zgl7903| | 2008-4-7 22:12 | 只看该作者

如果是速度问题,

软件模拟MOVX的过程就可以了,不一定换芯片
注意保存中断-〉关中断-〉读写-〉恢复中断

使用特权

评论回复
9
kitty81|  楼主 | 2008-4-8 11:34 | 只看该作者

不好意思 没说明白 用的是82C55

问题一直,没解决

使用特权

评论回复
10
yezhenyu| | 2008-4-8 12:30 | 只看该作者

贴图贴程序

使用特权

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

本版积分规则

4

主题

10

帖子

0

粉丝