全球旧事资料 分类
是分时完成的,它有严格的时隙概念。因此系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,DS18B20必须首先调用启动温度转换函数,根据数据手册上对应转换时间来超作,如为12位转换,则应该是最大750mS,另外在对DS18B20超作时,时序要求非常严格,因此最好禁止系统中断。由于DS18B20是在一根IO线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的读时序:(1)对于DS18B20的读时序分为读0时序和读1时序两个过程。(2)对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序:(1)对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
f(2)对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。系统程序设计主要包括三部分:读出温度子程序、温度转换命令子程序、显示温度子程序。
开始初始化DS18B20存在吗?
Y
ROM操作命令存储操作命令读取温度值返回
N
图32读取温度DS18B20模块的流程图程序代码为:GET_TEMPERSETBDQ读出转换后的温度值
LCALLINIT_1820先复位DS18B20JBFLAG1TSS2RET判断DS1820是否存在若DS18B20不存在则返回TSS2MOVA0CCHDS18B20已经被检测到跳过ROM
f匹配LCALLWRITE_1820MOVA44H发出温度转换命令LCALLWRITE_1820LCALLDISPLAY这里通过调用显示子程序实现延时一段时间等待AD转换结束12位的话750微秒LCALLINIT_1820准备读温度前先复位MOVA0CCH跳过ROM匹配
LCALLWRITE_1820MOVA0BEH发出读温度命令
LCALLWRITE_1820LCALLREAD_18200将读出的温度数据保存到35H36HRET
322键盘扫描处理流程
此流程为键盘扫描处理,CPU通过检测各数据线的状态0或1就能知道是否有按键闭合以及哪个按键闭合。键r
好听全球资料 返回顶部