📄 initsystem.c
字号:
#include "config.h"
void delay1(uint8 Cnt) /* 延时150ms */
{
for(;Cnt;Cnt--)
Delay(_5MS);
}
void Init_MCU(void)
{
//T1方式2(Baud Rate Generator),T0方式1,皆为定时方式
TMOD=0x21;
//设置TIMER2 Count Up,Auto-Reload When Upon Overflow
EXEN2=0; T2MOD=0x00;
//系统节拍中断使用定时器2,中断频率为20Hz,待初始化完成后启动
RCAP2H = (65536 - (11059200 / 12) / 20) / 256;
RCAP2L = (65536 - (11059200 / 12) / 20) % 256;
TH2 = RCAP2H; TL0 = RCAP2L;
_EN_TIMER2_INT; // 开Timer2中断
// 启动串口(方式1)且允许接收,11.0592MHz,9600bps,1位起始位+8位数据位+1位停止位
SCON = 0x50;
PCON = PCON & 0x7f; // SMOD=0
TH1 = 0xfd; TL1 = 0xfd;
_START_TIMER1; // 启动Timer1
// 初始化硬件SPI接口
_SET_SPI_TX;
// 开UART与INT1中断
_EN_UART_INT; _EN_INT1_INT;
// TIMER2 HIGH PRIORITY
_SET_INT_PRI(PT2);
}
void Init_F2401(void)
{
Power_Down();
Stand_By();
Config_Word();
}
void Init_LED(void)
{
_TURN_ON_TX;
delay1(100); _TURN_OFF_TX; _TURN_ON_RX;
delay1(100); _TURN_OFF_RX; _TURN_ON_UART;
delay1(100); _TURN_OFF_UART; _TURN_ON_RIGHT;
delay1(100); _TURN_OFF_RIGHT; _TURN_ON_WRONG;
delay1(100); _TURN_OFF_WRONG; _TURN_ON_SCH ;
delay1(100); _TURN_OFF_SCH ; _TURN_ON_3STA;
delay1(100); _TURN_OFF_3STA;
}
void Init_System(void)
{
Init_MCU();
Init_F2401();
Init_LED();
_START_SYS_TIMER; // 启动系统时钟
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -