📄 d18b20.lst
字号:
A51 MACRO ASSEMBLER D18B20 08/10/2007 21:44:05 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN D18B20.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE D18B20.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;/*****************************************************************
2 ;/* 这是DS18B20的汇编程序, 文件名D18B20.ASM */
3 ;/* 功能:本程序主要是读出芯片DS18B20固有的序列号,序列号共64位, */
4 ;/* 也就是8个字节,读出后依次放在单片机的RAM 40H,41H,...47H中。*/
5 ;/* 单片机的P1.0接DS18B20的BQ。 */
6 ;/* 本芯片的序列号为: 28h,10h,46h,e2h,00,00,00,7eh */
7 ;/*****************************************************************
0090 8 DQ EQU P1.0
0000 9 ORG 0000H
0000 0120 10 AJMP MAIN
0020 11 ORG 0020H
0020 12 MAIN:
0020 758160 13 MOV SP,#60H
0023 C2AF 14 CLR EA ;使用ds1820一定要禁止任何中断产生
0025 120059 15 LCALL INT ;初始化ds1820
0028 7433 16 MOV A,#33H
002A 12007D 17 LCALL WRITE ;送入读ds1820的ROM命令
002D 120095 18 LCALL READ ;开始读出当前ds1820序列号
0030 F540 19 MOV 40H,A
0032 120095 20 LCALL READ
0035 F541 21 MOV 41H,A
0037 120095 22 LCALL READ
003A F542 23 MOV 42H,A
003C 120095 24 LCALL READ
003F F543 25 MOV 43H,A
0041 120095 26 LCALL READ
0044 F544 27 MOV 44H,A
0046 120095 28 LCALL READ
0049 F545 29 MOV 45H,A
004B 120095 30 LCALL READ
004E F546 31 MOV 46H,A
0050 120095 32 LCALL READ
0053 F547 33 MOV 47H,A
0055 D2AF 34 SETB EA
0057 80FE 35 SJMP $
36
0059 37 INT: ;初始化ds1820子程序
0059 C2AF 38 CLR EA
005B C290 39 L0: CLR DQ ;ds1820总线为低复位电平
005D 7AC8 40 MOV R2,#200
005F C290 41 L1: CLR DQ
0061 DAFC 42 DJNZ R2,L1 ;总线复位电平保持400us
0063 D290 43 SETB DQ ;释放ds1820总线
0065 7A1E 44 MOV R2,#30
0067 DAFE 45 L4: DJNZ R2,L4 ;释放ds1820总线保持60us
0069 C3 46 CLR C ;清存在信号
006A 7290 47 ORL C,DQ
006C 40ED 48 JC L0 ;存在吗?不存在则重新来
006E 7E50 49 MOV R6,#80
0070 7290 50 L5: ORL C,DQ
0072 4004 51 JC L3
0074 DEFA 52 DJNZ R6,L5
0076 80E3 53 SJMP L0
0078 7AF0 54 L3: MOV R2,#240
007A DAFE 55 L2: DJNZ R2,L2
007C 22 56 RET
57
007D 58 WRITE: ;向ds1820写操作命令子程序
A51 MACRO ASSEMBLER D18B20 08/10/2007 21:44:05 PAGE 2
007D C2AF 59 CLR EA
007F 7B08 60 MOV R3,#8 ;写入ds1820的bit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -