单片机课程设计论文-基于ds18b20的温度采集系统设计内容摘要:

显示 LCALL GET_TEMPER_2 MOV A,TEMPER_L MOV C,40H。 将 28H 中的最低位移入 C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A LCALL DISP_2。 调用超限显示 LJMP WAIT 子程序设计 子程序流程图设计 13 ( 1)读转换温度子程序 ( 2) 单片机读 DS18B20 的子程序 Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作, CRC 校验 9 字节完。 结束 CRC 校验正确。 移入温度暂存器 N Y N 14 ( 3) DS18B20感应(写)温度子程序 复位 延时 16us 以上 把一个字节 DATA 分成 8个BIT 环移给 C 写入一个 BIT 等待 100 微妙 重新释放总线 置 R2 为 8 写入下一个 BIT 写完 8 BIT 重新释放总线 返回 15 子程序程序设计 6 系统调试与分析 ( 1) 刚开始什么都不显示,原因是用作驱动的三极管没导通。 后来把三极管成了非门。 ( 2) 换成非门后,显示乱码。 直接用 导线连接。 ( 3) 换成导线后直接挨个出 0,改了改延时又先挨个出 0,出完 0 后再挨个显 0,出完 0后再挨个显 个显示温度。 总之不能显示个静态的温度。 ( 4) 在老师的帮助下。 我改了改显示子程序,显示完小数部分后延时小一点最后确定为 400 多 us,再把 p口重置。 结果显示就是一个静态温度了。 ( 5) 不过每次运行一开始会先出现。 我改了改采集温度的时间延时。 可是结果只显示 . ( 6) 最后我选择用硬件仿真。 结果发现 proteus上的数码管我接的是共阳的,实验台上的数码管是共阴的。 接着我改了改码表。 和一些小地方。 显示的温度还是有 ds18b20 上电复位的一个必要状态。 不过可以屏蔽掉。 经过将近 1 周的单片机课程设计,终于完成了我的温度采集系统设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把仿真和硬件都做了出来,高兴之余不得不深思呀。 在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计 16 但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要 有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是 BCD 码,这一次,我全部用的都是 16 进制的数直接加减,显示处理时在用除法去删分 ,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。 从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设 计中的最大收获。 附录一 程序总清单 ORG 0000H TMPL EQU 29H。 用于保存读出温度的低 8 位 TMPH EQU 28H。 用于保存读出温度的高 8 位 BIAOZHI EQU 38H。 是否检测到 DS18B20 标志位 DATAIN BIT。 定义位地址 MAIN: LCALL GET_TEMPER。 调用读温度子程序 LCALL CVTTMP。 调用转换子程序 LCALL DISPLAY。 调用数码管显示子程序 AJMP MAIN。 ====================================================================================。 复位初始化子程序 INIT_1820: SETB DATAIN NOP CLR DATAIN。 主机发出延时复位低脉冲 MOV R0,6BH。 107 1us MOV R1,04H。 4 1us TSR1: DJNZ R0,$。 2us 107=214us MOV R0,6BH。 107 DJNZ R1,TSR1。 2us ( 214+2+1)4=868 17 SETB DATAIN。 拉高数据线 NOP NOP NOP MOV R0,32H TSR2: JNB DATAIN,TSR3。 等待 DS18B20 回应 1us DJNZ R0,TSR2。 2us (2+1)32=96us JMP TSR4。 延时 TSR3: SETB BIAOZHI。 置标志位 ,表示 DS1820 存在 JMP TSR5 TSR4: CLR BIAOZHI。 清标志位 ,表示 DS1820 不存在 JMP TSR7 TSR5: MOV R0,6BH。 1us TSR6: DJNZ R0,$。 2us (2+1) 107=321us。 时序要求延时一段时间 TSR7: SETB DATAIN RET。 ====================================================================================。 读转换温度子程序( 让 DS18B20 感应温度,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。