搜索
bottom↓
回复: 7

大侠,帮我看74HC165程序,怎么不能控制8位啊?多谢!

[复制链接]

出0入0汤圆

发表于 2013-8-28 16:57:38 | 显示全部楼层 |阅读模式
#include <reg52.h> // 包含头文件
#include<intrins.h>
  
sbit HC165_DATA= P2^0; // 定义串行数据端口
sbit HC165_SH = P2^1; // 定义数据锁存端口
sbit HC165_CLK = P2^2; // 定义串行时钟端口
//sbit rck=P1^2;
//sbit ds=P1^1;
//sbit clk=P1^0;
  
unsigned char a[2];
  
void read_char165(void)  //并入串出
{  
unsigned char i;   
HC165_SH =0; //置入控制有效,锁存端口值
HC165_SH =1;  
for(i=0;i<8;i++)
{
  a[0]<<=1;   //先取高位
  if(HC165_DATA)
{  
   a[0]|=0X01;   
}

  HC165_CLK=0; //  
  HC165_CLK=1; //上升沿
}
  
//  for(i=0;i<8;i++)   
//  {  
// a[1]<<=1;
// if(HC165_DATA)
// {
//    a[1]|=0X01;   
// }   
//  HC165_CLK=0; //  
//  HC165_CLK=1; //上升沿
//  }  
}

  
//void write_595(unsigned char dat)//串入并出
//{
// unsigned char i=0;
//   for(i=0;i<8;i++)
//   {
//    clk=0;  
//    if((dat&0x80)==0x80) //先读高位
//    ds=1;
// else ds=0;
// clk=1;
// dat<<=1;  //一直往高位移
//   }  
//}
  
//void send_595(unsigned char dat0,unsigned char dat1)//显示
//{  
// write_595(dat0);
// write_595(dat1);
// rck=0;
// rck=1;  
//}

void main(void)  
{
  P0=0xFF;
  P1=0xFF;
while(1)   
{  
//  read_char165();
//  send_595(a[0],a[1]);
  read_char165();
  P0=~a[0];
  //P1=~a[1];
}
}


阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-8-28 17:26:27 | 显示全部楼层
那你能控制几位?

出0入0汤圆

 楼主| 发表于 2013-8-29 08:04:24 | 显示全部楼层
xiaobendan001 发表于 2013-8-28 17:26
那你能控制几位?

只有一位,是不是延时的问题啊

出0入0汤圆

发表于 2013-8-29 08:20:53 | 显示全部楼层
这类HC的器件的速度还是不错的,你可以用示波器看看波形,看是否要加延时,没有示波器,自己加点延时测试一下就好
另外这里
  if(HC165_DATA)
{  
   a[0]|=0X01;   
}

我通常会这样:

  if(HC165_DATA)
{  
   a[0]|=0X01;   
}else{
a[0] &= 0xfe;
}
我就是觉得万一<<=1的时候 移进来的本来就是1怎么办?你以前用汇编的?

出0入0汤圆

 楼主| 发表于 2013-8-29 14:45:19 | 显示全部楼层
xiaobendan001 发表于 2013-8-29 08:20
这类HC的器件的速度还是不错的,你可以用示波器看看波形,看是否要加延时,没有示波器,自己加点延时测试一 ...

多謝,經典程序,我以後要加上.

出0入0汤圆

发表于 2013-8-30 10:38:51 | 显示全部楼层
楼主还没有说搞定没有啊,怎么搞定的?

出0入0汤圆

 楼主| 发表于 2013-8-30 12:32:24 | 显示全部楼层
xiaobendan001 发表于 2013-8-30 10:38
楼主还没有说搞定没有啊,怎么搞定的?

多謝,已經OK了,程序沒問題。

出0入0汤圆

发表于 2013-8-30 15:57:34 | 显示全部楼层
那是哪儿的问题?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 07:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表