📄 wsd.src
字号:
; .\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 + -