单片机数字温度计汇编程序

  • 格式:doc
  • 大小:21.50 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORG 0000H

LJMP MAIN

ORG 0100H

;*********************************************

DAT BIT P1.0

TEMPER_L EQU 40H

TEMPER_H EQU 41H

A_BIT EQU 60H

B_BIT EQU 61H

C_BIT EQU 62H

D_BIT EQU 63H

;***主程序****************************************

MAIN:

MOV A,#7FH

LCALL WRITE_1820

LCALL INIT_1820

LCALL GET_TEMPER

LCALL CONVER

LCALL DISPLAY

LJMP MAIN

;***初始化db18b20**************************************************** INIT_1820:

CLR EA

INI10:

SETB DAT

MOV R2,#200

INI11:

CLR DAT

DJNZ R2,INI11

SETB DAT

MOV R2,#30

INT12:

DJNZ R2,INT12

CLR C

ORL C,DAT

JC INI10

MOV R6,#80

INI13:

ORL C,DAT

JC INI14

DJNZ R6,INI13

SJMP INI10

INI14:

MOV R2,#240

INT15:

DJNZ R2,INT15

RET

;**读温度子程序********************************************************* GET_TEMPER:

MOV A,#0CCH

LCALL WRITE_1820

MOV A,#44H

LCALL WRITE_1820

SETB DAT

LCALL DISPLAY

LCALL INIT_1820

MOV A,#0CCH

LCALL WRITE_1820

MOV A,#0BEH

LCALL WRITE_1820

LCALL READ_1820

MOV TEMPER_L,A

LCALL READ_1820

MOV TEMPER_H,A

RET

;***写ds18b20的程序*********************************************************** WRITE_1820:

CLR EA

MOV R3,#8

WR11:

SETB DAT

MOV R4,#8

RRC A

CLR DAT

WR12:

MOV DAT,C

MOV R4,#30

WR13:

DJNZ R4,WR13

DJNZ R3,WR11

SETB DAT

RET

;***读ds18b20的程序*********************************************************************

READ_1820:

CLR EA

MOV R6,#8

RD11:

CLR DAT

MOV R4,#8

NOP

SETB DAT

RD12:

DJNZ R4,RD12

MOV C,DAT

RRC A

MOV R5,#30

RD13:

DJNZ R5,RD13

SETB DAT

RET

;***计算温度子程序************************************************ CONVER:

MOV A,#0F0H

ANL A,TEMPER_H

MOV 64H,A

JZ UNSIGN

DEC TEMPER_L

MOV A,TEMPER_H

CPL A

MOV TEMPER_H,A

MOV A,TEMPER_L

CPL A

MOV TEMPER_L,A

UNSIGN:

MOV A,#0FH

ANL A,TEMPER_L

MOV B,#10

MUL AB

MOV B,#16

DIV AB

MOV A_BIT,A

MOV A,#0F0H

ANL A,TEMPER_L

SWAP A

MOV B,A

MOV A,#0FH

ANL A,TEMPER_H

SWAP A

ADD A,B

MOV 32H,A

BCD:

MOV B,#100

DIV AB

MOV 30H,A

MOV D_BIT,A

MOV A,#10

XCH A,B

DIV AB

MOV C_BIT,A

MOV B_BIT,B

SWAP A

ADD A,B

MOV 31H,A

RET

;****显示温度子程序*********************************************************** DISPLAY:

MOV 5FH,#00H

相关主题