⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 82930c.cod

📁 mcs51,2051,x86系列MCU
💻 COD
📖 第 1 页 / 共 2 页
字号:
   p2.3 = $%tP2_DIR.3$IN$OUT$
   p2.4 = $%tP2_DIR.4$IN$OUT$
   p2.5 = $%tP2_DIR.5$IN$OUT$
   p2.6 = $%tP2_DIR.6$IN$OUT$
   p2.7 = $%tP2_DIR.7$IN$OUT$
*/
void init_io_ports(void)
{
  P2=0X$$P2$;
}
void main( )
{
 init_io_ports( );
}

##82930 IO_P3#
#include <82930C.H>
/*
Initialize the quasi-bidirectional port pins.
To use these pins as inputs they must be written with a one.

IO port pins:
   Alternate Functions are Address/Data for External Memory
   p3.0 = $%tP3_DIR.0$IN$OUT$         ;Special Function RXD
   p3.1 = $%tP3_DIR.1$IN$OUT$         ;Special Function TXD
   p3.2 = $%tP3_DIR.2$IN$OUT$         ;Special Function INT0
   p3.3 = $%tP3_DIR.3$IN$OUT$         ;Special Function INT
   p3.4 = $%tP3_DIR.4$IN$OUT$         ;Special Function T0
   p3.5 = $%tP3_DIR.5$IN$OUT$         ;Special Function T1
   p3.6 = $%tP3_DIR.6$IN$OUT$         ;Special Function WR
   p3.7 = $%tP3_DIR.7$IN$OUT$         ;Special Function RD
*/
void init_io_ports(void)
{
  P3=0X$$P3$;
}
void main( )
{
   init_io_ports( );
}

##82930 PM#
#include <82930C.H>
/*
Power Management
      - Idle Mode = $%ePCON.0$
      - Power Down Mode = $%ePCON.1$
Power down mode takes precedence over Idle Mode if both bits are set.
*/
void init_pm(void)
{
      $$if$ PCON.1
 PD=1;
      $$end$
      $$if$ PCON.0 &! PCON.1
 IDL=1;
      $$end$
}
void main( )
{
  init_pm( );
}

##82930 Serial#
#include <82930C.H>
/*
Serial Port
Mode                     = $%4SCON.6-7$0  /shift register$1  /8-bit UART$2  /9-bit UART$3  /9-bit UART$
Serial Port Interrupt    = $%eIEN0.4$
$$if$ SCON.7
9th Data Bit             = $%eSCON.3$
$$end$
Receive                  = $%eSCON.4$
Auto Addressing          = $%eSCON.5$
*/
void init_serial(void)
{
     SCON = 0X$$SCON$;
$$if$ SCON.6
   $$if$ T2CON.4
/*Timer 2 is being used to generate baud rates.*/
     RCAP2L = 0X$$RCAP2L$;
     RCAP2H = 0X$$RCAP2H$;
     T2CON = 0X$$T2CON$;
   $$end$
   $$ifn$ T2CON.4
/*Timer 1 is being used to generate baud rates.*/
   $$if$ PCON.7
     PCON = 0X80 | PCON;
   $$end$
     TMOD = 0X$$TMOD$;
     TH1 = 0X$$TH1$;
     TR1 = 1;            /*TCON.6*/
   $$end$
   $$if$ T2CON.4 &! T2CON.5
/*Timer 1 is being used to generate baud rates.*/
   $$if$ PCON.7
     PCON = 0X80 | PCON;
   $$end$
     TMOD = 0X$$TMOD$;
     TH1 = 0X$$TH1$;
     TR1 = 1;            /*TCON.6*/
   $$end$
   $$ifn$ T2CON.4 && T2CON.5
/*Timer 2 is being used to generate baud rates.*/
     RCAP2L = 0X$$RCAP2L$;
     RCAP2H = 0X$$RCAP2H$;
     T2CON = 0X$$T2CON$;
   $$end$
$$end$
$$ifn$ SCON.6 && SCON.7
   $$if$ PCON.7
     PCON |= 0X80;
   $$end$
$$end$
$$if$ IEN0.4
     ES = 1;            /*IEN0.4      */
$$end$
$$if$ SCON.4
     RI = 0;              /*SCON.0*/
$$end$
$$ifn$ SCON.4
     SBUF = 0X0;
     TI = 0;              /*SCON.1*/
$$end$
}
void main(void)
{
      init_serial( );
}
##82930 TIMER0#
#include <82930C.H>
/* Configure Timer $$TIMERX$
   - Mode                  = $%4TMOD.0-1$0$1$2$3$
   - Interrupt             = $%tIEN0.1$ENABLED$DISABLED$
   - Clock Source          = $%tTMOD.2$EXTERNAL$INTERNAL$
   - Enable Gating Control = $%tTMOD.3$ENABLED$DISABLED$
*/
void init_timer$$TIMERX$(void)
{
     TMOD &= 0XF0;                    /* clear Timer 0   */
     TMOD  |= 0X$$TMOD$;
     TL0 = 0X$$TL0$;                  /* value set by user    */
     TH0 = 0X$$TH0$;                  /* value set by user  */
$$if$ IEN0.1
     ET0 = 1;                        /* IEN0.1*/
$$end$
     TR$$TIMERX$ = 1;                /* TCON.4 start timer  */
}
void main(void)
{
      init_timer$$TIMERX$( );
}

##82930 TIMER1#
#include <82930C.H>
/* Configure Timer $$TIMERX$
   - Mode                     = $%4TMOD.4-5$0$1$2$3$
   - Interuppt                = $%tIEN0.3$ENABLED$DISABLED$
   - Clock Sour               = $%tTMOD.6$EXTERNAL$INTERNAL$
   - Enable Gating Control    = $%tTMOD.7$ENABLED$DISABLED$
*/
void init_timer$$TIMERX$(void)
{
      TMOD  &= 0XF;       /* clear Timer 1 control    */
      TMOD = 0X$$TMOD$ ;
      TL1 = 0X$$TL1$ ;    /* value set by user         */
      TH1 = 0X$$TH1$ ;    /* value set by user          */
$$if$ IEN0.3
      ET1 = 1 ;           /* ET0 is IEN0.3         */
$$end$
      TR$$TIMERX$ = 1;    /* TCON.6  start timer      */
}
void main(void)
{
      init_timer$$TIMERX$( );
}
##82930 TIMER2#
#include <82930C.H>
/*
The Timer is set to $%5T2MODES$No Operation$Auto Reload$Capture$BaudRate Generator$Clock Out$
$$if$ (T2MODES == 1) || (T2MODES == 2)
Clock Source       = $%tT2CON.1$EXTERNAL$INTERNAL$
$$if$ (T2MODES == 1)
Count Direction    = $%tT2MOD.0$UP/DOWN depending on T2EX pin$UP$
$$end$
Reload Value by $%tT2CON.3$External Transition$Overflow$
$$end$
*/
void init_timer$$TIMERX$(void)
{
      T2CON = 0X$$T2CON$;
      T2MOD = 0X$$T2MOD$;
$$if$ (T2MODES == 1) || (T2MODES == 2)
      TL2  = 0X0;       /*  set by user    */
      TH2  = 0X0;       /*  set by user    */
      RCAP2L = 0X0;     /*  reload value low     */
      RCAP2H = 0X0;     /*  reload value high    */
$$if$ T2CON.3
      EXEN2 = 1;
/*
Will allow capture or reload on negative transition.
Logic 1 counts up logic 0 will count down.
*/
$$end$
$$end$
$$if$ (T2MODES == 4)
      RCAP2L = 0X$$RCAP2L$;      /* Clk Out Value    */
      RCAP2H = 0X$$RCAP2H$;      /* Clk Out Value     */
$$end$
      TR2  = 1;           /*  T2CON.2 start timer  */
}
void main(void)
{
      init_timer$$TIMERX$( );
}

##82930 WDT#
#include <82930C.H>

void interrupt t0_int(void)
{
/*
 Using TIMER 0 interrupt routine to service the hardware watchdog timer.
 Reset hardware watchdog timer
*/
   SET_VECTOR(TIMER0, t0_int);
   WDTRST= 0X1E;  /* 1st byte sequence to WDTRST */
   WDTRST= 0XE1;  /* 2nd byte sequence to WDTRST */
/*
 Load new value to TIMER 0 registers
*/
   TL0= 0XFF; /* TIMER 0 to count for 3000H cycles */
   TH0= 0XCF; /* for interrupt to occur */
}

void init_TIMER0(void)
{
/*
 Set TIMER 0 to service the hardware watchdog timer
*/
   TMOD |= 0XF1; /* Set TIMER 0 to a 16-bit timer  */
   TL0= 0XFF;    /* TIMER 0 to count for 3000H cycles */
   TH0= 0XCF;    /* for interrupt to occur */
   TR0= 0;       /* Start TIMER 0 */
}

void init_WDT(void)
{
/*
 Enable the hardware watchdog timer
*/
   WDTRST=  0X1E; /* 1st byte sequence to WDTRST */
   WDTRST=  0XE1; /* 2nd byte sequence to WDTRST */
}

main(void)
{
   init_TIMER0();
   init_WDT();
/*
 User application codes
*/
}


##82930 CPU#
##82930 CODE#
#include <82930C.H>

static const unsigned byte UConfig0 = 0x$$CONFIG0$;
static const unsigned byte UConfig1 = 0x$$CONFIG1$;

/*
   The full address (see below) will be placed on the
   address bus when Configuration bytes are retrieved
   from external memory (if it is present) during reset.
   Generally, you would place the Configuration bytes at
   offset F8 and F9 within the ending page of your physical
   memory/ROM.  ie. if you have 32K eprom, the addresses
   used below should be set to 0xFF7FF8 and 0xFF7FF9 so
   that the configuration bytes are placed at the proper
   position in your external memory/ROM.

   NOTE: Positioning of Configuration bytes in memory
   space ONLY applies to devices utilizing external memory.
   Devices with internal ROM (OTP's) are programmed with
   Configuration bytes as outlined in the device manual.

   Take care when utilizing full memory decoding without
   utilizing page 0xFF in memory/ROM space.  Configuration
   bytes 0 and 1 are fetched by placing the fixed
   addresses  FF:FFF8H and FF:FFF9H on the address bus.
*/


#pragma locate (UConfig0=0xFFFFF8)
#pragma locate (UConfig1=0xFFFFF9)

void init_cpu(void)
{
   WCON = 0x$$WCON$;
}

void main(void)
{
   init_cpu( );
}


##82930 enum1#
enum1 stuff
##82930 enum2#
enum2 stuff
##82930 enum3#
enum3 stuff
##82930 enum4#
enum4 stuff

##82930 USB#
#include <82930C.H>
/*
Universal Serial Port
EndPoint Interrupt 0    = $%tIE1.0$ENABLED$DISABLED$
Mode              = $%tTXCON0.3$ISO ENABLED$ISO DISABLED$
Receive Done Interrupt  = $%tSBIE.1$ENABLED$DISABLED$
Transmit Done Interrupt = $%tSBIE.0$ENABLED$DISABLED$
$$IFN$ IPL1.0 &! IPH1.0
Priority          =  0
$$END$
$$IF$ IPL1.0 &! IPH1.0
Priority          =  1
$$END$
$$IF$ IPH1.0 &! IPL1.0
Priority          =  2
$$END$
$$IF$ IPH1.0 && IPL1.0
Priority          =  3
$$END$

EndPoint Interrupt 1    = $%tIE1.1$ENABLED$DISABLED$
Mode              = $%tTXCON1.3$ISO ENABLED$ISO DISABLED$
Receive Done Interrupt  = $%tSBIE.3$ENABLED$DISABLED$
Transmit Done Interrupt = $%tSBIE.2$ENABLED$DISABLED$
$$IFN$ IPL1.1 &! IPH1.1
Priority          =  0
$$END$
$$IF$ IPL1.1 &! IPH1.1
Priority          =  1
$$END$
$$IF$ IPH1.1 &! IPL1.1
Priority          =  2
$$END$
$$IF$ IPH1.1 && IPL1.1
Priority          =  3
$$END$

EndPoint Interrupt 2    = $%tIE1.2$ENABLED$DISABLED$
Mode              = $%tTXCON2.3$ISO ENABLED$ISO DISABLED$
Receive Done Interrupt  = $%tSBIE.5$ENABLED$DISABLED$
Transmit Done Interrupt = $%tSBIE.4$ENABLED$DISABLED$
$$IFN$ IPL1.2 &! IPH1.2
Priority          =  0
$$END$
$$IF$ IPL1.2 &! IPH1.2
Priority          =  1
$$END$
$$IF$ IPH1.2 &! IPL1.2
Priority          =  2
$$END$
$$IF$ IPH1.2 && IPL1.2
Priority          =  3
$$END$

EndPoint Interrupt 3    = $%tIE1.3$ENABLED$DISABLED$
Mode              = $%tTXCON3.3$ISO ENABLED$ISO DISABLED$
Receive Done Interrupt  = $%tSBIE.7$ENABLED$DISABLED$
Transmit Done Interrupt = $%tSBIE.6$ENABLED$DISABLED$
$$IFN$ IPL1.3 &! IPH1.3
Priority          =  0
$$END$
$$IF$ IPL1.3 &! IPH1.3
Priority          =  1
$$END$
$$IF$ IPH1.3 &! IPL1.3
Priority          =  2
$$END$
$$IF$ IPH1.3 && IPL1.3
Priority          =  3
$$END$

*/
void init_usb(void)
{
   TXCON0 = 0x$$TXCON0$;         /* init transmit control registers */
   TXCON1 = 0x$$TXCON1$;
   TXCON2 = 0x$$TXCON2$;
   TXCON3 = 0x$$TXCON3$;

   RXCON0 = 0x$$RXCON0$;         /* init receive control registers */
   RXCON1 = 0x$$RXCON1$;
   RXCON2 = 0x$$RXCON2$;
   RXCON3 = 0x$$RXCON3$;

   EPCON0 = 0x$$EPCON0$;         /* init data flow control registers */
   EPCON1 = 0x$$EPCON1$;
   EPCON2 = 0x$$EPCON2$;
   EPCON3 = 0x$$EPCON3$;

   IPL1 = 0x$$IPL1$;             /* init priority registers */
   IPH1 = 0x$$IPH1$;
   SBIE = 0x$$SBIE$;
   IE1 = 0x$$IE1$;               /* init interrupt registers */
}


void main(void)
{
   init_usb( );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -