📄 ljh.lst
字号:
页 1
03-16-05
18:07:57
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
ORG 0000H
;单片机内存分配申明!
TEMPER_L EQU 29H;用于保存读出温度的低8位
TEMPER_H EQU 28H;用于保存读出温度的高8位
FLAG1 EQU 38H;是否检测到DS18B20标志位
a_bit equ 20h ;数码管个位数存放内存位置
b_bit equ 21h ;数码管十位数存放内存位置
c_bit equ 22h ;数码管小数存放内存位置
MAIN:
0000 1200C4 LCALL GET_TEMPER;调用读温度子程序
;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度
;显示范围00到99度,显示精度为1度
;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位
;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度
;这个转化温度的方法可是我想出来的哦~~非常简洁无需乘于0.0625系数
0003 852922 mov 22h,29h ; 将读出的温度字节装入22h,转换成小数
0006 120082 lcall xs ;调用小数转换子程序
0009 E529 MOV A,29H ; 将读出的温度字节装入A,转换整数
000B A240 MOV C,40H;将28H中的最低位移入C
000D 13 RRC A ; 代进位位右移
000E A241 MOV C,41H ; 将28H中的第七位移入C
0010 13 RRC A ; 代进位位右移
0011 A242 MOV C,42H ; 将28H中的第六位移入C
0013 13 RRC A ; 代进位位右移
0014 A243 MOV C,43H ; 将28H中的第五位移入C
0016 13 RRC A ; 代进位位右移
0017 F529 MOV 29H,A ; 将转换后的整数装入29h,用于显示
0019 FE mov r6,a ;将整数装入寄存器R6,用于比较
001A 120149 LCALL DISPLAY;调用数码管显示子程序
001D C3 clr c ;清零进位位
001E EE mov a,r6 ;将寄存器R6的内容(整数值)装入A
001F B4140C cjne a,#20,bj ;比较整数,如果不相等,转移到bj
0022 ED mov a,r5 ;将小数值装入A,比较高低
0023 C3 clr c ;清零C,
0024 B40807 cjne a,#8,bj ;比较小数,不相等转移
0027 D2D5 setb f0 ;置位用户标志位,表示温度已经到位,进行超低温检测
0029 D291 setb p1.1 ;关闭超低温报警
002B 02006C ljmp st2 ;如果小数也相等,转移到ST2停止加热
;比较子程序
002E 4006 bj:jc jr0 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -