zoukankan      html  css  js  c++  java
  • 常用位操作,读8位 I2C 1302 18B20 .

    /*1302*/
    unsigned char DS1302OutputByte(void) 	//实时时钟读取一字节(内部函数)
    { 
        unsigned char i;
        for(i=8; i>0; i--)
        {
            ACC = ACC >>1;         			//相当于汇编中的 RRC 
            ACC7 = DS1302_IO;
            DS1302_CLK = 1;
            DS1302_CLK = 0;
        } 
        return(ACC); 
    }
    
    
    /*读18b20*/
    /*-----------------------------读一个字节------------------------------*/
    readonechar(void)
    {
    	 uchar i=0;
    	 uchar dat=0;
    	 for(i=8;i>0;i--)
    	 	{
    		DQ=1;
    		delay_us(1);
    		DQ=0;
    		dat>>=1;
    		DQ=1;
    		if(DQ)
    		dat|=0x80;
    		delay_us(4);
    		}
    		return(dat);
    }
    
    /*读I2C*/
    uchar read_byte()			 //读一个字节的函数
    {
    	uchar i,j,k;
    	scl=0;
    	delaywus();
    	sda=1;
    	delaywus();
    	for(i=0;i<8;i++)		 //8个循环,读一个字节
    	{
    		scl=1;
    		delaywus();
    		j=sda;
    		k=(k<<1)|j;			 //按位相或,把数据移入k
    		scl=0;
    		delaywus();
    	}
    	return k;				//返回值是K,读得的数据
    }


  • 相关阅读:
    python第一课
    go反射----4构建
    go反射----3方法
    go反射----2值
    go生成xml
    go互斥锁Mutex
    go中的读写锁RWMutex
    go语言调用cmd
    go语言发送邮件
    go语言文件操作
  • 原文地址:https://www.cnblogs.com/riskyer/p/3263050.html
Copyright © 2011-2022 走看看