第一次代码优化,增加温度显示功能。
This commit is contained in:
@@ -0,0 +1,198 @@
|
|||||||
|
$NOMOD51
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; This file is part of the C51 Compiler package
|
||||||
|
; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
; Version 8.01
|
||||||
|
;
|
||||||
|
; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; STARTUP.A51: This code is executed after processor reset.
|
||||||
|
;
|
||||||
|
; To translate this file use A51 with the following invocation:
|
||||||
|
;
|
||||||
|
; A51 STARTUP.A51
|
||||||
|
;
|
||||||
|
; To link the modified STARTUP.OBJ file to your application use the following
|
||||||
|
; Lx51 invocation:
|
||||||
|
;
|
||||||
|
; Lx51 your object file list, STARTUP.OBJ controls
|
||||||
|
;
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; User-defined <h> Power-On Initialization of Memory
|
||||||
|
;
|
||||||
|
; With the following EQU statements the initialization of memory
|
||||||
|
; at processor reset can be defined:
|
||||||
|
;
|
||||||
|
; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||||
|
; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||||
|
; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||||
|
IDATALEN EQU 80H
|
||||||
|
;
|
||||||
|
; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of XDATA memory
|
||||||
|
XDATASTART EQU 0
|
||||||
|
;
|
||||||
|
; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||||
|
; <i> The length of XDATA memory in bytes.
|
||||||
|
XDATALEN EQU 0
|
||||||
|
;
|
||||||
|
; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of PDATA memory
|
||||||
|
PDATASTART EQU 0H
|
||||||
|
;
|
||||||
|
; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||||
|
; <i> The length of PDATA memory in bytes.
|
||||||
|
PDATALEN EQU 0H
|
||||||
|
;
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
;<h> Reentrant Stack Initialization
|
||||||
|
;
|
||||||
|
; The following EQU statements define the stack pointer for reentrant
|
||||||
|
; functions and initialized it:
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the SMALL model.
|
||||||
|
; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the SMALL model.
|
||||||
|
IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||||
|
; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the LARGE model.
|
||||||
|
; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the LARGE model.
|
||||||
|
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||||
|
; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||||
|
; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the COMPACT model.
|
||||||
|
PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||||
|
;
|
||||||
|
; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||||
|
; <e>Compact Model Page Definition
|
||||||
|
;
|
||||||
|
; <i>Define the XDATA page used for PDATA variables.
|
||||||
|
; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||||
|
;
|
||||||
|
; Enable pdata memory page initalization
|
||||||
|
PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||||
|
;
|
||||||
|
; <o> PPAGE number <0x0-0xFF>
|
||||||
|
; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||||
|
PPAGE EQU 0
|
||||||
|
;
|
||||||
|
; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||||
|
; <i> most 8051 variants use P2 as uppermost address byte
|
||||||
|
PPAGE_SFR DATA 0A0H
|
||||||
|
;
|
||||||
|
; </e>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
; Standard SFR Symbols
|
||||||
|
ACC DATA 0E0H
|
||||||
|
B DATA 0F0H
|
||||||
|
SP DATA 81H
|
||||||
|
DPL DATA 82H
|
||||||
|
DPH DATA 83H
|
||||||
|
|
||||||
|
NAME ?C_STARTUP
|
||||||
|
|
||||||
|
|
||||||
|
?C_C51STARTUP SEGMENT CODE
|
||||||
|
?STACK SEGMENT IDATA
|
||||||
|
|
||||||
|
RSEG ?STACK
|
||||||
|
DS 1
|
||||||
|
|
||||||
|
EXTRN CODE (?C_START)
|
||||||
|
PUBLIC ?C_STARTUP
|
||||||
|
|
||||||
|
CSEG AT 0
|
||||||
|
?C_STARTUP: LJMP STARTUP1
|
||||||
|
|
||||||
|
RSEG ?C_C51STARTUP
|
||||||
|
|
||||||
|
STARTUP1:
|
||||||
|
|
||||||
|
IF IDATALEN <> 0
|
||||||
|
MOV R0,#IDATALEN - 1
|
||||||
|
CLR A
|
||||||
|
IDATALOOP: MOV @R0,A
|
||||||
|
DJNZ R0,IDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XDATALEN <> 0
|
||||||
|
MOV DPTR,#XDATASTART
|
||||||
|
MOV R7,#LOW (XDATALEN)
|
||||||
|
IF (LOW (XDATALEN)) <> 0
|
||||||
|
MOV R6,#(HIGH (XDATALEN)) +1
|
||||||
|
ELSE
|
||||||
|
MOV R6,#HIGH (XDATALEN)
|
||||||
|
ENDIF
|
||||||
|
CLR A
|
||||||
|
XDATALOOP: MOVX @DPTR,A
|
||||||
|
INC DPTR
|
||||||
|
DJNZ R7,XDATALOOP
|
||||||
|
DJNZ R6,XDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PPAGEENABLE <> 0
|
||||||
|
MOV PPAGE_SFR,#PPAGE
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PDATALEN <> 0
|
||||||
|
MOV R0,#LOW (PDATASTART)
|
||||||
|
MOV R7,#LOW (PDATALEN)
|
||||||
|
CLR A
|
||||||
|
PDATALOOP: MOVX @R0,A
|
||||||
|
INC R0
|
||||||
|
DJNZ R7,PDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF IBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_IBP)
|
||||||
|
|
||||||
|
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_XBP)
|
||||||
|
|
||||||
|
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||||
|
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_PBP)
|
||||||
|
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
MOV SP,#?STACK-1
|
||||||
|
|
||||||
|
; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||||
|
;<h> Code Banking
|
||||||
|
; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||||
|
#if 0
|
||||||
|
; <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4.
|
||||||
|
EXTRN CODE (?B_SWITCH0)
|
||||||
|
CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
|
||||||
|
#endif
|
||||||
|
;</h>
|
||||||
|
LJMP ?C_START
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
#include"ds1302.h"
|
||||||
|
|
||||||
|
//---DS1302д��Ͷ�ȡʱ����ĵ�ַ����---//
|
||||||
|
//---���ʱ�������� ���λ��дλ;-------//
|
||||||
|
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
|
||||||
|
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
|
||||||
|
|
||||||
|
//---DS1302ʱ�ӳ�ʼ��2013��1��1�����ڶ�12��00��00�롣---//
|
||||||
|
//---�洢˳�������ʱ��������,�洢��ʽ����BCD��---//
|
||||||
|
uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13};
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* �� �� �� : Ds1302Write
|
||||||
|
* �������� : ��DS1302�����ַ+���ݣ�
|
||||||
|
* �� �� : addr,dat
|
||||||
|
* �� �� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Ds1302Write(uchar addr, uchar dat)
|
||||||
|
{
|
||||||
|
uchar n;
|
||||||
|
RST = 0;
|
||||||
|
_nop_();
|
||||||
|
|
||||||
|
SCLK = 0;//�Ƚ�SCLK�õ͵�ƽ��
|
||||||
|
_nop_();
|
||||||
|
RST = 1; //Ȼ��RST(CE)�øߵ�ƽ��
|
||||||
|
_nop_();
|
||||||
|
|
||||||
|
for (n=0; n<8; n++)//��ʼ���Ͱ�λ��ַ����
|
||||||
|
{
|
||||||
|
DSIO = addr & 0x01;//���ݴӵ�λ��ʼ����
|
||||||
|
addr >>= 1;
|
||||||
|
SCLK = 1;//������������ʱ��DS1302��ȡ����
|
||||||
|
_nop_();
|
||||||
|
SCLK = 0;
|
||||||
|
_nop_();
|
||||||
|
}
|
||||||
|
for (n=0; n<8; n++)//д��8λ����
|
||||||
|
{
|
||||||
|
DSIO = dat & 0x01;
|
||||||
|
dat >>= 1;
|
||||||
|
SCLK = 1;//������������ʱ��DS1302��ȡ����
|
||||||
|
_nop_();
|
||||||
|
SCLK = 0;
|
||||||
|
_nop_();
|
||||||
|
}
|
||||||
|
|
||||||
|
RST = 0;//�������ݽ���
|
||||||
|
_nop_();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* �� �� �� : Ds1302Read
|
||||||
|
* �������� : ��ȡһ����ַ������
|
||||||
|
* �� �� : addr
|
||||||
|
* �� �� : dat
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
uchar Ds1302Read(uchar addr)
|
||||||
|
{
|
||||||
|
uchar n,dat,dat1;
|
||||||
|
RST = 0;
|
||||||
|
_nop_();
|
||||||
|
|
||||||
|
SCLK = 0;//�Ƚ�SCLK�õ͵�ƽ��
|
||||||
|
_nop_();
|
||||||
|
RST = 1;//Ȼ��RST(CE)�øߵ�ƽ��
|
||||||
|
_nop_();
|
||||||
|
|
||||||
|
for(n=0; n<8; n++)//��ʼ���Ͱ�λ��ַ����
|
||||||
|
{
|
||||||
|
DSIO = addr & 0x01;//���ݴӵ�λ��ʼ����
|
||||||
|
addr >>= 1;
|
||||||
|
SCLK = 1;//������������ʱ��DS1302��ȡ����
|
||||||
|
_nop_();
|
||||||
|
SCLK = 0;//DS1302�½���ʱ����������
|
||||||
|
_nop_();
|
||||||
|
}
|
||||||
|
_nop_();
|
||||||
|
for(n=0; n<8; n++)//��ȡ8λ����
|
||||||
|
{
|
||||||
|
dat1 = DSIO;//�����λ��ʼ����
|
||||||
|
dat = (dat>>1) | (dat1<<7);
|
||||||
|
SCLK = 1;
|
||||||
|
_nop_();
|
||||||
|
SCLK = 0;//DS1302�½���ʱ����������
|
||||||
|
_nop_();
|
||||||
|
}
|
||||||
|
|
||||||
|
RST = 0;
|
||||||
|
_nop_(); //����ΪDS1302��λ���ȶ�ʱ��,����ġ�
|
||||||
|
SCLK = 1;
|
||||||
|
_nop_();
|
||||||
|
DSIO = 0;
|
||||||
|
_nop_();
|
||||||
|
DSIO = 1;
|
||||||
|
_nop_();
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* �� �� �� : Ds1302Init
|
||||||
|
* �������� : ��ʼ��DS1302.
|
||||||
|
* �� �� : ��
|
||||||
|
* �� �� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Ds1302Init()
|
||||||
|
{
|
||||||
|
uchar n;
|
||||||
|
uchar sec;
|
||||||
|
// ���CHλ�ж��Ƿ��ѳ�ʼ��
|
||||||
|
sec = Ds1302Read(0x81);
|
||||||
|
if(!(sec & 0x80)) // CH=0, ʱ���Ѿ����У�������д
|
||||||
|
return;
|
||||||
|
// ��һ�ε翪��, д��Ĭ��ʱ��
|
||||||
|
Ds1302Write(0x8E,0X00);
|
||||||
|
for (n=0; n<7; n++)
|
||||||
|
{
|
||||||
|
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
|
||||||
|
}
|
||||||
|
Ds1302Write(0x8E,0x80);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ds1302WriteTime()
|
||||||
|
{
|
||||||
|
uchar n;
|
||||||
|
Ds1302Write(0x8E,0X00);
|
||||||
|
for (n=0; n<7; n++)
|
||||||
|
{
|
||||||
|
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
|
||||||
|
}
|
||||||
|
Ds1302Write(0x8E,0x80);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* �� �� �� : Ds1302ReadTime
|
||||||
|
* �������� : ��ȡʱ����Ϣ
|
||||||
|
* �� �� : ��
|
||||||
|
* �� �� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Ds1302ReadTime()
|
||||||
|
{
|
||||||
|
uchar n;
|
||||||
|
for (n=0; n<7; n++)//��ȡ7���ֽڵ�ʱ���źţ�����ʱ��������
|
||||||
|
{
|
||||||
|
TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#ifndef __DS1302_H_
|
||||||
|
#define __DS1302_H_
|
||||||
|
|
||||||
|
//---����ͷ�ļ�---//
|
||||||
|
#include<reg51.h>
|
||||||
|
#include<intrins.h>
|
||||||
|
|
||||||
|
//---�ض���ؼ���---//
|
||||||
|
#ifndef uchar
|
||||||
|
#define uchar unsigned char
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef uint
|
||||||
|
#define uint unsigned int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---����ds1302ʹ�õ�IO��---//
|
||||||
|
sbit DSIO=P1^1;
|
||||||
|
sbit RST=P1^2;
|
||||||
|
sbit SCLK=P1^0;
|
||||||
|
|
||||||
|
//---����ȫ�ֺ���---//
|
||||||
|
void Ds1302Write(uchar addr, uchar dat);
|
||||||
|
uchar Ds1302Read(uchar addr);
|
||||||
|
void Ds1302Init();
|
||||||
|
void Ds1302ReadTime();
|
||||||
|
void Ds1302WriteTime();
|
||||||
|
|
||||||
|
//---����ȫ�ֱ���--//
|
||||||
|
extern uchar TIME[7]; //����ȫ�ֱ���
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
#include "ds18b20.h"
|
||||||
|
|
||||||
|
void DS18B20_Reset(void)
|
||||||
|
{
|
||||||
|
uchar i;
|
||||||
|
DS18B20_DQ = 0;
|
||||||
|
for(i=0; i<200; i++);
|
||||||
|
DS18B20_DQ = 1;
|
||||||
|
for(i=0; i<100; i++);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DS18B20_WriteByte(uchar dat)
|
||||||
|
{
|
||||||
|
uchar i, j;
|
||||||
|
for(i=0; i<8; i++)
|
||||||
|
{
|
||||||
|
DS18B20_DQ = 0;
|
||||||
|
_nop_();
|
||||||
|
if(dat & 0x01)
|
||||||
|
DS18B20_DQ = 1;
|
||||||
|
else
|
||||||
|
DS18B20_DQ = 0;
|
||||||
|
for(j=0; j<30; j++);
|
||||||
|
DS18B20_DQ = 1;
|
||||||
|
_nop_();
|
||||||
|
_nop_();
|
||||||
|
dat >>= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uchar DS18B20_ReadByte(void)
|
||||||
|
{
|
||||||
|
uchar i, j, dat = 0;
|
||||||
|
for(i=0; i<8; i++)
|
||||||
|
{
|
||||||
|
dat >>= 1;
|
||||||
|
DS18B20_DQ = 0;
|
||||||
|
_nop_();
|
||||||
|
DS18B20_DQ = 1;
|
||||||
|
_nop_();
|
||||||
|
_nop_();
|
||||||
|
if(DS18B20_DQ)
|
||||||
|
dat |= 0x80;
|
||||||
|
for(j=0; j<20; j++);
|
||||||
|
}
|
||||||
|
return dat;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DS18B20_StartConvert(void)
|
||||||
|
{
|
||||||
|
DS18B20_Reset();
|
||||||
|
DS18B20_WriteByte(0xCC);
|
||||||
|
DS18B20_WriteByte(0x44);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DS18B20_SetResolution(uchar res)
|
||||||
|
{
|
||||||
|
// res: 0x1F=9bit, 0x3F=10bit, 0x5F=11bit, 0x7F=12bit
|
||||||
|
DS18B20_Reset();
|
||||||
|
DS18B20_WriteByte(0xCC); // Skip ROM
|
||||||
|
DS18B20_WriteByte(0x4E); // Write Scratchpad
|
||||||
|
DS18B20_WriteByte(0x00); // TH (user byte 1)
|
||||||
|
DS18B20_WriteByte(0x00); // TL (user byte 2)
|
||||||
|
DS18B20_WriteByte(res); // Configuration register
|
||||||
|
DS18B20_Reset();
|
||||||
|
DS18B20_WriteByte(0xCC); // Skip ROM
|
||||||
|
DS18B20_WriteByte(0x48); // Copy Scratchpad to EEPROM
|
||||||
|
}
|
||||||
|
|
||||||
|
bit DS18B20_GetTemp(int *temp)
|
||||||
|
{
|
||||||
|
uchar tempL, tempH;
|
||||||
|
int raw;
|
||||||
|
|
||||||
|
DS18B20_Reset();
|
||||||
|
DS18B20_WriteByte(0xCC);
|
||||||
|
DS18B20_WriteByte(0xBE);
|
||||||
|
|
||||||
|
tempL = DS18B20_ReadByte();
|
||||||
|
tempH = DS18B20_ReadByte();
|
||||||
|
|
||||||
|
raw = (tempH << 8) | tempL;
|
||||||
|
*temp = raw;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#ifndef __DS18B20_H_
|
||||||
|
#define __DS18B20_H_
|
||||||
|
|
||||||
|
#include<reg51.h>
|
||||||
|
#include<intrins.h>
|
||||||
|
|
||||||
|
#ifndef uchar
|
||||||
|
#define uchar unsigned char
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef uint
|
||||||
|
#define uint unsigned int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
sbit DS18B20_DQ = P3^7;
|
||||||
|
|
||||||
|
void DS18B20_Reset(void);
|
||||||
|
void DS18B20_WriteByte(uchar dat);
|
||||||
|
uchar DS18B20_ReadByte(void);
|
||||||
|
void DS18B20_StartConvert(void);
|
||||||
|
bit DS18B20_GetTemp(int *temp);
|
||||||
|
void DS18B20_SetResolution(uchar res);
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
#include"lcd.h"
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* 函 数 名 : Lcd1602_Delay1ms
|
||||||
|
* 函数功能 : 延时函数,延时1ms
|
||||||
|
* 输 入 : c
|
||||||
|
* 输 出 : 无
|
||||||
|
* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Lcd1602_Delay1ms(uint c) //误差 0us
|
||||||
|
{
|
||||||
|
uchar a,b;
|
||||||
|
for (; c>0; c--)
|
||||||
|
{
|
||||||
|
for (b=199;b>0;b--)
|
||||||
|
{
|
||||||
|
for(a=1;a>0;a--);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* 函 数 名 : LcdWriteCom
|
||||||
|
* 函数功能 : 向LCD写入一个字节的命令
|
||||||
|
* 输 入 : com
|
||||||
|
* 输 出 : 无
|
||||||
|
*******************************************************************************/
|
||||||
|
#ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时
|
||||||
|
void LcdWriteCom(uchar com) //写入命令
|
||||||
|
{
|
||||||
|
LCD1602_E = 0; //使能
|
||||||
|
LCD1602_RS = 0; //选择发送命令
|
||||||
|
LCD1602_RW = 0; //选择写入
|
||||||
|
|
||||||
|
LCD1602_DATAPINS = com; //放入命令
|
||||||
|
Lcd1602_Delay1ms(1); //等待数据稳定
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5); //保持时间
|
||||||
|
LCD1602_E = 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void LcdWriteCom(uchar com) //写入命令
|
||||||
|
{
|
||||||
|
LCD1602_E = 0; //使能清零
|
||||||
|
LCD1602_RS = 0; //选择写入命令
|
||||||
|
LCD1602_RW = 0; //选择写入
|
||||||
|
|
||||||
|
LCD1602_DATAPINS = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
|
||||||
|
Lcd1602_Delay1ms(1);
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5);
|
||||||
|
LCD1602_E = 0;
|
||||||
|
|
||||||
|
// Lcd1602_Delay1ms(1);
|
||||||
|
LCD1602_DATAPINS = com << 4; //发送低四位
|
||||||
|
Lcd1602_Delay1ms(1);
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5);
|
||||||
|
LCD1602_E = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
/*******************************************************************************
|
||||||
|
* 函 数 名 : LcdWriteData
|
||||||
|
* 函数功能 : 向LCD写入一个字节的数据
|
||||||
|
* 输 入 : dat
|
||||||
|
* 输 出 : 无
|
||||||
|
*******************************************************************************/
|
||||||
|
#ifndef LCD1602_4PINS
|
||||||
|
void LcdWriteData(uchar dat) //写入数据
|
||||||
|
{
|
||||||
|
LCD1602_E = 0; //使能清零
|
||||||
|
LCD1602_RS = 1; //选择输入数据
|
||||||
|
LCD1602_RW = 0; //选择写入
|
||||||
|
|
||||||
|
LCD1602_DATAPINS = dat; //写入数据
|
||||||
|
Lcd1602_Delay1ms(1);
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5); //保持时间
|
||||||
|
LCD1602_E = 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void LcdWriteData(uchar dat) //写入数据
|
||||||
|
{
|
||||||
|
LCD1602_E = 0; //使能清零
|
||||||
|
LCD1602_RS = 1; //选择写入数据
|
||||||
|
LCD1602_RW = 0; //选择写入
|
||||||
|
|
||||||
|
LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
|
||||||
|
Lcd1602_Delay1ms(1);
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5);
|
||||||
|
LCD1602_E = 0;
|
||||||
|
|
||||||
|
LCD1602_DATAPINS = dat << 4; //写入低四位
|
||||||
|
Lcd1602_Delay1ms(1);
|
||||||
|
|
||||||
|
LCD1602_E = 1; //写入时序
|
||||||
|
Lcd1602_Delay1ms(5);
|
||||||
|
LCD1602_E = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
/*******************************************************************************
|
||||||
|
* 函 数 名 : LcdInit()
|
||||||
|
* 函数功能 : 初始化LCD屏
|
||||||
|
* 输 入 : 无
|
||||||
|
* 输 出 : 无
|
||||||
|
*******************************************************************************/
|
||||||
|
#ifndef LCD1602_4PINS
|
||||||
|
void LcdInit() //LCD初始化子程序
|
||||||
|
{
|
||||||
|
LcdWriteCom(0x38); //开显示
|
||||||
|
LcdWriteCom(0x0c); //开显示不显示光标
|
||||||
|
LcdWriteCom(0x06); //写一个指针加1
|
||||||
|
LcdWriteCom(0x01); //清屏
|
||||||
|
LcdWriteCom(0x80); //设置数据指针起点
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void LcdInit() //LCD初始化子程序
|
||||||
|
{
|
||||||
|
LcdWriteCom(0x32); //将8位总线转为4位总线
|
||||||
|
LcdWriteCom(0x28); //在四位线下的初始化
|
||||||
|
LcdWriteCom(0x0c); //开显示不显示光标
|
||||||
|
LcdWriteCom(0x06); //写一个指针加1
|
||||||
|
LcdWriteCom(0x01); //清屏
|
||||||
|
LcdWriteCom(0x80); //设置数据指针起点
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#ifndef __LCD_H_
|
||||||
|
#define __LCD_H_
|
||||||
|
/**********************************
|
||||||
|
当使用的是4位数据传输的时候定义,
|
||||||
|
使用8位取消这个定义
|
||||||
|
**********************************/
|
||||||
|
#define LCD1602_4PINS
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
包含头文件
|
||||||
|
**********************************/
|
||||||
|
#include<reg51.h>
|
||||||
|
|
||||||
|
//---重定义关键词---//
|
||||||
|
#ifndef uchar
|
||||||
|
#define uchar unsigned char
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef uint
|
||||||
|
#define uint unsigned int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
PIN口定义
|
||||||
|
**********************************/
|
||||||
|
#define LCD1602_DATAPINS P0
|
||||||
|
sbit LCD1602_E=P2^7;
|
||||||
|
sbit LCD1602_RW=P2^5;
|
||||||
|
sbit LCD1602_RS=P2^6;
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
函数声明
|
||||||
|
**********************************/
|
||||||
|
/*在51单片机12MHZ时钟下的延时函数*/
|
||||||
|
void Lcd1602_Delay1ms(uint c); //误差 0us
|
||||||
|
/*LCD1602写入8位命令子函数*/
|
||||||
|
void LcdWriteCom(uchar com);
|
||||||
|
/*LCD1602写入8位数据子函数*/
|
||||||
|
void LcdWriteData(uchar dat) ;
|
||||||
|
/*LCD1602初始化子程序*/
|
||||||
|
void LcdInit();
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,246 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* ʵ���� : ������ʵ��
|
||||||
|
* ʹ�õ�IO :
|
||||||
|
* ʵ��Ч�� :1602��ʾʱ�ӣ���K3����ʱ�����ã���K1ѡ�����õ�ʱ�������£���K2ѡ��
|
||||||
|
*ѡ�����ü�1��
|
||||||
|
* ע�� ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include<reg51.h>
|
||||||
|
#include"lcd.h"
|
||||||
|
#include"ds1302.h"
|
||||||
|
#include"ds18b20.h"
|
||||||
|
|
||||||
|
sbit K1=P3^1;
|
||||||
|
sbit K2=P3^0;
|
||||||
|
sbit K3=P3^2;
|
||||||
|
sbit K4=P3^3; //�ܽŽ���
|
||||||
|
|
||||||
|
void Int0Configuration();
|
||||||
|
void LcdDisplay();
|
||||||
|
void TempPros(void);
|
||||||
|
unsigned char SetState,SetPlace;
|
||||||
|
int temperature = 0;
|
||||||
|
unsigned char temp_cnt = 0;
|
||||||
|
void Delay10ms(void); //��� 0us
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : main
|
||||||
|
* �������� : ������
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
unsigned char i;
|
||||||
|
Int0Configuration();
|
||||||
|
LcdInit();
|
||||||
|
Ds1302Init();
|
||||||
|
DS18B20_SetResolution(0x3F); // 10λ���ȣ�ת��ʱ��187.5ms
|
||||||
|
DS18B20_StartConvert();
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(SetState==0)
|
||||||
|
{
|
||||||
|
Ds1302ReadTime();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(K1==0) //��ⰴ��K1�Ƿ���
|
||||||
|
{
|
||||||
|
Delay10ms(); //��������
|
||||||
|
if(K1==0)
|
||||||
|
{
|
||||||
|
SetPlace++;
|
||||||
|
if(SetPlace>=7)
|
||||||
|
SetPlace=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
while((i<50)&&(K1==0)) //��ⰴ���Ƿ��ɿ�
|
||||||
|
{
|
||||||
|
Delay10ms();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
i=0;
|
||||||
|
}
|
||||||
|
if(K2==0) //��ⰴ��K2�Ƿ���
|
||||||
|
{
|
||||||
|
Delay10ms(); //��������
|
||||||
|
if(K2==0)
|
||||||
|
{
|
||||||
|
TIME[SetPlace]++;
|
||||||
|
if((TIME[SetPlace]&0x0f)>9) //����BCD�롣
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=TIME[SetPlace]+6;
|
||||||
|
}
|
||||||
|
if((TIME[SetPlace]>=0x60)&&(SetPlace<2)) //����ֻ�ܵ�59
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=0;
|
||||||
|
}
|
||||||
|
if((TIME[SetPlace]>=0x24)&&(SetPlace==2)) //Сʱֻ�ܵ�23
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=0;
|
||||||
|
}
|
||||||
|
if((TIME[SetPlace]>=0x32)&&(SetPlace==3)) //��ֻ�ܵ�31
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=0;
|
||||||
|
}
|
||||||
|
if((TIME[SetPlace]>=0x13)&&(SetPlace==4)) //��ֻ�ܵ�12
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=0;
|
||||||
|
}
|
||||||
|
if((TIME[SetPlace]>=0x7)&&(SetPlace==5)) //��ֻ�ܵ�7
|
||||||
|
{
|
||||||
|
TIME[SetPlace]=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while((i<50)&&(K2==0)) //��ⰴ���Ƿ��ɿ�
|
||||||
|
{
|
||||||
|
Delay10ms();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
i=0;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
temp_cnt++;
|
||||||
|
if(temp_cnt >= 5)
|
||||||
|
{
|
||||||
|
temp_cnt = 0;
|
||||||
|
TempPros();
|
||||||
|
}
|
||||||
|
|
||||||
|
LcdDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : LcdDisplay()
|
||||||
|
* �������� : ��ʾ����
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void LcdDisplay()
|
||||||
|
{
|
||||||
|
int temp_disp;
|
||||||
|
|
||||||
|
// Row 0: 20YY-MM-DD W
|
||||||
|
LcdWriteCom(0x80);
|
||||||
|
LcdWriteData('2');
|
||||||
|
LcdWriteData('0');
|
||||||
|
LcdWriteData('0'+TIME[6]/16); //��
|
||||||
|
LcdWriteData('0'+(TIME[6]&0x0f));
|
||||||
|
LcdWriteData('-');
|
||||||
|
LcdWriteData('0'+TIME[4]/16); //��
|
||||||
|
LcdWriteData('0'+(TIME[4]&0x0f));
|
||||||
|
LcdWriteData('-');
|
||||||
|
LcdWriteData('0'+TIME[3]/16); //��
|
||||||
|
LcdWriteData('0'+(TIME[3]&0x0f));
|
||||||
|
LcdWriteCom(0x8B);
|
||||||
|
LcdWriteData('0'+(TIME[5]&0x07)); //����
|
||||||
|
|
||||||
|
// Row 1: HH:MM:SS xx.xC
|
||||||
|
LcdWriteCom(0x80+0X40);
|
||||||
|
LcdWriteData('0'+TIME[2]/16); //ʱ
|
||||||
|
LcdWriteData('0'+(TIME[2]&0x0f));
|
||||||
|
LcdWriteData(':');
|
||||||
|
LcdWriteData('0'+TIME[1]/16); //��
|
||||||
|
LcdWriteData('0'+(TIME[1]&0x0f));
|
||||||
|
LcdWriteData(':');
|
||||||
|
LcdWriteData('0'+TIME[0]/16); //��
|
||||||
|
LcdWriteData('0'+(TIME[0]&0x0f));
|
||||||
|
|
||||||
|
// Temperature display at position 9
|
||||||
|
LcdWriteCom(0x80+0x40+0x09);
|
||||||
|
temp_disp = temperature;
|
||||||
|
if(temp_disp < 0)
|
||||||
|
{
|
||||||
|
LcdWriteData('-');
|
||||||
|
temp_disp = -temp_disp;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LcdWriteData(' ');
|
||||||
|
}
|
||||||
|
LcdWriteData('0' + temp_disp / 100);
|
||||||
|
LcdWriteData('0' + (temp_disp / 10) % 10);
|
||||||
|
LcdWriteData('.');
|
||||||
|
LcdWriteData('0' + temp_disp % 10);
|
||||||
|
LcdWriteData('C');
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : TempPros
|
||||||
|
* �������� : 读取DS18B20温度并启动下一次转换
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
void TempPros()
|
||||||
|
{
|
||||||
|
int raw;
|
||||||
|
unsigned char sign = 0;
|
||||||
|
|
||||||
|
if(!DS18B20_GetTemp(&raw))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(raw & 0x8000)
|
||||||
|
{
|
||||||
|
raw = ~raw + 1;
|
||||||
|
sign = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
temperature = raw * 10 / 16;
|
||||||
|
if(sign)
|
||||||
|
temperature = -temperature;
|
||||||
|
|
||||||
|
DS18B20_StartConvert();
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : Int0Configuration()
|
||||||
|
* �������� : �����ⲿ�ж�0
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Int0Configuration()
|
||||||
|
{
|
||||||
|
//����INT0
|
||||||
|
IT0=1;//�����س�����ʽ���½��أ�
|
||||||
|
EX0=1;//��INT0���������
|
||||||
|
EA=1;//�����ж�
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : Int0()
|
||||||
|
* �������� : �ⲿ�ж�0 �жϺ���
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
void Int0() interrupt 0
|
||||||
|
{
|
||||||
|
Delay10ms();
|
||||||
|
if(K3==0)
|
||||||
|
{
|
||||||
|
if(SetState == 1) // �˳�����ģʽʱ������ʱ�䱣�浽DS1302
|
||||||
|
{
|
||||||
|
Ds1302WriteTime();
|
||||||
|
}
|
||||||
|
SetState=~SetState;
|
||||||
|
SetPlace=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* ������ : Delay10ms
|
||||||
|
* �������� : ��ʱ��������ʱ10ms
|
||||||
|
* ���� : ��
|
||||||
|
* ��� : ��
|
||||||
|
*******************************************************************************/
|
||||||
|
void Delay10ms(void) //��� 0us
|
||||||
|
{
|
||||||
|
unsigned char a,b,c;
|
||||||
|
for(c=1;c>0;c--)
|
||||||
|
for(b=38;b>0;b--)
|
||||||
|
for(a=130;a>0;a--);
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,125 @@
|
|||||||
|
:030000000202D425
|
||||||
|
:0C02D400787FE4F6D8FD75811702031B4B
|
||||||
|
:0705B6000211000001130017
|
||||||
|
:10012D0012061312054E1204ED7F3F12050E120634
|
||||||
|
:10013D000BE51070061205A002020320B126120570
|
||||||
|
:10014D00E620B10C050FE50FC394074003E4F50F4E
|
||||||
|
:10015D00E514C39432500A20B1071205E605148048
|
||||||
|
:10016D00EFE4F51430B0030202031205E620B0727D
|
||||||
|
:10017D007408250FF8067408250FF8E6540FD3946C
|
||||||
|
:10018D00094004740626F67408250FF8E6C394603A
|
||||||
|
:10019D004008E50F94025002E4F67408250FF8E6C6
|
||||||
|
:1001AD00C394244007E50FB40202E4F67408250F4A
|
||||||
|
:1001BD00F8E6C394324007E50FB40302E4F6740881
|
||||||
|
:1001CD00250FF8E6C394134007E50FB40402E4F6D7
|
||||||
|
:1001DD007408250FF8E6C394074007E50FB4050230
|
||||||
|
:1001ED007601E514C39432500A20B0071205E605D6
|
||||||
|
:1001FD001480EFE4F5140513E513C394054006E4EC
|
||||||
|
:0B020D00F51312036012000602013E10
|
||||||
|
:100006007F801205F37F321205FF7F301205FFE570
|
||||||
|
:100016000EC4540F2430FF1205FFE50E540F243092
|
||||||
|
:10002600FF1205FF7F2D1205FFE50CC4540F243087
|
||||||
|
:10003600FF1205FFE50C540F2430FF1205FF7F2D3C
|
||||||
|
:100046001205FFE50BC4540F2430FF1205FFE50B24
|
||||||
|
:10005600540F2430FF1205FF7F8B1205F3E50D5474
|
||||||
|
:10006600072430FF1205FF7FC01205F3E50AC454CA
|
||||||
|
:100076000F2430FF1205FFE50A540F2430FF120546
|
||||||
|
:10008600FF7F3A1205FFE509C4540F2430FF12051D
|
||||||
|
:10009600FFE509540F2430FF1205FF7F3A1205FFD2
|
||||||
|
:1000A600E508C4540F2430FF1205FFE508540F2459
|
||||||
|
:1000B60030FF1205FF7FC91205F38511158512164B
|
||||||
|
:1000C600C3E5156480948050127F2D1205FFC3E4AA
|
||||||
|
:1000D6009516F516E49515F51580057F201205FF92
|
||||||
|
:1000E600AE15AF167C007D6412022AEF2430FF1293
|
||||||
|
:1000F60005FFAE15AF167C007D0A12022A7C007D34
|
||||||
|
:100106000A12022AED2430FF1205FF7F2E1205FF88
|
||||||
|
:10011600AE15AF167C007D0A12022AED2430FF12BE
|
||||||
|
:0701260005FF7F430205FF06
|
||||||
|
:10036000E4F517FB7A00791512056C503FE515305E
|
||||||
|
:10037000E714E516F4FFE515F4FEEF2401F516E4A5
|
||||||
|
:100380003EF515751701AE15AF167C007D0A1202F9
|
||||||
|
:10039000187D1012022A8E118F12E517600BC3E42C
|
||||||
|
:0C03A0009512F512E49511F51112060BF0
|
||||||
|
:0103AC00222E
|
||||||
|
:07061300D288D2A8D2AF2269
|
||||||
|
:030003000203AD48
|
||||||
|
:1003AD00C0E0C0F0C083C082C0D075D000C000C016
|
||||||
|
:1003BD0001C002C003C004C005C006C0071205E697
|
||||||
|
:1003CD0020B20EE510B401031205896310FF750FFD
|
||||||
|
:1003DD0000D007D006D005D004D003D002D001D074
|
||||||
|
:0C03ED0000D0D0D082D083D0F0D0E0321D
|
||||||
|
:0C05E6007F017E267D82DDFEDEFADFF65E
|
||||||
|
:0105F20022E6
|
||||||
|
:10044300C2A58B807F017E0012046CD2A77F057E3C
|
||||||
|
:100453000012046CC2A7EBC454F0F5807F017E0048
|
||||||
|
:0904630012046CD2A77F057E0093
|
||||||
|
:10046C00D3EF9400EE9400400F7DC77C01DCFEDDE1
|
||||||
|
:08047C00FAEF1F70EB1E80E88F
|
||||||
|
:010484002255
|
||||||
|
:0C05F300AB07C2A7C2A6120443C2A72295
|
||||||
|
:0C05FF00AB07C2A7D2A6120443C2A72279
|
||||||
|
:10054E007F321205F37F281205F37F0C1205F37F1D
|
||||||
|
:0E055E00061205F37F011205F37F800205F3FC
|
||||||
|
:0E05D80081838587898B8D80828486888A8CBA
|
||||||
|
:0905BD00070800001201010213FD
|
||||||
|
:0C048500EC9005DF93FF74082CF8E6FDF6
|
||||||
|
:10049100C29200C29000D29200E4FEEF139291EF5B
|
||||||
|
:1004A100C313FFD29000C290000EBE08EEE4FEED31
|
||||||
|
:1004B100139291EDC313FDD29000C290000EBE08BD
|
||||||
|
:0404C100EEC29200F5
|
||||||
|
:0104C5002214
|
||||||
|
:1003F900C29200C29000D29200E4FDEF139291EFF5
|
||||||
|
:10040900C313FFD29000C290000DBD08EE00E4FDB9
|
||||||
|
:10041900A291E433FFC43333335480FCEEC3134C4D
|
||||||
|
:10042900FED29000C290000DBD08E5C29200D290A4
|
||||||
|
:0904390000C29100D29100AF064F
|
||||||
|
:010442002297
|
||||||
|
:1004ED007F811203F9EF30E717E4FD7F8E1204913F
|
||||||
|
:1004FD00E4FC1204850CBC07F97D807F8E120491FB
|
||||||
|
:01050D0022CB
|
||||||
|
:10058900E4FD7F8E120491E4FC1204850CBC07F98A
|
||||||
|
:070599007D807F8E020491BA
|
||||||
|
:1005A000E4FBEB9005D893FF1203F974082BF8A62F
|
||||||
|
:0505B000070BBB07ED85
|
||||||
|
:0105B5002223
|
||||||
|
:1005C700C2B7E4FF0FBFC8FCD2B7E4FF0FBF64FC9C
|
||||||
|
:0105D7002201
|
||||||
|
:0504C6001205C77FCC08
|
||||||
|
:1004CB00E4FEC2B700EF30E004D2B78002C2B7E45B
|
||||||
|
:1004DB00FD0DBD1EFCD2B70000EFC313FF0EBE080F
|
||||||
|
:0104EB00E12F
|
||||||
|
:0104EC0022ED
|
||||||
|
:10052F00E4FFFEEFC313FFC2B700D2B7000030B72E
|
||||||
|
:0E053F0003430780E4FD0DBD14FC0EBE08E56D
|
||||||
|
:01054D00228B
|
||||||
|
:08060B001204C67F440204CB77
|
||||||
|
:10050E00AC071204C67F4E1204CBE4FF1204CBE4F8
|
||||||
|
:10051E00FF1204CBAF041204CB1204C67F480204B0
|
||||||
|
:01052E00CB01
|
||||||
|
:10056C001204C67FBE1204CB12052FAC0712052F46
|
||||||
|
:0C057C00EFFFAD04EDCF8FF0120260D352
|
||||||
|
:010588002250
|
||||||
|
:1002E00002012DE493A3F8E493A34003F68001F206
|
||||||
|
:1002F00008DFF48029E493A3F85407240CC8C3331F
|
||||||
|
:10030000C4540F4420C8834004F456800146F6DFED
|
||||||
|
:10031000E4800B01020408102040809005B6E47EC2
|
||||||
|
:10032000019360BCA3FF543F30E509541FFEE493E2
|
||||||
|
:10033000A360010ECF54C025E060A840B8E493A3A9
|
||||||
|
:10034000FAE493A3F8E493A3C8C582C8CAC583CAD4
|
||||||
|
:10035000F0A3C8C582C8CAC583CADFE9DEE780BE8C
|
||||||
|
:0105C6000034
|
||||||
|
:10021800EF8DF0A4A8F0CF8CF0A428CE8DF0A42EFA
|
||||||
|
:02022800FE22B4
|
||||||
|
:10022A00C2D5EC30E709B2D5E4C39DFDE49CFCEEEF
|
||||||
|
:10023A0030E715B2D5E4C39FFFE49EFE12027FC3E6
|
||||||
|
:10024A00E49DFDE49CFC800312027F30D507C3E4E1
|
||||||
|
:06025A009FFFE49EFE225E
|
||||||
|
:10026000BB010A89828A83F0E5F0A3F0225006F7E9
|
||||||
|
:0F02700009A7F01922BBFE06F3E5F009F31922E6
|
||||||
|
:10027F00BC000BBE0029EF8DF084FFADF022E4CC63
|
||||||
|
:10028F00F875F008EF2FFFEE33FEEC33FCEE9DEC2C
|
||||||
|
:10029F00984005FCEE9DFE0FD5F0E9E4CEFD22ED72
|
||||||
|
:1002AF00F8F5F0EE8420D21CFEADF075F008EF2FBC
|
||||||
|
:1002BF00FFED33FD4007985006D5F0F222C398FDAD
|
||||||
|
:0502CF000FD5F0EA224A
|
||||||
|
:00000001FF
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,380 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>Target 1</TargetName>
|
||||||
|
<ToolsetNumber>0x0</ToolsetNumber>
|
||||||
|
<ToolsetName>MCS-51</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>AT89C51</Device>
|
||||||
|
<Vendor>Atmel</Vendor>
|
||||||
|
<Cpu>IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000)</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
|
||||||
|
<FlashDriverDll></FlashDriverDll>
|
||||||
|
<DeviceId>2976</DeviceId>
|
||||||
|
<RegisterFile>REGX51.H</RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath>Atmel\</RegisterFilePath>
|
||||||
|
<DBRegisterFilePath>Atmel\</DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\</OutputDirectory>
|
||||||
|
<OutputName>pro</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>1</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath>.\</ListingPath>
|
||||||
|
<HexFormatSelection>0</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<BankNo>65535</BankNo>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>S8051.DLL</SimDllName>
|
||||||
|
<SimDllArguments></SimDllArguments>
|
||||||
|
<SimDlgDll>DP51.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-p51</SimDlgDllArguments>
|
||||||
|
<TargetDllName>S8051.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments></TargetDllArguments>
|
||||||
|
<TargetDlgDll>TP51.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-p51</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>0</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
<Simulator>
|
||||||
|
<UseSimulator>1</UseSimulator>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>1</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||||
|
</Simulator>
|
||||||
|
<Target>
|
||||||
|
<UseTarget>0</UseTarget>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>0</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>0</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
</Target>
|
||||||
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
|
<TargetSelection>-1</TargetSelection>
|
||||||
|
<SimDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
</SimDlls>
|
||||||
|
<TargetDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
<Driver></Driver>
|
||||||
|
</TargetDlls>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>0</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>0</Capability>
|
||||||
|
<DriverSelection>-1</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<Flash2></Flash2>
|
||||||
|
<Flash3></Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
</Utilities>
|
||||||
|
<Target51>
|
||||||
|
<Target51Misc>
|
||||||
|
<MemoryModel>0</MemoryModel>
|
||||||
|
<RTOS>0</RTOS>
|
||||||
|
<RomSize>2</RomSize>
|
||||||
|
<DataHold>0</DataHold>
|
||||||
|
<XDataHold>0</XDataHold>
|
||||||
|
<UseOnchipRom>0</UseOnchipRom>
|
||||||
|
<UseOnchipArithmetic>0</UseOnchipArithmetic>
|
||||||
|
<UseMultipleDPTR>0</UseMultipleDPTR>
|
||||||
|
<UseOnchipXram>0</UseOnchipXram>
|
||||||
|
<HadIRAM>1</HadIRAM>
|
||||||
|
<HadXRAM>0</HadXRAM>
|
||||||
|
<HadIROM>1</HadIROM>
|
||||||
|
<Moda2>0</Moda2>
|
||||||
|
<Moddp2>0</Moddp2>
|
||||||
|
<Modp2>0</Modp2>
|
||||||
|
<Mod517dp>0</Mod517dp>
|
||||||
|
<Mod517au>0</Mod517au>
|
||||||
|
<Mode2>0</Mode2>
|
||||||
|
<useCB>0</useCB>
|
||||||
|
<useXB>0</useXB>
|
||||||
|
<useL251>0</useL251>
|
||||||
|
<useA251>0</useA251>
|
||||||
|
<Mx51>0</Mx51>
|
||||||
|
<ModC812>0</ModC812>
|
||||||
|
<ModCont>0</ModCont>
|
||||||
|
<Lp51>0</Lp51>
|
||||||
|
<useXBS>0</useXBS>
|
||||||
|
<ModDA>0</ModDA>
|
||||||
|
<ModAB2>0</ModAB2>
|
||||||
|
<Mx51P>0</Mx51P>
|
||||||
|
<hadXRAM2>0</hadXRAM2>
|
||||||
|
<uocXram2>0</uocXram2>
|
||||||
|
<ModC2>0</ModC2>
|
||||||
|
<ModH2>0</ModH2>
|
||||||
|
<Mdu_R515>0</Mdu_R515>
|
||||||
|
<Mdu_F120>0</Mdu_F120>
|
||||||
|
<Psoc>0</Psoc>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<ModSmx2>0</ModSmx2>
|
||||||
|
<cBanks>0</cBanks>
|
||||||
|
<xBanks>0</xBanks>
|
||||||
|
<OnChipMemories>
|
||||||
|
<RCB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x10000</Size>
|
||||||
|
</RCB>
|
||||||
|
<RXB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</RXB>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocr1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr1>
|
||||||
|
<Ocr2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr2>
|
||||||
|
<Ocr3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr3>
|
||||||
|
<IRO>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x1000</Size>
|
||||||
|
</IRO>
|
||||||
|
<IRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x80</Size>
|
||||||
|
</IRA>
|
||||||
|
<XRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA>
|
||||||
|
<XRA512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA512>
|
||||||
|
<IROM512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</IROM512>
|
||||||
|
</OnChipMemories>
|
||||||
|
</Target51Misc>
|
||||||
|
<C51>
|
||||||
|
<RegisterColoring>0</RegisterColoring>
|
||||||
|
<VariablesInOrder>0</VariablesInOrder>
|
||||||
|
<IntegerPromotion>1</IntegerPromotion>
|
||||||
|
<uAregs>0</uAregs>
|
||||||
|
<UseInterruptVector>1</UseInterruptVector>
|
||||||
|
<Fuzzy>3</Fuzzy>
|
||||||
|
<Optimize>8</Optimize>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<SizeSpeed>1</SizeSpeed>
|
||||||
|
<ObjectExtend>1</ObjectExtend>
|
||||||
|
<ACallAJmp>0</ACallAJmp>
|
||||||
|
<InterruptVectorAddress>0</InterruptVectorAddress>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</C51>
|
||||||
|
<Ax51>
|
||||||
|
<UseMpl>0</UseMpl>
|
||||||
|
<UseStandard>1</UseStandard>
|
||||||
|
<UseCase>0</UseCase>
|
||||||
|
<UseMod51>0</UseMod51>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Ax51>
|
||||||
|
<Lx51>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<linkonly>0</linkonly>
|
||||||
|
<UseMemoryFromTarget>1</UseMemoryFromTarget>
|
||||||
|
<CaseSensitiveSymbols>0</CaseSensitiveSymbols>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<DataOverlaying>1</DataOverlaying>
|
||||||
|
<OverlayString></OverlayString>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<DisableWarningNumbers></DisableWarningNumbers>
|
||||||
|
<LinkerCmdFile></LinkerCmdFile>
|
||||||
|
<Assign></Assign>
|
||||||
|
<ReserveString></ReserveString>
|
||||||
|
<CClasses></CClasses>
|
||||||
|
<UserClasses></UserClasses>
|
||||||
|
<CSection></CSection>
|
||||||
|
<UserSection></UserSection>
|
||||||
|
<CodeBaseAddress></CodeBaseAddress>
|
||||||
|
<XDataBaseAddress></XDataBaseAddress>
|
||||||
|
<PDataBaseAddress></PDataBaseAddress>
|
||||||
|
<BitBaseAddress></BitBaseAddress>
|
||||||
|
<DataBaseAddress></DataBaseAddress>
|
||||||
|
<IDataBaseAddress></IDataBaseAddress>
|
||||||
|
<Precede></Precede>
|
||||||
|
<Stack></Stack>
|
||||||
|
<CodeSegmentName></CodeSegmentName>
|
||||||
|
<XDataSegmentName></XDataSegmentName>
|
||||||
|
<BitSegmentName></BitSegmentName>
|
||||||
|
<DataSegmentName></DataSegmentName>
|
||||||
|
<IDataSegmentName></IDataSegmentName>
|
||||||
|
</Lx51>
|
||||||
|
</Target51>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source Group 1</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>STARTUP.A51</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\STARTUP.A51</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>main.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\main.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>lcd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\lcd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ds1302.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\ds1302.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ds18b20.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\ds18b20.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Reference in New Issue
Block a user