commit 90b9918dc2729533a3e19bfec5b00941ac900705 Author: Andy0613 <841676382@qq.com> Date: Mon Jul 6 21:33:00 2026 +0800 feat: åˆ�始化项目,上传åˆ�始代ç � diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e8e67a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Keil 编译产物 +*.obj +*.lst +*.map +*.bin +*.m51 +*.plg +*.lnp +*.build_log.htm + +# Proteus +*.pdsbak +*.dbk +*.bak +*.autosave +*.workspace + +# 系统文件 +.DS_Store +Thumbs.db + +# 本地é…�ç½® +.vscode/ +.idea/ \ No newline at end of file diff --git a/Keil Code/Origin/STARTUP.A51 b/Keil Code/Origin/STARTUP.A51 new file mode 100644 index 0000000..ec99b9e --- /dev/null +++ b/Keil Code/Origin/STARTUP.A51 @@ -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 Power-On Initialization of Memory +; +; With the following EQU statements the initialization of memory +; at processor reset can be defined: +; +; IDATALEN: IDATA memory size <0x0-0x100> +; Note: The absolute start-address of IDATA memory is always 0 +; The IDATA space overlaps physically the DATA and BIT areas. +IDATALEN EQU 80H +; +; XDATASTART: XDATA memory start address <0x0-0xFFFF> +; The absolute start address of XDATA memory +XDATASTART EQU 0 +; +; XDATALEN: XDATA memory size <0x0-0xFFFF> +; The length of XDATA memory in bytes. +XDATALEN EQU 0 +; +; PDATASTART: PDATA memory start address <0x0-0xFFFF> +; The absolute start address of PDATA memory +PDATASTART EQU 0H +; +; PDATALEN: PDATA memory size <0x0-0xFF> +; The length of PDATA memory in bytes. +PDATALEN EQU 0H +; +; +;------------------------------------------------------------------------------ +; +; Reentrant Stack Initialization +; +; The following EQU statements define the stack pointer for reentrant +; functions and initialized it: +; +; Stack Space for reentrant functions in the SMALL model. +; IBPSTACK: Enable SMALL model reentrant stack +; Stack space for reentrant functions in the SMALL model. +IBPSTACK EQU 0 ; set to 1 if small reentrant is used. +; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> +; Set the top of the stack to the highest location. +IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +; Stack Space for reentrant functions in the LARGE model. +; XBPSTACK: Enable LARGE model reentrant stack +; Stack space for reentrant functions in the LARGE model. +XBPSTACK EQU 0 ; set to 1 if large reentrant is used. +; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 +; +; +; Stack Space for reentrant functions in the COMPACT model. +; PBPSTACK: Enable COMPACT model reentrant stack +; Stack space for reentrant functions in the COMPACT model. +PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. +; +; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +;------------------------------------------------------------------------------ +; +; Memory Page for Using the Compact Model with 64 KByte xdata RAM +; Compact Model Page Definition +; +; Define the XDATA page used for PDATA variables. +; 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. +; +; PPAGE number <0x0-0xFF> +; uppermost 256-byte address of the page used for PDATA variables. +PPAGE EQU 0 +; +; SFR address which supplies uppermost address byte <0x0-0xFF> +; most 8051 variants use P2 as uppermost address byte +PPAGE_SFR DATA 0A0H +; +; +;------------------------------------------------------------------------------ + +; 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 +; Code Banking +; Select Bank 0 for L51_BANK.A51 Mode 4 +#if 0 +; 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 +; + LJMP ?C_START + + END diff --git a/Keil Code/Origin/ds1302.c b/Keil Code/Origin/ds1302.c new file mode 100644 index 0000000..f23c2d7 --- /dev/null +++ b/Keil Code/Origin/ds1302.c @@ -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]); + } + +} + + diff --git a/Keil Code/Origin/ds1302.h b/Keil Code/Origin/ds1302.h new file mode 100644 index 0000000..9327b95 --- /dev/null +++ b/Keil Code/Origin/ds1302.h @@ -0,0 +1,31 @@ +#ifndef __DS1302_H_ +#define __DS1302_H_ + +//---°üº¬Í·Îļþ---// +#include +#include + +//---ÖØ¶¨Ò幨¼ü´Ê---// +#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 \ No newline at end of file diff --git a/Keil Code/Origin/lcd.c b/Keil Code/Origin/lcd.c new file mode 100644 index 0000000..b32b713 --- /dev/null +++ b/Keil Code/Origin/lcd.c @@ -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); //ÔÚËÄλÏßϵijõʼ»¯ + LcdWriteCom(0x0c); //¿ªÏÔʾ²»ÏÔʾ¹â±ê + LcdWriteCom(0x06); //дһ¸öÖ¸Õë¼Ó1 + LcdWriteCom(0x01); //ÇåÆÁ + LcdWriteCom(0x80); //ÉèÖÃÊý¾ÝÖ¸ÕëÆðµã +} +#endif diff --git a/Keil Code/Origin/lcd.h b/Keil Code/Origin/lcd.h new file mode 100644 index 0000000..1c089e1 --- /dev/null +++ b/Keil Code/Origin/lcd.h @@ -0,0 +1,43 @@ +#ifndef __LCD_H_ +#define __LCD_H_ +/********************************** +µ±Ê¹ÓõÄÊÇ4λÊý¾Ý´«ÊäµÄʱºò¶¨Ò壬 +ʹÓÃ8λȡÏûÕâ¸ö¶¨Òå +**********************************/ +#define LCD1602_4PINS + +/********************************** +°üº¬Í·Îļþ +**********************************/ +#include + +//---ÖØ¶¨Ò幨¼ü´Ê---// +#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 diff --git a/Keil Code/Origin/main.c b/Keil Code/Origin/main.c new file mode 100644 index 0000000..1bc242e --- /dev/null +++ b/Keil Code/Origin/main.c @@ -0,0 +1,185 @@ +/******************************************************************************* +* ʵÑéÃû : ÍòÄêÀúʵÑé +* ʹÓõÄIO : +* ʵÑéЧ¹û :1602ÏÔʾʱÖÓ£¬°´K3½øÈëʱÖÓÉèÖ㬰´K1Ñ¡ÔñÉèÖõÄʱ·ÖÃëÈÕÔ£¬°´K2Ñ¡Ôñ +*Ñ¡ÔñÉèÖüÓ1¡£ +* ×¢Òâ £º +*******************************************************************************/ + +#include +#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--); +} \ No newline at end of file diff --git a/Keil Code/Origin/pro b/Keil Code/Origin/pro new file mode 100644 index 0000000..790c028 Binary files /dev/null and b/Keil Code/Origin/pro differ diff --git a/Keil Code/Origin/pro.hex b/Keil Code/Origin/pro.hex new file mode 100644 index 0000000..9d5a794 --- /dev/null +++ b/Keil Code/Origin/pro.hex @@ -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 diff --git a/Keil Code/Origin/pro.uvgui.Administrator b/Keil Code/Origin/pro.uvgui.Administrator new file mode 100644 index 0000000..9ea554a --- /dev/null +++ b/Keil Code/Origin/pro.uvgui.Administrator @@ -0,0 +1,1249 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 1 + 1 + 0 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 34 + 26 + 1051 + 560 + + + + 0 + + 826 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000030000000100000069483A5CC6D5D6D04843363830302D454D332056332E30BFAAB7A2B0E5D7CAC1CF5C352D2DCAB5D1E9B3CCD0F25CD6D0BCB6CAB5D1E9C0FDB3CC5C445331333032CAB1D6D34C434431363032CFD4CABEA3A8BFC9D2D4B0B4BCFCC9E8D6C3CAB1D6D3A3A95C4C43442E4800000000054C43442E4800000000C5D4F200FFFFFFFF69483A5CC6D5D6D04843363830302D454D332056332E30BFAAB7A2B0E5D7CAC1CF5C352D2DCAB5D1E9B3CCD0F25CD6D0BCB6CAB5D1E9C0FDB3CC5C445331333032CAB1D6D34C434431363032CFD4CABEA3A8BFC9D2D4B0B4BCFCC9E8D6C3CAB1D6D3A3A95C6C63642E6300000000056C63642E6300000000FFDC7800FFFFFFFF6C483A5CC6D5D6D04843363830302D454D332056332E30BFAAB7A2B0E5D7CAC1CF5C352D2DCAB5D1E9B3CCD0F25CD6D0BCB6CAB5D1E9C0FDB3CC5C445331333032CAB1D6D34C434431363032CFD4CABEA3A8BFC9D2D4B0B4BCFCC9E8D6C3CAB1D6D3A3A95C6473313330322E6300000000086473313330322E6300000000BECEA100FFFFFFFF6A483A5CC6D5D6D04843363830302D454D332056332E30BFAAB7A2B0E5D7CAC1CF5C352D2DCAB5D1E9B3CCD0F25CD6D0BCB6CAB5D1E9C0FDB3CC5C445331333032CAB1D6D34C434431363032CFD4CABEA3A8BFC9D2D4B0B4BCFCC9E8D6C3CAB1D6D3A3A95C6D61696E2E6300000000066D61696E2E6300000000F0A0A100FFFFFFFF6C483A5CC6D5D6D04843363830302D454D332056332E30BFAAB7A2B0E5D7CAC1CF5C352D2DCAB5D1E9B3CCD0F25CD6D0BCB6CAB5D1E9C0FDB3CC5C445331333032CAB1D6D34C434431363032CFD4CABEA3A8BFC9D2D4B0B4BCFCC9E8D6C3CAB1D6D3A3A95C4453313330322E4800000000084453313330322E4800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000009400000065000000560500005D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940000004F0000005D030000B3000000 + + + 16 + 19010000EA000000E20300004E010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0000002E020000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0000002E020000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 1507 + 1507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 1944 + 1944 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000077010000EE030000BC010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0000002E020000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0000002E020000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000005F02000056050000AF020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000060010000F1030000D5010000 + + + 16 + 9E000000B40000009602000015010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97000000660000005A0300009A000000 + + + 16 + 9E000000B40000009602000015010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6403000066000000EE030000BC010000 + + + 16 + 9E000000B40000002E02000044020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0000002E020000 + + + 16 + 9E000000B40000002E0100003B020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000620200005305000096020000 + + + 16 + 9E000000B40000009602000015010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000AF02000056050000C2020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59398 + 59398 + 1 + 0 + 0 + 0 + 391 + 0 + 8192 + 1 + + 16 + 000000001C0000009201000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 593980 + 59398 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000005705000017000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 644 + 0 + 8192 + 2 + + 16 + 00000000380000008F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2485 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94000000B30000005D030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E65002000000000000019010000EA000000E20300004E010000940000004F0000005D030000B30000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF5D0300004F00000061030000D5010000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E6030000EA0000007604000070020000610300004F000000F1030000D50100000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900000004F0000009400000047020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000085000000EA00000015010000E2020000000000004F00000090000000470200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005C010000F10300006001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC0500000180008000000000000085000000FB01000076040000700200000000000060010000F1030000D50100000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFF901000060010000FD010000D501000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000047020000560500004B020000010000000100001004000000010000000000000000000000FFFFFFFF07000000C5000000C700000077940000930700009407000095070000960700000180008000000100000085000000E6020000DB0500004A030000000000004B02000056050000AF0200000000000040820056070000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59398 + Build + + 573 + 00200000010000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000004001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A0000000004002400000000000000000000000000000000010000000100000000000000054275696C6487010000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A00000000000009000000000000000000000000000000000100000001000000 + + + + 59399 + Debug + + 2353 + 00200000000000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804601000000000000490000000000000000000000000000000001000000010000000000000005446562756784020000 + + + 968 + 1B00FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180DB8B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804601000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 968 + 1B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180DB8B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018001890000000000001300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180460100000000000014000000000000000000000000000000000100000001000000 + + + + 0 + 1366 + 768 + + + + +
diff --git a/Keil Code/Origin/pro.uvopt b/Keil Code/Origin/pro.uvopt new file mode 100644 index 0000000..b6dda97 --- /dev/null +++ b/Keil Code/Origin/pro.uvopt @@ -0,0 +1,1663 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + Target 1 + 0x0 + MCS-51 + + 24000000 + + 1 + 1 + 1 + 0 + + + 0 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\ATMEL\AT89C51_DS.PDF + + + 1 + Instruction Set Manual + DATASHTS\ATMEL\AT_C51ISM.PDF + + + + S8051.DLL + + DP51.DLL + -p51 + S8051.DLL + + TP51.DLL + -p51 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + DLGDP51 + (98=-1,-1,-1,-1,0)(82=-1,-1,-1,-1,0)(83=-1,-1,-1,-1,0)(84=-1,-1,-1,-1,0)(85=-1,-1,-1,-1,0)(80=-1,-1,-1,-1,0)(91=-1,-1,-1,-1,0)(92=-1,-1,-1,-1,0) + + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source Group 1 + 1 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\STARTUP.A51 + STARTUP.A51 + + + 1 + 2 + 1 + 0 + 0 + 45 + 0 + 1 + 11 + 0 + .\main.c + main.c + + + 1 + 3 + 1 + 0 + 0 + 29 + 0 + 1 + 9 + 0 + .\lcd.c + lcd.c + + + 1 + 4 + 1 + 0 + 0 + 24 + 0 + 87 + 99 + 0 + .\ds1302.c + ds1302.c + + + + + Z:\Files\�片机实训\�片机实训\中级实验例程\中级实验例程\DS1302时钟LCD1602显示(�以按键设置时钟)\程�\ds1302.h + 21 + 31 + 0 + + 0 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + + + + Z:\Files\�片机实训\�片机实训\中级实验例程\中级实验例程\DS1302时钟LCD1602显示(�以按键设置时钟)\程�\lcd.h + 1 + 1 + 0 + + 0 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + + + + Default + 1 + Build + 0 + + Default + 1 + + 59392 + 1 + File + 0 + + 0 + + 1 + 2 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 100 + 0 + 1 + 0 + + + 59398 + 2 + Build + 0 + + 0 + + 1 + 2 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 100 + 0 + 0 + 0 + + + 59399 + 3 + Debug + 0 + + 0 + + 1 + 2 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 100 + 0 + 1 + 0 + + + 197 + 4 + Build Output + 0 + + 0 + + 1 + 2 + 4 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 1 + 0 + 0 + + + 198 + 5 + Command + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 1 + 1 + 0 + + + 199 + 6 + Find in Files + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 38007 + 7 + Browse + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1939 + 8 + UART #1 + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1940 + 9 + UART #2 + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1941 + 10 + UART #3 + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1942 + 11 + UART #4 + 197 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1944 + 12 + Call Stack + 197 + + 197 + + 1 + 2 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 50 + 0 + 1 + 0 + + + 1507 + 13 + Call Stack + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 50 + 0 + 1 + 0 + + + 1935 + 14 + Locals + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 1 + 0 + + + 1936 + 15 + Watch 1 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 1 + 0 + + + 1937 + 16 + Watch 2 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1465 + 17 + Memory 1 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 1 + 0 + + + 1466 + 18 + Memory 2 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1467 + 19 + Memory 3 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1468 + 20 + Memory 4 + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 1506 + 21 + Symbols + 1944 + + 197 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 1 + 0 + + + 1005 + 22 + Project + 0 + + 0 + + 1 + 2 + 1 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 1 + 0 + + + 109 + 23 + Books + 1005 + + 1005 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 195 + 24 + Functions + 1005 + + 1005 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 196 + 25 + Templates + 1005 + + 1005 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 38003 + 26 + Registers + 1005 + + 1005 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 1 + 1 + 0 + + + 35885 + 27 + not set + 0 + + 0 + + 1 + 2 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35886 + 28 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35887 + 29 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35888 + 30 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35889 + 31 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35890 + 32 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35891 + 33 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35892 + 34 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35893 + 35 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35894 + 36 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35895 + 37 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35896 + 38 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35897 + 39 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35898 + 40 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35899 + 41 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35900 + 42 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35901 + 43 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35902 + 44 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35903 + 45 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35904 + 46 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35905 + 47 + not set + 35885 + + 35885 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 203 + 48 + Disassembly + 0 + + 0 + + 1 + 2 + 3 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 1 + 0 + + + 1913 + 49 + Instruction Trace + 203 + + 203 + + 1 + 4 + 2 + 0 + 0 + 0 + 600 + 210 + 0 + 0 + 600 + 250 + 100 + 0 + 0 + 0 + + + 35824 + 50 + Logic Analyzer + 0 + + 0 + + 1 + 6 + 0 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 1 + 0 + 0 + 0 + + + 343 + 51 + Performance Analyzer + 203 + + 203 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 204 + 52 + Performance Analyzer + 203 + + 203 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + 346 + 53 + Code Coverage + 203 + + 203 + + 1 + 4 + 2 + 0 + 0 + 0 + 210 + 600 + 0 + 0 + 250 + 600 + 100 + 0 + 0 + 0 + + + + + + 1 + 0 + + 100 + 3 + + + Z:\Files\�片机实训\�片机实训\中级实验例程\中级实验例程\DS1302时钟LCD1602显示(�以按键设置时钟)\程�\lcd.h + 23 + 1 + 1 + + + .\lcd.c + 29 + 1 + 9 + + + .\ds1302.c + 24 + 87 + 99 + + + .\main.c + 45 + 1 + 11 + + + Z:\Files\�片机实训\�片机实训\中级实验例程\中级实验例程\DS1302时钟LCD1602显示(�以按键设置时钟)\程�\ds1302.h + 0 + 21 + 31 + + + + + +
diff --git a/Keil Code/Origin/pro.uvproj b/Keil Code/Origin/pro.uvproj new file mode 100644 index 0000000..d1ecf5b --- /dev/null +++ b/Keil Code/Origin/pro.uvproj @@ -0,0 +1,375 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + + Target 1 + 0x0 + MCS-51 + + + AT89C51 + Atmel + IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000) + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 2976 + REGX51.H + + + + + + + + + + 0 + + + + Atmel\ + Atmel\ + + 0 + 0 + 0 + 0 + 1 + + .\ + pro + 1 + 0 + 1 + 1 + 1 + .\ + 0 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 65535 + + + S8051.DLL + + DP51.DLL + -p51 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + + + + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x1000 + + + 0 + 0x0 + 0x80 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Source Group 1 + + + STARTUP.A51 + 2 + .\STARTUP.A51 + + + main.c + 1 + .\main.c + + + lcd.c + 1 + .\lcd.c + + + ds1302.c + 1 + .\ds1302.c + + + + + + + +
diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..41f72a6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 ZITONG YAN + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Proteus Simulation Diagram/project.pdsprj b/Proteus Simulation Diagram/project.pdsprj new file mode 100644 index 0000000..2468ee8 Binary files /dev/null and b/Proteus Simulation Diagram/project.pdsprj differ diff --git a/docs/Picture.jpg b/docs/Picture.jpg new file mode 100644 index 0000000..1a0de23 Binary files /dev/null and b/docs/Picture.jpg differ diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 0000000..73bc102 --- /dev/null +++ b/docs/readme.md @@ -0,0 +1,32 @@ +# 51 �片机万年历电�时钟 + +## 功能特性 + +- 实时显示年月日�星期�时分秒 +- 自动闰年判断 +- 按键调节时间 +- 支�秒表功能 +- 支�温度显示功能 + +## 硬件平� +- STC89C52RC +- DS1302 实时时钟 +- LCD1602 液晶显示 +- DS18B20 温度采集 + +## 软件设计 +- 采用模�化驱动设计 +- 定时器中断计时 +- 按键状�机消抖 + +## 实物展示 +![实物接线图](https://raw.githubusercontent.com/Andy0613/STC89C51-Perpetual-Calendar/main/docs/Picture.jpg) + +## 仿真图展示 + +![万年历仿真图](https://raw.githubusercontent.com/Andy0613/STC89C51-Perpetual-Calendar/main/docs/schematic/circuit.png) + +## 代�说明 +- `Keil Code/Last/`:当�(最终)版本�� +- `Keil Code/Revise_X`:代�更改历�(归档) +- `Keil Code/Origin/`:�始实训版本(归档) diff --git a/docs/schematic/circuit.png b/docs/schematic/circuit.png new file mode 100644 index 0000000..e093070 Binary files /dev/null and b/docs/schematic/circuit.png differ