📄 wd.lst
字号:
A51 MACRO ASSEMBLER WD 05/04/2008 10:34:27 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\wd.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\wd.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0036 1 TEMPER_L EQU 36H ;从DS18B20中读回高位,低位暂存区
0035 2 TEMPER_H EQU 35H ;
0060 3 TEMPER_NUM EQU 60H;温度值存储
0061 4 TEMPER_GE EQU 61H
0062 5 TEMPER_SHI EQU 62H
0063 6 TEMPER_SAVE EQU 63H
0000 7 FLAG1 BIT 00H
0001 8 FLAG2 BIT 01H
9
0080 10 RS BIT P0.0 ;设置寄存器端口
0081 11 RW BIT P0.1 ;设置读写端口
0082 12 E BIT P0.2 ;设置读写使能端口
0090 13 DQ BIT P1.0;单总线口
0000 14 ORG 0000H
0000 0130 15 AJMP MAIN
0030 16 ORG 0030H
0030 758170 17 MAIN: MOV SP,#70H
0033 120040 18 LCALL GET_TEMPER
0036 1200CE 19 LCALL TEMPER_COV
0039 120127 20 LCALL DISPLAY
003C 020030 21 LJMP MAIN
003F 00 22 NOP
23 ;**************************************************
24 ;读出转换后的温度值
25 ;**************************************************
0040 26 GET_TEMPER:
0040 D290 27 SETB DQ ; 定时入口
0042 120101 28 BCD: LCALL INIT_1820
0045 200003 29 JB FLAG1,S22
0048 020042 30 LJMP BCD ; 若DS18B20不存在则返回
31
004B 1201C2 32 S22: LCALL DELAY1
004E 74CC 33 MOV A,#0CCH ; 跳筊OM匹配------0CC命令
0050 120092 34 LCALL WRITE_1820
0053 7444 35 MOV A,#44H ; 发出温度转换命令
0055 120092 36 LCALL WRITE_1820
0058 00 37 NOP
0059 1201BD 38 LCALL DELAY
005C 120101 39 CBA:LCALL INIT_1820
005F 200003 40 JB FLAG1,ABC
0062 02005C 41 LJMP CBA
0065 1201C2 42 ABC:LCALL DELAY1
0068 74CC 43 MOV A,#0CCH ; 跳筊OM匹配
006A 120092 44 LCALL WRITE_1820
006D 74BE 45 MOV A,#0BEH ; 发出读温度命令
006F 120092 46 LCALL WRITE_1820
0072 1200AA 47 LCALL READ_18200 ;READ_1820
0075 22 48 RET
49 ;**************************************************************
50 ;读DS18B20的程序,从DS18B20中读出一个字节的示
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -