⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 51 单片机支持ds18b20测温电路和源程序
💻 LST
字号:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Cross Assembler   A S E M - 5 1   V 1.2
       =====================================================



	Source File:	MAIN.ASM
	Object File:	MAIN.HEX
	List File:	MAIN.LST



 Line  I  Addr  Code            Source

    1:		B	 B7	DAT 	BIT P3.7 ;数据通信口
    2:		N      00D2	swpH    equ  0d2H
    3:		N      00FF	swpL    equ  0ffH
    4:		N	 30	WDLSB 	DATA 30H ;读出的温度低字节
    5:		N	 31	WDMSB 	DATA 31H ;读出的温度高字节
    6:				;***************************************************************
    7:		N      0000		ORG 0000H
    8:	  0000	02 00 28		LJMP MAIN
    9:		N      000B		ORG 000BH
   10:	  000B	02 00 0E		LJMP TMR0   ;定时显示,用定时器0
   11:
   12:				;********************************************************
   13:				;定时显示子程序
   14:	  000E			TMR0:
   15:	  000E	75 8C D2	 MOV TH0,#swpH ;定时器10MS中断
   16:	  0011	75 8A FF	MOV TL0,#swpL
   17:	  0014	20 21 08	 JB 21H,dsl;用于高低位轮流显示
   18:	  0017	85 42 80	MOV P0,42H;高位
   19:	  001A	43 80 20	ORL P0,#00100000B
   20:	  001D	80 06		 sjmp kkk
   21:	  001F			dsl:
   22:	  001F	85 43 80	MOV P0,43H;低位
   23:	  0022	43 80 10	ORL P0,#00010000B
   24:	  0025			kkk:
   25:	  0025	B2 21		  cpl 21H
   26:	  0027	32		RETI
   27:
   28:				;主程序:
   29:	  0028			MAIN:
   30:	  0028			TOINIT:
   31:				;定时器0的初始化
   32:	  0028	C2 AF		 CLR EA
   33:	  002A	75 89 01	 MOV TMOD,#01H
   34:	  002D	75 8C D2	 MOV TH0,#swpH ;定时器10MS中断
   35:	  0030	75 8A FF	MOV TL0,#swpL
   36:	  0033	D2 AF		 SETB EA
   37:	  0035	D2 A9		SETB ET0
   38:	  0037	D2 8C		 SETB TR0
   39:				;***********************************************************
   40:				;清显示缓冲
   41:	  0039	7A 02		  MOV R2,#2
   42:	  003B	78 42		MOV R0,#42H ;
   43:	  003D			OVER:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  003D	76 00		  MOV @R0,#00H;
   45:	  003F	08		INC R0
   46:	  0040	DA FB		DJNZ R2,OVER
   47:
   48:	  0042			LOOP:
   49:	  0042	12 00 47	LCALL DSWD ;调用读出DS18B20温度程序
   50:	  0045	80 FB		SJMP LOOP
   51:
   52:				;**********************************************************
   53:	  0047			DSWD:
   54:	  0047	12 00 C7		LCALL RSTSNR;调用复位程序
   55:	  004A	30 D5 3D		JNB F0,KEND ;如果没有应答,返回主程序
   56:	  004D	78 CC			MOV R0,#0CCH
   57:	  004F	12 00 AB		LCALL SEND_BYTE ;跳过ROM匹配
   58:	  0052	78 44			MOV R0,#44H ;发出温度转换命令
   59:	  0054	12 00 AB		LCALL SEND_BYTE
   60:	  0057	D2 AF			SETB EA
   61:	  0059	75 48 01		MOV 48H,#1 ;延时75ms以上准备读
   62:	  005C			SS2:
   63:	  005C	75 49 FF		MOV 49H,#255
   64:	  005F			SS1:
   65:	  005F	75 4A FF	 	MOV 4AH,#255
   66:	  0062			SS0:
   67:	  0062	D5 4A FD		DJNZ 4AH,SS0
   68:	  0065	D5 49 F7		DJNZ 49H,SS1
   69:	  0068	D5 48 F1		DJNZ 48H,SS2
   70:	  006B	C2 AF			CLR EA
   71:	  006D	12 00 C7		LCALL RSTSNR
   72:	  0070	30 D5 17		JNB F0,KEND
   73:	  0073	78 CC			MOV R0,#0CCH ;跳过ROM匹配
   74:	  0075	12 00 AB		LCALL SEND_BYTE
   75:	  0078	78 BE			MOV R0,#0BEH ;发出读温度命令
   76:	  007A	12 00 AB		LCALL SEND_BYTE
   77:	  007D	12 00 BD		LCALL READ_BYTE
   78:	  0080	F5 30			MOV WDLSB,A
   79:	  0082	12 00 BD		LCALL READ_BYTE
   80:	  0085	F5 31			MOV WDMSB,A
   81:	  0087	12 00 8D		LCALL TRANS12
   82:	  008A			KEND:
   83:	  008A	D2 AF			SETB EA
   84:	  008C	22			RET
   85:				;**********************************************************
   86:				;温度转换程序(只取整数) ,30H=LSB,31H=MSB;
   87:	  008D			TRANS12:
   88:	  008D	E5 30		    MOV A,30H
   89:	  008F	54 F0			ANL A,#0F0H
   90:	  0091	F5 3A			MOV 3AH,A
   91:	  0093	E5 31			MOV A,31H
   92:	  0095	54 0F			ANL A,#0FH
   93:	  0097	45 3A			ORL A,3AH
   94:	  0099	C4			SWAP A
   95:	  009A	75 F0 0A		MOV B,#10
   96:	  009D	84			DIV AB
   97:					;MOV 42H,A
   98:	  009E	85 F0 43		MOV 43H,B ;
   99:	  00A1	75 F0 0A		mov b,#10

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  00A4	84			div ab
  101:	  00A5	85 F0 42		mov 42H,B
  102:	  00A8	F5 41			mov 41H,A
  103:	  00AA	22			RET
  104:				;*************************************************
  105:	  00AB			SEND_BYTE: ;发送一个字节程序
  106:	  00AB	E8			MOV A,R0
  107:	  00AC	7D 08			MOV R5,#8
  108:	  00AE	C3		SEN3:   CLR C
  109:	  00AF	13			RRC A
  110:	  00B0	40 05			JC SEN1
  111:	  00B2	12 00 F0		LCALL WRITE_0
  112:	  00B5	80 03			SJMP SEN2
  113:	  00B7	12 00 F9	SEN1:   LCALL WRITE_1
  114:	  00BA	DD F2		SEN2:   DJNZ R5,SEN3 ; 循环8次,写一个字节
  115:	  00BC	22			RET
  116:				;*************************************************
  117:				;读一个字节程序
  118:	  00BD			READ_BYTE:
  119:	  00BD	7D 08			MOV R5,#8
  120:	  00BF	12 01 07	READ1:  LCALL READ
  121:	  00C2	13			RRC A
  122:	  00C3	DD FA			DJNZ R5,READ1 ; 循环8次,读一个字节
  123:	  00C5	F8			MOV R0,A
  124:	  00C6	22			RET
  125:					;*************************************************
  126:				;复位程序,如果复位置位F0,没有就复位F0
  127:	  00C7	D2 B7		RSTSNR: SETB DAT
  128:	  00C9	00			NOP
  129:	  00CA	00			NOP
  130:	  00CB	C2 B7			CLR DAT
  131:	  00CD	7E FA			MOV R6,#250 ;主机发复位脉冲持续3μs×200=600μs
  132:	  00CF	DE FE			DJNZ R6,$
  133:	  00D1	7E 32			MOV R6,#50
  134:	  00D3	DE FE			DJNZ R6,$
  135:	  00D5	D2 B7			SETB DAT ;主机释放总线,口线改为输入
  136:	  00D7	7E 0F			MOV R6,#15
  137:	  00D9	DE FE			DJNZ R6,$
  138:	  00DB	12 00 E5		CALL CHCK ;调用应答检查程序
  139:	  00DE	7E 3C			MOV R6,#60
  140:	  00E0	DE FE			DJNZ R6,$
  141:	  00E2	D2 B7			SETB DAT
  142:	  00E4	22			RET
  143:					;*************************************************
  144:	  00E5	A2 B7		CHCK: 	MOV C,DAT
  145:	  00E7	40 04			JC RST0
  146:	  00E9	D2 D5			SETB F0 ;检测到信号,置位F0
  147:	  00EB	80 02			SJMP CHCK0
  148:	  00ED	C2 D5		RST0:   CLR F0 ;未准备好F0复位
  149:	  00EF	22		CHCK0:  RET
  150:				;*************************************************
  151:				;写0
  152:	  00F0			WRITE_0:
  153:	  00F0	C2 B7			CLR DAT
  154:	  00F2	7E 1E			MOV R6,#30
  155:	  00F4	DE FE			DJNZ R6,$

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  00F6	D2 B7			SETB DAT
  157:	  00F8	22			RET
  158:				;*************************************************
  159:				;写1
  160:	  00F9			WRITE_1:
  161:	  00F9	C2 B7			CLR DAT
  162:	  00FB	00			NOP
  163:	  00FC	00			NOP
  164:	  00FD	00			NOP
  165:	  00FE	00			NOP
  166:	  00FF	00			NOP
  167:	  0100	D2 B7			SETB DAT
  168:	  0102	7E 1E			MOV R6,#30
  169:	  0104	DE FE			DJNZ R6,$
  170:	  0106	22			RET
  171:				;*************************************************
  172:				;读一位数据程序
  173:	  0107	D2 B7		READ: 	SETB DAT ;先复位至少1US产生读起始信号
  174:	  0109	00			NOP
  175:	  010A	00			NOP
  176:	  010B	C2 B7			CLR DAT
  177:	  010D	00			NOP
  178:	  010E	00			NOP
  179:	  010F	D2 B7			SETB DAT ;置位DAT准备接收数据
  180:	  0111	00			NOP
  181:	  0112	00			NOP
  182:	  0113	00			NOP
  183:	  0114	00			NOP
  184:	  0115	00			NOP
  185:	  0116	00			NOP
  186:	  0117	00			NOP
  187:	  0118	A2 B7			MOV C,DAT
  188:	  011A	7E 17			MOV R6,#23
  189:	  011C	DE FE			DJNZ R6,$
  190:	  011E	22			RET
  191:				;**********************************************
  192:				;13毫秒延时子程序
  193:	  011F	7C 14		DELAY10:MOV R4,#20
  194:	  0121	7D 1E		D2:     MOV R5,#30
  195:	  0123	DD FE		        DJNZ R5,$
  196:	  0125	DC FA		        DJNZ R4,D2
  197:	  0127	22		        RET
  198:
  199:				        end





                     register banks used:  ---

                     no errors




ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
CHCK				  CODE	    00E5	 144
CHCK0				  CODE	    00EF	 149
CY				  BIT	      D7
D2				  CODE	    0121	 194
DAT				  BIT	      B7	   1
DELAY10				  CODE	    011F	 193
DPH				  DATA	      83
DPL				  DATA	      82
DSL				  CODE	    001F	  21
DSWD				  CODE	    0047	  53
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
KEND				  CODE	    008A	  82
KKK				  CODE	    0025	  24
LOOP				  CODE	    0042	  48
MAIN				  CODE	    0028	  29
OV				  BIT	      D2
OVER				  CODE	    003D	  43
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 6



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
READ				  CODE	    0107	 173
READ1				  CODE	    00BF	 120
READ_BYTE			  CODE	    00BD	 118
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RST0				  CODE	    00ED	 148
RSTSNR				  CODE	    00C7	 127
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SEN1				  CODE	    00B7	 113
SEN2				  CODE	    00BA	 114
SEN3				  CODE	    00AE	 108
SEND_BYTE			  CODE	    00AB	 105
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
SS0				  CODE	    0062	  66
SS1				  CODE	    005F	  64
SS2				  CODE	    005C	  62
SWPH				  NUMBER    00D2	   2
SWPL				  NUMBER    00FF	   3
T0				  BIT	      B4
T1				  BIT	      B5
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TL0				  DATA	      8A
TL1				  DATA	      8B
TMOD				  DATA	      89
TMR0				  CODE	    000E	  14
TOINIT				  CODE	    0028	  30
TR0				  BIT	      8C
TR1				  BIT	      8E
TRANS12				  CODE	    008D	  87
TXD				  BIT	      B1
WDLSB				  DATA	      30	   4
WDMSB				  DATA	      31	   5
WR				  BIT	      B6
WRITE_0				  CODE	    00F0	 152
WRITE_1				  CODE	    00F9	 160

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -