江苏省徐州机电工程高等职业学校毕业论文内容摘要:

3 系统软件设计 主控程序设计 通过对系统工作原理的了解,我们可以大致知道系统软件运行工作的流程图如下: 图 系统运行流程图 当接通电源开始工作后,单片机中的程序开始运行,将对 DS18B20 进行初始化,以便单片机芯片和 DS18B20 达成通信协议。 完成初始化后,由于本系统只有一个测温元件,单片机会向其发出跳过 ROM 指令,接下来便可向其发送操作指令,设定温度上下限,启动测温程序。 测温过程完成后,发出温度转换指令,从而便可将温度转化成数字模 式进行显示读取。 温度信息的采集 通过 DS18B20单线总线的所有执行处理都从一个初始化序列开始。 初始化序列包括一个由总线控制器发出的复位脉冲和随后由从机发出的存在脉冲: 复位:首先我们必须对 DS18B20芯片进行复位,复位就是由控制器(单片机)给 DS18B20单总线至少 480uS的低电平信号。 当 18B20接到此复位信号后则会在 15~60uS后回发一个芯片的存在脉冲。 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在 15~60uS后接收存在脉冲,存在脉冲为一个 60~240uS的低电平信号。 至此 ,通信双方已经达成了基本的协议,接下来将会是控制器与 18B20间的数据通信。 控制器发送 ROM指令:双方打完了招呼之后最要将进行交流了, ROM指令共有 5条,每一个工作周期只能发一条, ROM指令分别是读 ROM数据、指定匹配芯片、跳跃 ROM、芯片搜索、报警芯片搜索。 各自功能如下: Read ROM(读 ROM) [33H] (方括号中的为 16进制的命令字) 江苏省徐州机电工程高等职业学校 2020 届毕业设计 第 9 页 这个命令允许总线控制器读到 DS18B20的 64位 ROM。 只有当总线上只存在一个 DS18B20的时候才可以使用此指令。 Match ROM(指定 匹配芯片) [55H] 这个指令后面紧跟着由控制器发出了 64位序列号,当总线 上有多只 DS18B20时,只有与控制发出的序列号相同的芯片才能做出反应,其它芯片将等待下一次复位。 这条指令适合单芯片和多芯片挂接。 Skip ROM(跳跃 ROM指令) [CCH] 这条指令使芯片不对 ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。 如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。 Search ROM(搜索芯片) [F0H] 在芯片初始化后,搜索指令允许总线上挂接 多芯片时用排除法识别所有器件的 64位 ROM。 Alarm Search(报警芯片搜索) [ECH] 在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于 TH或小于 TL报警条件的芯片做出反应。 只要芯片不掉电,报警状态将被保持,直到再一次测得温度值达不到报警条件为止。 ROM指令为 8位长度,功能是对片内的 64位光刻 ROM进行操作。 其主要目的是为了分辨一条总线上挂接的多个器件并作处理。 诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的 ID号来区别,一般只挂接单个 18B20芯片时可以跳 过 ROM指令(注意:此处指的跳过 ROM指令并非不发送 ROM指令,而是用特有的一条 “ 跳过指令 ” )。 控制器发送存储器操作指令:在 ROM指令发送给 18B20之后,紧接着(不间断)就是发送存储器操作指令了。 操作指令同样为 8位,共 6条,存储器操作指令分别是写 RAM数据、读 RAM数据、将 RAM数据复制到 EEPROM、温度转换、将 EEPROM中的报警值复制到 RAM、工作方式切换。 Write Scratchpad (向 RAM中写数据) [4EH]:这是向 RAM中写入数据的指令,随后写入的两个字节的数据将 会被存到地址 2(报警 RAM之 TH)和地址 3(报警 RAM之 TL)。 写入过程中可以用复位信号中止写入。 Read Scratchpad (从 RAM中读数据) [BEH]:此指令将从 RAM中读数据,读地址从地址 0开始,一直可以读到地址 9,完成整个 RAM数据的读出。 芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。 Copy Scratchpad (将 RAM数据复制到 EEPROM中) [48H]:此指令将 RAM中的数据存入EEPROM中,以使数据掉电不丢失。 此后由于芯片 忙于 EEPROM储存处理,当控制器发一个读时间隙时,总线上输出 “0” ,当储存工作完成时,总线将输出 “1”。 在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持 10MS,来维持芯片工作。 Convert T(温度转换) [44H]:收到此指令后芯片将进行一次温度转换,将转换的温度值放入 RAM的第 2地址。 此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出 “0” ,当储存工作完成时,总线将输出 “1”。 在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持 500MS,来维持芯片工作。 Recall EEPROM(将 EEPROM中的报警值复制到 RAM) [B8H]:此指令将 EEPROM中的报警值复制到 RAM中的第 4个字节里。 由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出 “0” ,当储存工作完成时,总线将输出 “1”。 另外,此指令将在芯片上电复位时将被自动执行。 这样 RAM中的两个报警字节位将始终为 EEPROM中数据的镜像。 Read Power Supply(工作方式切换) [B4H]:此指令发出后发出读时间隙,芯片会返回它的电源状态字, “0” 为寄生电源状态, “1” 为外部电源状态。 存储器操作指令的功能是命令 18B20作什么样的工作,是芯片控制的关键。 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这 江苏省徐州机电工程高等职业学校 2020 届毕业设计 第 10 页 个操作要视存储器操作指令而定。 DS18B20需要严格的协议以确保数据的完整性。 协议包括几种单线信号类型:复位脉冲、存在脉冲、写 0、写 1 、读 0和读 1。 所有这些信号,除存在脉冲外,都是由总线控制器发出的。 和 DS18B20间的任何通讯都需要以初始化序列开始。 一个复位脉冲跟着一个存在脉冲表明 DS18B20已经准备好发送 和接收数据(适当的 ROM命令和存储器操作命令)。 DS18B20的复位时序 图 DS18B20 的复位时序图 DS18B20 的读时序 对于 DS18B20 的读时序分为读 0时序和读 1 时序两个过程。 对于 DS18B20 的读时隙是从主机把单总线拉低之后,在 15us 之内就得释放单总线,以让 DS18B20 把数据传输到单总线上。 DS18B20 在完成一个读时序过程,至少需要 60us 才能完成。 图 DS18B20 的读时序 图 DS18B20 的写时序: 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。 对于 DS18B20 写 0时序和写 1时序的要求不同,当要写 0时序时,单总线要被拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“ 0”电平,当要写 1时序时,单总线被拉低之后,在 15us 之内就得释放单总线。 江苏省徐州机电工程高等职业学校 2020 届毕业设计 第 11 页 图 DS18B20的写时序图 [13] 温度的显示控制 当所测温度从 DS18B20输送到单片机上之后,下一步就是要将 其在液晶显示器上显示出来。 首先应该对液晶显示器 SMC1602A进行初始化设置,设置指令如下: 表 SMC1602A的初始化设置指令表 指令码 功能 0 0 1 1 1 0 0 0 设置 16 2 显示 ,8 位数据接口 0 0 0 0 1 D C B D=1 开显示。 D=0 关显示 C=1 显示光标。 C=0 不显示光标 B=1 光标闪烁。 B=0 光标不显示 0 0 0 0 0 1 N S N=1 当读或写一个字符后地址指针加一 ,且 光标加一 N=0 当读或写一个字符后地址指针减一 ,且 光标减一 S=1 当写一个字符 ,整屏显示左移 (N=1)或 右移 (N=0),以得到光标不移动而屏幕 移动的效果 S=0 当写一个字符 ,整屏显示不移动 江苏省徐州机电工程高等职业学校 2020 届毕业设计 第 12 页 然后进行数据控制,控制器内部设有一个数据地址指针,可以通过它们来访问内部的全部 80字节 RAM,其指针设置为: 表 SMC1602A的指针设置表 指令码 功能 80H+地址码 (0H27H,40H67H) 设置数据地址指针 一些其他设置如下: 指令码 功能 01H 显示清屏 : 02H 显示回车 : 数据指针清零 其初始化过程 为 :延时 15ms 写指令 38H(不检测忙信号 ) 延时 5ms 写指令 38H(不检测 忙信号 ) 延时 5ms 写指令 38H(不检测忙信号 ) (每次写指令 读 /写数据操作之前均需检测忙信号 ) 写指令 38H: 显示模式设置 写指令 08H: 显示关闭 写指令 01H: 显示清屏 写指令 06H: 显示光标移动设置 写指令 0CH: 显示开 及光标设置 而且要使数据在液晶显示器上显示必须要按。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。