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

📄 text1.lst

📁 DS18B20温度采集芯片的简单应用
💻 LST
📖 第 1 页 / 共 2 页
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	Text1.asm
	Object File:	Text1.hex
	List File:	Text1.lst



 Line  I  Addr  Code            Source

    1:		B      0096	RX      EQU   P1.6    ;DS18B20接收数据.
    2:		B      0097	TX      EQU   P1.7    ;51发送数据.
    3:		N      0000	FLAG1   EQU   00H     ;DS18B20初始化标志位.
    4:		N      0001	FLAG2   EQU   01H     ;通知水循环维持时间寄存器(WATER2)开始计时,间隔(WATER1)无需被操作.
    5:		N      0002	FLAG3   EQU   02H     ;通知喂食维持时间寄存器(FEED2)开始计时,间隔(FEED1)无需被操作.
    6:		N      0003	FLAG4   EQU   03H     ;被置1则可以去启动温度转换.
    7:		N      0004	FLAG5   EQU   04H     ;被置1则可以去取转换好的温度.
    8:		N      0026	TEMPL   EQU   26H     ;16位温度量低8位.
    9:		N      0027	TEMPH   EQU   27H     ;16位温度量高8位.
   10:		N      0028	TH      EQU   28H     ;温度上限值.
   11:		N      0029	TL      EQU   29H     ;温度下限值.
   12:		N      0030	TEMP1   EQU   30H     ;采集温度符号位.
   13:		N      0031	TEMP2   EQU   31H     ;采集温度整数位.
   14:		N      0032	TEMP3   EQU   32H     ;采集温度小数位.
   15:		N      0033	ZC1     EQU   33H     ;数据暂存地址1.
   16:		N      0034	ZC2     EQU   34H     ;数据暂存地址2.
   17:		N      0035	ZC3     EQU   35H     ;数据暂存地址2.
   18:		N      0036	HOUR    EQU   36H     ;小时数据暂存.
   19:		N      0037	MINUTE  EQU   37H     ;分钟数据暂存.
   20:		N      0038	SECOND  EQU   38H     ;秒数据暂存.
   21:		N      0039	WATER1  EQU   39H     ;水循环开启间隔控制寄存器.  2h(max 12h)
   22:		N      0040	WATER2  EQU   40H     ;水循环维持时间控制寄存器.  10min(max 30min)
   23:		N      0041	HEAT1   EQU   41H     ;检测水温开启间隔控制寄存器. 5S
   24:		N      0042	FEED1   EQU   42H     ;喂食开启间隔控制寄存器.     8h
   25:		N      0043	FEED2   EQU   43H     ;喂食维持时间控制寄存器.     2S
   26:		N      0044	COUNT1  EQU   44H     ;每1秒引发一次中断.
   27:		N      0045	SETTEMP EQU   45H     ;采集温度低于此值加热棒开启.
   28:		N      0046	ZC4     EQU   46H     ;装需要送显的数值
   29:		N      0047	ZC5     EQU   47H     ;1秒显示ZC4中数值子程序.
   30:		N      0048	ZC6     EQU   48H     ;1秒显示子程序十位值暂存.
   31:
   32:		N      0000	ORG 0000H
   33:	  0000	80 2E		SJMP INITIAL
   34:		N      0003	ORG 0003H
   35:	  0003	02 03 49	LJMP INT0P
   36:		N      001B	ORG 001BH
   37:	  001B	02 00 D6	LJMP IT1P
   38:		N      0030	ORG 0030H
   39:				;=====================================================
   40:				;各参数,元器件初始化
   41:				;=====================================================
   42:	  0030			INITIAL:
   43:	  0030	75 81 50	MOV   SP,#50H

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0033	75 89 00	MOV   TMOD,#00H
   45:	  0036	D2 88		SETB  IT0
   46:	  0038	75 44 8C	MOV   COUNT1,#140  ;140
   47:	  003B	75 38 00	MOV   SECOND,#00H
   48:	  003E	75 37 00	MOV   MINUTE,#00H
   49:	  0041	75 36 00	MOV   HOUR,#00H
   50:	  0044	75 41 05	MOV   HEAT1,#05H
   51:	  0047	75 42 08	MOV   FEED1,#8
   52:	  004A	75 43 02	MOV   FEED2,#2
   53:	  004D	75 39 02	MOV   WATER1,#2
   54:	  0050	75 40 0A	MOV   WATER2,#10
   55:	  0053	75 45 17	MOV   SETTEMP,#17H
   56:	  0056	C2 02		CLR   FLAG3
   57:	  0058	C2 03		CLR   FLAG4
   58:	  005A	C2 04		CLR   FLAG5
   59:	  005C	D2 AB		SETB  ET1
   60:	  005E	D2 AF		SETB  EA
   61:	  0060	75 8D 63	MOV   TH1,#63H
   62:	  0063	75 8B 18	MOV   TL1,#18H
   63:	  0066	D2 96		SETB  RX
   64:	  0068	C2 97		CLR   TX
   65:	  006A	C2 90		CLR   P1.0
   66:	  006C	C2 91		CLR   P1.1
   67:	  006E	C2 92		CLR   P1.2
   68:	  0070	C2 A5		CLR   P2.5
   69:	  0072	C2 A6		CLR   P2.6
   70:	  0074	C2 A7		CLR   P2.7
   71:	  0076	D2 93		SETB  P1.3
   72:	  0078	D2 94		SETB  P1.4
   73:	  007A	D2 95		SETB  P1.5
   74:	  007C	D2 B3		SETB  P3.3
   75:	  007E	D2 8E		SETB  TR1  ;启动定时器.
   76:				;=====================================================
   77:				;主程序
   78:				;=====================================================
   79:	  0080			MAIN:
   80:	  0080	30 95 48	JNB    P1.5,XSXS ;KEYLOCK
   81:	  0083	D2 8E		SETB   TR1
   82:	  0085	C2 A8		CLR   EX0
   83:	  0087	20 03 05	JB    FLAG4,ST1
   84:	  008A			ST2:
   85:	  008A	20 04 07	JB    FLAG5,ST3
   86:	  008D	80 28		SJMP  XS1
   87:	  008F			ST1:
   88:	  008F	12 01 4F	LCALL TRANSFORM
   89:	  0092	80 F6		SJMP  ST2
   90:	  0094			ST3:
   91:	  0094	12 01 60	LCALL GETTEMP
   92:	  0097	12 01 DF	LCALL CONVERT
   93:				;================
   94:	  009A	30 B3 18	JNB   P3.3,XS3   ;是否仍需比较,默认为需要.
   95:				;================
   96:	  009D	E5 30		MOV   A,TEMP1
   97:	  009F	B4 00 0B	CJNE  A,#00H,ST4
   98:	  00A2	E5 31		MOV   A,TEMP2
   99:	  00A4	B5 45 00	CJNE  A,SETTEMP,ST5

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  00A7			ST5:
  101:	  00A7	40 08		JC    ST6
  102:	  00A9	C2 A7		CLR   P2.7
  103:	  00AB	80 0A		SJMP  XS1
  104:	  00AD			ST4:
  105:	  00AD	D2 A7		SETB  P2.7
  106:	  00AF	80 06		SJMP  XS1
  107:	  00B1			ST6:
  108:	  00B1	D2 A7		SETB  P2.7
  109:	  00B3	80 02		SJMP  XS1
  110:				;=================
  111:	  00B5			XS3:
  112:	  00B5	C2 A7		CLR   P2.7        ;若不需系统维持恒温,则总是关闭加热棒.
  113:				;=================
  114:	  00B7			XS1:
  115:	  00B7	20 02 04	JB    FLAG3,FOOD
  116:	  00BA	C2 A6		CLR   P2.6
  117:	  00BC	80 02		SJMP  XS2
  118:	  00BE			FOOD:
  119:	  00BE	D2 A6		SETB  P2.6
  120:
  121:	  00C0			XS2:
  122:	  00C0	20 01 04	JB    FLAG2,WATER
  123:	  00C3	C2 A5		CLR   P2.5
  124:	  00C5	80 0A		SJMP  XS
  125:	  00C7			WATER:
  126:	  00C7	D2 A5		SETB  P2.5
  127:	  00C9	80 06		SJMP  XS
  128:				;===========
  129:	  00CB			XSXS:
  130:	  00CB	C2 A7		CLR   P2.7
  131:	  00CD	C2 8E		CLR   TR1   ;KEYLOCK
  132:	  00CF	D2 A8		SETB  EX0
  133:				;===========
  134:	  00D1			XS:
  135:
  136:	  00D1	12 02 CE	LCALL DISTIME
  137:	  00D4	80 AA		SJMP  MAIN
  138:				;=====================================================
  139:				;计时器T1中断服务程序
  140:				;=====================================================
  141:	  00D6			IT1P:
  142:	  00D6	C0 D0		PUSH PSW
  143:	  00D8	C0 E0		PUSH ACC
  144:	  00DA	75 8D 63	MOV  TH1,#63H
  145:	  00DD	75 8B 18	MOV  TL1,#18H
  146:	  00E0	D5 44 67	DJNZ COUNT1,COMEBACK
  147:	  00E3	75 44 B4	MOV  COUNT1,#180
  148:
  149:	  00E6			KAISHI:
  150:	  00E6	D5 41 03	DJNZ HEAT1,LOGIC1
  151:	  00E9	75 41 05	MOV  HEAT1,#05H     ;TIME:  00 01 02 03 04 05   06 07 08 09 10 11 12 13
  152:	  00EC			LOGIC1:             ;HEAT1: 5   4  3  2  1  5   4  3  2  1  5  4  3  2
  153:	  00EC	E5 41		MOV  A,HEAT1        ;FLAG4: 0   1  0  0  0  0   1  0  0  0  0  1  0  0
  154:	  00EE	B4 04 04	CJNE A,#4,LOGIC2    ;FLAG5: 0   0  0  0  1  0   0  0  0  1  0  0  0  0
  155:	  00F1	D2 03		SETB FLAG4

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  00F3	80 0B		SJMP LOGIC6
  157:	  00F5			LOGIC2:
  158:	  00F5	C2 03		CLR  FLAG4
  159:	  00F7	B4 01 04	CJNE A,#1,LOGIC3
  160:	  00FA	D2 04		SETB FLAG5
  161:	  00FC	80 02		SJMP LOGIC6
  162:	  00FE			LOGIC3:
  163:	  00FE	C2 04		CLR  FLAG5
  164:	  0100			LOGIC6:
  165:	  0100	30 02 0B	JNB   FLAG3,LOGIC
  166:	  0103	D5 43 08	DJNZ  FEED2,LOGIC
  167:	  0106	75 43 02	MOV   FEED2,#2
  168:	  0109	75 42 08	MOV   FEED1,#8
  169:	  010C	C2 02		CLR   FLAG3
  170:	  010E			LOGIC:
  171:	  010E	05 38		INC   SECOND             ;秒.
  172:	  0110	E5 38		MOV   A,SECOND
  173:
  174:	  0112	B4 3C 35	CJNE  A,#60,COMEBACK
  175:
  176:	  0115	30 01 0B	JNB   FLAG2,LOGIC8
  177:	  0118	D5 40 08	DJNZ  WATER2,LOGIC8
  178:	  011B	75 40 0A	MOV   WATER2,#10
  179:	  011E	75 39 08	MOV   WATER1,#8
  180:	  0121	C2 01		CLR   FLAG2
  181:	  0123			LOGIC8:
  182:	  0123	75 38 00	MOV   SECOND,#00H
  183:	  0126	05 37		INC   MINUTE             ;分.
  184:	  0128	E5 37		MOV   A,MINUTE
  185:
  186:	  012A	B4 3C 1D	CJNE  A,#60,COMEBACK
  187:
  188:	  012D	20 02 05	JB    FLAG3,LOGIC4
  189:	  0130	D5 42 02	DJNZ  FEED1,LOGIC4

⌨️ 快捷键说明

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