基于18b20的温度测量仪课程设计报告(编辑修改稿)内容摘要:
将数据写入暂存器的 TH、 TL 字节 复制暂存器 48H 把暂存器的 TH、 TL字节写到 E2RAM中 重新调 E2RAM B8H 把 E2RAM中的 TH、 TL字节写到暂存器 TH、 TL字节 读电源供电方式 B4H 启动 DS18B20发送电源供电方式的信号给主 CPU ( 1) 先将数据线置高电平 “1”。 ( 2) 延时(该时间要求的不是很严格,但是尽可能的短一点) ( 3) 数据线拉到低电平 “0”。 ( 4) 延时 750微秒(该时间的时间范围可以从 480到 960微秒)。 ( 5) 数据线拉到高电平 “1”。 ( 6)延时等待 (如果初始化成功则在 15到 60毫秒时间之内产生一个由 DS18B20所返回的低电平 “0”。 据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 ( 7)若 CPU读到了数据线上的低电平 “0” 后,还要做延时,其延时的时间从发出的高电平算起(第( 5)步的时间算起)最少要 480微秒。 ( 8) 将数据线再次拉高到高电平 “1” 后结束。 2. DS18B20的写操作 ( 1) 数据线先置低电平 “0”。 ( 2) 延时确定的时间为 15微秒。 ( 3) 按从低位到高位的顺序发送字节( 一次只发送一位)。 ( 4) 延时时间为 45微秒。 基于 18B20 的温度测量仪 13 ( 5) 将数据线拉到高电平。 ( 6) 重复上( 1)到( 6)的操作直到所有的字节全部发送完为止。 ( 7) 最后将数据线拉高。 3. DS18B20的读操作 ( 1)将数据线拉高 “1”。 ( 2)延时 2微秒。 ( 3)将数据线拉低 “0”。 ( 4)延时 15微秒。 ( 5)将数据线拉高 “1”。 ( 6)延时 15微秒。 ( 7)读数据线的状态得到 1个状态位,并进行数据处理。 ( 8)延时 30微秒。 74LS138的引脚与功能简介 74ls138引脚图 74HC138管脚图 : 74LS138 为 3 线- 8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下: 当一个选通端( G1)为高电平,另两个选通端( /(G2A)和 /(G2B))为 低电平时,可将地址端( A、 B、 C)的二进制编码在一个对应的输出端以低 电平译出。 利用 G /(G2A)和 /(G2B)可 级联 扩展成 24 线译码器;若外接一个反 相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时, 74LS138还可作数据分配器 用与非门组成的 3线 8线译码器 74LS138 基于 18B20 的温度测量仪 14 3线 8线译码器 74LS138的功能表 无论从逻辑图还是功能表我们都可以看到 74LS138的八个输出引脚,任何时刻要么全为高电平 1— 芯片处于不工作状态,要么只有一个为低电平 0,其余 7个输出引脚全为高电平 1。 如果出现两个输出引脚同时为 0的情况,说明该芯片已经损坏。 当附加控制门的输出为高电平( S= 1)时 ,可由逻辑图写出 基于 18B20 的温度测量仪 15 由上式可以看出,同时又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。 71LS138有三个附加的控制端、和。 当、时,输出为高电平( S= 1),译码器处于工作状态。 否则,译码器被禁止,所有的输出端被封锁在高电平,如表。 这三个控制端也叫做 “ 片选 ” 输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。 带控制输入端的译码器又是一个完整的数据分配器。 在图 “ 数据 ” 输入端(同时),而将作为 “ 地址 ” 输入端,那么从送来的数据只能通过 所指定的一根输出线送出去。 这就不难理解为什么把叫做地址输入了。 例如当= 101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。 74HC573的引脚与功能简介 74HC573包含八进制 3态非反转透明锁存器,是一种高性能硅门 CMOS器件。 74HC573跟 LS/AL573的管脚一样。 器件的输入是和标 准 CMOS输出兼容的,加上拉电阻他们能和 LS/ALSTTL输出兼容。 锁存器 输入是和标准 CMOS 输出兼容的;加上拉 电阻 ,他们能和 LS/ALSTTL 输出兼容。 当锁存使能端 LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。 当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 三态总线驱动输出 置数全并行存取 缓冲控制输入 使能输入有 改善抗扰度的滞后作用 原理说明: 74HC573的八个锁存器都是透明的 D 型锁存器,当使能( G)为高时, Q 输出 将随数据( D)输入而变。 当使能为低时,输出将锁存在已建立的数据电平上。 输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时, 新的数据也可以置入。 这种电路可以驱动大 电容 或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。 特别 适用于缓冲寄存器, I/O 通道,双向总线驱动器和工作寄存器。 数码管简介 此系统采用的是共阴极性的 LED数码管 ,高电平点亮。 如图 16 基于 18B20 的温度测量仪 16 图 16 数码管极性及端口分布 不过,我们此次是采用的四合一的数码管。 如图 17 图 四合一数码管 图 数码管的硬件连接图 基于 18B20 的温度测量仪 17 第四章 软件设计 源程序说明 include include //_nop_()。 延时函数用 define Disdata P0 //段码输出口 define discan P2 //扫描口 define uchar unsigned char define uint unsigned int sbit DQ=P1^3。 //温度输入口 uint h。 uint temp。 uchar code dis_7[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}。 //共阴 LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 uchar code scan_con[4]={0xfb,0xfa,0xf9,0xf8}。 //列扫描控制字 uchar data temp_data[2]={0x00,0x00}。 //读出温度暂放 uchar data display[5]={0x00,0x00,0x00,0x00,0x00}。 //显示单元数据,共 4个数据和一个运算暂用 /*****************11us延时函数 *************************/ void delay(uint t) { for (。 t0。 t)。 } /****************显示扫描函数 ***************************/ scan() { char k。 for(k=1。 k4。 k++) //4位 LED扫描控制 { Disdata=dis_7[display[k]]。 //数据显示 discan=scan_con[k]。 //位 选 delay(200)。 } } /****************DS18B20复位函数 ************************/ ow_reset(void) { char presence=1。 while(presence) { 基于 18B20 的温度测量仪 18 while(presence) { DQ=1。 _nop_()。 _nop_()。 //从高拉倒低 DQ=0。 delay(50)。 //550 us DQ=1。 delay(6)。 //66 us presence=DQ。 //presence=0 复位成功 ,继续下一步 } delay(45)。 //延时 500 us presence=~DQ。 } DQ=1。 //拉高电平 } /****************DS18B20写命令函数 ************************/ //向 1WIRE 总线上写 1个字节 void write_byte(uchar val) { uchar i。 for(i=8。 i0。 i) { DQ=1。 _nop_()。 _nop_()。 //从高拉倒低 DQ=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //5 us DQ=valamp。 0x01。 //最低位移出 delay(6)。 //66 us val=val/2。 //右移 1位 } DQ=1。 delay(1)。 } /****************DS18B20读 1字节函数 ************************/ //从总线上取 1个字节 uchar read_byte(void) { uchar i。 uchar value=0。 for(i=8。 i0。 i) { DQ=1。 _nop_()。 _nop_()。 value=1。 DQ=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //4 us DQ=1。 _nop_()。 _nop_()。 _nop_()。基于18b20的温度测量仪课程设计报告(编辑修改稿)
相关推荐
...20 致 谢 ..............................................................................................22 1 1 绪论 当今社会, 日新月异的科技发展与应用让人们感到震惊的同时,各大高校推进信息化改革也成为必然。 在这样的背景下,在线考试系统的存在就显得 尤为重要 了。 在线考试系统旨在
{ if (c == 0) { (用户主页 .aspx)。 } else if (c == 1) { (管理员主页 .aspx)。 } } else { ()。 } } else { ()。 } ()。 //关闭连接 } protected void Button2_Click(object sender, EventArgs e) { ()。 } } 注册模块的具体设计代码如下图所示:
eturn false。 10 } return true。 } endregion region 关闭界面后,返回 DialogResult 值 /// summary /// 关闭界面后,返回 DialogResult 值 /// /summary /// param name=sender/param /// param name=e/param private void
仅改进了信息的提交方式、 加快了信息的提交速度,而且还简化了企业的客户服务过程,使企业向客户提交与处理客户服务的过程变得更加直接方便。 基于网络的 CMS 系统可使企业逐步实现由传统的企业模式到以电子商务为核心的转变过程 [2]。 众多企业都意识到 CMS 为企业 提供 的新 机会 , 而这样的 机会 对未来世界的影响是巨大。 首先,在开发平台层面,各大
******************************** ORG 00H LJMP MAIN ORG 03H LJMP LINT0 ORG 0BH LJMP LTIME0 ORG 13H LJMP CH451_INT1。 设置键盘中断外部中断1 ORG 23H LJMP RECIVE ORG 30HMAIN: MOV SP,60H LCALL INITIAL_GLCD。
企业的工控设备。 ( 4) 系统的设计、建造工作量小,维护方便,容易改造, PLC 用存储逻辑代替接线逻辑,大大减少了控制设备外部的接线,使控制系统设计及建造的周期大为缩短,同时维护也变得容易起来。 更重要的是使同一设备经过改变程序改变生产过程成为可能。 这很适合多品种、小批量的生产场合。 ( 5) 体积小,重量轻,能耗低,由于体积小很容易装入机械内部,是实 现机电一体化的理想控制设备。