feat: 初始化项目,上传初始代码
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,137 @@
|
||||
#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;
|
||||
Ds1302Write(0x8E,0X00); //禁止写保护,就是关闭写保护功能
|
||||
for (n=0; n<7; n++)//写入7个字节的时钟信号:分秒时日月周年
|
||||
{
|
||||
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,31 @@
|
||||
#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=P3^4;
|
||||
sbit RST=P3^5;
|
||||
sbit SCLK=P3^6;
|
||||
|
||||
//---定义全局函数---//
|
||||
void Ds1302Write(uchar addr, uchar dat);
|
||||
uchar Ds1302Read(uchar addr);
|
||||
void Ds1302Init();
|
||||
void Ds1302ReadTime();
|
||||
|
||||
//---加入全局变量--//
|
||||
extern uchar TIME[7]; //加入全局变量
|
||||
|
||||
#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,185 @@
|
||||
/*******************************************************************************
|
||||
* 实验名 : 万年历实验
|
||||
* 使用的IO :
|
||||
* 实验效果 :1602显示时钟,按K3进入时钟设置,按K1选择设置的时分秒日月,按K2选择
|
||||
*选择设置加1。
|
||||
* 注意 :
|
||||
*******************************************************************************/
|
||||
|
||||
#include<reg51.h>
|
||||
#include"lcd.h"
|
||||
#include"ds1302.h"
|
||||
|
||||
sbit K1=P3^1;
|
||||
sbit K2=P3^0;
|
||||
sbit K3=P3^2;
|
||||
sbit K4=P3^3; //管脚接线
|
||||
|
||||
void Int0Configuration();
|
||||
void LcdDisplay();
|
||||
unsigned char SetState,SetPlace;
|
||||
void Delay10ms(void); //误差 0us
|
||||
/*******************************************************************************
|
||||
* 函数名 : main
|
||||
* 函数功能 : 主函数
|
||||
* 输入 : 无
|
||||
* 输出 : 无
|
||||
*******************************************************************************/
|
||||
|
||||
void main()
|
||||
{
|
||||
unsigned char i;
|
||||
Int0Configuration();
|
||||
LcdInit();
|
||||
Ds1302Init();
|
||||
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;
|
||||
}
|
||||
// if(SetPlace==5) //月只能到12
|
||||
// {
|
||||
// TIME[SetPlace]=;
|
||||
// }
|
||||
}
|
||||
|
||||
while((i<50)&&(K2==0)) //检测按键是否松开
|
||||
{
|
||||
Delay10ms();
|
||||
i++;
|
||||
}
|
||||
i=0;
|
||||
|
||||
}
|
||||
}
|
||||
LcdDisplay();
|
||||
}
|
||||
|
||||
}
|
||||
/*******************************************************************************
|
||||
* 函数名 : LcdDisplay()
|
||||
* 函数功能 : 显示函数
|
||||
* 输入 : 无
|
||||
* 输出 : 无
|
||||
*******************************************************************************/
|
||||
|
||||
void LcdDisplay()
|
||||
{
|
||||
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));
|
||||
|
||||
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(0x8D);
|
||||
LcdWriteData('0'+(TIME[5]&0x07)); //星期
|
||||
}
|
||||
/*******************************************************************************
|
||||
* 函数名 : Int0Configuration()
|
||||
* 函数功能 : 配置外部中断0
|
||||
* 输入 : 无
|
||||
* 输出 : 无
|
||||
*******************************************************************************/
|
||||
|
||||
void Int0Configuration()
|
||||
{
|
||||
//设置INT0
|
||||
IT0=1;//跳变沿出发方式(下降沿)
|
||||
EX0=1;//打开INT0的中断允许。
|
||||
EA=1;//打开总中断
|
||||
}
|
||||
/*******************************************************************************
|
||||
* 函数名 : Int0()
|
||||
* 函数功能 : 外部中断0 中断函数
|
||||
* 输入 : 无
|
||||
* 输出 : 无
|
||||
*******************************************************************************/
|
||||
|
||||
void Int0() interrupt 0
|
||||
{
|
||||
Delay10ms();
|
||||
if(K3==0)
|
||||
{
|
||||
SetState=~SetState;
|
||||
SetPlace=0;
|
||||
Ds1302Init();
|
||||
}
|
||||
}
|
||||
/*******************************************************************************
|
||||
* 函数名 : 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,76 @@
|
||||
:0300000002018F6B
|
||||
:0C018F00787FE4F6D8FD7581110201D6DE
|
||||
:100006001203B7120346120323E5107006120364A7
|
||||
:100016000200D420B12612038820B10C050FE50F8B
|
||||
:10002600C394074003E4F50FE511C39432500A2048
|
||||
:10003600B107120388051180EFE4F51130B0030211
|
||||
:1000460000D412038820B0727408250FF8067408CD
|
||||
:10005600250FF8E6540FD394094004740626F67467
|
||||
:1000660008250FF8E6C394604008E50F9402500295
|
||||
:10007600E4F67408250FF8E6C394244007E50FB4A8
|
||||
:100086000202E4F67408250FF8E6C394324007E549
|
||||
:100096000FB40302E4F67408250FF8E6C394134080
|
||||
:1000A60007E50FB40402E4F67408250FF8E6C394D6
|
||||
:1000B600074007E50FB405027601E511C3943250F7
|
||||
:1000C6000A20B007120388051180EFE4F51112002B
|
||||
:0400D600DA02000F3B
|
||||
:1000DA007FC0120395E50AC4540F2430FF1203A10E
|
||||
:1000EA00E50A540F2430FF1203A17F2D1203A1E564
|
||||
:1000FA0009C4540F2430FF1203A1E509540F243018
|
||||
:10010A00FF1203A17F2D1203A1E508C4540F243066
|
||||
:10011A00FF1203A1E508540F2430FF1203A17F80C8
|
||||
:10012A001203957F321203A17F301203A1E50EC498
|
||||
:10013A00540F2430FF1203A1E50E540F2430FF128E
|
||||
:10014A0003A17F2D1203A1E50CC4540F2430FF1222
|
||||
:10015A0003A1E50C540F2430FF1203A17F2D1203D3
|
||||
:10016A00A1E50BC4540F2430FF1203A1E50B540F71
|
||||
:10017A002430FF1203A17F8D120395E50D54072445
|
||||
:05018A0030FF0203A19B
|
||||
:0703B700D288D2A8D2AF22C8
|
||||
:0300030002026591
|
||||
:10026500C0E0C0F0C083C082C0D075D000C000C05F
|
||||
:1002750001C002C003C004C005C006C00712038840
|
||||
:1002850020B2096310FF750F00120323D007D006B3
|
||||
:10029500D005D004D003D002D001D000D0D0D08278
|
||||
:0702A500D083D0F0D0E0325D
|
||||
:0C0388007F017E267D82DDFEDEFADFF6BE
|
||||
:010394002246
|
||||
:1002AC00C2A58B807F017E001202D5D2A77F057E6E
|
||||
:1002BC00001202D5C2A7EBC454F0F5807F017E007A
|
||||
:0902CC001202D5D2A77F057E00C5
|
||||
:1002D500D3EF9400EE9400400F7DC77C01DCFEDD7A
|
||||
:0802E500FAEF1F70EB1E80E828
|
||||
:0102ED0022EE
|
||||
:0C039500AB07C2A7C2A61202ACC2A7228E
|
||||
:0C03A100AB07C2A7D2A61202ACC2A72272
|
||||
:100346007F321203957F281203957F0C1203957F47
|
||||
:0E035600061203957F011203957F8002039526
|
||||
:0E037A0081838587898B8D80828486888A8C1A
|
||||
:0903AD000708000012010102130F
|
||||
:1002EE00C2B500C2B600D2B500E4FEEF1392B4EF71
|
||||
:1002FE00C313FFD2B600C2B6000EBE08EEE4FEED8A
|
||||
:10030E001392B4EDC313FDD2B600C2B6000EBE08F2
|
||||
:04031E00EEC2B50076
|
||||
:0103220022B8
|
||||
:10021B00C2B500C2B600D2B500E4FDEF1392B4EF45
|
||||
:10022B00C313FFD2B600C2B6000DBD08EE00E4FD4D
|
||||
:10023B00A2B4E433FFC43333335480FCEEC3134C0A
|
||||
:10024B00FED2B600C2B6000DBD08E5C2B500D2B6EF
|
||||
:09025B0000C2B400D2B400AF06E9
|
||||
:010264002277
|
||||
:10032300E4FD7F8E1202EEE4FCEC90038193FF74F4
|
||||
:10033300082CF8E6FD1202EE0CBC07ED7D807F8EE3
|
||||
:030343000202EEC5
|
||||
:10036400E4FBEB90037A93FF12021B74082BF8A6AC
|
||||
:05037400070BBB07EDC3
|
||||
:010379002261
|
||||
:10019B00020006E493A3F8E493A34003F68001F274
|
||||
:1001AB0008DFF48029E493A3F85407240CC8C33365
|
||||
:1001BB00C4540F4420C8834004F456800146F6DF34
|
||||
:1001CB00E4800B01020408102040809003ADE47E14
|
||||
:1001DB00019360BCA3FF543F30E509541FFEE49329
|
||||
:1001EB00A360010ECF54C025E060A840B8E493A3F0
|
||||
:1001FB00FAE493A3F8E493A3C8C582C8CAC583CA1B
|
||||
:10020B00F0A3C8C582C8CAC583CADFE9DEE780BED2
|
||||
:0103B6000046
|
||||
:00000001FF
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,375 @@
|
||||
<?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>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
</Target>
|
||||
</Targets>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user