在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 1998|回复: 3

[求助] 74hc373锁存数据和仿真结果不同

[复制链接]
发表于 2014-2-14 09:28:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
用74hc373打算扩展51芯片的IO口驱动多路继电器,结果输出很乱,搭了个试验板,发现运行结果和仿真完全不同。 试验思路:
    两片373芯片Q1和Q2的QE(低电平有效)接地,LE分别接P3.1和P3.0,P1口输出数据。Q1和Q2LE初始为0,P1输出一个字节使能Q1,关Q1;输出下一个字节,使能Q2,关Q2。理论上Q1和Q2的输出应该分别是输出的这两个不同的字节,结果完全不是!
  程序:
  #include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit s=P3^5;
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;
sbit P33=P3^3;
uchar mm,st,bc;//mm用于定时
void time(void);
//void delay(void);
void main()
{

   mm=0;
   st=0;
   bc=0;
   TCON=0x00;
   TMOD=0x01;
   TH0=0x3c;
   TL0=0xb0;
   EA=1;
  TR0=1;
  ET0=1;
bc=st+1;

  P30=0;

  P31=0;

  P1=0x00;
   
  P30=1;//Q1接收数据0

  for(;mm<80;)

    P1=0x01;//Q1变为1,我在Q1输出端低2位接了LED灯,应该亮一个。循环体定时,time函数每执行一次定时0.1s(12M晶振),共定时8s



P30=1;

mm=0;

P30=0;

P1=0x03;//Q2输出3,输出端低2位的LED灯应该全亮



P31=1;

while(1);
}
void time(void) interrupt 1
  {
     mm++;

if(mm>95)

   mm=85;
      TH0=0x3c;

  TL0=0xb0;

TR1=1;


  }
/* void delay(void)
   {
    int y;

for(y=0;y<10000;y++) ;
   }
*/
仿真结果:


实际电路运行结果4灯全亮
请教大家什么原因??????
不会是51芯片复位IO口全高的问题,因为后面IO重写了数据
file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\254713912\QQ\WinTemp\RichOle\LI16IZF0RL68E`%72NYO)@N.jpg
发表于 2014-2-16 00:22:32 | 显示全部楼层
会是51芯片复位IO
 楼主| 发表于 2014-2-18 09:49:43 | 显示全部楼层
本帖最后由 fleed2 于 2014-2-18 09:52 编辑

问题是一直就没出过仿真中Q1数据01,Q2数据03的结果,复位,输出也得持续一段时间吧
发表于 2014-2-23 12:57:51 | 显示全部楼层
khkljhklkljjj
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-19 18:24 , Processed in 0.024015 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表