📄 sys_init.c
字号:
unsigned char code WLib_1_4x8[]={0x00,0x84,0xFe,0x80};
/*-- 文字: 2 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_2_5x8[]={0x00,0xc4,0xa2,0x92,0x8c};
/*-- 文字: 3 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_3_5x8[]={0x00,0x44,0x92,0x92,0x6c};
/*-- 文字: 4 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=6x8 --*/
unsigned char code WLib_4_6x8[]={0x00,0x30,0x28,0x24,0xfe,0x20};
/*-- 文字: 5 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_5_5x8[]={0x00,0x4e,0x8a,0x8a,0x72};
/*-- 文字: 6 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=6x8 --*/
unsigned char code WLib_6_5x8[]={0x00,0x7c,0x92,0x92,0x60};
/*-- 文字: 7 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_7_5x8[]={0x00,0x02,0xf2,0x0a,0x06};
/*-- 文字: 8 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_8_5x8[]={0x00,0x6c,0x92,0x92,0x6c};
/*-- 文字: 9 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_9_5x8[]={0x00,0x0c,0x92,0x92,0x7c};
/*-- 文字: 0 --*/
/*-- Times New Roman8; 此字体下对应的点阵为:宽x高=5x8 --*/
unsigned char code WLib_0_5x8[]={0x00,0x7c,0x82,0x82,0x7c};
/*-- 文字: 0,1,2,3,4,5,6,7,8,9 宽x高=8x16 --*/
unsigned char code WLib_Num_8x16[160]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
0x00,0x38,0x08,0x08,0xC8,0x28,0x18,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x08,0x31,0x22,0x22,0x11,0x0F,0x00
};
#endif
/***********************************************************************************
* 函数名称:dis_start0;
*
* 函数功能描述:显示开机界面;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
#if LCDA
void dis_start0 (void)
{
unsigned char x;
LCDA_ClearScreen();
for (x=4;x<240;x+=24)
{
Delay_ms(100);
LCDA_ShowHZxy(x, x, 24,24,HZ_MING_32X32);
LCDA_ShowHZxy(x, x+24,24,24, HZ_LANG_32X32);
LCDA_ShowHZxy(x, x+48,24,24, HZ_KE_32X32);
LCDA_ShowHZxy(x, x+72,24,24, HZ_JI_32X32);
}
}
#elif LCDB
void dis_start0 (void)
{
unsigned int x;
LCDB_ClearScreen();
for (x=4;x<320;x+=24)
{
Delay_ms(100);
LCDB_ShowHZxy(x, x, 24,24,HZ_MING_32X32);
LCDB_ShowHZxy(x, x+24, 24,24,HZ_LANG_32X32);
LCDB_ShowHZxy(x, x+48, 24,24,HZ_KE_32X32);
LCDB_ShowHZxy(x, x+72, 24,24,HZ_JI_32X32);
}
}
#elif LCDC
void dis_start0 (void)
{
LCDC_DispWord (0, 32, WLib_ming_32x32, 4, 32, 1);
LCDC_DispWord (32, 32, WLib_lang_32x32, 4, 32, 1);
LCDC_DispWord (64, 32, WLib_ke_32x32, 4, 32, 1);
LCDC_DispWord (96, 32, WLib_ji_32x32, 4, 32, 1);
LCDC_DispWord (8, 16, WLib_W_10x8, 1, 10, 1);
LCDC_DispWord (19, 16, WLib_W_10x8, 1, 10, 1);
LCDC_DispWord (30, 16, WLib_W_10x8, 1, 10, 1);
LCDC_DispWord (46, 16, WLib_M_9x8, 1, 9, 1);
LCDC_DispWord (57, 16, WLib_L_6x8, 1, 6, 1);
LCDC_DispWord (63, 16, WLib_A_7x8, 1, 7, 1);
LCDC_DispWord (71, 16, WLib_R_7x8, 1, 7, 1);
LCDC_DispWord (79, 16, WLib_M_9x8, 1, 9, 1);
LCDC_DispWord (90, 16, WLib_dot_4x8, 1, 4, 1);
LCDC_DispWord (94, 16, WLib_C_7x8, 1, 7, 1);
LCDC_DispWord (102, 16, WLib_O_7x8, 1, 7, 1);
LCDC_DispWord (110, 16, WLib_M_9x8, 1, 9, 1);
LCDC_DispWord (11, 2, WLib_T_6x8, 1, 6, 1);
LCDC_DispWord (17, 2, WLib_e_5x8, 1, 5, 1);
LCDC_DispWord (22, 2, WLib_l_4x8, 1, 4, 1);
LCDC_DispWord (27, 2, WLib_ddot_3x8, 1, 3, 1);
LCDC_DispWord (34, 2, WLib_0_5x8, 1, 5, 1);
LCDC_DispWord (39, 2, WLib_2_5x8, 1, 5, 1);
LCDC_DispWord (44, 2, WLib_9_5x8, 1, 5, 1);
LCDC_DispWord (49, 2, WLib_line_6x8, 1, 6, 1);
LCDC_DispWord (55, 2, WLib_8_5x8, 1, 5, 1);
LCDC_DispWord (60, 2, WLib_8_5x8, 1, 5, 1);
LCDC_DispWord (65, 2, WLib_2_5x8, 1, 5, 1);
LCDC_DispWord (70, 2, WLib_2_5x8, 1, 5, 1);
LCDC_DispWord (75, 2, WLib_3_5x8, 1, 5, 1);
LCDC_DispWord (80, 2, WLib_5_5x8, 1, 5, 1);
LCDC_DispWord (85, 2, WLib_9_5x8, 1, 5, 1);
LCDC_DispWord (90, 2, WLib_7_5x8, 1, 5, 1);
LCDC_DispWord (95, 2, WLib_line_6x8, 1, 6, 1);
LCDC_DispWord (101, 2, WLib_8_5x8, 1, 5, 1);
LCDC_DispWord (106, 2, WLib_0_5x8, 1, 5, 1);
LCDC_DispWord (111, 2, WLib_2_5x8, 1, 5, 1);
}
#endif
/***********************************************************************************
* 函数名称:SYSCLK_Init;
*
* 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void SYSCLK_Init (void)
{
int i; // 延时计数器
OSCXCN = 0x67; // 使用外部22.1184MHz晶振
for (i=0; i<256; i++); // 等待1ms
while (!(OSCXCN & 0x80)); // 等待外部振荡器稳定
OSCICN = 0x88; // 切换到外部晶振
}
/***********************************************************************************
* 函数名称:PORT_Init;
*
* 函数功能描述:配置端口初始化,配置交叉开关和端口;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void PORT_Init (void)
{
XBR0 = 0x1F; //设置XBR0
XBR1 = 0x1E; //设置XBR1
XBR2 = 0x44; //打开交叉开关和弱上拉
P0MDOUT = 0x15; //设置P0口输出
P0 |= 0xEA; //P0口的输入脚高阻态
P1MDIN = 0x00; //设置P1口输入信号类型
P1MDOUT = 0x00; //设置P1口输出
P1 = 0xFF; //P1口高阻态
P2MDOUT = 0x01; //设置P2口输出
P2 |= 0xFE; //设置P2口输出
P3MDOUT = 0xFE; //设置P3口输出
P3 |= 0x01; //设置P3口输出
P3 &= 0xEF; //P3.4口置0,禁铃
P74OUT = 0xF7; //设置P4-P7口输出
P5 |= 0xF0; //键盘输入P5口高4位高阻态
EMI0CF = 0x2D; //外部存储器接口配置
EMI0TC = 0x9E; //外部存储器时序控制
}
/****************************************************************************************
文件结束
****************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -