常用位操作,读8位 I2C 1302 18B20 .
2024-08-27 06:53:30
/*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,读得的数据
}
最新文章
- 史上自定义 JavaScript 函数Top 10
- 超级管理员登录后如果连续XX分钟没有操作再次操作需要重新登录
- 318. Maximum Product of Word Lengths ——本质:英文单词中字符是否出现可以用26bit的整数表示
- C#下载http文件
- Light, more light - PC110701
- 包含中文字符的NSString 转换为NSURL
- 多线程异步编程示例和实践-Thread和ThreadPool
- [转载] Hadoop和Hive单机环境搭建
- 基于socket实现的简单的聊天程序
- Spring中配置DataSource的六种方式
- 你不知道的JavaScript--Item28 垃圾回收机制与内存管理
- 2000w数据,redis中只存放20w的数据,如何保证redis中的数据都是热点数据
- React 组件框架
- hadoop启动报错:localhost: ssh: Could not resolve hostname localhost
- MongDB备份error: boost::filesystem::create_directory
- linux的!的用法
- html禁止文本输入框记录输入记录,单击input出现输入过的记录
- SparkStreaming 运行原理与核心概念
- DispatcherTimer
- 关于 DP 的一些题目
热门文章
- HDU 1090 A+B for Input-Output Practice (II)
- APUE学习之---------------进程
- Effective C++ 第二版 10) 写operator delete
- android AChartEngine源代码
- Objective-c 数据类型
- innerText和innerHTML的区别
- 子请求执行失败。有关更多信息,请检查 InnerException。
- nopcommerce插件使用
- 字符串分割函数Demo
- [LeetCode]题解(python):014-Longest Common Prefix