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

📄 ds18b20.src

📁 使用PROTEUS仿真的智能温度计,使用DS18B20测温,C编写
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; .\DS18B20.SRC generated from: DS18B20.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE DS18B20.c BROWSE DEBUG OBJECTEXTEND SRC(.\DS18B20.SRC)

$NOMOD51

NAME	DS18B20

P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
AC	BIT	0D0H.6
T0	BIT	0B0H.4
T1	BIT	0B0H.5
EA	BIT	0A8H.7
IE	DATA	0A8H
P0_0	BIT	080H.0
P1_0	BIT	090H.0
P0_1	BIT	080H.1
FL	BIT	0D0H.1
P2_0	BIT	0A0H.0
P1_1	BIT	090H.1
P0_2	BIT	080H.2
P3_0	BIT	0B0H.0
P2_1	BIT	0A0H.1
P1_2	BIT	090H.2
P0_3	BIT	080H.3
P3_1	BIT	0B0H.1
P2_2	BIT	0A0H.2
P1_3	BIT	090H.3
P0_4	BIT	080H.4
DQ	BIT	0B0H.7
P3_2	BIT	0B0H.2
P2_3	BIT	0A0H.3
P1_4	BIT	090H.4
P0_5	BIT	080H.5
RD	BIT	0B0H.7
P3_3	BIT	0B0H.3
P2_4	BIT	0A0H.4
P1_5	BIT	090H.5
P0_6	BIT	080H.6
P3_4	BIT	0B0H.4
P2_5	BIT	0A0H.5
P1_6	BIT	090H.6
P0_7	BIT	080H.7
P3_5	BIT	0B0H.5
ES	BIT	0A8H.4
P2_6	BIT	0A0H.6
P1_7	BIT	090H.7
P3_6	BIT	0B0H.6
P2_7	BIT	0A0H.7
IP	DATA	0B8H
P3_7	BIT	0B0H.7
RI	BIT	098H.0
CY	BIT	0D0H.7
INT0	BIT	0B0H.2
INT1	BIT	0B0H.3
TI	BIT	098H.1
PS	BIT	0B8H.4
SP	DATA	081H
OV	BIT	0D0H.2
WR	BIT	0B0H.6
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
EX1	BIT	0A8H.2
TB8	BIT	098H.3
IT1	BIT	088H.2
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
en	BIT	0B0H.6
PT0	BIT	0B8H.1
RS0	BIT	0D0H.3
PT1	BIT	0B8H.3
RS1	BIT	0D0H.4
PT2	BIT	0B8H.5
TR0	BIT	088H.4
TR1	BIT	088H.6
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
rs	BIT	0B0H.4
REN	BIT	098H.4
rw	BIT	0B0H.5
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
?PR?delay100us?DS18B20                   SEGMENT CODE 
?PR?_write_command?DS18B20               SEGMENT CODE 
?PR?_write_data?DS18B20                  SEGMENT CODE 
?PR?_display_string?DS18B20              SEGMENT CODE 
?PR?_delay_18B20?DS18B20                 SEGMENT CODE 
?PR?Init_DS18B20?DS18B20                 SEGMENT CODE 
?PR?_WriteOneChar?DS18B20                SEGMENT CODE 
?PR?ReadOneChar?DS18B20                  SEGMENT CODE 
?PR?read_18B20?DS18B20                   SEGMENT CODE 
?PR?main?DS18B20     SEGMENT CODE 
?CO?DS18B20          SEGMENT CODE 
?C_INITSEG           SEGMENT CODE 
?DT?DS18B20          SEGMENT DATA 
	EXTRN	CODE (?C?CLDPTR)
	EXTRN	CODE (?C_STARTUP)
	EXTRN	CODE (?C?UIDIV)
	EXTRN	CODE (?C?IMUL)
	PUBLIC	zhengshu
	PUBLIC	fg
	PUBLIC	xiaoshu_a
	PUBLIC	L_18B20
	PUBLIC	H_18B20
	PUBLIC	number?
	PUBLIC	main
	PUBLIC	read_18B20
	PUBLIC	ReadOneChar
	PUBLIC	_WriteOneChar
	PUBLIC	Init_DS18B20
	PUBLIC	_delay_18B20
	PUBLIC	_display_string
	PUBLIC	_write_data
	PUBLIC	_write_command
	PUBLIC	delay100us

	RSEG  ?DT?DS18B20
        H_18B20:   DS   1
        L_18B20:   DS   1
      xiaoshu_a:   DS   2
             fg:   DS   2
       zhengshu:   DS   2

	RSEG  ?CO?DS18B20
?SC_0:
	DB  ' ' ,'T' ,'e' ,'m' ,'p' ,'r' ,'a' ,'t' ,'u' ,'r' 
	DB  'e' ,':' ,000H

number?:
	DB  '0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9' 
	DB  000H



	RSEG  ?C_INITSEG
	DB	002H
	DB	fg
	DW	00000H

; // *********************************************************************************** //
; //
; //	Filename		:   DS18B20.c
; //	Title        	:   DS18B20 test file
; //	Author			:   MO YAN
; //	Created Date	:   2008.8.2
; //	Revisited Date	:   2008.8.2
; //	Description		:   Provide Function to get the temprature from the DS18B20 at any three pins
; //	Version         :   1.2
; //
; //  Copyright (c) 2008, All rights reserved.
; // *********************************************************************************** //
; #include<regx51.h>
; sbit rs=P3^4;	//LCD pins
; sbit rw=P3^5;
; sbit en=P3^6;
; sbit DQ=P3^7;   //DS18B20 pin
; 
; unsigned char L_18B20,H_18B20;
; unsigned int fg=0,zhengshu,xiaoshu_a;
; char code number[]="0123456789";
; 
; /*--------LCD--------*/
; void delay100us(void)

	RSEG  ?PR?delay100us?DS18B20
delay100us:
			; SOURCE LINE # 24
; {
			; SOURCE LINE # 25
;    #pragma asm
;             MOV      R5,#3           
	  MOV      R5,#3           
; LOOP1:      MOV      R6,#7           
	  LOOP1:      MOV      R6,#7           
; LOOP2:      NOP                        
	  LOOP2:      NOP                        
;        NOP                         
	  NOP                         
;        DJNZ    R6,LOOP2              
	  DJNZ    R6,LOOP2              
;             DJNZ      R5,LOOP1 
	  DJNZ      R5,LOOP1 
;    #pragma endasm
; } 
			; SOURCE LINE # 34
	RET  	
; END OF delay100us

; 
; void write_command(unsigned command)

	RSEG  ?PR?_write_command?DS18B20
_write_command:
			; SOURCE LINE # 36
;---- Variable 'command?140' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 37
;    rw=0;
			; SOURCE LINE # 38
	CLR  	rw
;    rs=0;
			; SOURCE LINE # 39
	CLR  	rs
;    en=1;
			; SOURCE LINE # 40
	SETB 	en
;    P2=command;
			; SOURCE LINE # 41
	MOV  	P2,R7
;    delay100us();
			; SOURCE LINE # 42
	LCALL	delay100us
;    en=0;
			; SOURCE LINE # 43
	CLR  	en
;    rw=1;
			; SOURCE LINE # 44
	SETB 	rw
; }
			; SOURCE LINE # 45
	RET  	
; END OF _write_command

; 
; void write_data(unsigned lcddata)

	RSEG  ?PR?_write_data?DS18B20
L?0030:
	USING	0
	MOV  	A,R7
	ORL  	A,#030H
	MOV  	R7,A
_write_data:
			; SOURCE LINE # 47
;---- Variable 'lcddata?241' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 48
;    rw=0;
			; SOURCE LINE # 49
	CLR  	rw
;    rs=1;
			; SOURCE LINE # 50
	SETB 	rs
;    en=1;
			; SOURCE LINE # 51
	SETB 	en
;    P2=lcddata;
			; SOURCE LINE # 52
	MOV  	P2,R7
;    delay100us();
			; SOURCE LINE # 53
	LCALL	delay100us
;    en=0;
			; SOURCE LINE # 54
	CLR  	en
;    rw=1;
			; SOURCE LINE # 55
	SETB 	rw
; }
			; SOURCE LINE # 56
	RET  	
; END OF _write_data

; 
; void display_string(unsigned x,unsigned y,char*p)

	RSEG  ?PR?_display_string?DS18B20
_display_string:
	USING	0
			; SOURCE LINE # 58
;---- Variable 'x?342' assigned to Register 'R6/R7' ----
;---- Variable 'p?344' assigned to Register 'R1/R2/R3' ----
;---- Variable 'y?343' assigned to Register 'R4/R5' ----
; {
			; SOURCE LINE # 59
;    if(x==1)
			; SOURCE LINE # 60
	MOV  	A,R7
	XRL  	A,#01H
	ORL  	A,R6
	JNZ  	?C0004
;       write_command(128+y);
			; SOURCE LINE # 61
	MOV  	A,R5
	ADD  	A,#080H
	SJMP 	?C0028
?C0004:
;    else
;       write_command(192+y);
			; SOURCE LINE # 63
	MOV  	A,R5
	ADD  	A,#0C0H
?C0028:
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R4
	MOV  	R6,A
	LCALL	_write_command
?C0006:
;    while(*p)
			; SOURCE LINE # 64
	LCALL	?C?CLDPTR
	MOV  	R7,A
	JZ   	?C0008
;    {
			; SOURCE LINE # 65
;       write_data(*p);
			; SOURCE LINE # 66
	RLC  	A
	SUBB 	A,ACC
	MOV  	R6,A
	LCALL	_write_data
; 	  p++;
			; SOURCE LINE # 67
	MOV  	A,#01H
	ADD  	A,R1
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
; 	}
			; SOURCE LINE # 68
	SJMP 	?C0006
; }
			; SOURCE LINE # 69
?C0008:
	RET  	
; END OF _display_string

; 
; /*void display_num(unsigned x,unsigned y,unsigned i)
; {
;    if(x==1)
;       write_command(128+y);
;    else
;       write_command(192+y);
;    write_data(number[i]);
; } */
;   
; /*------DS18B20------*/
; 
; 
; void delay_18B20(unsigned int i)

	RSEG  ?PR?_delay_18B20?DS18B20
L?0029:
	USING	0
	LCALL	_WriteOneChar
	MOV  	R7,#064H
	MOV  	R6,#00H
_delay_18B20:
	USING	0
			; SOURCE LINE # 83
;---- Variable 'i?445' assigned to Register 'R6/R7' ----
; {

⌨️ 快捷键说明

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