mcu同温度传感器之间通过i2c总线连接。i2c总线占用2条mcu输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根i2c总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。mcu需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是wr信号)。
传感器中有3个寄存器可供mcu使用,8位寄存器指针就是用来确定mcu究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,mcu必须首先发送传感器地址和寄存器指针。mcu发出一个启动信号,接着发出传感器地址,然后将rd/wr管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的16位数据,mcu必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 c/lsb(量程为-128.5 c至128.5 c)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 c就可以满足要求了。
这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 c的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,第一是可以缩短mcu和传感器的工作时间,降低功耗;第二是不影响分辨力指标。
mcu读取传感器的测量值后,接下来就要进行换算并将结果显示在lcd上。整个处理过程包括:判断显示结果的正负号,进行二进制码到bcd码的转换,将数据传到lcd的相关寄存器中。
数据处理完毕并显示结果之后,mcu会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。mcu发出单步指令后,就进入lpm3模式,这时mcu系统时钟继续工作,产生定时中断唤醒cpu。定时的长短可以通过编程调整,以便适应具体应用的需要。
fqj
针对固件安全、数据安全、数据销毁做了安全设计的硬盘来解决安全问题
跨平台编译工具cmake的简单使用
人工智能SOTA什么意思
华为Nova2 Plus魔镜版、小米6亮银版今日同步发售,你准备抢购哪家?
嵌入式冰箱有独特的优点但也有难以克服的缺点 选购时需要谨慎考虑
详细谈一谈MCU的技术原理编辑
新思科技设备在台积电流片2nm芯片
buck电路PK三级电路 成本优势评判
监控画面信号传输中HDMI光纤延长器的解决方案
营造安全的网络生态,阿里巴巴,积极落实防范通讯信息诈骗指示要求
绿色网络打造国内运营商乃至全球运营商网络转型和业务转型的样板
微软与Unity合作发布了HoloLens 2开发版
ELEXCON2017京瓷展台亮点前瞻
L-com诺通新型6类以太网线缆组件的特征
UR机械臂上位机开发,以实现更广泛的应用
整体参与人数超200万丨OPPO浏览器春节系列活动圆满收官
荣耀MagicBook Pro和荣耀MagicBook 2019新款已于今日正式开售
Numicro M2354 Iot安全系列系列安保系列MCU向IoT工业提供切片等级人身安全和超低功率性能
Win10竟有8大模式 有的竟没用过
晶振厂家需要什么实力条件?如何选择?