找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2145|回复: 2
打印 上一主题 下一主题
收起左侧

有没有用过74ls165的?有个问题。

[复制链接]
跳转到指定楼层
楼主

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:85468 发表于 2015-7-12 18:02 | 只看该作者
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit CLK=P0^0;                        
sbit SH_LD =P0^2;                     
sbit QH =P0^3;                                
sbit CLKIN =P0^1;  
//unsigned char flag,a;
unsigned char bdata Key;
sbit    K0=Key^0;         //붨òå
sbit    K1=Key^1;         //붨òå
sbit    K2=Key^2;         //붨òå
sbit    K3=Key^3;         //붨òå
sbit    K4=Key^4;
sbit    K5=Key^5;
sbit    K6=Key^6;
sbit    K7=Key^7;

//bit  M0 ,K0J;  //붨òå
uint read_int165(void)
{
  uchar i=0;
  uint read_data=0;
//  CLKIN=1;
  SH_LD=0;                    //Ëø′æêy¾Y      
  _nop_();
  SH_LD=1;
  _nop_();
//  CLKIN=0;
        i=8;
        do
        {CLK=0;
     read_data<<=1;
     if(QH){read_data|=0x01;}
                 
     _nop_();
     CLK=1;        
     _nop_();
  }while(i--);
  return (read_data);
}
void main()
{

  while(1)
  {
     unsigned long  Input=read_int165();//μ÷óÃ165Çy¶ˉ3ìDò
         Key=Input;  //½«êy¾Y′«¸øÎ»±äá¿
         
     P1 = 0xff;          //Çå3y

          //êμÏÖÂö3åêäèë  ′ó¼ò×Dϸìå»á
//    if(K0&K0J)M0=~M0;      
//           K0J=~K0;  
//  
//        if(M0) { P2 = 0x7f;        }//êμÏÖÂö3åêäèë
                if(K0) {   P1 = 0x7f;   }
        if(K1) {   P1 = 0xbf;   }//K1 Îa1걿aÆô·äÃùÆ÷oí2¸öμÆ
        if(K2) {   P1 = 0xdf;   }
  if(K3) {   P1 = 0xef;   }
        if(K4) {   P1 = 0xf7;   }
        if(K5) {   P1 = 0xfb;   }
        if(K6) {   P1 = 0xfd;   }
        if(K7) {   P1 = 0xfe;   }

  }
}

回复

使用道具 举报

板凳
ID:85468 发表于 2015-7-12 18:03 | 只看该作者
但是输入全为高电平的话,串行输出还是低,为什么?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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