第二次优化代码,增加闹钟、蜂鸣器功能。
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,143 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* �� �� �� : 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();
|
||||
|
||||
|
||||
//---����ȫ�ֱ���--//
|
||||
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,135 @@
|
||||
#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;
|
||||
Lcd1602_Delay1ms(1);
|
||||
|
||||
LCD1602_E = 1;
|
||||
Lcd1602_Delay1ms(1);
|
||||
LCD1602_E = 0;
|
||||
|
||||
Lcd1602_Delay1ms(1);
|
||||
LCD1602_DATAPINS = com << 4;
|
||||
Lcd1602_Delay1ms(1);
|
||||
|
||||
LCD1602_E = 1;
|
||||
Lcd1602_Delay1ms(1);
|
||||
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;
|
||||
Lcd1602_Delay1ms(1);
|
||||
|
||||
LCD1602_E = 1;
|
||||
Lcd1602_Delay1ms(1);
|
||||
LCD1602_E = 0;
|
||||
|
||||
Lcd1602_Delay1ms(1);
|
||||
LCD1602_DATAPINS = dat << 4;
|
||||
Lcd1602_Delay1ms(1);
|
||||
|
||||
LCD1602_E = 1;
|
||||
Lcd1602_Delay1ms(1);
|
||||
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); //����λ���µij�ʼ��
|
||||
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,625 @@
|
||||
/*******************************************************************************
|
||||
* ʵ���� : ʱ��+�¶�+����+����
|
||||
* K1=P3^1: ���ӣ�����
|
||||
* K2=P3^0: ������
|
||||
* K3=P3^2: + / ������ʼ/��ͣ
|
||||
* K4=P3^3: - / ��������
|
||||
* Buzzer=P2^0
|
||||
*******************************************************************************/
|
||||
|
||||
#include<reg51.h>
|
||||
#include<intrins.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;
|
||||
sbit Buzzer=P2^0;
|
||||
|
||||
void Delay10ms(void);
|
||||
void LcdFramework(void);
|
||||
void LcdUpdate(void);
|
||||
void TempPros(void);
|
||||
void KeyScan(void);
|
||||
void SetAlarm(void);
|
||||
void AlarmJudge(void);
|
||||
void AlarmBuzPro(void);
|
||||
void Timer1Init(void);
|
||||
void KeySound(void);
|
||||
void ReturnSound(void);
|
||||
void DelayMs(unsigned int ms);
|
||||
|
||||
unsigned char mode = 0;
|
||||
unsigned char last_mode = 0xFF;
|
||||
int temperature = 0;
|
||||
unsigned char temp_cnt = 0;
|
||||
|
||||
unsigned char alarm_hour = 6;
|
||||
unsigned char alarm_min = 0;
|
||||
unsigned char alarm_on = 0;
|
||||
unsigned char alarm_buz = 0;
|
||||
unsigned int alarm_buz_cnt = 0;
|
||||
|
||||
unsigned int sw_sec = 0;
|
||||
unsigned char sw_csec = 0;
|
||||
bit sw_running = 0;
|
||||
|
||||
/*******************************************************************************
|
||||
* main
|
||||
*******************************************************************************/
|
||||
void main()
|
||||
{
|
||||
Timer1Init();
|
||||
LcdInit();
|
||||
|
||||
Buzzer = 0;
|
||||
Delay10ms();Delay10ms();Delay10ms();Delay10ms();Delay10ms();
|
||||
Delay10ms();Delay10ms();Delay10ms();Delay10ms();Delay10ms(); // 100ms
|
||||
Buzzer = 1;
|
||||
|
||||
Ds1302Init();
|
||||
DS18B20_SetResolution(0x3F);
|
||||
DS18B20_StartConvert();
|
||||
|
||||
alarm_hour = Ds1302Read(0xC1);
|
||||
if(alarm_hour > 23) alarm_hour = 6;
|
||||
alarm_min = Ds1302Read(0xC3);
|
||||
if(alarm_min > 59) alarm_min = 0;
|
||||
alarm_on = Ds1302Read(0xC5);
|
||||
if(alarm_on > 1) alarm_on = 0;
|
||||
|
||||
while(1)
|
||||
{
|
||||
Ds1302ReadTime();
|
||||
|
||||
temp_cnt++;
|
||||
if(temp_cnt >= 5)
|
||||
{
|
||||
temp_cnt = 0;
|
||||
TempPros();
|
||||
}
|
||||
|
||||
if(mode != last_mode)
|
||||
{
|
||||
LcdFramework();
|
||||
last_mode = mode;
|
||||
}
|
||||
|
||||
AlarmJudge();
|
||||
AlarmBuzPro();
|
||||
KeyScan();
|
||||
LcdUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
void ShowLcdNum(unsigned char num)
|
||||
{
|
||||
LcdWriteData('0' + num / 10);
|
||||
LcdWriteData('0' + num % 10);
|
||||
}
|
||||
|
||||
void ShowLcdWeek(unsigned char week)
|
||||
{
|
||||
switch(week)
|
||||
{
|
||||
case 1: LcdWriteData('S'); LcdWriteData('u'); LcdWriteData('n'); break;
|
||||
case 2: LcdWriteData('M'); LcdWriteData('o'); LcdWriteData('n'); break;
|
||||
case 3: LcdWriteData('T'); LcdWriteData('u'); LcdWriteData('e'); break;
|
||||
case 4: LcdWriteData('W'); LcdWriteData('e'); LcdWriteData('d'); break;
|
||||
case 5: LcdWriteData('T'); LcdWriteData('h'); LcdWriteData('u'); break;
|
||||
case 6: LcdWriteData('F'); LcdWriteData('r'); LcdWriteData('i'); break;
|
||||
case 7: LcdWriteData('S'); LcdWriteData('a'); LcdWriteData('t'); break;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* LcdFramework - д��̬֡��
|
||||
*******************************************************************************/
|
||||
void LcdFramework()
|
||||
{
|
||||
if(mode == 0)
|
||||
{
|
||||
LcdWriteCom(0x0c);
|
||||
|
||||
LcdWriteCom(0x80);
|
||||
LcdWriteData('2'); LcdWriteData('0');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData('-');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData('-');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
|
||||
LcdWriteCom(0x80+0x40);
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(':');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(':');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
}
|
||||
else if(mode == 2)
|
||||
{
|
||||
LcdWriteCom(0x0c);
|
||||
|
||||
LcdWriteCom(0x80);
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData('S'); LcdWriteData('t'); LcdWriteData('o');
|
||||
LcdWriteData('p'); LcdWriteData(' ');
|
||||
LcdWriteData('W'); LcdWriteData('a'); LcdWriteData('t');
|
||||
LcdWriteData('c'); LcdWriteData('h');
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
|
||||
LcdWriteCom(0x80+0x40);
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(':'); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(':');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData('.');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* LcdUpdate - ������ֵ
|
||||
*******************************************************************************/
|
||||
void LcdUpdate()
|
||||
{
|
||||
unsigned char t;
|
||||
int temp_disp;
|
||||
|
||||
if(mode == 0)
|
||||
{
|
||||
LcdWriteCom(0x82);
|
||||
ShowLcdNum((TIME[6]>>4)*10 + (TIME[6]&0x0f));
|
||||
|
||||
LcdWriteCom(0x85);
|
||||
ShowLcdNum((TIME[4]>>4)*10 + (TIME[4]&0x0f));
|
||||
|
||||
LcdWriteCom(0x88);
|
||||
ShowLcdNum((TIME[3]>>4)*10 + (TIME[3]&0x0f));
|
||||
|
||||
LcdWriteCom(0x8C);
|
||||
ShowLcdWeek(TIME[5] & 0x07);
|
||||
|
||||
LcdWriteCom(0xC0);
|
||||
ShowLcdNum((TIME[2]>>4)*10 + (TIME[2]&0x0f));
|
||||
|
||||
LcdWriteCom(0xC3);
|
||||
ShowLcdNum((TIME[1]>>4)*10 + (TIME[1]&0x0f));
|
||||
|
||||
LcdWriteCom(0xC6);
|
||||
ShowLcdNum((TIME[0]>>4)*10 + (TIME[0]&0x0f));
|
||||
|
||||
LcdWriteCom(0xC9);
|
||||
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');
|
||||
}
|
||||
else if(mode == 2)
|
||||
{
|
||||
t = sw_sec / 3600;
|
||||
LcdWriteCom(0xC0);
|
||||
LcdWriteData('0' + t / 10);
|
||||
LcdWriteData('0' + t % 10);
|
||||
|
||||
LcdWriteCom(0xC3);
|
||||
t = (sw_sec % 3600) / 60;
|
||||
LcdWriteData('0' + t / 10);
|
||||
LcdWriteData('0' + t % 10);
|
||||
|
||||
LcdWriteCom(0xC6);
|
||||
LcdWriteData('0' + (sw_sec % 60) / 10);
|
||||
LcdWriteData('0' + (sw_sec % 60) % 10);
|
||||
|
||||
LcdWriteCom(0xC9);
|
||||
LcdWriteData('0' + sw_csec / 10);
|
||||
LcdWriteData('0' + sw_csec % 10);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* KeyScan
|
||||
*******************************************************************************/
|
||||
void KeyScan()
|
||||
{
|
||||
if(mode == 0)
|
||||
{
|
||||
if(K1 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K1 == 0)
|
||||
{
|
||||
while(!K1);
|
||||
SetAlarm();
|
||||
last_mode = 0xFF;
|
||||
ReturnSound();
|
||||
}
|
||||
}
|
||||
if(K2 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K2 == 0)
|
||||
{
|
||||
while(!K2);
|
||||
KeySound();
|
||||
mode = 2;
|
||||
sw_running = 0;
|
||||
sw_sec = 0;
|
||||
sw_csec = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(mode == 2)
|
||||
{
|
||||
if(K3 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K3 == 0)
|
||||
{
|
||||
while(!K3);
|
||||
KeySound();
|
||||
sw_running = !sw_running;
|
||||
TR1 = sw_running;
|
||||
}
|
||||
}
|
||||
if(K4 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K4 == 0)
|
||||
{
|
||||
while(!K4);
|
||||
KeySound();
|
||||
if(!sw_running)
|
||||
{
|
||||
sw_sec = 0;
|
||||
sw_csec = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(K2 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K2 == 0)
|
||||
{
|
||||
while(!K2);
|
||||
mode = 0;
|
||||
TR1 = 0;
|
||||
sw_running = 0;
|
||||
sw_sec = 0;
|
||||
sw_csec = 0;
|
||||
ReturnSound();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* SetAlarm - 设置闹钟(阻塞式,仿照示例代码KeyScanf2)
|
||||
*******************************************************************************/
|
||||
void SetAlarm()
|
||||
{
|
||||
LcdWriteCom(0x80);
|
||||
LcdWriteData('A'); LcdWriteData('l'); LcdWriteData('a'); LcdWriteData('r');
|
||||
LcdWriteData('m'); LcdWriteData(' '); LcdWriteData('C'); LcdWriteData('l');
|
||||
LcdWriteData('o'); LcdWriteData('c'); LcdWriteData('k'); LcdWriteData(' ');
|
||||
LcdWriteData('S'); LcdWriteData('e'); LcdWriteData('t'); LcdWriteData(' ');
|
||||
|
||||
LcdWriteCom(0xC0);
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(':'); LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' '); LcdWriteData(' ');
|
||||
|
||||
LcdWriteCom(0xC3);
|
||||
LcdWriteData('0' + alarm_hour / 10);
|
||||
LcdWriteData('0' + alarm_hour % 10);
|
||||
LcdWriteCom(0xC6);
|
||||
LcdWriteData('0' + alarm_min / 10);
|
||||
LcdWriteData('0' + alarm_min % 10);
|
||||
LcdWriteCom(0xCA);
|
||||
if(alarm_on) { LcdWriteData(' '); LcdWriteData('O'); LcdWriteData('N'); }
|
||||
else { LcdWriteData('O'); LcdWriteData('F'); LcdWriteData('F'); }
|
||||
|
||||
LcdWriteCom(0xC4);
|
||||
LcdWriteCom(0x0f);
|
||||
while(1)
|
||||
{
|
||||
if(K3 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K3 == 0)
|
||||
{
|
||||
while(!K3);
|
||||
KeySound();
|
||||
if(alarm_hour < 23) alarm_hour++; else alarm_hour = 0;
|
||||
LcdWriteCom(0xC3);
|
||||
LcdWriteData('0' + alarm_hour / 10);
|
||||
LcdWriteData('0' + alarm_hour % 10);
|
||||
LcdWriteCom(0xC4);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K4 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K4 == 0)
|
||||
{
|
||||
while(!K4);
|
||||
KeySound();
|
||||
if(alarm_hour > 0) alarm_hour--; else alarm_hour = 23;
|
||||
LcdWriteCom(0xC3);
|
||||
LcdWriteData('0' + alarm_hour / 10);
|
||||
LcdWriteData('0' + alarm_hour % 10);
|
||||
LcdWriteCom(0xC4);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K1 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K1 == 0)
|
||||
{
|
||||
while(!K1);
|
||||
KeySound();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LcdWriteCom(0xC7);
|
||||
LcdWriteCom(0x0f);
|
||||
while(1)
|
||||
{
|
||||
if(K3 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K3 == 0)
|
||||
{
|
||||
while(!K3);
|
||||
KeySound();
|
||||
if(alarm_min < 59) alarm_min++; else alarm_min = 0;
|
||||
LcdWriteCom(0xC6);
|
||||
LcdWriteData('0' + alarm_min / 10);
|
||||
LcdWriteData('0' + alarm_min % 10);
|
||||
LcdWriteCom(0xC7);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K4 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K4 == 0)
|
||||
{
|
||||
while(!K4);
|
||||
KeySound();
|
||||
if(alarm_min > 0) alarm_min--; else alarm_min = 59;
|
||||
LcdWriteCom(0xC6);
|
||||
LcdWriteData('0' + alarm_min / 10);
|
||||
LcdWriteData('0' + alarm_min % 10);
|
||||
LcdWriteCom(0xC7);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K1 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K1 == 0)
|
||||
{
|
||||
while(!K1);
|
||||
KeySound();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LcdWriteCom(0xCC);
|
||||
LcdWriteCom(0x0f);
|
||||
while(1)
|
||||
{
|
||||
if(K3 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K3 == 0)
|
||||
{
|
||||
while(!K3);
|
||||
KeySound();
|
||||
alarm_on = 1;
|
||||
LcdWriteCom(0xCA);
|
||||
LcdWriteData(' '); LcdWriteData('O'); LcdWriteData('N');
|
||||
LcdWriteCom(0xCC);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K4 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K4 == 0)
|
||||
{
|
||||
while(!K4);
|
||||
KeySound();
|
||||
alarm_on = 0;
|
||||
LcdWriteCom(0xCA);
|
||||
LcdWriteData('O'); LcdWriteData('F'); LcdWriteData('F');
|
||||
LcdWriteCom(0xCC);
|
||||
LcdWriteCom(0x0f);
|
||||
}
|
||||
}
|
||||
if(K1 == 0)
|
||||
{
|
||||
Delay10ms();
|
||||
if(K1 == 0)
|
||||
{
|
||||
while(!K1);
|
||||
KeySound();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LcdWriteCom(0x0c);
|
||||
Ds1302Write(0x8E, 0x00);
|
||||
Ds1302Write(0xC0, alarm_hour);
|
||||
Ds1302Write(0xC2, alarm_min);
|
||||
Ds1302Write(0xC4, alarm_on);
|
||||
Ds1302Write(0x8E, 0x80);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* AlarmJudge
|
||||
*******************************************************************************/
|
||||
void AlarmJudge()
|
||||
{
|
||||
unsigned char h, m, s;
|
||||
h = (TIME[2] >> 4) * 10 + (TIME[2] & 0x0f);
|
||||
m = (TIME[1] >> 4) * 10 + (TIME[1] & 0x0f);
|
||||
s = (TIME[0] >> 4) * 10 + (TIME[0] & 0x0f);
|
||||
|
||||
if(mode == 0 && alarm_on && !alarm_buz)
|
||||
{
|
||||
if(h == alarm_hour && m == alarm_min && s < 5)
|
||||
{
|
||||
alarm_buz = 1;
|
||||
alarm_buz_cnt = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(s == 59)
|
||||
alarm_buz = 0;
|
||||
}
|
||||
|
||||
void AlarmBuzPro()
|
||||
{
|
||||
if(!alarm_buz)
|
||||
return;
|
||||
|
||||
if(!K1 || !K2 || !K3 || !K4)
|
||||
{
|
||||
DelayMs(10);
|
||||
if(!K1 || !K2 || !K3 || !K4)
|
||||
{
|
||||
alarm_buz = 0;
|
||||
Buzzer = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
alarm_buz_cnt++;
|
||||
if(alarm_buz_cnt > 50)
|
||||
{
|
||||
alarm_buz = 0;
|
||||
Buzzer = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
Buzzer = 0;
|
||||
DelayMs(50);
|
||||
Buzzer = 1;
|
||||
DelayMs(50);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Timer1Init
|
||||
*******************************************************************************/
|
||||
void Timer1Init()
|
||||
{
|
||||
TMOD &= 0x0F;
|
||||
TMOD |= 0x10;
|
||||
ET1 = 1;
|
||||
EA = 1;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Timer1 interrupt - 10ms
|
||||
*******************************************************************************/
|
||||
void Timer1() interrupt 3
|
||||
{
|
||||
TH1 = 0xD8;
|
||||
TL1 = 0xF0;
|
||||
|
||||
if(sw_running)
|
||||
{
|
||||
sw_csec++;
|
||||
if(sw_csec >= 100)
|
||||
{
|
||||
sw_csec = 0;
|
||||
sw_sec++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* TempPros
|
||||
*******************************************************************************/
|
||||
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();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Delay10ms
|
||||
*******************************************************************************/
|
||||
void DelayMs(unsigned int ms)
|
||||
{
|
||||
unsigned int i, j;
|
||||
for(i=0; i<ms; i++)
|
||||
for(j=0; j<112; j++);
|
||||
}
|
||||
|
||||
void KeySound()
|
||||
{
|
||||
Buzzer = 0;
|
||||
DelayMs(40);
|
||||
Buzzer = 1;
|
||||
}
|
||||
|
||||
void ReturnSound()
|
||||
{
|
||||
Buzzer = 0;
|
||||
DelayMs(40);
|
||||
Buzzer = 1;
|
||||
DelayMs(30);
|
||||
Buzzer = 0;
|
||||
DelayMs(40);
|
||||
Buzzer = 1;
|
||||
}
|
||||
|
||||
void Delay10ms(void)
|
||||
{
|
||||
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,240 @@
|
||||
:030000000207965E
|
||||
:0C079600787FE4F6D8FD7581240207DDB1
|
||||
:100AF100010A00010FFF020D0000011200010B06A7
|
||||
:100B0100010C000111000110000213000002080095
|
||||
:060B110000011500C10007
|
||||
:10070400120CB4120C21C2A0120C8F120C8F120CFA
|
||||
:100714008F120C8F120C8F120C8F120C8F120C8FE5
|
||||
:10072400120C8F120C8FD2A0120B217F3F120BC11F
|
||||
:10073400120CBF7FC1120A298F0BE50BD39417400B
|
||||
:1007440003750B067FC3120A298F0CE50CD3943B67
|
||||
:100754004003E4F50C7FC5120A298F11E511D394E7
|
||||
:10076400014003E4F5111200030512E512C39405D8
|
||||
:100774004006E4F5121209DCE50A650F600612046E
|
||||
:10078400F2850A0F12093412098D1208AE120323DE
|
||||
:0207940080D40F
|
||||
:040BE200540F2FFF7E
|
||||
:100BE6008F24E52475F00A842430FF120CA8E5242E
|
||||
:0C0BF60075F00A84E5F02430FF020CA822
|
||||
:10082200EF14B4070040030208AD90083A75F003D4
|
||||
:10083200A4C58325F0C5837302084F020858020835
|
||||
:100842006602087402088202089002089E7F531210
|
||||
:100852000CA87F7580077F4D120CA87F6F120CA821
|
||||
:100862007F6E80447F54120CA87F75120CA87F659E
|
||||
:1008720080367F57120CA87F65120CA87F648028EF
|
||||
:100882007F54120CA87F68120CA87F75801A7F46CD
|
||||
:10089200120CA87F72120CA87F69800C7F53120C75
|
||||
:0C08A200A87F61120CA87F74120CA82221
|
||||
:1004F200E50A600302058A7F0C120C9C7F80120CB5
|
||||
:100502009C7F32120CA87F30120CA87F20120CA8FC
|
||||
:100512007F20120CA87F2D120CA87F20120CA87F1E
|
||||
:1005220020120CA87F2D120CA87F20120CA87F206D
|
||||
:10053200120CA87F20120CA87F20120CA87F201278
|
||||
:100542000CA87F20120CA87F20120CA87F20120C6E
|
||||
:10055200A87FC0120C9C7F20120CA87F20120CA82E
|
||||
:100562007F3A120CA87F20120CA87F20120CA87FC1
|
||||
:100572003A120CA87F20120CA87F20120CA87F2010
|
||||
:10058200120CA87F2002061CE50A64026003020620
|
||||
:10059200477F0C120C9C7F80120C9C7F20120CA8AF
|
||||
:1005A2007F20120CA87F20120CA87F53120CA87F68
|
||||
:1005B20074120CA87F6F120CA87F70120CA87F20F7
|
||||
:1005C200120CA87F57120CA87F61120CA87F74121C
|
||||
:1005D2000CA87F63120CA87F68120CA87F20120C53
|
||||
:1005E200A87F20120CA87F20120CA87FC0120C9C9E
|
||||
:1005F2007F20120CA87F20120CA87F3A120CA87F31
|
||||
:1006020020120CA87F20120CA87F3A120CA87F207F
|
||||
:10061200120CA87F20120CA87F2E120CA87F201289
|
||||
:100622000CA87F20120CA87F20120CA87F20120C8D
|
||||
:10063200A87F20120CA87F20120CA87F20120CA8E1
|
||||
:060642007F20120CA8222B
|
||||
:10032300E50A60030204217F82120C9CE51CC4547D
|
||||
:100333000F75F00AA4FFE51C120BE27F85120C9CDB
|
||||
:10034300E51AC4540F75F00AA4FFE51A120BE27FF5
|
||||
:1003530088120C9CE519C4540F75F00AA4FFE51923
|
||||
:10036300120BE27F8C120C9CE51B5407FF12082230
|
||||
:100373007FC0120C9CE518C4540F75F00AA4FFE566
|
||||
:1003830018120BE27FC3120C9CE517C4540F75F0CF
|
||||
:100393000AA4FFE517120BE27FC6120C9CE516C4F4
|
||||
:1003A300540F75F00AA4FFE516120BE27FC9120C75
|
||||
:1003B3009C850D22850E23C3E52264809480501210
|
||||
:1003C3007F2D120CA8C3E49523F523E49522F5228F
|
||||
:1003D30080057F20120CA8AE22AF237C007D64121F
|
||||
:1003E30006AFEF2430FF120CA8AE22AF237C007DB2
|
||||
:1003F3000A1206AF7C007D0A1206AFED2430FF120D
|
||||
:100403000CA87F2E120CA8AE22AF237C007D0A120B
|
||||
:1004130006AFED2430FF120CA87F430204EEE50A79
|
||||
:10042300640260030204F1AE08AF097C0E7D101272
|
||||
:10043300065A8F217FC0120C9CE52175F00A842493
|
||||
:1004430030FF120CA8E52175F00A84E5F02430FF93
|
||||
:10045300120CA87FC3120C9CAE08AF097C0E7D1052
|
||||
:1004630012065A7E007F3CCFCDCFCECCCE12065A99
|
||||
:100473008F21E52175F00A842430FF120CA8E521B1
|
||||
:1004830075F00A84E5F02430FF120CA87FC6120C25
|
||||
:100493009CAE08AF097C007D3C12065A7E007F0AA1
|
||||
:1004A300CFCDCFCECCCE12065AEF2430FF120CA8FC
|
||||
:1004B300AE08AF097C007D3C12065A7E007F0ACF4E
|
||||
:1004C300CDCFCECCCE12065AED2430FF120CA87F2E
|
||||
:1004D300C9120C9CE51575F00A842430FF120CA890
|
||||
:0E04E300E51575F00A84E5F02430FF120CA830
|
||||
:0104F10022E8
|
||||
:1008AE00E50A703120B112120C8F20B10C30B1FD5F
|
||||
:1008BE0012001E750FFF120C5C20B069120C8F20F7
|
||||
:1008CE00B06330B0FD120CC7750A02C200E4F50821
|
||||
:1008DE00F509F51522E50A6402704A20B212120CCF
|
||||
:1008EE008F20B20C30B2FD120CC7B200A200928E55
|
||||
:1008FE0020B316120C8F20B31030B3FD120CC7208C
|
||||
:10090E000007E4F508F509F51520B019120C8F2033
|
||||
:10091E00B01330B0FDE4F50AC28EC200F508F50939
|
||||
:06092E00F515120C5C221D
|
||||
:10001E007F80120C9C7F41120CA87F6C120CA87F63
|
||||
:10002E0061120CA87F72120CA87F6D120CA87F2093
|
||||
:10003E00120CA87F43120CA87F6C120CA87F6F12B3
|
||||
:10004E000CA87F63120CA87F6B120CA87F20120CD9
|
||||
:10005E00A87F53120CA87F65120CA87F74120CA8EF
|
||||
:10006E007F20120CA87FC0120C9C7F20120CA87F40
|
||||
:10007E0020120CA87F20120CA87F20120CA87F2023
|
||||
:10008E00120CA87F3A120CA87F20120CA87F201207
|
||||
:10009E000CA87F20120CA87F20120CA87F20120C17
|
||||
:1000AE00A87F20120CA87F20120CA87F20120CA86B
|
||||
:1000BE007F20120CA87F20120CA87FC3120C9CE587
|
||||
:1000CE000B75F00A842430FF120CA8E50B75F00AAC
|
||||
:1000DE0084E5F02430FF120CA87FC6120C9CE50CB0
|
||||
:1000EE0075F00A842430FF120CA8E50C75F00A8412
|
||||
:1000FE00E5F02430FF120CA87FCA120C9CE51160AB
|
||||
:10010E000E7F20120CA87F4F120CA87F4E800C7F02
|
||||
:10011E004F120CA87F46120CA87F46120CA87FC463
|
||||
:10012E00120C9C7F0F120C9C20B243120C8F20B22B
|
||||
:10013E003D30B2FD120CC7E50BC394175004050BEE
|
||||
:10014E008003E4F50B7FC3120C9CE50B75F00A845B
|
||||
:10015E002430FF120CA8E50B75F00A84E5F024306C
|
||||
:10016E00FF120CA87FC4120C9C7F0F120C9C20B3A4
|
||||
:10017E0043120C8F20B33D30B3FD120CC7E50BD3E9
|
||||
:10018E0094004004150B8003750B177FC3120C9C53
|
||||
:10019E00E50B75F00A842430FF120CA8E50B75F000
|
||||
:1001AE000A84E5F02430FF120CA87FC4120C9C7F49
|
||||
:1001BE000F120C9C30B103020136120C8F30B103BA
|
||||
:1001CE0002013630B1FD120CC77FC7120C9C7F0F97
|
||||
:1001DE00120C9C20B243120C8F20B23D30B2FD1295
|
||||
:1001EE000CC7E50CC3943B5004050C8003E4F50CDE
|
||||
:1001FE007FC6120C9CE50C75F00A842430FF120C9D
|
||||
:10020E00A8E50C75F00A84E5F02430FF120CA87FE7
|
||||
:10021E00C7120C9C7F0F120C9C20B343120C8F2024
|
||||
:10022E00B33D30B3FD120CC7E50CD394004004155A
|
||||
:10023E000C8003750C3B7FC6120C9CE50C75F00A06
|
||||
:10024E00842430FF120CA8E50C75F00A84E5F02426
|
||||
:10025E0030FF120CA87FC7120C9C7F0F120C9C3023
|
||||
:10026E00B1030201E1120C8F30B1030201E130B192
|
||||
:10027E00FD120CC77FCC120C9C7F0F120C9C20B26F
|
||||
:10028E002D120C8F20B22730B2FD120CC775110142
|
||||
:10029E007FCA120C9C7F20120CA87F4F120CA87FD5
|
||||
:1002AE004E120CA87FCC120C9C7F0F120C9C20B30C
|
||||
:1002BE002D120C8F20B32730B3FD120CC7E4F511AD
|
||||
:1002CE007FCA120C9C7F4F120CA87F46120CA87F7F
|
||||
:1002DE0046120CA87FCC120C9C7F0F120C9C20B1E6
|
||||
:1002EE009D120C8F20B19730B1FD120CC77F0C12EE
|
||||
:1002FE000C9CE4FD7F8E120ABCAD0B7FC0120ABCB3
|
||||
:10030E00AD0C7FC2120ABCAD117FC4120ABC7D8037
|
||||
:05031E007F8E020ABC05
|
||||
:10093400E518C4540F75F00AA4FFE518540F2FFFEF
|
||||
:10094400E517C4540F75F00AA4FEE517540F2EFEE4
|
||||
:10095400E516C4540F75F00AA4FDE516540F2DFDD9
|
||||
:10096400E50A701EE511601AE5107016EFB50B125A
|
||||
:10097400EEB50C0EEDC394055008751001E4F513A3
|
||||
:08098400F514BD3B03E4F5107E
|
||||
:01098C002248
|
||||
:10098D00E510604A30B10930B00630B20320B3151E
|
||||
:10099D007F0A7E00120BA130B11C30B01930B21697
|
||||
:1009AD0020B30280110514E51470020513D394329F
|
||||
:1009BD00E51394004006E4F510D2A022C2A07F32C8
|
||||
:0F09CD007E00120BA1D2A07F327E00120BA1225E
|
||||
:0B0CB40053890F438910D2ABD2AF224E
|
||||
:03001B00020B7560
|
||||
:100B7500C0E0C0D0758DD8758BF03000140515E533
|
||||
:100B850015C39464400B7515000509E50970020548
|
||||
:060B950008D0D0D0E032D0
|
||||
:1009DC00E4F523FB7A007921120C3F503FE52130DE
|
||||
:1009EC00E714E522F4FFE521F4FEEF2401F522E4FF
|
||||
:1009FC003EF521752301AE21AF227C007D0A120643
|
||||
:100A0C00487D101206AF8E0D8F0EE523600BC3E4EC
|
||||
:0C0A1C00950EF50EE4950DF50D120CBFC3
|
||||
:010A280022AB
|
||||
:060B9B00C2A07F287E00CD
|
||||
:100BA100E4FDFCC3ED9FEC9E5015E4FBFA0BBB008A
|
||||
:0F0BB100010AEB64704A70F50DBD00010C80E481
|
||||
:010BC0002212
|
||||
:060CC700120B9BD2A022DB
|
||||
:100C5C00120B9BD2A07F1E120BA1C2A07F28120BDD
|
||||
:040C6C00A1D2A0224F
|
||||
:0C0C8F007F017E267D82DDFEDEFADFF6AE
|
||||
:010C9B002236
|
||||
:100A7300C2A58B807F017E00120AA3D2A77F017ECD
|
||||
:100A830000120AA3C2A77F017E00120AA3EBC4547B
|
||||
:100A9300F0F5807F017E00120AA3D2A77F017E00BA
|
||||
:100AA300D3EF9400EE9400400F7DC77C01DCFEDDA4
|
||||
:080AB300FAEF1F70EB1E80E852
|
||||
:010ABB002218
|
||||
:0C0C9C00AB07C2A7C2A6120A73C2A722AF
|
||||
:0C0CA800AB07C2A7D2A6120A73C2A72293
|
||||
:100C21007F32120C9C7F28120C9C7F0C120C9C7F33
|
||||
:0E0C310006120C9C7F01120C9C7F80020C9C12
|
||||
:0E0C810081838587898B8D80828486888A8C0A
|
||||
:090B17000716000012010102138F
|
||||
:100ABC00C29200C29000D29200E4FEEF139291EF2A
|
||||
:100ACC00C313FFD29000C290000EBE08EEE4FEED00
|
||||
:100ADC00139291EDC313FDD29000C290000EBE088C
|
||||
:040AEC00EEC29200C4
|
||||
:010AF00022E3
|
||||
:100A2900C29200C29000D29200E4FDEF139291EFBE
|
||||
:100A3900C313FFD29000C290000DBD08EE00E4FD83
|
||||
:100A4900A291E433FFC43333335480FCEEC3134C17
|
||||
:100A5900FED29000C290000DBD08E5C29200D2906E
|
||||
:090A690000C29100D29100AF0619
|
||||
:010A72002261
|
||||
:100B21007F81120A29EF30E723E4FD7F8E120ABC90
|
||||
:100B3100E4FCEC900C8893FF74162CF8E6FD120A85
|
||||
:0C0B4100BC0CBC07ED7D807F8E120ABC4E
|
||||
:010B4D002285
|
||||
:10000300E4FBEB900C8193FF120A2974162BF8A6DC
|
||||
:05001300070BBB07ED27
|
||||
:0100180022C5
|
||||
:100C7000C2B7E4FF0FBFC8FCD2B7E4FF0FBF64FCEC
|
||||
:010C80002251
|
||||
:050B4E00120C707FCCC9
|
||||
:100B5300E4FEC2B700EF30E004D2B78002C2B7E4CC
|
||||
:100B6300FD0DBD1EFCD2B70000EFC313FF0EBE0880
|
||||
:010B7300E1A0
|
||||
:010B7400225E
|
||||
:100C0200E4FFFEEFC313FFC2B700D2B7000030B754
|
||||
:0E0C120003430780E4FD0DBD14FC0EBE08E593
|
||||
:010C200022B1
|
||||
:080CBF00120B4E7F44020B539F
|
||||
:100BC100AC07120B4E7F4E120B53E4FF120B53E492
|
||||
:100BD100FF120B53AF04120B53120B4E7F48020B43
|
||||
:010BE10053C0
|
||||
:100C3F00120B4E7FBE120B53120C02AC07120C029A
|
||||
:0C0C4F00EFFFAD04EDCF8FF01206E5D3EF
|
||||
:010C5B002276
|
||||
:1007A200020704E493A3F8E493A34003F68001F262
|
||||
:1007B20008DFF48029E493A3F85407240CC8C33358
|
||||
:1007C200C4540F4420C8834004F456800146F6DF27
|
||||
:1007D200E4800B0102040810204080900AF1E47EBC
|
||||
:1007E200019360BCA3FF543F30E509541FFEE4931C
|
||||
:1007F200A360010ECF54C025E060A840B8E493A3E3
|
||||
:10080200FAE493A3F8E493A3C8C582C8CAC583CA0D
|
||||
:10081200F0A3C8C582C8CAC583CADFE9DEE780BEC5
|
||||
:010B200000D4
|
||||
:10064800EF8DF0A4A8F0CF8CF0A428CE8DF0A42EC6
|
||||
:02065800FE2280
|
||||
:10065A00BC000BBE0029EF8DF084FFADF022E4CC84
|
||||
:10066A00F875F008EF2FFFEE33FEEC33FCEE9DEC4D
|
||||
:10067A00984005FCEE9DFE0FD5F0E9E4CEFD22ED93
|
||||
:10068A00F8F5F0EE8420D21CFEADF075F008EF2FDD
|
||||
:10069A00FFED33FD4007985006D5F0F222C398FDCE
|
||||
:0506AA000FD5F0EA226B
|
||||
:1006AF00C2D5EC30E709B2D5E4C39DFDE49CFCEE66
|
||||
:1006BF0030E715B2D5E4C39FFFE49EFE12065AC37E
|
||||
:1006CF00E49DFDE49CFC800312065A30D507C3E479
|
||||
:0606DF009FFFE49EFE22D5
|
||||
:1006E500BB010A89828A83F0E5F0A3F0225006F760
|
||||
:0F06F50009A7F01922BBFE06F3E5F009F319225D
|
||||
: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