用51I/O口模拟串口控制164,这样为何不行?

[复制链接]
2855|9
 楼主| ningling_21 发表于 2009-5-19 07:36 | 显示全部楼层 |阅读模式
/********************************************************** 
发送数据函数 
**********************************************************/ 
void wr_byte(uchar data_temp) 

 uchar i; 
 for(i=0;i<8;i++) 
 { 
  if(data_temp&0x80) 
      data_164 =1; //164数据线
  else 
      data_164 =0; 
  data_temp<<=1; //
  clk_164 =0; //164时钟线
  ledg=0;
  nop; 
  nop;
  clk_164 =1; //164时钟线
  ledg=1;
 } 



现象:164不受控制

请指点
lost1421 发表于 2009-5-19 09:28 | 显示全部楼层

你控制164的IO口是哪个端口?

用示波器看一看!
 楼主| ningling_21 发表于 2009-5-19 18:47 | 显示全部楼层

P0口模拟控制的

CLK P0.5
DAT P0.6
huangqi412 发表于 2009-5-19 19:01 | 显示全部楼层

波形。。。看看波形对不

耕在此行 发表于 2009-5-19 19:40 | 显示全部楼层

ledg=0;是什么


 你是控制LED吗 是静态还是动态
你对LEDG的操作是有问题的
毛毛猫 发表于 2009-5-19 21:15 | 显示全部楼层

data_temp>>=1

或if(data_temp&0x01) 
rtj640 发表于 2009-5-21 22:20 | 显示全部楼层

P0口是否加了上拉

若不加上拉,如何驱动164
 楼主| ningling_21 发表于 2009-5-21 22:33 | 显示全部楼层

是驱动LED的

6楼,给164发送数据是低位在前?
毛毛猫 发表于 2009-5-21 23:27 | 显示全部楼层

无所谓,反了可以调整字形表。

前面我看错了,你程序移位没错,不过ledg是什么?不会是164的mr吧?
一条大河 发表于 2009-5-21 23:48 | 显示全部楼层

这种问题细心检查下就可以解决的。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

5015

主题

17834

帖子

51

粉丝
快速回复 在线客服 返回列表 返回顶部