📄 51fxc.cod
字号:
}
##80C52 IO_P0#
##80C54 IO_P0#
##80C58 IO_P0#
##80C51FA IO_P0#
##80C51FB IO_P0#
##80C51FC IO_P0#
#include <51fx.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
p0.0 = $%tP0_FXDIR.0$IN$OUT$
p0.1 = $%tP0_FXDIR.1$IN$OUT$
p0.2 = $%tP0_FXDIR.2$IN$OUT$
p0.3 = $%tP0_FXDIR.3$IN$OUT$
p0.4 = $%tP0_FXDIR.4$IN$OUT$
p0.5 = $%tP0_FXDIR.5$IN$OUT$
p0.6 = $%tP0_FXDIR.6$IN$OUT$
p0.7 = $%tP0_FXDIR.7$IN$OUT$
*/
void init_io_ports(void)
{
P0=0X$$P0$;
}
void main(void)
{
init_io_ports( );
}
##80C52 IO_P1#
##80C54 IO_P1#
##80C58 IO_P1#
##80C51FA IO_P1#
##80C51FB IO_P1#
##80C51FC IO_P1#
#include <51fx.h>
/* Initialize the quasi-bidirectional port pins. To use these
pins as inputs they must be written with a one.*/
/* IO port pins:
p1.0 = $%tP1_FXDIR.0$IN$OUT$ ;Special Function T2CLK
p1.1 = $%tP1_FXDIR.1$IN$OUT$ ;Special Function T2EX
p1.2 = $%tP1_FXDIR.2$IN$OUT$ ;
p1.3 = $%tP1_FXDIR.3$IN$OUT$ ;
p1.4 = $%tP1_FXDIR.4$IN$OUT$ ;
p1.5 = $%tP1_FXDIR.5$IN$OUT$ ;
p1.6 = $%tP1_FXDIR.6$IN$OUT$ ;
p1.7 = $%tP1_FXDIR.7$IN$OUT$
*/
void init_io_ports(void)
{
P1=0X$$P1$;
}
void main(void)
{
init_io_ports( );
}
##80C52 IO_P2#
##80C54 IO_P2#
##80C58 IO_P2#
##80C51FA IO_P2#
##80C51FB IO_P2#
##80C51FC IO_P2#
#include <51fx.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 High Bytes of Address for External Memory
p2.0 = $%tP2_FXDIR.0$IN$OUT$
p2.1 = $%tP2_FXDIR.1$IN$OUT$
p2.2 = $%tP2_FXDIR.2$IN$OUT$
p2.3 = $%tP2_FXDIR.3$IN$OUT$
p2.4 = $%tP2_FXDIR.4$IN$OUT$
p2.5 = $%tP2_FXDIR.5$IN$OUT$
p2.6 = $%tP2_FXDIR.6$IN$OUT$
p2.7 = $%tP2_FXDIR.7$IN$OUT$
*/
void init_io_ports(void)
{
P2=0X$$P2$;
}
void main( )
{
init_io_ports( );
}
##80C52 IO_P3#
##80C54 IO_P3#
##80C58 IO_P3#
##80C51FA IO_P3#
##80C51FB IO_P3#
##80C51FC IO_P3#
#include <51fx.h>
/* Initialize the quasi-bidirectional port pins. To use these
pins as inputs they must be written with a one.*/
/* IO port pins:
p3.0 = $%tP3_FXDIR.0$IN$OUT$ ;Special Function RXD
p3.1 = $%tP3_FXDIR.1$IN$OUT$ ;Special Function TXD
p3.2 = $%tP3_FXDIR.2$IN$OUT$ ;Special Function INT0
p3.3 = $%tP3_FXDIR.3$IN$OUT$ ;Special Function INT
p3.4 = $%tP3_FXDIR.4$IN$OUT$ ;Special Function T0
p3.5 = $%tP3_FXDIR.5$IN$OUT$ ;Special Function T1
p3.6 = $%tP3_FXDIR.6$IN$OUT$ ;Special Function WR
p3.7 = $%tP3_FXDIR.7$IN$OUT$ ;Special Function RD
*/
void init_io_ports(void)
{
P3=0X$$P3$;
}
void main( )
{
init_io_ports( );
}
##80C52 PM#
##80C54 PM#
##80C58 PM#
##80C51FA PM#
##80C51FB PM#
##80C51FC PM#
#include <51fx.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( );
}
##80C52 Serial#
##80C54 Serial#
##80C58 Serial#
##80C51FA Serial#
##80C51FB Serial#
##80C51FC Serial#
#include <51fx.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 = $%eIE.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$ IE.4
ES = 1; /*IE.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( );
}
##80C52 TIMER0#
##80C54 TIMER0#
##80C58 TIMER0#
##80C51FA TIMER0#
##80C51FB TIMER0#
##80C51FC TIMER0#
#include <51fx.h>
/* Configure Timer $$TIMERX$
- Mode = $%4TMOD.0-1$0$1$2$3$
- Interrupt = $%tIE.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$ IE.1
ET0 = 1; /* IE.1*/
$$end$
TR$$TIMERX$ = 1; /* TCON.4 start timer */
}
void main(void)
{
init_timer$$TIMERX$( );
}
##80C52 TIMER1#
##80C54 TIMER1#
##80C58 TIMER1#
##80C51FA TIMER1#
##80C51FB TIMER1#
##80C51FC TIMER1#
#include <51fx.h>
/* Configure Timer $$TIMERX$
- Mode = $%4TMOD.4-5$0$1$2$3$
- Interuppt = $%tIE.3$ENABLED$DISABLED$
- Clock Source = $%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$ IE.3
ET1 = 1 ; /* ET0 is IE.3 */
$$end$
TR$$TIMERX$ = 1; /* TCON.6 start timer */
}
void main(void)
{
init_timer$$TIMERX$( );
}
##80C52 TIMER2#
##80C54 TIMER2#
##80C58 TIMER2#
##80C51FA TIMER2#
##80C51FB TIMER2#
##80C51FC TIMER2#
#include <51fx.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 transistion
also in Reload controls direction of Count.
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$( );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -