温度测控器课程设计_(编辑修改稿)内容摘要:

段码(或称字型码)。 段码与字节中各位对应关系 代码位 D7 D6 D5 D4 D3 D2 D1 D0 显示段 dp g f e d c b a 八段 LED数 码管段代码编码 表 字形 0 1 2 3 4 5 6 7 8 9 共阳 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 共阴 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 10 三、 系统软件的设计 系统程序主要包括主程序、 DS18B20 复位初始化子程序 , 读出转换后的温度值 , 生成显示码子程序及显示子程序 主程序 主程序的主要功能是负责温度的实际显示、读数并处理 DS18B20的测量温度值,温度测量每1s进行一次。 DS18B20 复位初始化子程序 读出温度子程序的主要功能是读出 RAM中的 9字节,在读出时需进行 CRC检验,校验有错时不进行温度数据的改写。 读出转换后的温度值 温度转换命令子程序主要是发温度转换开始命令,当采用 12位分辨率知转换时间约 750ms,在本程序设计中采用 1s显示程序延时法等待转换的完成。 生成显示码子程序及显示子程序 计算温度子程序将 RAM中读取值进行 BCD码的转换运算,并进行温度值正负的判定, 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为 0将符号显示位移 入下一位 四 、 程序设计流程 程序流程图如图 11 主程序 开始 初始化、设置常量 调 DS18B20 初始化子程序 读取转换温度值 调数据处理子程序 生成显示码 显示温度值 DS18B20 复位子程序 DQ 置 1 DQ 置 0 延时至少 573 微秒 DQ 置 1 短延时,等待 DS18B20 回应 DQ=0。 FLAG1 置1 延时 DQ 置 1 返回 FLAG1 置0 Y N 12 读温度值子程序 DQ 置 1 DS18B20 复位 FLAG1=1 发送 0CCH 命令,跳过ROM 匹配 发送温度转换命令 44H 延时 750 微秒以上 DS18B20 初始化 跳过 ROM 匹配 发送读温度命令 0BEH 调用读数据子程序 返回 写 DS18B20 命令子程序 设 R2=8 进位标志位 C 清零 短延时 DQ 置 0 ACC 带进位右移 1 位 将 C 值写入 DQ 短延时 DQ 置 1 已读 8 位 DQ 置 1 返回 Y N Y N 13 附录一 程序 DQ BIT FLAG1 BIT 00H SIGN BIT 01H MSB EQU 30H。 转换数据高位字节 LSB EQU 31H。 转换数据低位字节 INTEG EQU 32H。 转换数据整数部分 DECIM EQU 33H。 转换数据小数部分 SEG_S EQU 34H SEG_I3 EQU 35H SEG_I2 EQU 36H SEG_I1 EQU 37H。 3 位整数段码 读温度值子程序 设 R1=31H 设 R4=2( 2 字节) 已读 8 位 返回 数据处理子程序 C 清零 设 R2=8( 8 位数据) 进位标志位 C 清 0 为 DQ提供一个低脉冲 将 DQ 值读入 C ACC 带进位右移 1 位 将 ACC中的值存入 @R1 R1=R11 读完 2字节 符号位 SIGN 清零 将转换数据高字节最高位移入 C C=1 C 清零 SIGN 置 1,表示负数 将转换数据低字节逐位取反再加 1 转换数据高字节加进位 C 分离整数与小数,整数存入 INTEG,小数存 入DECIM 返回 Y N Y N Y N 14 SEG_D1 EQU 38H。 1 位小数段码 SEG_C EQU 39H SEG_I6 EQU 40H SEG_I5 EQU 41H SEG_I4 EQU 42H。 ******************************************************。 主程序。 ****************************************************** ORG 0000H MAIN: LCALL INIT_1820。 DS18B20 初始化 LCALL GET_TEMPER。 读取转换数据 LCALL DATA_PROC。 数据处理 LCALL SEG_GEN。 生成显示码 LCALL DISPLAY。 数码显示 SJMP MAIN。 ****************************************************************。 DS18B20 复位初始化子程序。 **************************************************************** INIT_1820: SETB DQ NOP CLR DQ。 主机发出延时 537 微秒的复位低脉冲 MOV R1,3 TSR1: MOV R0,107 DJNZ R0,$ DJNZ R1,TSR1 SETB DQ。 拉高数据线 NOP NOP NOP MOV R0,25H TSR2: JNB DQ,TSR3。 等待 DS18B20 回应 DJNZ R0,TSR2。 延时并检测应答信号 LJMP TSR4 TSR3: SETB FLAG1。 置标志位 ,表示 DS1820 存在 LJMP。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。