This commit is contained in:
zibright 2025-04-22 17:34:15 +08:00
parent 7f49742420
commit b59e74ddd2
31 changed files with 1207 additions and 404 deletions

View File

@ -5,9 +5,9 @@ void Led_Disp(unsigned char addr,enable)
static unsigned char temp = 0x00,temp_old = 0xff;
if(enable)
temp |= 0x01 << addr;
temp = temp | (0x01 << addr);
else
temp &= ~(0x01 << addr);
temp = temp & (~(0x01 << addr));
if(temp != temp_old)
{
P2 = P2 & 0x1f | 0x80;
@ -18,3 +18,21 @@ void Led_Disp(unsigned char addr,enable)
}
}
void Relay(bit enable)
{
static unsigned char temp = 0xff;
static unsigned char temp_old = 0x00;
if(enable)
temp |= 0x10;
else
temp &= ~0x10;
if(temp != temp_old)
{
P2 = P2 & 0x1f | 0xA0;
P0 = ~temp;
P2 &= 0x1f;
temp_old = temp;
}
}

View File

@ -1,3 +1,4 @@
#include <STC15F2K60S2.H>
void Led_Disp(unsigned char addr,enable);
void Relay(bit enable);

53
2025/Driver/ds1302.c Normal file
View File

@ -0,0 +1,53 @@
/* # DS1302代码片段说明
1.
2.
*/
//
void Write_Ds1302(unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++)
{
SCK = 0;
SDA = temp&0x01;
temp>>=1;
SCK=1;
}
}
//
void Write_Ds1302_Byte( unsigned char address,unsigned char dat )
{
RST=0; _nop_();
SCK=0; _nop_();
RST=1; _nop_();
Write_Ds1302(address);
Write_Ds1302(dat);
RST=0;
}
//
unsigned char Read_Ds1302_Byte ( unsigned char address )
{
unsigned char i,temp=0x00;
RST=0; _nop_();
SCK=0; _nop_();
RST=1; _nop_();
Write_Ds1302(address);
for (i=0;i<8;i++)
{
SCK=0;
temp>>=1;
if(SDA)
temp|=0x80;
SCK=1;
}
RST=0; _nop_();
SCK=0; _nop_();
SCK=1; _nop_();
SDA=0; _nop_();
SDA=1; _nop_();
return (temp);
}

0
2025/Driver/ds1302.h Normal file
View File

108
2025/Driver/iic.c Normal file
View File

@ -0,0 +1,108 @@
/* # I2C代码片段说明
1.
2.
*/
#define DELAY_TIME 10
//
static void I2C_Delay(unsigned char n)
{
do
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
while(n--);
}
//
void I2CStart(void)
{
sda = 1;
scl = 1;
I2C_Delay(DELAY_TIME);
sda = 0;
I2C_Delay(DELAY_TIME);
scl = 0;
}
//
void I2CStop(void)
{
sda = 0;
scl = 1;
I2C_Delay(DELAY_TIME);
sda = 1;
I2C_Delay(DELAY_TIME);
}
//
void I2CSendByte(unsigned char byt)
{
unsigned char i;
for(i=0; i<8; i++){
scl = 0;
I2C_Delay(DELAY_TIME);
if(byt & 0x80){
sda = 1;
}
else{
sda = 0;
}
I2C_Delay(DELAY_TIME);
scl = 1;
byt <<= 1;
I2C_Delay(DELAY_TIME);
}
scl = 0;
}
//
unsigned char I2CReceiveByte(void)
{
unsigned char da;
unsigned char i;
for(i=0;i<8;i++){
scl = 1;
I2C_Delay(DELAY_TIME);
da <<= 1;
if(sda)
da |= 0x01;
scl = 0;
I2C_Delay(DELAY_TIME);
}
return da;
}
//
unsigned char I2CWaitAck(void)
{
unsigned char ackbit;
scl = 1;
I2C_Delay(DELAY_TIME);
ackbit = sda;
scl = 0;
I2C_Delay(DELAY_TIME);
return ackbit;
}
//
void I2CSendAck(unsigned char ackbit)
{
scl = 0;
sda = ackbit;
I2C_Delay(DELAY_TIME);
scl = 1;
I2C_Delay(DELAY_TIME);
scl = 0;
sda = 1;
I2C_Delay(DELAY_TIME);
}

0
2025/Driver/iic.h Normal file
View File

103
2025/Driver/onewire.c Normal file
View File

@ -0,0 +1,103 @@
/* # 单总线代码片段说明
1.
2.
*/
#include <onewire.h>
sbit DQ = P1^4;
//
void Delay_OneWire(unsigned int t)
{
unsigned char i;
while(t--){
for(i=0;i<12;i++);
}
}
//
void Write_DS18B20(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
DQ = 0;
DQ = dat&0x01;
Delay_OneWire(5);
DQ = 1;
dat >>= 1;
}
Delay_OneWire(5);
}
//
unsigned char Read_DS18B20(void)
{
unsigned char i;
unsigned char dat;
for(i=0;i<8;i++)
{
DQ = 0;
dat >>= 1;
DQ = 1;
if(DQ)
{
dat |= 0x80;
}
Delay_OneWire(5);
}
return dat;
}
//
bit init_ds18b20(void)
{
bit initflag = 0;
DQ = 1;
Delay_OneWire(12);
DQ = 0;
Delay_OneWire(80);
DQ = 1;
Delay_OneWire(10);
initflag = DQ;
Delay_OneWire(5);
return initflag;
}
float Tempr_Read()
{
unsigned char low;
unsigned char high;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
Delay_OneWire(200);
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
low = Read_DS18B20();
high = Read_DS18B20();
return ((high << 8) | low) /16.0;
}

7
2025/Driver/onewire.h Normal file
View File

@ -0,0 +1,7 @@
#include <STC15F2K60S2.H>
void Delay_OneWire(unsigned int t);
void Write_DS18B20(unsigned char dat);
unsigned char Read_DS18B20(void);
bit init_ds18b20(void);
float Tempr_Read();

File diff suppressed because one or more lines are too long

View File

@ -228,7 +228,7 @@
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Driver\Key.c</PathWithFileName>
@ -236,6 +236,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Driver\onewire.c</PathWithFileName>
<FilenameWithoutPath>onewire.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
</ProjectOpt>

View File

@ -406,6 +406,11 @@
<FileType>1</FileType>
<FilePath>..\Driver\Key.c</FilePath>
</File>
<File>
<FileName>onewire.c</FileName>
<FileType>1</FileType>
<FilePath>..\Driver\onewire.c</FilePath>
</File>
</Files>
</Group>
</Groups>

View File

@ -1,12 +1,12 @@
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 1
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 1
BL51 BANKED LINKER/LOCATER V6.22.4.0, INVOKED BY:
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Init.obj, .\Objects\Led.obj, .\Obj
>> ects\Seg.obj, .\Objects\Key.obj TO .\Objects\2025 PRINT (.\Listings\2025.m51) RAMSIZE (256)
>> ects\Seg.obj, .\Objects\Key.obj, .\Objects\onewire.obj TO .\Objects\2025 PRINT (.\Listings\2025.m51) RAMSIZE (256)
MEMORY MODEL: SMALL
MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC
INPUT MODULES INCLUDED:
@ -15,7 +15,15 @@ INPUT MODULES INCLUDED:
.\Objects\Led.obj (LED)
.\Objects\Seg.obj (SEG)
.\Objects\Key.obj (KEY)
.\Objects\onewire.obj (ONEWIRE)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG)
C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT)
@ -27,59 +35,91 @@ LINK MAP OF MODULE: .\Objects\2025 (MAIN)
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
DATA 0008H 0021H UNIT ?DT?MAIN
DATA 0029H 0019H UNIT ?DT?SEG
DATA 0042H 0002H UNIT ?DT?LED
IDATA 0044H 0001H UNIT ?STACK
DATA 0008H 0004H UNIT ?DT?LED
000CH 0014H *** GAP ***
BIT 0020H.0 0000H.1 UNIT ?BI?RELAY?LED
BIT 0020H.1 0000H.1 UNIT _BIT_GROUP_
0020H.2 0000H.6 *** GAP ***
DATA 0021H 0026H UNIT ?DT?MAIN
DATA 0047H 0019H UNIT ?DT?SEG
IDATA 0060H 0001H UNIT ?STACK
* * * * * * * C O D E M E M O R Y * * * * * * *
CODE 0000H 0003H ABSOLUTE
CODE 0003H 0001H UNIT ?PR?LED_PROC?MAIN
0004H 0007H *** GAP ***
0003H 0008H *** GAP ***
CODE 000BH 0003H ABSOLUTE
CODE 000EH 008CH UNIT ?C_C51STARTUP
CODE 009AH 0088H UNIT ?PR?TIMER0_SERVER?MAIN
CODE 0122H 007AH UNIT ?PR?KEY_READ?KEY
CODE 019CH 0042H UNIT ?C_INITSEG
CODE 01DEH 0042H UNIT ?PR?_SEG_DISP?SEG
CODE 0220H 003BH UNIT ?PR?_LED_DISP?LED
CODE 025BH 0025H UNIT ?PR?KEY_PROC?MAIN
CODE 0280H 0022H UNIT ?PR?SEG_PROC?MAIN
CODE 02A2H 001DH UNIT ?PR?SYSTEM_INIT?INIT
CODE 02BFH 0015H UNIT ?PR?TIMER0_INIT?MAIN
CODE 02D4H 0011H UNIT ?PR?MAIN?MAIN
CODE 000EH 02C8H UNIT ?C?LIB_CODE
CODE 02D6H 008CH UNIT ?C_C51STARTUP
CODE 0362H 0088H UNIT ?PR?TIMER0_SERVER?MAIN
CODE 03EAH 007AH UNIT ?PR?KEY_READ?KEY
CODE 0464H 0054H UNIT ?PR?SEG_PROC?MAIN
CODE 04B8H 004CH UNIT ?C_INITSEG
CODE 0504H 0042H UNIT ?PR?_SEG_DISP?SEG
CODE 0546H 003BH UNIT ?PR?_LED_DISP?LED
CODE 0581H 003BH UNIT ?PR?TEMPR_READ?ONEWIRE
CODE 05BCH 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE
CODE 05E3H 0025H UNIT ?PR?KEY_PROC?MAIN
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 2
CODE 0608H 0025H UNIT ?PR?RELAY?LED
CODE 062DH 001EH UNIT ?PR?_WRITE_DS18B20?ONEWIRE
CODE 064BH 001DH UNIT ?PR?SYSTEM_INIT?INIT
CODE 0668H 001AH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE
CODE 0682H 001AH UNIT ?PR?READ_DS18B20?ONEWIRE
CODE 069CH 0015H UNIT ?PR?TIMER0_INIT?MAIN
CODE 06B1H 0011H UNIT ?PR?MAIN?MAIN
CODE 06C2H 000CH UNIT ?PR?LED_PROC?MAIN
OVERLAY MAP OF MODULE: .\Objects\2025 (MAIN)
SEGMENT
+--> CALLED SEGMENT
---------------------
?PR?TIMER0_SERVER?MAIN
SEGMENT BIT_GROUP
+--> CALLED SEGMENT START LENGTH
--------------------------------------------------
?PR?TIMER0_SERVER?MAIN ----- -----
+--> ?PR?_SEG_DISP?SEG
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 2
+--> ?PR?_LED_DISP?LED
*** NEW ROOT ***************************************************
?C_C51STARTUP
?C_C51STARTUP ----- -----
+--> ?PR?MAIN?MAIN
+--> ?C_INITSEG
?PR?MAIN?MAIN
?PR?MAIN?MAIN ----- -----
+--> ?PR?SYSTEM_INIT?INIT
+--> ?PR?TIMER0_INIT?MAIN
+--> ?PR?KEY_PROC?MAIN
+--> ?PR?SEG_PROC?MAIN
+--> ?PR?LED_PROC?MAIN
?PR?KEY_PROC?MAIN
?PR?KEY_PROC?MAIN ----- -----
+--> ?PR?KEY_READ?KEY
?PR?SEG_PROC?MAIN ----- -----
+--> ?PR?TEMPR_READ?ONEWIRE
?PR?TEMPR_READ?ONEWIRE ----- -----
+--> ?PR?INIT_DS18B20?ONEWIRE
+--> ?PR?_WRITE_DS18B20?ONEWIRE
+--> ?PR?_DELAY_ONEWIRE?ONEWIRE
+--> ?PR?READ_DS18B20?ONEWIRE
?PR?INIT_DS18B20?ONEWIRE 0020H.1 0000H.1
+--> ?PR?_DELAY_ONEWIRE?ONEWIRE
?PR?_WRITE_DS18B20?ONEWIRE ----- -----
+--> ?PR?_DELAY_ONEWIRE?ONEWIRE
?PR?READ_DS18B20?ONEWIRE ----- -----
+--> ?PR?_DELAY_ONEWIRE?ONEWIRE
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 3
SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
@ -98,108 +138,118 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:00E8H PUBLIC P6
B:00A8H.7 PUBLIC EA
D:00F8H PUBLIC P7
C:0003H PUBLIC Led_Proc
D:0008H PUBLIC Seg_Point
C:06C2H PUBLIC Led_Proc
D:0021H PUBLIC Seg_Point
D:00A8H PUBLIC IE
C:009AH PUBLIC Timer0_Server
C:0280H PUBLIC Seg_Proc
C:0362H PUBLIC Timer0_Server
C:0464H PUBLIC Seg_Proc
D:00B8H PUBLIC IP
D:0010H PUBLIC Seg_Buf
C:025BH PUBLIC Key_Proc
D:0018H PUBLIC Seg_Slow_Down
D:001AH PUBLIC Seg_Show
D:0029H PUBLIC Seg_Buf
C:05E3H PUBLIC Key_Proc
D:0031H PUBLIC Seg_Slow_Down
D:0033H PUBLIC Seg_Show
D:00D8H PUBLIC CCON
D:001BH PUBLIC Key_Down
C:02D4H PUBLIC main
C:02BFH PUBLIC Timer0_Init
D:001CH PUBLIC Key_Old
D:001DH PUBLIC Key_Slow_Down
D:001EH PUBLIC Key_Val
D:001FH PUBLIC Seg_Pos
D:0034H PUBLIC Key_Down
C:06B1H PUBLIC main
C:069CH PUBLIC Timer0_Init
D:0035H PUBLIC Key_Old
D:0036H PUBLIC Key_Slow_Down
D:0037H PUBLIC Key_Val
D:0038H PUBLIC Seg_Pos
D:0098H PUBLIC SCON
D:0089H PUBLIC TMOD
D:0088H PUBLIC TCON
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 3
D:008EH PUBLIC AUXR
D:0039H PUBLIC Tempr_Show_10x
B:00A8H.1 PUBLIC ET0
B:0088H.5 PUBLIC TF0
D:008CH PUBLIC TH0
D:0020H PUBLIC Key_Up
D:003BH PUBLIC Key_Up
D:008AH PUBLIC TL0
B:0088H.4 PUBLIC TR0
D:0021H PUBLIC ucLed
D:003CH PUBLIC Relay_Flag
D:003DH PUBLIC Relay_Timer
D:003FH PUBLIC ucLed
D:00D0H PUBLIC PSW
------- PROC KEY_PROC
C:025BH LINE# 29
C:025BH LINE# 30
C:025BH LINE# 31
C:025FH LINE# 32
C:0262H LINE# 34
C:0267H LINE# 35
C:0270H LINE# 36
C:0276H LINE# 37
C:0279H LINE# 39
C:027DH LINE# 40
C:027FH LINE# 41
C:05E3H LINE# 32
C:05E3H LINE# 33
C:05E3H LINE# 34
C:05E7H LINE# 35
C:05EAH LINE# 37
C:05EFH LINE# 38
C:05F8H LINE# 39
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 4
C:05FEH LINE# 40
C:0601H LINE# 42
C:0605H LINE# 43
C:0607H LINE# 44
------- ENDPROC KEY_PROC
------- PROC SEG_PROC
C:0280H LINE# 43
C:0280H LINE# 44
C:0280H LINE# 45
C:0286H LINE# 46
C:028BH LINE# 48
C:0298H LINE# 49
C:02A1H LINE# 50
C:0464H LINE# 46
C:0464H LINE# 47
C:0464H LINE# 48
C:046AH LINE# 49
C:046FH LINE# 51
C:0483H LINE# 52
C:0493H LINE# 53
C:04A7H LINE# 54
C:04AAH LINE# 55
C:04B7H LINE# 56
------- ENDPROC SEG_PROC
------- PROC LED_PROC
C:0003H LINE# 52
C:0003H LINE# 53
C:0003H LINE# 55
C:06C2H LINE# 58
C:06C2H LINE# 59
C:06C2H LINE# 60
C:06C5H LINE# 61
C:06C8H LINE# 62
C:06CAH LINE# 63
C:06CDH LINE# 64
------- ENDPROC LED_PROC
------- PROC TIMER0_INIT
C:02BFH LINE# 58
C:02BFH LINE# 59
C:02BFH LINE# 60
C:02C2H LINE# 61
C:02C5H LINE# 62
C:02C8H LINE# 63
C:02CBH LINE# 64
C:02CDH LINE# 65
C:02CFH LINE# 66
C:02D1H LINE# 67
C:02D3H LINE# 68
C:069CH LINE# 67
C:069CH LINE# 68
C:069CH LINE# 69
C:069FH LINE# 70
C:06A2H LINE# 71
C:06A5H LINE# 72
C:06A8H LINE# 73
C:06AAH LINE# 74
C:06ACH LINE# 75
C:06AEH LINE# 76
C:06B0H LINE# 77
------- ENDPROC TIMER0_INIT
------- PROC TIMER0_SERVER
C:009AH LINE# 70
C:00B7H LINE# 72
C:00C1H LINE# 73
C:00D8H LINE# 74
C:00E2H LINE# 75
C:00F9H LINE# 76
C:0107H LINE# 78
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 4
C:0362H LINE# 79
C:037FH LINE# 81
C:0389H LINE# 82
C:03A0H LINE# 83
C:03AAH LINE# 85
C:03C1H LINE# 86
C:03CFH LINE# 88
------- ENDPROC TIMER0_SERVER
------- PROC MAIN
C:02D4H LINE# 80
C:02D4H LINE# 81
C:02D4H LINE# 82
C:02D7H LINE# 83
C:02DAH LINE# 84
C:02DAH LINE# 85
C:02DAH LINE# 86
C:02DDH LINE# 87
C:02E0H LINE# 88
C:02E3H LINE# 89
C:06B1H LINE# 90
C:06B1H LINE# 91
C:06B1H LINE# 92
C:06B4H LINE# 93
C:06B7H LINE# 94
C:06B7H LINE# 95
C:06B7H LINE# 96
C:06BAH LINE# 97
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 5
C:06BDH LINE# 98
C:06C0H LINE# 99
------- ENDPROC MAIN
------- ENDMOD MAIN
------- MODULE INIT
C:0000H SYMBOL _ICE_DUMMY_
C:02A2H PUBLIC System_Init
C:064BH PUBLIC System_Init
D:0080H PUBLIC P0
D:0090H PUBLIC P1
D:00A0H PUBLIC P2
@ -215,20 +265,21 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:0088H PUBLIC TCON
D:00D0H PUBLIC PSW
------- PROC SYSTEM_INIT
C:02A2H LINE# 3
C:02A2H LINE# 4
C:02A2H LINE# 5
C:02AAH LINE# 6
C:02ADH LINE# 7
C:02B0H LINE# 9
C:02B8H LINE# 10
C:02BBH LINE# 11
C:02BEH LINE# 12
C:064BH LINE# 3
C:064BH LINE# 4
C:064BH LINE# 5
C:0653H LINE# 6
C:0656H LINE# 7
C:0659H LINE# 9
C:0661H LINE# 10
C:0664H LINE# 11
C:0667H LINE# 12
------- ENDPROC SYSTEM_INIT
------- ENDMOD INIT
------- MODULE LED
C:0000H SYMBOL _ICE_DUMMY_
C:0608H PUBLIC Relay
D:0080H PUBLIC P0
D:0090H PUBLIC P1
D:00A0H PUBLIC P2
@ -237,11 +288,8 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:00C8H PUBLIC P5
D:00E8H PUBLIC P6
D:00F8H PUBLIC P7
C:0220H PUBLIC _Led_Disp
C:0546H PUBLIC _Led_Disp
D:00A8H PUBLIC IE
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 5
D:00B8H PUBLIC IP
D:00D8H PUBLIC CCON
D:0098H PUBLIC SCON
@ -251,23 +299,46 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:0007H SYMBOL addr
D:0004H SYMBOL enable
------- DO
D:0042H SYMBOL temp
D:0043H SYMBOL temp_old
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 6
D:0008H SYMBOL temp
D:0009H SYMBOL temp_old
------- ENDDO
C:0220H LINE# 3
C:0220H LINE# 4
C:0220H LINE# 7
C:0224H LINE# 8
C:0233H LINE# 10
C:0241H LINE# 11
C:0247H LINE# 12
C:0247H LINE# 13
C:024FH LINE# 14
C:0254H LINE# 15
C:0257H LINE# 17
C:025AH LINE# 18
C:025AH LINE# 20
C:0546H LINE# 3
C:0546H LINE# 4
C:0546H LINE# 7
C:054AH LINE# 8
C:0559H LINE# 10
C:0567H LINE# 11
C:056DH LINE# 12
C:056DH LINE# 13
C:0575H LINE# 14
C:057AH LINE# 15
C:057DH LINE# 17
C:0580H LINE# 18
C:0580H LINE# 20
------- ENDPROC _LED_DISP
------- PROC RELAY
B:0020H.0 SYMBOL enable
------- DO
D:000AH SYMBOL temp
D:000BH SYMBOL temp_old
------- ENDDO
C:0608H LINE# 22
C:0608H LINE# 23
C:0608H LINE# 26
C:060BH LINE# 27
C:0610H LINE# 29
C:0613H LINE# 30
C:0619H LINE# 31
C:0619H LINE# 32
C:0621H LINE# 33
C:0626H LINE# 34
C:0629H LINE# 36
C:062CH LINE# 37
C:062CH LINE# 38
------- ENDPROC RELAY
------- ENDMOD LED
------- MODULE SEG
@ -280,36 +351,36 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:00C8H PUBLIC P5
D:00E8H PUBLIC P6
D:00F8H PUBLIC P7
D:0029H PUBLIC Seg_Dula
D:003AH PUBLIC Seg_Wela
D:0047H PUBLIC Seg_Dula
D:0058H PUBLIC Seg_Wela
D:00A8H PUBLIC IE
C:01DEH PUBLIC _Seg_Disp
C:0504H PUBLIC _Seg_Disp
D:00B8H PUBLIC IP
D:00D8H PUBLIC CCON
D:0098H PUBLIC SCON
D:0088H PUBLIC TCON
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 7
D:00D0H PUBLIC PSW
------- PROC _SEG_DISP
D:0007H SYMBOL Wela
D:0004H SYMBOL Dula
D:0002H SYMBOL Point
C:01DEH LINE# 15
C:01DEH LINE# 16
C:01DEH LINE# 17
C:01E6H LINE# 18
C:01E9H LINE# 19
C:01ECH LINE# 21
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 6
C:01F4H LINE# 22
C:01FBH LINE# 23
C:01FEH LINE# 25
C:0202H LINE# 26
C:020DH LINE# 28
C:0214H LINE# 29
C:021CH LINE# 30
C:021FH LINE# 31
C:0504H LINE# 15
C:0504H LINE# 16
C:0504H LINE# 17
C:050CH LINE# 18
C:050FH LINE# 19
C:0512H LINE# 21
C:051AH LINE# 22
C:0521H LINE# 23
C:0524H LINE# 25
C:0528H LINE# 26
C:0533H LINE# 28
C:053AH LINE# 29
C:0542H LINE# 30
C:0545H LINE# 31
------- ENDPROC _SEG_DISP
------- ENDMOD SEG
@ -323,7 +394,7 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
D:00C8H PUBLIC P5
D:00E8H PUBLIC P6
D:00F8H PUBLIC P7
C:0122H PUBLIC Key_Read
C:03EAH PUBLIC Key_Read
D:00A8H PUBLIC IE
D:00B8H PUBLIC IP
D:00D8H PUBLIC CCON
@ -343,38 +414,187 @@ SYMBOL TABLE OF MODULE: .\Objects\2025 (MAIN)
------- DO
D:0007H SYMBOL temp
------- ENDDO
C:0122H LINE# 3
C:0122H LINE# 4
C:0122H LINE# 5
C:0124H LINE# 6
C:0126H LINE# 8
C:012EH LINE# 9
C:0133H LINE# 10
C:0138H LINE# 11
C:013DH LINE# 12
C:0142H LINE# 14
C:014AH LINE# 15
C:014FH LINE# 16
C:0154H LINE# 17
C:0159H LINE# 18
C:015EH LINE# 20
C:0166H LINE# 21
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 7
C:03EAH LINE# 3
C:03EAH LINE# 4
C:03EAH LINE# 5
C:03ECH LINE# 6
C:03EEH LINE# 8
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 8
C:016BH LINE# 22
C:0170H LINE# 23
C:0175H LINE# 24
C:017AH LINE# 26
C:0182H LINE# 27
C:0187H LINE# 28
C:018CH LINE# 29
C:0191H LINE# 30
C:0196H LINE# 32
C:019BH LINE# 33
C:019BH LINE# 34
C:03F6H LINE# 9
C:03FBH LINE# 10
C:0400H LINE# 11
C:0405H LINE# 12
C:040AH LINE# 14
C:0412H LINE# 15
C:0417H LINE# 16
C:041CH LINE# 17
C:0421H LINE# 18
C:0426H LINE# 20
C:042EH LINE# 21
C:0433H LINE# 22
C:0438H LINE# 23
C:043DH LINE# 24
C:0442H LINE# 26
C:044AH LINE# 27
C:044FH LINE# 28
C:0454H LINE# 29
C:0459H LINE# 30
C:045EH LINE# 32
C:0463H LINE# 33
C:0463H LINE# 34
------- ENDPROC KEY_READ
------- ENDMOD KEY
Program Size: data=69.0 xdata=0 code=734
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
------- MODULE ONEWIRE
C:0000H SYMBOL _ICE_DUMMY_
D:0080H PUBLIC P0
D:0090H PUBLIC P1
D:00A0H PUBLIC P2
D:00B0H PUBLIC P3
D:00C0H PUBLIC P4
C:0682H PUBLIC Read_DS18B20
D:00C8H PUBLIC P5
D:00E8H PUBLIC P6
D:00F8H PUBLIC P7
D:00A8H PUBLIC IE
C:066CH PUBLIC _Delay_OneWire
B:0090H.4 PUBLIC DQ
C:062DH PUBLIC _Write_DS18B20
D:00B8H PUBLIC IP
C:05BCH PUBLIC init_ds18b20
D:00D8H PUBLIC CCON
D:0098H PUBLIC SCON
D:0088H PUBLIC TCON
C:0581H PUBLIC Tempr_Read
D:00D0H PUBLIC PSW
C:0668H SYMBOL L?0020
------- PROC L?0019
------- ENDPROC L?0019
C:0668H SYMBOL L?0020
------- PROC _DELAY_ONEWIRE
D:0006H SYMBOL t
------- DO
D:0005H SYMBOL i
------- ENDDO
C:066CH LINE# 12
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 9
C:066CH LINE# 13
C:066CH LINE# 15
C:0676H LINE# 16
C:0681H LINE# 17
C:0681H LINE# 18
------- ENDPROC _DELAY_ONEWIRE
------- PROC _WRITE_DS18B20
D:0001H SYMBOL dat
------- DO
D:0003H SYMBOL i
------- ENDDO
C:062DH LINE# 21
C:062FH LINE# 22
C:062FH LINE# 24
C:0631H LINE# 25
C:0631H LINE# 26
C:0633H LINE# 27
C:0637H LINE# 28
C:063AH LINE# 29
C:063CH LINE# 30
C:0640H LINE# 31
C:0644H LINE# 32
------- ENDPROC _WRITE_DS18B20
------- PROC READ_DS18B20
------- DO
D:0003H SYMBOL i
D:0004H SYMBOL dat
------- ENDDO
C:0682H LINE# 36
C:0682H LINE# 37
C:0682H LINE# 41
C:0684H LINE# 42
C:0684H LINE# 43
C:0686H LINE# 44
C:068AH LINE# 45
C:068CH LINE# 46
C:068FH LINE# 47
C:068FH LINE# 48
C:0692H LINE# 49
C:0692H LINE# 50
C:0695H LINE# 51
C:0699H LINE# 52
C:069BH LINE# 53
------- ENDPROC READ_DS18B20
------- PROC INIT_DS18B20
------- DO
B:0020H.1 SYMBOL initflag
------- ENDDO
C:05BCH LINE# 56
C:05BCH LINE# 57
C:05BCH LINE# 58
C:05BEH LINE# 60
C:05C0H LINE# 61
C:05C7H LINE# 62
C:05C9H LINE# 63
C:05D0H LINE# 64
C:05D2H LINE# 65
BL51 BANKED LINKER/LOCATER V6.22.4.0 04/15/2025 20:33:28 PAGE 10
C:05D9H LINE# 66
C:05DDH LINE# 67
C:05E0H LINE# 69
C:05E2H LINE# 70
------- ENDPROC INIT_DS18B20
------- PROC TEMPR_READ
------- DO
D:0001H SYMBOL low
D:0007H SYMBOL high
------- ENDDO
C:0581H LINE# 72
C:0581H LINE# 73
C:0581H LINE# 77
C:0584H LINE# 78
C:0589H LINE# 79
C:058EH LINE# 80
C:0595H LINE# 82
C:0598H LINE# 83
C:059DH LINE# 84
C:05A2H LINE# 86
C:05A7H LINE# 87
C:05AAH LINE# 89
------- ENDPROC TEMPR_READ
------- ENDMOD ONEWIRE
------- MODULE ?C?FPMUL
C:000EH PUBLIC ?C?FPMUL
------- ENDMOD ?C?FPMUL
------- MODULE ?C?FPDIV
C:0117H PUBLIC ?C?FPDIV
------- ENDMOD ?C?FPDIV
------- MODULE ?C?FCAST
C:01BEH PUBLIC ?C?FCASTC
C:01B9H PUBLIC ?C?FCASTI
C:01B4H PUBLIC ?C?FCASTL
------- ENDMOD ?C?FCAST
------- MODULE ?C?CASTF
C:01F2H PUBLIC ?C?CASTF
------- ENDMOD ?C?CASTF
------- MODULE ?C?UIDIV
C:0273H PUBLIC ?C?UIDIV
------- ENDMOD ?C?UIDIV
------- MODULE ?C?LNEG
C:02C8H PUBLIC ?C?LNEG
------- ENDMOD ?C?LNEG
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?RELAY?LED
Program Size: data=76.2 xdata=0 code=1734
LINK/LOCATE RUN COMPLETE. 1 WARNING(S), 0 ERROR(S)

View File

@ -1,4 +1,4 @@
C51 COMPILER V9.60.7.0 INIT 04/13/2025 00:35:53 PAGE 1
C51 COMPILER V9.60.7.0 INIT 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE INIT

View File

@ -1,4 +1,4 @@
C51 COMPILER V9.60.7.0 KEY 04/13/2025 00:35:53 PAGE 1
C51 COMPILER V9.60.7.0 KEY 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE KEY

View File

@ -1,4 +1,4 @@
C51 COMPILER V9.60.7.0 LED 04/13/2025 00:35:53 PAGE 1
C51 COMPILER V9.60.7.0 LED 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE LED
@ -15,9 +15,9 @@ line level source
5 1 static unsigned char temp = 0x00,temp_old = 0xff;
6 1
7 1 if(enable)
8 1 temp |= 0x01 << addr;
8 1 temp = temp | (0x01 << addr);
9 1 else
10 1 temp &= ~(0x01 << addr);
10 1 temp = temp & (~(0x01 << addr));
11 1 if(temp != temp_old)
12 1 {
13 2 P2 = P2 & 0x1f | 0x80;
@ -28,16 +28,34 @@ line level source
18 2 }
19 1
20 1 }
21
22 void Relay(bit enable)
23 {
24 1 static unsigned char temp = 0xff;
25 1 static unsigned char temp_old = 0x00;
26 1 if(enable)
27 1 temp |= 0x10;
28 1 else
29 1 temp &= ~0x10;
30 1 if(temp != temp_old)
31 1 {
32 2 P2 = P2 & 0x1f | 0xA0;
33 2 P0 = ~temp;
34 2 P2 &= 0x1f;
35 2
36 2 temp_old = temp;
37 2 }
38 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 59 ----
CODE SIZE = 96 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.

View File

@ -1,4 +1,4 @@
C51 COMPILER V9.60.7.0 SEG 04/13/2025 00:35:53 PAGE 1
C51 COMPILER V9.60.7.0 SEG 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE SEG

View File

@ -1,4 +1,4 @@
C51 COMPILER V9.60.7.0 MAIN 04/13/2025 00:35:53 PAGE 1
C51 COMPILER V9.60.7.0 MAIN 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE MAIN
@ -14,113 +14,125 @@ line level source
4 #include <Seg.h>
5 #include <Led.h>
6 #include <Init.h>
7
8 /* 变量申明*/
9 unsigned char Key_Slow_Down;//按键减速变量
10 unsigned char Key_Val,Key_Old,Key_Down,Key_Up;
11 unsigned int Seg_Slow_Down;
12 unsigned char Seg_Pos;
13 unsigned char Seg_Buf[8]=
14 {
15 16,16,16,16,16,16,16,16
16 };
17 unsigned char Seg_Point[8]=
18 {
19 0,0,0,0,0,0,0,0
20 };
21 unsigned char ucLed[8]=
22 {
23 1,0,0,0,0,0,0,0
24 };
25
26 unsigned char Seg_Show;
27
28 /* 处理函数key,seg,led*/
29 void Key_Proc()
30 {
31 1 if(Key_Slow_Down) return;
32 1 Key_Slow_Down = 1;
33 1
34 1 Key_Val = Key_Read();
35 1 Key_Down = Key_Val & (Key_Old ^ Key_Val);
36 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val);
37 1 Key_Old = Key_Val;
38 1
39 1 if(Key_Down != 0)
40 1 Seg_Show = Key_Down;
41 1 }
42
43 void Seg_Proc()
44 {
45 1 if(Seg_Slow_Down) return;
46 1 Seg_Slow_Down = 1;
47 1
48 1 Seg_Buf[0] = Seg_Show /10 %10;
49 1 Seg_Buf[1] = Seg_Show %10;
50 1 }
51
52 void Led_Proc()
53 {
54 1
C51 COMPILER V9.60.7.0 MAIN 04/13/2025 00:35:53 PAGE 2
7 #include <onewire.h>
8
9 /* 变量申明*/
10 unsigned char Key_Slow_Down;//按键减速变量
11 unsigned char Key_Val,Key_Old,Key_Down,Key_Up;
12 unsigned int Seg_Slow_Down;
13 unsigned char Seg_Pos;
14 unsigned char Seg_Buf[8]=
15 {
16 16,16,16,16,16,16,16,16
17 };
18 unsigned char Seg_Point[8]=
19 {
20 0,0,0,0,0,0,0,0
21 };
22 unsigned char ucLed[8]=
23 {
24 1,0,1,0,0,0,0,0
25 };
26
27 unsigned char Seg_Show;
28 unsigned int Tempr_Show_10x = 0,Relay_Timer;
29 unsigned char Relay_Flag;
30
31 /* 处理函数key,seg,led*/
32 void Key_Proc()
33 {
34 1 if(Key_Slow_Down) return;
35 1 Key_Slow_Down = 1;
36 1
37 1 Key_Val = Key_Read();
38 1 Key_Down = Key_Val & (Key_Old ^ Key_Val);
39 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val);
40 1 Key_Old = Key_Val;
41 1
42 1 if(Key_Down != 0)
43 1 Seg_Show = Key_Down;
44 1 }
45
46 void Seg_Proc()
47 {
48 1 if(Seg_Slow_Down) return;
49 1 Seg_Slow_Down = 1;
50 1
51 1 Tempr_Show_10x = Tempr_Read() * 10;
52 1 Seg_Buf[0] = Tempr_Show_10x /100 %10;
53 1 Seg_Buf[1] = Tempr_Show_10x /10 %10;
54 1 Seg_Point[1] = 1;
C51 COMPILER V9.60.7.0 MAIN 04/15/2025 20:33:28 PAGE 2
55 1 }
56
57 /* 定时器函数(初始化、中断函数)*/
58 void Timer0_Init(void) //1毫秒@12.000MHz
55 1 Seg_Buf[2] = Tempr_Show_10x % 10;
56 1 }
57
58 void Led_Proc()
59 {
60 1 AUXR &= 0x7F; //定时器时钟12T模式
61 1 TMOD &= 0xF0; //设置定时器模式
62 1 TL0 = 0x18; //设置定时初始值
63 1 TH0 = 0xFC; //设置定时初始值
64 1 TF0 = 0; //清除TF0标志
65 1 TR0 = 1; //定时器0开始计时
66 1 ET0 = 1;
67 1 EA = 1;
68 1 }
69
70 void Timer0_Server() interrupt 1
71 {
72 1 if(++Key_Slow_Down == 10) Key_Slow_Down = 0;
73 1 if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0;
74 1 if(++Seg_Pos == 8) Seg_Pos = 0;
75 1 Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]);
76 1 Led_Disp(Seg_Pos,ucLed[Seg_Pos]);
77 1
78 1 }
79 /* 主函数*/
80 void main()
81 {
82 1 System_Init();
83 1 Timer0_Init();
84 1 while(1)
85 1 {
86 2 Key_Proc();
87 2 Seg_Proc();
88 2 Led_Proc();
89 2 }
90 1 }
91
92
93
94
95
96
97
98
99
100
60 1 ucLed[4] = 1;
61 1 ucLed[5] = 0;
62 1 ucLed[6] = 0;
63 1 ucLed[7] = 1;
64 1 }
65
66 /* 定时器函数(初始化、中断函数)*/
67 void Timer0_Init(void) //1毫秒@12.000MHz
68 {
69 1 AUXR &= 0x7F; //定时器时钟12T模式
70 1 TMOD &= 0xF0; //设置定时器模式
71 1 TL0 = 0x18; //设置定时初始值
72 1 TH0 = 0xFC; //设置定时初始值
73 1 TF0 = 0; //清除TF0标志
74 1 TR0 = 1; //定时器0开始计时
75 1 ET0 = 1;
76 1 EA = 1;
77 1 }
78
79 void Timer0_Server() interrupt 1
80 {
81 1 if(++Key_Slow_Down == 10) Key_Slow_Down = 0;
82 1 if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0;
83 1 if(++Seg_Pos == 8) Seg_Pos = 0;
84 1
85 1 Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]);
86 1 Led_Disp(Seg_Pos,ucLed[Seg_Pos]);
87 1
88 1 }
89 /* 主函数*/
90 void main()
91 {
92 1 System_Init();
93 1 Timer0_Init();
94 1 while(1)
95 1 {
96 2 Key_Proc();
97 2 Seg_Proc();
98 2 Led_Proc();
99 2 }
100 1 }
101
102
103
104
105
106
107
108
109
110
111
112
113
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
C51 COMPILER V9.60.7.0 MAIN 04/15/2025 20:33:28 PAGE 3
CODE SIZE = 307 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 ----
DATA SIZE = 38 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.

View File

@ -0,0 +1,130 @@
C51 COMPILER V9.60.7.0 ONEWIRE 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE ONEWIRE
OBJECT MODULE PLACED IN .\Objects\onewire.obj
COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE
- INCDIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\onewire.lst) OBJECT(.\Objects\onewire.obj)
line level source
1 /* # 蜊墓€サ郤ソ莉」遐∫援谿オ隸エ譏<EFBDB4>
2 1. 譛ャ譁<EFBDAC>サカ螟ケ荳ュ謠蝉セ帷噪鬩ア蜉ィ莉」遐∽セ帛盾襍幃€画焔螳梧<E89EB3>遞句コ剰ョセ隶。蜿り€<E3828A>€<EFBFBD>
3 2. 蜿りオ幃€画焔蜿ッ莉・閾ェ陦檎シ門<EFBDBC>逶ク蜈ウ莉」遐∵<E98190>莉・隸・莉」遐∽クコ蝓コ遑€<E98191><EFBFBD>ケ謐ョ謇€騾牙黒迚<E9BB92>惻邀サ蝙九€∬ソ
-占。碁€溷コヲ蜥瑚ッ暮「<E69AAE>
4 荳ュ蟇ケ蜊慕援譛コ譌カ髓滄「醍紫逧<E7B4AB>ヲ∵アゑシ瑚ソ幄。御サ」遐∬ー<E288AC>ッ募柱菫ョ謾ケ縲<EFBDB9>
5 */
6
7 #include <onewire.h>
8
9 sbit DQ = P1^4;
10
11 //
12 void Delay_OneWire(unsigned int t)
13 {
14 1 unsigned char i;
15 1 while(t--){
16 2 for(i=0;i<12;i++);
17 2 }
18 1 }
19
20 //
21 void Write_DS18B20(unsigned char dat)
22 {
23 1 unsigned char i;
24 1 for(i=0;i<8;i++)
25 1 {
26 2 DQ = 0;
27 2 DQ = dat&0x01;
28 2 Delay_OneWire(5);
29 2 DQ = 1;
30 2 dat >>= 1;
31 2 }
32 1 Delay_OneWire(5);
33 1 }
34
35 //
36 unsigned char Read_DS18B20(void)
37 {
38 1 unsigned char i;
39 1 unsigned char dat;
40 1
41 1 for(i=0;i<8;i++)
42 1 {
43 2 DQ = 0;
44 2 dat >>= 1;
45 2 DQ = 1;
46 2 if(DQ)
47 2 {
48 3 dat |= 0x80;
49 3 }
50 2 Delay_OneWire(5);
51 2 }
52 1 return dat;
53 1 }
C51 COMPILER V9.60.7.0 ONEWIRE 04/15/2025 20:33:28 PAGE 2
54
55 //
56 bit init_ds18b20(void)
57 {
58 1 bit initflag = 0;
59 1
60 1 DQ = 1;
61 1 Delay_OneWire(12);
62 1 DQ = 0;
63 1 Delay_OneWire(80);
64 1 DQ = 1;
65 1 Delay_OneWire(10);
66 1 initflag = DQ;
67 1 Delay_OneWire(5);
68 1
69 1 return initflag;
70 1 }
71
72 float Tempr_Read()
73 {
74 1 unsigned char low;
75 1 unsigned char high;
76 1
77 1 init_ds18b20();
78 1 Write_DS18B20(0xcc);
79 1 Write_DS18B20(0x44);
80 1 Delay_OneWire(200);
81 1
82 1 init_ds18b20();
83 1 Write_DS18B20(0xcc);
84 1 Write_DS18B20(0xbe);
85 1
86 1 low = Read_DS18B20();
87 1 high = Read_DS18B20();
88 1
89 1 return ((high << 8) | low) /16.0;
90 1
91 1 }
92
93
94
95
96
97
98
99
100
101
102
103
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 180 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)

Binary file not shown.

View File

@ -18,8 +18,8 @@ Hex Converter: OH51.exe V2.7.0.0
CPU DLL: S8051.DLL V3.125.1.0
Dialog DLL: DP51.DLL V2.69.0.0
<h2>Project:</h2>
D:\Git\2025\User\2025.uvproj
Project File Date: 04/12/2025
D:\Git\Gitea\lanqiaobei_51_study\2025\User\2025.uvproj
Project File Date: 04/15/2025
<h2>Output:</h2>
Rebuild target '2025'
@ -28,10 +28,13 @@ compiling Init.c...
compiling Led.c...
compiling Seg.c...
compiling Key.c...
compiling onewire.c...
linking...
Program Size: data=69.0 xdata=0 code=734
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?RELAY?LED
Program Size: data=76.2 xdata=0 code=1734
creating hex file from ".\Objects\2025"...
".\Objects\2025" - 0 Error(s), 0 Warning(s).
".\Objects\2025" - 0 Error(s), 1 Warning(s).
Build Time Elapsed: 00:00:00
</pre>
</body>

View File

@ -1,59 +1,133 @@
:10019C0008101010101010101010080800000000AB
:0E01AC0000000000082101000000000000001B
:10025B00E51D7020751D011201228F1EE51C651E08
:10026B00FF551EF51BE51EF45FF520851E1CE51BD7
:05027B006002F51A22EB
:10028000E5194518701BF518751901E51A75F00A7E
:100290008475F00A8485F010E51A75F00A8485F0FB
:0202A000112229
:0100030022DA
:1002BF00538E7F5389F0758A18758CFCC28DD28C42
:0502CF00D2A9D2AF220C
:03000B0002009A56
:10009A00C0E0C0F0C083C082C0D075D000C000C02C
:1000AA0001C002C003C004C005C006C007051DE5A3
:1000BA001DB40A03751D000519E51970020518FF1C
:1000CA00AE18BE0109BFF406751800751900051FA0
:1000DA00E51FB40803751F007410251FF8E6FD7CA0
:1000EA00007408251FF8E6FB7A00AF1F1201DE74C0
:1000FA0021251FF8E6FD7C00AF1F120220D007D091
:10010A0006D005D004D003D002D001D000D0D0D080
:08011A0082D083D0F0D0E03266
:1002D4001202A21202BF12025B12028012000380F9
:0102E400F524
:1002A200E5A0541F4480F5A07580FF53A01FE5A070
:0D02B200541F44A0F5A0E4F58053A01F22C6
:0601BA000142000143FFB9
:10022000ED4C600FA8077401088002C333D8FC426C
:1002300042800EA8077401088002C333D8FCF45230
:1002400042E54265436013E5A0541F4480F5A0E5F4
:0A02500042F4F58053A01F854243DD
:01025A002281
:1001C0001129C0F9A4B0999282F880908883C6A1C1
:0D01D000868EFF083A0102040810204080CE
:1001DE00E5A0541F44E0F5A07580FF53A01FE5A0D5
:1001EE00541F44C0F5A0743A2FF8E6F58053A01FB3
:1001FE00EB4A600B74292DF8E6547FF58080077466
:10020E00292DF8E6F580E5A0541F44E0F5A053A093
:02021E001F229D
:10012200E4FFC2A9C2C4D2C2D2B5D2B420B3027F04
:100132000420B2027F0520B1027F0620B0027F07B1
:10014200D2C4C2C2D2B5D2B420B3027F0820B20256
:100152007F0920B1027F0A20B0027F0BD2C4D2C233
:10016200C2B5D2B420B3027F0C20B2027F0D20B1FF
:10017200027F0E20B0027F0FD2C4D2C2D2B5C2B467
:1001820020B3027F1020B2027F1120B1027F122021
:09019200B0027F13D2A975B0FF81
:01019B002241
:0300000002000EED
:0C000E00787FE4F6D8FD758143020055B0
:10001A000202D4E493A3F8E493A34003F68001F226
:10002A0008DFF48029E493A3F85407240CC8C333E7
:10003A00C4540F4420C8834004F456800146F6DFB6
:10004A00E4800B010204081020408090019CE47EA9
:10005A00019360BCA3FF543F30E509541FFEE493AB
:10006A00A360010ECF54C025E060A840B8E493A372
:10007A00FAE493A3F8E493A3C8C582C8CAC583CA9D
:10008A00F0A3C8C582C8CAC583CADFE9DEE780BE55
:0101DD000021
:1004B800082910101010101010100821000000005A
:1004C80000000000083F01000100000000000239A0
:0204D800000022
:1005E300E53670207536011203EA8F37E535653736
:1005F300FF5537F534E537F45FF53B853735E5349B
:050603006002F5332246
:10046400E5324531704DF531753201120581E4FBF9
:10047400FA7920784112000E1201F28E398F3A7CFB
:10048400007D641202737C007D0A1202738D29AE12
:1004940039AF3A7C007D0A1202737C007D0A120295
:1004A400738D2A752201AE39AF3A7C007D0A12029F
:0404B400738D2B22F7
:0C06C200754301E4F544F545754601223E
:10069C00538E7F5389F0758A18758CFCC28DD28C61
:0506AC00D2A9D2AF222B
:03000B000203628B
:10036200C0E0C0F0C083C082C0D075D000C000C061
:1003720001C002C003C004C005C006C0070536E5BF
:1003820036B40A037536000532E53270020531FFD4
:10039200AE31BE0109BFF406753100753200053871
:1003A200E538B4080375380074292538F8E6FD7C71
:1003B2000074212538F8E6FB7A00AF381205047480
:1003C2003F2538F8E6FD7C00AF38120546D007D04D
:1003D20006D005D004D003D002D001D000D0D0D0B6
:0803E20082D083D0F0D0E0329C
:1006B10012064B12069C1205E31204641206C28054
:0106C100F543
:10064B00E5A0541F4480F5A07580FF53A01FE5A0C3
:0D065B00541F44A0F5A0E4F58053A01F2219
:0C04DA000108000109FF010AFF010B00EE
:10054600ED4C600FA8077401088002C333D8FC4243
:1005560008800EA8077401088002C333D8FCF45241
:1005660008E50865096013E5A0541F4480F5A0E579
:0A05760008F4F58053A01F85080962
:010580002258
:10060800300005430A108003530AEFE50A650B60C2
:1006180013E5A0541F44A0F5A0E50AF4F58053A003
:040628001F850A0B15
:01062C0022AB
:1004E6001147C0F9A4B0999282F880908883C6A17A
:0D04F600868EFF0858010204081020408087
:10050400E5A0541F44E0F5A07580FF53A01FE5A0AB
:10051400541F44C0F5A074582FF8E6F58053A01F6B
:10052400EB4A600B74472DF8E6547FF5808007741E
:10053400472DF8E6F580E5A0541F44E0F5A053A04C
:020544001F2274
:1003EA00E4FFC2A9C2C4D2C2D2B5D2B420B3027F3A
:1003FA000420B2027F0520B1027F0620B0027F07E7
:10040A00D2C4C2C2D2B5D2B420B3027F0820B2028B
:10041A007F0920B1027F0A20B0027F0BD2C4D2C268
:10042A00C2B5D2B420B3027F0C20B2027F0D20B134
:10043A00027F0E20B0027F0FD2C4D2C2D2B5C2B49C
:10044A0020B3027F1020B2027F1120B1027F122056
:09045A00B0027F13D2A975B0FFB6
:010463002276
:040668007F057E008C
:10066C00EF1FAA0670011E4A600BE4FDEDC3940C4B
:05067C0050EE0D80F7B7
:010681002256
:02062D00A9071B
:10062F00E4FBC294E9139294120668D294E9C313BF
:0C063F00F90BBB08ED7F057E0002066C85
:10068200E4FBC294ECC313FCD29430940343048081
:090692001206680BBB08EBAF0473
:01069B00223C
:1005BC00C201D2947F0C7E0012066CC2947F507ED6
:1005CC000012066CD2947F0A7E0012066CA29492E2
:0605DC0001120668A201F5
:0105E20022F6
:100581001205BC7FCC12062D7F4412062D7FC87E3A
:100591000012066C1205BC7FCC12062D7FBE12061E
:1005A1002D120682A907120682EFAD01FCEC1201A1
:0B05B100B9E4FBFA79807841020117E1
:10000E00EC4D6011E8497017ED33EC3304600DE4EC
:10001E00FCFFFEFD22E933E8330470F802025E12A3
:10002E00022958046009E4CC2481500628500902A4
:10003E000268284003020265C0E0EB4A7044B980B2
:10004E0006D0E0FB020254EF4E701CBD8008EBFFA1
:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783
:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD
:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A
:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8
:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3
:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806
:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6
:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC
:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054
:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC
:1000FE000BBB000F020268EC2CFCEF33FFEE33FE5D
:06010E00ED33FD0202408A
:10011400020268EC5D046005E85904700302025EA3
:10012400120229580460F6EC4860F2EC7004FDFEFB
:10013400FF22C860DB2481C85009C39860025006BE
:100144000202659850CAF582E9294B4A7005AB82D0
:1001540002025475F0007C1A7880C3EF9BEE9AED8E
:1001640099400DC3EF9BFFEE9AFEED99FDE842F036
:10017400DC23ACF0D0E0FFD0E0FED0E0FDAB822089
:10018400E7101BEB60BAEC2CFCEF33FFEE33FEED13
:1001940033FD020240E803F830E705C0F075F000D3
:1001A400EF2FFFEE33FEED33FD40B830E7C280AAF7
:1001B40075F020800E75F010800575F0087D007EC6
:1001C400007F003392D530D5031202C8EC334010BF
:1001D400EF33FFEE33FEED33FDEC33FCD5F0ED22CF
:0E01E400E5F0247EA2D513CC92E7CDCEFF220B
:1001F200EDD2E7CD33EC3392D524814006E4FFFE05
:10020200FDFC22FCE4CFCECDCC24E0501174FF8063
:10021200EDC3CC13CCCD13CDCE13CECF13CF047000
:07022200F030D5DE0202C836
:10022900E9D2E7C933E833F892D5EDD2E7CD33EC1B
:0702390033FC5002B2D52294
:10024000EC30E7100FBF000C0EBE00080DBD00041F
:100250000BEB6014A2D5EB13FCED92E7FD2274FFCB
:10026000FCFDFEFF22E480F8A2D574FF13FC7D8024
:03027000E480EF38
:030000000202D623
:0C02D600787FE4F6D8FD75815F02031DFF
:10027300BC000BBE0029EF8DF084FFADF022E4CC6F
:10028300F875F008EF2FFFEE33FEEC33FCEE9DEC38
:10029300984005FCEE9DFE0FD5F0E9E4CEFD22ED7E
:1002A300F8F5F0EE8420D21CFEADF075F008EF2FC8
:1002B300FFED33FD4007985006D5F0F222C398FDB9
:0502C3000FD5F0EA2256
:0E02C800C3E49FFFE49EFEE49DFDE49CFC2247
:1002E2000206B1E493A3F8E493A34003F68001F27B
:1002F20008DFF48029E493A3F85407240CC8C3331D
:10030200C4540F4420C8834004F456800146F6DFEB
:10031200E4800B01020408102040809004B8E47EBF
:10032200019360BCA3FF543F30E509541FFEE493E0
:10033200A360010ECF54C025E060A840B8E493A3A7
:10034200FAE493A3F8E493A3C8C582C8CAC583CAD2
:10035200F0A3C8C582C8CAC583CADFE9DEE780BE8A
:0105030000F7
:00000001FF

View File

@ -2,6 +2,7 @@
".\Objects\Init.obj",
".\Objects\Led.obj",
".\Objects\Seg.obj",
".\Objects\Key.obj"
".\Objects\Key.obj",
".\Objects\onewire.obj"
TO ".\Objects\2025"
PRINT(".\Listings\2025.m51") RAMSIZE(256)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4,6 +4,7 @@
#include <Seg.h>
#include <Led.h>
#include <Init.h>
#include <onewire.h>
/* 变量申明*/
unsigned char Key_Slow_Down;//按键减速变量
@ -20,10 +21,12 @@ unsigned char Seg_Point[8]=
};
unsigned char ucLed[8]=
{
1,0,0,0,0,0,0,0
1,0,1,0,0,0,0,0
};
unsigned char Seg_Show;
unsigned int Tempr_Show_10x = 0,Relay_Timer;
unsigned char Relay_Flag;
/* 处理函数key,seg,led*/
void Key_Proc()
@ -45,13 +48,19 @@ void Seg_Proc()
if(Seg_Slow_Down) return;
Seg_Slow_Down = 1;
Seg_Buf[0] = Seg_Show /10 %10;
Seg_Buf[1] = Seg_Show %10;
Tempr_Show_10x = Tempr_Read() * 10;
Seg_Buf[0] = Tempr_Show_10x /100 %10;
Seg_Buf[1] = Tempr_Show_10x /10 %10;
Seg_Point[1] = 1;
Seg_Buf[2] = Tempr_Show_10x % 10;
}
void Led_Proc()
{
ucLed[4] = 1;
ucLed[5] = 0;
ucLed[6] = 0;
ucLed[7] = 1;
}
/* 定时器函数(初始化、中断函数)*/
@ -72,6 +81,7 @@ void Timer0_Server() interrupt 1
if(++Key_Slow_Down == 10) Key_Slow_Down = 0;
if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0;
if(++Seg_Pos == 8) Seg_Pos = 0;
Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]);
Led_Disp(Seg_Pos,ucLed[Seg_Pos]);

View File

@ -52,6 +52,7 @@ void Seg_Proc()
if (Seg_Slow_Down)
return;
Seg_Slow_Down = 1;
temperature_value_10x = filter(rd_temperature() * 10);
if (C_F_flag)
temperature_value_10x = temperature_value_10x * 1.8 + 320; // »ªÊ϶È

File diff suppressed because one or more lines are too long