完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 carey123 于 2014-3-24 14:32 编辑
ARM力天电子 lpc2148基于DS18B20的温度控制系统程序代码之dat=(j《《7)|(dat》》1)详解 //读一位数据(读位程序) //读一个字节数据 (读字节程序) 16unsigned char tmpread(void) //read a byte date17{ 18 unsigned char i,j,dat; 19 dat=0; //令dat初始值为0,代码23处将会用到 20 for(i=1;i<=8;i++) 21 { 22 j=tmpreadbit(); 23 dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 24 } 25 return(dat); 26} 任意取一个字节,本文以1011 1010为例 首先由读位程序读取第7位1,执行22得j=1,执行23得dat=1xxx xxxx, 详解如下: j<<7得到1xxx xxxx dat>>1得到0xxx xxxx(注意:dat初始值为0,即代码19) 然后执行|(位或)运算,得到dat=1xxx xxxx 然后由读位程序读取第6位0,执行22得j=0,执行23得dat=01xx xxxx 详解如下: j<<7得到0xxx xxxx dat>>1得到01xx xxxx(此时,dat的值不再是0,而是上一步得到的1xxx xxxx) 然后执行|(位或)运算,得到dat=01xx xxxx 剩余位的计算方法同上,故略去...................... 最终主机读到的字节数据是0101 1101 ,最低位在最前面 转自http://blog.csdn.net/yueniaoshi/article/details/7835790 |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
1906个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
605浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
796浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:03 , Processed in 0.984792 second(s), Total 53, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号