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

📄 wsd.src

📁 湿度采集模块
💻 SRC
📖 第 1 页 / 共 3 页
字号:
; .\wsd.SRC generated from: wsd.c
; COMPILER INVOKED BY:
;        C:\KEIL\C51\BIN\C51.EXE wsd.c BROWSE DEBUG OBJECTEXTEND SRC(.\wsd.SRC)

$NOMOD51

NAME	WSD

K4	BIT	090H.3
ACC7	BIT	0E0H.7
P0	DATA	080H
SRCLK	BIT	0A0H.7
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
T2	BIT	090H.0
LED1	BIT	080H.0
LED2	BIT	080H.1
LED3	BIT	080H.2
LED4	BIT	080H.3
LED5	BIT	080H.4
LED6	BIT	080H.5
LED7	BIT	080H.6
LED8	BIT	080H.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
P3_2	BIT	0B0H.2
P2_3	BIT	0A0H.3
P1_4	BIT	090H.4
P0_5	BIT	080H.5
EXF2	BIT	0C8H.6
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
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
ds1820	BIT	0A0H.0
T2EX	BIT	090H.1
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
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
CP_RL2	BIT	0C8H.0
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.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
TH2	DATA	0CDH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
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
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
RCLK1	BIT	0A0H.6
DPL	DATA	082H
EXEN2	BIT	0C8H.3
REN	BIT	098H.4
T2MOD	DATA	0C9H
T2CON	DATA	0C8H
SER	BIT	0A0H.5
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
ACC0	BIT	0E0H.0
ACC1	BIT	0E0H.1
ACC2	BIT	0E0H.2
ACC3	BIT	0E0H.3
PSW	DATA	0D0H
K1	BIT	090H.0
ACC4	BIT	0E0H.4
K2	BIT	090H.1
ACC5	BIT	0E0H.5
K3	BIT	090H.2
ACC6	BIT	0E0H.6
?PR?_delay1?WSD      SEGMENT CODE 
?PR?_d595?WSD        SEGMENT CODE 
?PR?cjtemp?WSD       SEGMENT CODE 
?DT?cjtemp?WSD       SEGMENT DATA OVERLAYABLE 
?PR?wdcl?WSD         SEGMENT CODE 
?PR?RDSDZ?WSD        SEGMENT CODE 
?PR?AJ?WSD           SEGMENT CODE 
?DT?AJ?WSD           SEGMENT DATA OVERLAYABLE 
?PR?_delay?WSD       SEGMENT CODE 
?PR?Show0?WSD        SEGMENT CODE 
?PR?Show1?WSD        SEGMENT CODE 
?PR?time0_int?WSD    SEGMENT CODE 
?DT?time0_int?WSD    SEGMENT DATA OVERLAYABLE 
?PR?time1_int?WSD    SEGMENT CODE 
?PR?time2_int?WSD    SEGMENT CODE 
?PR?Send_out?WSD     SEGMENT CODE 
?PR?main?WSD         SEGMENT CODE 
?C_INITSEG           SEGMENT CODE 
?CO?WSD              SEGMENT CODE 
?DT?WSD              SEGMENT DATA 
?BA?WSD              SEGMENT DATA BITADDRESSABLE 
	EXTRN	CODE (_d25045)
	EXTRN	CODE (?C?IMUL)
	EXTRN	CODE (?C?UIDIV)
	EXTRN	CODE (?C_STARTUP)
	PUBLIC	TAB
	PUBLIC	plz
	PUBLIC	wdz
	PUBLIC	msn
	PUBLIC	x3
	PUBLIC	x2
	PUBLIC	x1
	PUBLIC	x0
	PUBLIC	x
	PUBLIC	xs1
	PUBLIC	SDTAB
	PUBLIC	lcd1
	PUBLIC	main
	PUBLIC	Send_out
	PUBLIC	time2_int
	PUBLIC	time1_int
	PUBLIC	time0_int
	PUBLIC	Show1
	PUBLIC	Show0
	PUBLIC	_delay
	PUBLIC	AJ
	PUBLIC	RDSDZ
	PUBLIC	wdcl
	PUBLIC	cjtemp
	PUBLIC	_d595
	PUBLIC	_delay1

	RSEG  ?DT?cjtemp?WSD
?cjtemp?BYTE:
          z?244:   DS   2

	RSEG  ?DT?AJ?WSD
?AJ?BYTE:
          a?548:   DS   1
          b?549:   DS   1
          c?550:   DS   1

	RSEG  ?DT?time0_int?WSD
?time0_int?BYTE:
          a?954:   DS   2

	RSEG  ?DT?WSD
            xs1:   DS   8
            msn:   DS   1
            wdz:   DS   2
            plz:   DS   2
            TAB:   DS   10

	RSEG  ?BA?WSD
              x:   DS   1
x0	EQU	(x+0).7
x1	EQU	(x+0).6
x2	EQU	(x+0).5
x3	EQU	(x+0).4

	RSEG  ?CO?WSD
lcd1:
	DB	014H
	DB	0B7H
	DB	02CH
	DB	025H
	DB	087H
	DB	045H
	DB	044H
	DB	037H
	DB	004H
	DB	005H
	DB	07FH
	DB	0EFH
	DB	0FDH
	DB	0C4H
	DB	0FFH
	DB  000H,000H


SDTAB:
	DW	01C75H
	DW	01C6CH
	DW	01C60H
	DW	01C54H
	DW	01C48H
	DW	01C3CH
	DW	01C30H
	DW	01C24H
	DW	01C18H
	DW	01C0CH
	DW	01C00H
	DW	01BF4H
	DW	01BE8H
	DW	01BDCH
	DW	01BD0H
	DW	01BC4H
	DW	01BB8H
	DW	01BACH
	DW	01BA0H
	DW	01B94H
	DW	01B88H
	DW	01B7CH
	DW	01B70H
	DW	01B64H
	DW	01B58H
	DW	01B4CH
	DW	01B40H
	DW	01B34H
	DW	01B28H
	DW	01B1CH
	DW	01B10H
	DW	01B04H
	DW	01AF8H
	DW	01AECH
	DW	01AE0H
	DW	01AD4H
	DW	01AC8H
	DW	01ABCH
	DW	01AB0H
	DW	01AA4H
	DW	01A98H
	DW	01A8CH
	DW	01A80H
	DW	01A74H
	DW	01A68H
	DW	01A5CH
	DW	01A50H
	DW	01A44H
	DW	01A38H
	DW	01A2CH
	DW	01A20H
	DW	01A13H
	DW	01A08H
	DW	019FCH
	DW	019F0H
	DW	019E4H
	DW	019D8H
	DW	019CCH
	DW	019C0H
	DW	019B4H
	DW	019A8H
	DW	0199CH
	DW	01990H
	DW	01984H
	DW	01978H
	DW	0196CH
	DW	01960H
	DW	01954H
	DW	01948H
	DW	0193CH
	DW	01930H
	DW	01924H
	DW	01918H
	DW	0190CH
	DW	01900H
	DW	018F4H
	DW	018E8H
	DW	018DCH
	DW	018D0H
	DW	018C4H
	DW	018B8H
	DW	018ACH
	DW	018A0H
	DW	01894H
	DW	01888H
	DW	0187CH
	DW	01870H
	DW	01864H
	DW	01858H
	DW	0184CH
	DW	017C8H
	DW	017BCH
	DW	017B0H
	DW	017A4H
	DW	01798H
	DW	0178CH
	DW	01780H
	DW	01774H
	DW	01768H
	DW	0175CH
	DB  000H,000H


tab1?1255:
	DB	030H
	DB	031H
	DB	032H
	DB	033H
	DB	034H
	DB	035H
	DB	036H
	DB	037H
	DB	038H
	DB	039H


	RSEG  ?C_INITSEG
	DB	001H
	DB	msn
	DB	032H

; /*-----------------------------------------
; 编者:吴威  04.09.16
; -----------------------------------------*/
; #include <REGX52.H>
; #define  uchar unsigned char
; #define  fchar signed char
; #define  uint  unsigned int
; /*--------------------------------*/
; sbit K1=P1^0;               
; sbit K2=P1^1;               
; sbit K3=P1^2;               
; sbit K4=P1^3;     
; 
; sbit SER=P2^5;           //14,8位串行输入
; sbit RCLK1=P2^6;           //12琐存
; sbit SRCLK=P2^7;           //11时钟   
; 
; sbit LED1=P0^0;               
; sbit LED2=P0^1;               
; sbit LED3=P0^2;               
; sbit LED4=P0^3;     
; sbit LED5=P0^4;               
; sbit LED6=P0^5;               
; sbit LED7=P0^6;               
; sbit LED8=P0^7;  
; sbit ds1820=P2^0;
; //-----------------------------
; uchar bdata x;
; sbit x0     =x^7;
; sbit x1     =x^6;
; sbit x2     =x^5;
; sbit x3     =x^4;
; //-----------------------------
; uchar data TAB[10],xs1[8],msn=50;
; uint plz,wdz;
; //-----------------------------
; extern  void d25045(uchar x);
; //-----------------------------
; uchar code lcd1[17]={0x14,0xB7,0x2C,0x25,0x87,
;                      0x45,0x44,0x37,0x04,0x05,
; 					 0x7F,0xEF,0xFD,0xc4,0xFF};
; 					//显示0--F 
; uint code SDTAB[101]=
;        {
;     	 7285,7276,7264,7252,7240,7228,7216,7204,7192,7180,
; 		 7168,7156,7144,7132,7120,7108,7096,7084,7072,7060,
; 		 7048,7036,7024,7012,7000,6988,6976,6964,6952,6940,
; 		 6928,6916,6904,6892,6880,6868,6856,6844,6832,6820,
; 		 6808,6796,6784,6772,6760,6748,6736,6724,6712,6700,
; 		 6688,6675,6664,6652,6640,6628,6616,6604,6592,6580,
; 		 6568,6556,6544,6532,6520,6508,6496,6484,6472,6460,
; 		 6448,6436,6424,6412,6400,6388,6376,6364,6352,6340,
; 		 6328,6316,6304,6292,6280,6268,6256,6244,6232,6220,
; 		 6088,6076,6064,6052,6040,6028,6016,6004,5992,5980,
; 		};
; //-----------------------------
; void delay1(uint ms)

	RSEG  ?PR?_delay1?WSD
L?0101:
	USING	0
	SETB 	x0
L?0102:
	MOV  	R7,#0C8H
	MOV  	R6,#00H
_delay1:
	USING	0
			; SOURCE LINE # 57
;---- Variable 'ms?040' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 58
; uint i;
; for(i=0;i<ms;i++);            //Feed the dog
			; SOURCE LINE # 60
;---- Variable 'i?041' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0001:
	CLR  	C
	MOV  	A,R5
	SUBB 	A,R7
	MOV  	A,R4
	SUBB 	A,R6
	JNC  	?C0004
	INC  	R5
	CJNE 	R5,#00H,?C0097
	INC  	R4
?C0097:
	SJMP 	?C0001
; }
			; SOURCE LINE # 61
?C0004:
	RET  	
; END OF _delay1

; //****************************/
; void d595(uchar temp)

	RSEG  ?PR?_d595?WSD
_d595:
	USING	0
			; SOURCE LINE # 63
;---- Variable 'temp?142' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 64
; uchar j;
; for (j=0;j<8;j++)
			; SOURCE LINE # 66
;---- Variable 'j?143' assigned to Register 'R6' ----
	CLR  	A
	MOV  	R6,A
?C0005:
;    {
			; SOURCE LINE # 67
;      temp=temp>>1; 
			; SOURCE LINE # 68
	MOV  	A,R7
	CLR  	C
	RRC  	A
	MOV  	R7,A
; 	 SER=CY; 
			; SOURCE LINE # 69
	MOV  	SER,C
; 	 SRCLK=1; SRCLK=0;
			; SOURCE LINE # 70
	SETB 	SRCLK
	CLR  	SRCLK
;    }
			; SOURCE LINE # 71
	INC  	R6
	CJNE 	R6,#08H,?C0005
?C0006:
;  RCLK1=0; RCLK1=1;
			; SOURCE LINE # 72
	CLR  	RCLK1
	SETB 	RCLK1
; }
			; SOURCE LINE # 73
	RET  	
; END OF _d595

; /*-------------------------------*/
; uint cjtemp(void)

	RSEG  ?PR?cjtemp?WSD
cjtemp:
	USING	0
			; SOURCE LINE # 75
; {uint z; 
			; SOURCE LINE # 76
; #pragma asm
; GET_TEMP:
	  GET_TEMP:
;         //CLR EA                ;使用ds1820一定要禁止任何中断产生
	  
;         ACALL INT            ;调用初使化子程序
	  ACALL INT            ;调用初使化子程序
;         MOV A,#0CCH
	  MOV A,#0CCH
;         ACALL WRITE     ;送入跳过ROM命令
	  ACALL WRITE     ;送入跳过ROM命令
;         MOV A, #44H
	  MOV A, #44H
;         ACALL WRITE     ;送入温度转换命令
	  ACALL WRITE     ;送入温度转换命令
;         ACALL INT           ;温度转换完全,再次初使化ds1820
	  ACALL INT           ;温度转换完全,再次初使化ds1820
;         MOV A,#0CCH
	  MOV A,#0CCH
;         ACALL WRITE     ;送入跳过ROM命令
	  ACALL WRITE     ;送入跳过ROM命令
;         MOV A,#0BEH
	  MOV A,#0BEH
;         ACALL WRITE     ;送入读温度暂存器命令
	  ACALL WRITE     ;送入读温度暂存器命令
;         ACALL READ
	  ACALL READ
;         mov r7,a             ;读出温度值低字节存入R7
	  mov r7,a             ;读出温度值低字节存入R7
;         ACALL READ
	  ACALL READ
;         ;lr ACC.7
	  ;lr ACC.7
;         mov r6,a             ;读出谩度值高字节存入R6
	  mov r6,a             ;读出谩度值高字节存入R6
;         SETB EA
	  SETB EA
;      RET
	  RET
;   INT:   
	  INT:   
;         CLR EA                  ;初始化ds1820子程序
	  CLR EA                  ;初始化ds1820子程序
;      L0:CLR ds1820           ;ds1820总线为低复位电平87460452
	  L0:CLR ds1820           ;ds1820总线为低复位电平87460452
;         MOV R2,#200
	  MOV R2,#200
;      L1:CLR ds1820
	  L1:CLR ds1820
;         DJNZ R2,L1           ;总线复位电平保持400us
	  DJNZ R2,L1           ;总线复位电平保持400us
;         SETB ds1820             ;释放ds1820总线
	  SETB ds1820             ;释放ds1820总线
;         MOV R2,#30
	  MOV R2,#30
;      L4:DJNZ R2,L4         ;释放ds1820总线保持60us
	  L4:DJNZ R2,L4         ;释放ds1820总线保持60us
;         CLR C                    ;清存在信号(存在C=0,不存在C=1)
	  CLR C                    ;清存在信号(存在C=0,不存在C=1)
;         ORL C,ds1820
	  ORL C,ds1820
;         ;JC L0
	  ;JC L0
;         MOV R6,#80
	  MOV R6,#80
;      L5:ORL C,ds1820
	  L5:ORL C,ds1820
;         JC L3
	  JC L3
;         DJNZ R6,L5
	  DJNZ R6,L5
;         ;AJMP L0
	  ;AJMP L0
;      L3:MOV R2,#240
	  L3:MOV R2,#240
;      L2:DJNZ R2,L2    
	  L2:DJNZ R2,L2    
;         SETB EA
	  SETB EA
;      RET
	  RET
; WRITE:                         ;向ds1820写操作命令子程序
	  WRITE:                         ;向ds1820写操作命令子程序
;         CLR EA
	  CLR EA
;         MOV R3,#8           ;写入ds1820的bit数,一个字节8个bit
	  MOV R3,#8           ;写入ds1820的bit数,一个字节8个bit
;     WR1:SETB ds1820
	  WR1:SETB ds1820
;         MOV R4,#8
	  MOV R4,#8
;         RRC A                     ;把一个字节data(A)分成8个bit环移给 C
	  RRC A                     ;把一个字节data(A)分成8个bit环移给 C
;         CLR ds1820                 ;开始写入ds1820总线要处于复位(低)状态
	  CLR ds1820                 ;开始写入ds1820总线要处于复位(低)状态
;     WR2:DJNZ R4,WR2     ;ds1820总线复位保持16us
	  WR2:DJNZ R4,WR2     ;ds1820总线复位保持16us
;         MOV ds1820,C               ;写入一个bit
	  MOV ds1820,C               ;写入一个bit
;         MOV R4,#20
	  MOV R4,#20
;     WR3:DJNZ R4,WR3     ;等待40us
	  WR3:DJNZ R4,WR3     ;等待40us
;         DJNZ R3,WR1          ;写入下一个bit 
	  DJNZ R3,WR1          ;写入下一个bit 
;         SETB ds1820                ;重新释放ds1820总线
	  SETB ds1820                ;重新释放ds1820总线
; 		SETB EA
	  SETB EA
;      RET
	  RET
; READ:
	  READ:
;         CLR EA
	  CLR EA
;         MOV R6,#8            ;连续读8个bit
	  MOV R6,#8            ;连续读8个bit
;     RE1:CLR ds1820           ;读前总线保持为低
	  RE1:CLR ds1820           ;读前总线保持为低
;         MOV R4,#4
	  MOV R4,#4
;         NOP
	  NOP
;         SETB ds1820             ;开始读,总线释放
	  SETB ds1820             ;开始读,总线释放
;     RE2:DJNZ R4,RE2     ;持续8us
	  RE2:DJNZ R4,RE2     ;持续8us
;         MOV C,ds1820           ;从ds1820总线读得一个bit
	  MOV C,ds1820           ;从ds1820总线读得一个bit
;         RRC A                    ;把读得的位值环移给 A
	  RRC A                    ;把读得的位值环移给 A
;         MOV R5,#30
	  MOV R5,#30
;     RE3:DJNZ R5,RE3     ;持续60us
	  RE3:DJNZ R5,RE3     ;持续60us
;         DJNZ R6,RE1         ;读下一个bit
	  DJNZ R6,RE1         ;读下一个bit
;         SETB ds1820              ;重新释放ds1820总线
	  SETB ds1820              ;重新释放ds1820总线
; 		SETB EA
	  SETB EA
;      RET          
	  RET          
; #pragma endasm
; 
; return z;
			; SOURCE LINE # 151
	MOV  	R6,z?244
	MOV  	R7,z?244+01H
; }
			; SOURCE LINE # 152
?C0009:
	RET  	
; END OF cjtemp

; //--------------------------------
; uint wdcl(void)

	RSEG  ?PR?wdcl?WSD
wdcl:
	USING	0
			; SOURCE LINE # 154
; {uint wdz;
			; SOURCE LINE # 155
; wdz=cjtemp();
			; SOURCE LINE # 156
	LCALL	cjtemp
;---- Variable 'wdz?345' assigned to Register 'R2/R3' ----
	MOV  	R3,AR7
	MOV  	R2,AR6
; if((wdz>>15)==1)
			; SOURCE LINE # 157
	MOV  	A,R2

⌨️ 快捷键说明

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