添加了STARTUP.A51,只有main.c\main.h进行了改动,其余和网站提供的内容一致
STARTUP.A51

$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    83HNAME    ?C_STARTUP?C_C51STARTUP   SEGMENT   CODE
?STACK          SEGMENT   IDATARSEG    ?STACKDS      1EXTRN CODE (?C_START)PUBLIC  ?C_STARTUPCSEG    AT      0
?C_STARTUP:     LJMP    STARTUP1RSEG    ?C_C51STARTUPSTARTUP1:IF IDATALEN <> 0MOV     R0,#IDATALEN - 1CLR     A
IDATALOOP:      MOV     @R0,ADJNZ    R0,IDATALOOP
ENDIFIF XDATALEN <> 0MOV     DPTR,#XDATASTARTMOV     R7,#LOW (XDATALEN)IF (LOW (XDATALEN)) <> 0MOV     R6,#(HIGH (XDATALEN)) +1ELSEMOV     R6,#HIGH (XDATALEN)ENDIFCLR     A
XDATALOOP:      MOVX    @DPTR,AINC     DPTRDJNZ    R7,XDATALOOPDJNZ    R6,XDATALOOP
ENDIFIF PPAGEENABLE <> 0MOV     PPAGE_SFR,#PPAGE
ENDIFIF PDATALEN <> 0MOV     R0,#LOW (PDATASTART)MOV     R7,#LOW (PDATALEN)CLR     A
PDATALOOP:      MOVX    @R0,AINC     R0DJNZ    R7,PDATALOOP
ENDIFIF IBPSTACK <> 0
EXTRN DATA (?C_IBP)MOV     ?C_IBP,#LOW IBPSTACKTOP
ENDIFIF XBPSTACK <> 0
EXTRN DATA (?C_XBP)MOV     ?C_XBP,#HIGH XBPSTACKTOPMOV     ?C_XBP+1,#LOW XBPSTACKTOP
ENDIFIF PBPSTACK <> 0
EXTRN DATA (?C_PBP)MOV     ?C_PBP,#LOW PBPSTACKTOP
ENDIFMOV     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_STARTEND

main.c

//******* Óû§³ÌÐò¶Î1£ºÓû§³ÌÐò°üº¬Îļþ *************//
#include "main.H"//´ËÐбØÐ룡£¡£¡
#include "stdlib.h"
#define uint unsigned int
#define uchar unsigned char
//******* Óû§³ÌÐò¶Î2£ºÓû§×Ô¶¨Ò庯ÊýÉùÃ÷ *************//
//******* Óû§³ÌÐò¶Î3£ºÓû§³ÌÐòÈ«¾Ö±äÁ¿¶¨Òå *************//
uchar show_w1,show_w2,show_w3,show_w4,show_w5,show_w6,show_w7,show_w8,v,s;//v:sÊǾֱȷÖ
uint i;//״̬²ÎÊý£¬0±íʾ×ó±ß¿ªÇò£¬1±íʾÓұ߿ªÇò£¬2±íʾµÈ´ý¿ªÇò£¬3±íʾ±ÈÈü½áÊø
uint P1score,P2score;//·Ö±ðÊÇ×ó±ßºÍÓұߵķÖÊý
uchar G_value;//LEDÏÔʾ
uchar k,l,ll,m;
uint n;//ÐèÒªÕýÈ·°´ÏµÄλÖÃ
uint seed=0;
//******* Óû§³ÌÐò¶Î4£ºÓû§×Ô¶¨Ò庯ÊýÔ­ÐÍ *************//
void pingpang_Init()
{n=rand()%8;i=2;//µÈ´ý¿ªÇòv=s=0;P1score=P2score=0;show_w1=n;show_w2=10;show_w3=0;show_w4=0;show_w5=16;show_w6=17;show_w7=0;show_w8=0;
}
void my100mS_callback()
{if(i==2)//i=2±íʾµÈ´ý¿ªÇò״̬{ if(GetKeyAct(enumKey3)==enumKeyPress)//×ó±ß¿ªÇò {i=0;G_value=0x80;//10000000}    else if(GetKeyAct(enumKey2)==enumKeyPress)//Óұ߿ªÇò{i=1;G_value=0x01;//00000001}}if(i==0)//´Ó×óÍùÓÒ¿ªÊ¼{G_value=G_value>>1;//ƹÅÒÇòÓÒÒÆLedPrint(G_value);if(G_value==m)//Èç¹ûµ½ÓÒ±ßÁË»¹Ã»±»»÷´ò£¬×ó±ß·ÖÊý¼ÓÒ»{P1score++;show_w3=P1score/10;show_w4=P1score%10;SetBeep(300,10);}if(G_value==0x00){i=2;G_value=0x18;//00011000}if((GetKeyAct(enumKey2)==enumKeyPress)&&G_value==l)i=1;//ÇòÔÚÕýȷλÖÃʱ°´ÏÂKEY2£¬±íʾ»Ø»÷Çò       }else if(i==1)//´ÓÓÒÍù×ó¿ªÊ¼{G_value=G_value<<1;//ƹÅÒÇò×óÒÆ LedPrint(G_value);if(G_value==k)//Èç¹ûµ½×ó±ßÁË»¹Ã»±»»÷´ò£¬Óұ߷ÖÊý¼ÓÒ»{P2score++;show_w7=P2score/10;show_w8=P2score%10; SetBeep(300,10);}  if(G_value==0x00){i=2;G_value=0x18;}if((GetKeyAct(enumKey3)==enumKeyPress)&&G_value==ll)i=0;//ÇòÔÚÕýȷλÖÃʱ°´ÏÂKEY3£¬±íʾ»Ø»÷Çò}else if(i==3)//i=3ÊDZÈÈü½áÊø״̬£¬½øÐÐÉÁ˸{         G_value=0xFF;G_value=0x00;G_value=0xFF;}             if (P1score-P2score>=2 && P1score>=11)//ÕâÒ»¾Ö×ó±ßÓ®ÁË{   P1score=P2score=0;v++;//×ó±ßÓ®ÁËÒ»¾Öshow_w3=P1score/10;show_w4=P1score%10;show_w5=v;show_w6=s;show_w7=P2score/10;show_w8=P2score%10;}else if (P2score-P1score>=2 && P2score>=11)//ÕâÒ»¾ÖÓÒ±ßÓ®ÁË{   P1score=P2score=0;s++;//ÓÒ±ßÓ®ÁËÒ»¾Öshow_w3=P1score/10;show_w4=P1score%10;show_w5=v;show_w6=s;show_w7=P2score/10;show_w8=P2score%10;}else if (v>=2)//×ó±ßÏÈÓ®Á½¾Ö£¬±íÃ÷±ÈÈüʤÀû£¬ÖмäÏÔʾÁ½¸ö11£¬LEDÉÁ˸ {   v=s=0;P1score=P2score=0;i=3;show_w1=12;show_w2=12;show_w3=12;show_w4=1;show_w5=1;show_w6=12;show_w7=12;show_w8=12;      SetBeep(300,100);}else if (s>=2)//ÓÒ±ßÏÈÓ®Á½¾Ö£¬±íÃ÷±ÈÈüʤÀû£¬ÖмäÏÔʾÁ½¸ö22£¬LEDÉÁ˸ {  v=s=0;P1score=P2score=0;i=3;show_w1=12;show_w2=12;show_w3=12;show_w4=2;show_w5=2;show_w6=12;show_w7=12;show_w8=12;    SetBeep(300,100);}
}
//******* main()º¯Êý *************//
void main()//´ËÐбØÐ룡£¡£¡
{
//******* Óû§³ÌÐò¶Î5£ºÓû§main()º¯ÊýÄÚ²¿¾Ö²¿±äÁ¿¶¨Òå *************//
//******* Óû§³ÌÐò¶Î6£ºÓû§main()º¯Êý£¨³õʼ»¯Àà³ÌÐò£© *************//       Key_Init();BeepInit();  DisplayerInit();      SetDisplayerArea(0,7);                LedPrint(0x18);pingpang_Init();         switch(n)   {case 0:k=0x00;l=0x01;ll=0x80;m=0x00;break; case 1:k=0x80;l=0x02;ll=0x40;m=0x01;break; case 2:k=0x40;l=0x04;ll=0x20;m=0x02;break; case 3:k=0x20;l=0x08;ll=0x10;m=0x04;break; case 4:k=0x20;ll=0x10;l=0x08;m=0x04;break; case 5:k=0x40;ll=0x20;l=0x04;m=0x02;break; case 6:k=0x80;ll=0x40;l=0x02;m=0x01;break; case 7:k=0x00;ll=0x80;l=0x01;m=0x00;break; }  SetEventCallBack(enumEventSys100mS,my100mS_callback);
/*****************  MySTC_OS ³õʼ»¯Óë¼ÓÔØ¿ªÊ¼  ********************************/   MySTC_Init();//´ËÐбØÐ룡£¡£¡   while(1)//´ËÐбØÐ룡£¡£¡     { MySTC_OS();//´ËÐбØÐ룡£¡£¡
//******* Óû§³ÌÐò¶Î7£ºÓû§main()º¯Êý£¨Ö÷Ñ­»·³ÌÐò£© *************//Seg7Print(show_w1,show_w2,show_w3,show_w4,show_w5,show_w6,show_w7,show_w8);}//´ËÐбØÐ룡£¡£¡
}//´ËÐбØÐ룡£¡£¡

main.h

/**********************************  Ver3.3 ˵Ã÷ ********************************************************************(1) ϵͳ¹¤×÷ʱÖÓƵÂÊ¿ÉÒÔÔÚmain.cÖÐÐÞ¸Ä SysClock¸³Öµ£¨µ¥Î»Hz£©¡£È磺code long SysClock=11059200; ¶¨Òåϵͳ¹¤×÷ʱÖÓƵÂÊΪ11059200Hz£¨Ò²¼´11.0592MHz£©     ϵͳ¹¤×÷ƵÂʱØÐëÓëʵ¼Ê¹¤×÷ƵÂÊ£¨ÏÂÔØʱѡÔñµÄ£©Ò»Ö£¬ÒÔÃâÓ붨ʱÏà¹ØµÄËùÓй¦ÄܳöÏÖÎó²î»ò´íÎó¡£(2) ʹÓ÷½·¨£º1£¬ÔÚ¹¤³ÌÖмÓÔØmain.cÎļþºÍSTC_BSP.lib¿âÎļþ2£¬ÔÚmain.cÖÐÑ¡Ôñ°üº¬ÒÔÏÂÍ·Îļþ£¨Èç¹ûҪʹÓÿÉÑ¡Ä£¿éÌṩµÄº¯ÊýºÍ·½·¨£¬¾Í±ØÐë°üº¬ÆäÍ·Îļþ£© £º#include "STC15F2K60S2.H"        //±ØÐ룬"STC-Bѧϰ°å"ʹÓÃMCUÖ¸¶¨µÄÍ·Îļþ#include "sys.H"                 //±ØÐ룬sys£¨MySTC_OSµ÷¶È³ÌÐò£©Í·Îļþ#include "display.H"             //¿ÉÑ¡£¬display£¨ÏÔʾģ¿é£©Í·Îļþ¡£          #include "key.H"                 //¿ÉÑ¡£¬key£¨°´¼üÄ£¿é£©Í·Îļþ¡£#include "hall.H"                //¿ÉÑ¡£¬hall£¨»ô¶û´«¸ÐÆ÷Ä£¿é£©Í·Îļþ¡£#include "Vib.h"                   //¿ÉÑ¡£¬Vib£¨Õñ¶¯´«¸ÐÆ÷Ä£¿é£©Í·Îļþ¡£                                 #include "beep.H"                //¿ÉÑ¡£¬beep£¨·äÃùÆ÷Ä£¿é£©Í·Îļþ¡£                  #include "music.h"               //¿ÉÑ¡£¬music£¨ÒôÀÖ²¥·Å£©Í·Îļþ¡£    #include "adc.h"                 //¿ÉÑ¡£¬adc£¨ÈÈÃô¡¢¹âÃô¡¢µ¼º½°´¼ü¡¢À©Õ¹½Ó¿ÚADC¹¦ÄÜ£©Í·Îļþ¡£ #include "uart1.h"               //¿ÉÑ¡£¬uart1£¨´®¿Ú1ͨÐÅ£©Í·Îļþ¡£#include "uart2.h"               //¿ÉÑ¡£¬uart2£¨´®¿Ú2ͨÐÅ£©Í·Îļþ¡£#include "stepmotor.h"           //¿ÉÑ¡£¬²½½øµç»ú      #include "DS1302.h"              //¿ÉÑ¡£¬DS1302ʵʱʱÖÓ#include "M24C02.h"              //¿ÉÑ¡£¬24C02·ÇÒ×ʧÐÔ´æ´¢Æ÷#include "FM_Radio.h"              //¿ÉÑ¡£¬FMÊÕÒô»ú#include "EXT.h"                 //¿ÉÑ¡£¬EXTÀ©Õ¹½Ó¿Ú£¨µç×Ó³Ó¡¢³¬Éù²¨²â¾à¡¢Ðýת±àÂëÆ÷¡¢PWMÊä³ö¿ØÖƵç»ú¿ìÂýºÍÕý·´×ª£©#include "IR.h"                    //¿ÉÑ¡£¬38KHzºìÍâͨÐÅ3£¬MySTC_Init()ÊÇsys³õʼ»¯º¯Êý£¬±ØÐëÖ´ÐÐÒ»´Î£»MySTC_OS()ÊÇsysµ÷¶Èº¯Êý£¬Ó¦ÖÃÓÚwhile£¨1£©Ñ­»·ÖУ»4£¬¸÷¿ÉÑ¡Ä£¿éÈç¹ûÑ¡Ó㬱ØÐëÔÚʹÓÃÄ£¿éÆäËüº¯ÊýºÍ·½·¨Ç°Ö´ÐÐÒ»´ÎÄ£¿éËùÌṩµÄÇý¶¯º¯Êý£¨ÉèÖÃÏà¹ØÓ²¼þ¡¢²¢ÔÚsysÖмÓÔØÆ书Äܵ÷¶È£©£ºDisplayerInit();      //ÏÔʾģ¿éÇý¶¯ Key_Init();           //°´¼üÄ£¿éÇý¶¯BeepInit();             //·äÃùÆ÷Ä£¿éÇý¶¯MusicPlayerInit();    //·äÃùÆ÷²¥·ÅÒôÀÖÇý¶¯HallInit();           //»ô¶û´«¸ÐÆ÷Ä£¿éÇý¶¯                      VibInit();            //Õñ¶¯´«¸ÐÆ÷Ä£¿éÇý¶¯          AdcInit();            //Ä£Êýת»»ADCÄ£¿éÇý¶¯£¨º¬Î¶ȡ¢¹âÕÕ¡¢µ¼º½°´¼üÓë°´¼üKey3¡¢EXTÀ©Õ¹½Ó¿ÚÉϵÄADC£©StepMotorInit();      //²½½øµç»úÄ£¿éÇý¶¯                   DS1302Init();         //DS1302ʵʱʱÖÓÇý¶¯FMRadioInit();        //FMÊÕÒô»úÇý¶¯           EXTInit();            //À©Õ¹½Ó¿ÚÇý¶¯£¨º¬µç×Ó³Ó¡¢³¬Éù²¨²â¾à¡¢Ðýת±àÂëÆ÷¡¢PWMÊä³ö£¬µ«²»º¬EXTÉÏUart2ºÍÓëÖ®Ïà¹ØÓ¦Óã©Uart1Init();          //Uart1£¨´®¿Ú1£©Çý¶¯£ºUSBÉÏ£¨Óë¼ÆËã»úͨÐÅ£©              Uart2Init();          //Uart2£¨´®¿Ú2£©Çý¶¯£º485½Ó¿Ú¡¢»òEXTÀ©Õ¹½Ó¿Ú£¨¶à»úͨÐÅ¡¢Uart·½Ê½Ä£¿éÈçÀ¶ÑÀÄ£¿é£© IrInit();             //38KHzºìÍâͨÐÅÄ£¿éÇý¶¯ËµÃ÷£ºÓв¿·ÖÄ£¿é²»ÐèÒªÇý¶¯£»Çý¶¯º¯ÊýÓÐЩÓвÎÊý¡££¨¾ßÌå¼û¸÷Ä£¿éÍ·Îļþ˵Ã÷£©5£¬sysºÍ¸÷Ä£¿é¹²ÌṩÒÔÏÂʼþ£ºnumEventSys1mS:              1mSʼþ                        £¨"1ºÁÃëʱ¼ä¼ä¸ôµ½"ʼþ£©enumEventSys10mS:            10mSʼþ                       £¨"10ºÁÃëʱ¼ä¼ä¸ôµ½"ʼþ£©enumEventSys100mS:           100mSʼþ                      £¨"100ºÁÃëʱ¼ä¼ä¸ôµ½"ʼþ£©enumEventSys1S:              1Sʼþ                         £¨"1Ãëʱ¼ä¼ä¸ôµ½"ʼþ£©enumEventKey:                °´¼üʼþ                       £¨K1¡¢K2¡¢K3 Èý¸ö°´¼üÓÐ"°´ÏÂ"»ò"̧Æð"²Ù×÷£©enumEventHall:               »ô¶û´«¸ÐÆ÷ʼþ                 £¨»ô¶û´«¸ÐÆ÷ÓÐ"´Å³¡½Ó½ü"»ò"´Å³¡À뿪"ʼþ£©enumEventVib:                Õñ¶¯´«¸ÐÆ÷ʼþ                 £¨Õñ¶¯¸ÐÆ÷¼ì²âµ½"Õñ¶¯"ʼþ£©enumEventNav:                µ¼º½°´¼üʼþ                   £¨µ¼º½°´¼ü5¸ö·½Ïò¡¢»ò°´¼üK3 ÓÐ"°´ÏÂ"»ò"̧Æð"²Ù×÷£©enumEventXADC:               À©Õ¹½Ó¿ÚÉÏÍê³ÉÒ»´ÎADCת»»Ê¼þ  £¨P1.0¡¢P1.1²ÉÈ¡µ½Ò»×éÐÂÊý¾Ý£©enumEventUart1Rxd:           Uart1ÊÕµ½ÁËÒ»¸ö·ûºÏÖ¸¶¨ÒªÇó£¨Êý¾Ý°üÍ·Æ¥Åä¡¢Êý¾Ý°ü´óСһÖ£©µÄÊý¾Ý°üenumEventUart2Rxd:           Uart2ÊÕµ½ÁËÒ»¸ö·ûºÏÖ¸¶¨ÒªÇó£¨Êý¾Ý°üÍ·Æ¥Åä¡¢Êý¾Ý°ü´óСһÖ£©µÄÊý¾Ý°ü   enumEventIrRxd:              ºìÍâ½ÓÊÕÆ÷IrÉÏÊÕµ½Ò»¸öÊý¾Ý°ü                     ¶ÔÕâЩʼþ£¬Ó¦²ÉÓÃ"»Øµ÷º¯Êý"·½·¨ÏìÓ¦£¨¼´ÓÃsysÌṩµÄSetEventCallBack()ÉèÖÃÓû§»Øµ÷º¯Êý£©£¬ÒÔÌá¸ßϵͳÐÔÄÜ¡£6£¬¸÷¿ÉÑ¡Ä£¿éÌṩµÄÆäËüº¯ÊýºÍ¾ßÌåʹÓ÷½·¨Çë²Î¼û£º¸÷Ä£¿éÍ·ÎļþÖеÄ˵Ã÷£»main.cÌṩµÄÍƼö³ÌÐò¿ò¼ÜºÍ²¿·ÖʾÀý£»ÆäËü¿ÉÄܼ¼ÊõÎĵµ»òÓ¦ÓÃʾÀý±àд£ºÐì³É£¨µç»°18008400450£©   2021Äê2ÔÂ26ÈÕÉè¼Æ£¬2021Äê9ÔÂ1ÈÕ¸üÐÂ
**************************************************************************/#include "STC15F2K60S2.H"        //±ØÐë¡£
#include "sys.H"                 //±ØÐë¡£
#include "displayer.H"
#include "key.h"
#include "hall.h"
#include "Vib.h"
#include "beep.h"
#include "music.h"
#include "adc.h"
#include "uart1.h"
#include "uart2.h"
#include "stepmotor.h"
#include "DS1302.h"
#include "M24C02.h"
#include "FM_Radio.h"
#include "EXT.h"
#include "IR.h"code unsigned long SysClock=11059200;         //±ØÐë¡£¶¨Òåϵͳ¹¤×÷ʱÖÓƵÂÊ(Hz)£¬Óû§±ØÐëÐ޸ijÉÓëʵ¼Ê¹¤×÷ƵÂÊ£¨ÏÂÔØʱѡÔñµÄ£©Ò»ÖÂ
#ifdef _displayer_H_                          //ÏÔʾģ¿éÑ¡ÓÃʱ±ØÐë¡££¨ÊýÂë¹ÜÏÔʾÒëÂë±í£¬ÓÑô¿ÉÐ޸ġ¢Ôö¼ÓµÈ£©
code char decode_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x08,0x40,0x01, 0x41, 0x48, 0x3E, 0x6D,/* ÐòºÅ:   0   1    2     3    4       5    6    7    8      9   10      11        12   13    14    15    16   17  *//* ÏÔʾ:   0   1    2    3    4     5    6    7    8    9  (ÎÞ)  ÏÂ-    ÖÐ-  ÉÏ-  ÉÏÖÐ-  ÖÐÏÂ-  V   S   */  0x3f|0x80,0x06|0x80,0x5b|0x80,0x4f|0x80,0x66|0x80,0x6d|0x80,0x7d|0x80,0x07|0x80,0x7f|0x80,0x6f|0x80 };  /* ´øСÊýµã     0         1         2         3         4         5         6         7         8         9*/
#endif

STC大作业创新设计-乒乓游戏改进-代码相关推荐

  1. HTML期末大作业课程设计~仿阴阳师游戏官网首页html模板(HTML+CSS)~动漫主题html5网页模板-HTML期末作业课程设计期末大作业动漫主题html5网页模板-html5网页设计源码...

    HTML期末大作业课程设计~仿阴阳师游戏官网首页html模板(DIV+CSS) 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没 ...

  2. HTML期末大作业课程设计~仿阴阳师游戏官网首页html模板(HTML+CSS)~动漫主题html5网页模板-HTML期末作业课程设计期末大作业动漫主题html5网页模板-html5网页设计源码

    HTML期末大作业课程设计~仿阴阳师游戏官网首页html模板(DIV+CSS) 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没 ...

  3. HTML5期末大作业:仿阴阳师游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  4. HTML5期末大作业:电竞游戏网站设计——电竞游戏介绍响应式网页(7页) HTML+CSS+JavaScript

    HTML5期末大作业:电竞游戏网站设计--电竞游戏介绍响应式网页(7页) HTML+CSS+JavaScript 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. ...

  5. HTML实训大作业网页设计:我的简历——响应式个人简历网站模板(1页) HTML+CSS+JavaScript web网页设计制作成品

    HTML实训大作业网页设计:我的简历--响应式个人简历网站模板(1页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 >&g ...

  6. HTML5期末大作业:网站——仿游戏官网(龙之谷)HTML+CSS+JavaScript

    HTML5期末大作业:网站--仿游戏官网(龙之谷)HTML+CSS+JavaScript ~ 学生HTML个人网页作业作品下载 ~ web课程设计网页规划与设计 ~大学生个人网站作业模板 ~简单个人网 ...

  7. HTML期末大作业~玄幻情缘游戏官网静态html模板

    HTML期末大作业~玄幻情缘游戏官网静态html模板 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没有合适的模板?等等一系列问 ...

  8. HTML期末大作业课程设计动漫主题html5网页~奇恩动漫首页html模板(HTML+CSS)~个人设计web前端大作业...

    HTML期末大作业课程设计动漫主题html5网页~奇恩动漫首页html模板(HTML+CSS) ~个人设计web前端大作业 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTM ...

  9. unity3D期末大作业,坦克射击游戏

    unity3D期末大作业,坦克射击游戏 坦克射击游戏,可以发射子弹打击物体,坦克可以撞碎墙壁,树木,有背景音效详情如下动态图:(下载链接在文章末) 制作过程: 首先,从Asset Store中下载并i ...

最新文章

  1. 字符编码_Windows资料
  2. php mysql三级联动,PHP+mysql实现的三级联动菜单功能示例
  3. mysql及mybatis知识点_MyBatis知识点详解
  4. Thymeleaf的Spring数据
  5. 牛客14605 画三角
  6. php 公众号验证回调方法_如何进行公众号文章收集 两种收集方法详解
  7. 17个Python的牛逼骚操作,你都OK吗?
  8. http://ftp.gnu.org/gnu/ http://ftp.gnu.org/gnu/libc/
  9. web-attack 1-5视频汇总
  10. Sharding-JDBC(操作公共表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记013
  11. Phpcms V9全站伪静态设置方法
  12. 阿里腾讯百度们已经占据了全球互联网半壁江山!
  13. 从应届技术男到百度VP,这是低调到没百科的吴海锋首次受访
  14. BlocksKit源码分析(一)
  15. 用小学的试题测试你,换个脑袋吧~~~
  16. 温习一下嵌入式老鸟 (火哥) 的面试指南
  17. 应急响应常用的工具说明
  18. ElasticJob汇总
  19. 利用XML生成Word
  20. OPENGLES 绘制纹理带黑圈pre-multiplying

热门文章

  1. 第十届上海国际泵阀展多会议活动集中发力,邀您共赴6月泵阀盛会
  2. 人脸识别系统中的活体检测技术有哪些分类
  3. 【商城开发三】Android 仿淘宝商品详情页下拉足迹修改版
  4. 数组方法 + ES6中数组方法 + 数组的空位
  5. linux+nas+私有云软件,自建家庭私有云NAS——磁盘管理系统
  6. 新东方雅思词汇(List 36 ~ List 40)
  7. BZOJ.3551. [ONTAK2010]Peaks加强版
  8. layui tab标签 设置只读,不可手动切换 外部按钮切换tab
  9. vivo商城架构演进之路
  10. iOS In-App Purchase 内购之创建内购产品