网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
实战十七《LCD数字温度计》
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19
bsp;  GOTO     READ_18B20_1
     RETURN
;*******************温度表示形式转换程序**************************
;因为从18B20中读出的温度值是二进制形式,必须把它转换成对象ASCII才能在LCD上显示
;18B20中温度的表示为:S S S S S 2的6次方 2的5次方 2的4次方    2的3次方 2的2次方 。。。。2的负4次方
;结果整数放在38H开始的存储器里,小数部分放在3B开始的单元里
;38H(百位) 39H(十位) 3AH(个位) 3BH(小数点)3CH(十分位) 3DH(百分位) 3EH(千分位) 3FH(万分位)
TEMP_CHANGE
;整数部分
;因为转换后温度值位于两个单元内,所以必须先把它们组合到一个单元内。
;因为最大值为127.9375,所以只需判断结果是否大于100来决定百位上的结果
;用循环减0AH的方法得到十位的值,最后剩下的被减数即为个位的结果   
    MOVLW    7H
    ANDWF    TEMP2,1         ;只保留低3位
    SWAPF    TEMP2,0        
    MOVWF    3AH             ;转存3AH
    MOVFW    TEMP1
    MOVWF    TEMP2           ;转存TEMP2
    MOVLW    0F0H           
    ANDWF    TEMP2,1         ;清除低4位
    SWAPF    TEMP2,0         ;高低半字节交换
    IORWF    3AH,1           ;组合得到结果的7位整数部分
   
    MOVLW    64H             ;计算整数部分百位的结果
    SUBWF    3AH,W           ; -100
    BTFSS    STATUS,C
    GOTO     NEXT0           ;温度小于100
    MOVWF    3AH             ;减后的结果覆盖原来的数据
    MOVLW    1H           
    MOVWF    38H             ;整数部分最高位为1(不可能大于1)
    GOTO     content2
NEXT0
    CLRF     38H             ;温度小于100,最高位为0
    CLRF     39H             ;计算整数部分十位的结果
    MOVLW    0AH             ; -10
    SUBWF    3AH,1
    BTFSS    STATUS,C
    GOTO     NEXT1
    INCF     39H,1           ;够减 十位上加1
    GOTO     $-5
NEXT1
    MOVLW    0AH
    ADDWF    3AH,1            ;多减一次再加回来,剩下的值即为个位上的值
   
    MOVLW    '.'
    MOVWF    3BH               ;小数点
   
;小数部分
;取四位精度
;计算方法为从最低位开始依
  • 上一篇资讯: [单片机]
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号