📄 system.c
字号:
LCD501_Bitmap(54,33,(unsigned int*)encoding_maohao); //冒号
clockhourshi=shownhour/10;
clockhourge=shownhour%10;
clockminshi=shownmin/10;
clockminge=shownmin%10;
switch(keynow)
{
case 0:
if(int2hz==0)
{
LCD501_PutChar(46,35,number[clockhourge]); //显示小时的个位
LCD501_PutChar(38,35,number[clockhourshi]); //显示时的十位
}
else
{
LCD501_PutChar(46,35,' '); //显示小时的个位
LCD501_PutChar(38,35,' '); //显示时的十位
}
LCD501_PutChar(73,35,number[clockminge]); //显示分钟的个位
LCD501_PutChar(65,35,number[clockminshi]); //显示小时的十位
break;
case 2:
if(int2hz==0)
{
LCD501_PutChar(73,35,number[clockminge]); //显示分钟的个位
LCD501_PutChar(65,35,number[clockminshi]); //显示小时的十位
}
else
{
LCD501_PutChar(73,35,' ');
LCD501_PutChar(65,35,' ');
}
LCD501_PutChar(46,35,number[clockhourge]); //显示小时的个位
LCD501_PutChar(38,35,number[clockhourshi]); //显示时的十位
}
}
//===============================================================//
//语法格式:naoclockshow2(shownhour,shownmin)
//实现功能:显示闹钟调整界面
//参数 :无
//返回值 :无
//==============================================================//
void naoclockshow2(shownhour,shownmin) //显示闹钟调整界面
{
int clockhourshi=0;
int clockhourge=0;
int clockminshi=0;
int clockminge=0;
LCD501_Bitmap(37,20,(unsigned int*)encoding_nao); //闹
LCD501_Bitmap(49,20,(unsigned int*)encoding_zhong); //钟
LCD501_Bitmap(61,20,(unsigned int*)encoding_she); //设
LCD501_Bitmap(73,20,(unsigned int*)encoding_zhi); //置
LCD501_Bitmap(54,33,(unsigned int*)encoding_maohao); //冒号
clockhourshi=shownhour/10;
clockhourge=shownhour%10;
clockminshi=shownmin/10;
clockminge=shownmin%10;
LCD501_PutChar(46,35,number[clockhourge]); //显示小时的个位
LCD501_PutChar(38,35,number[clockhourshi]); //显示时的十位
LCD501_PutChar(73,35,number[clockminge]); //显示分钟的个位
LCD501_PutChar(65,35,number[clockminshi]); //显示小时的十位
}
//==============================================================//
//语法格式: void setclock()
//实现功能:设置闹钟时间
//参数 :无
//返回值 :无
//=============================================================//
void setclock() //设置闹钟子函数
{
int k = 0;
LCD501_ClrScreen(0); //清屏
keyflag4 = 1;
while(keyflag4==1)
{
keyscan(); //键盘扫描
if(keyvalue==0)
naoclockshow1(nhour,nmin,k); //无键按下显示闪烁的界面
else
naoclockshow2(nhour,nmin); //有键按下显示不闪烁的界面
*P_Watchdog_Clear = 0x0001;
switch(keyvalue)
{
case 0x0001: //如果键1按下则退出循环 //或者指向下一个要调整的单元
if(k==0x0002)
{
keyflag4 = 0;
LCD501_ClrScreen(0); // 退出循环,清屏
}
else
{
k = k+2;
}
break;
case 0x0002: //键2按下则进行加调整
switch(k)
{
case 0:
if(nhour==23)
nhour = 0;
else
nhour = ++nhour; //闹钟小时加1
break;
case 2:
if(nmin==59)
nmin = 0;
else
nmin = ++nmin; //闹钟分加1
break;
}
break;
case 0x0004: //键3按下则进行减
switch(k)
{
case 0:
if(nhour==0)
nhour = 23;
else
nhour = --nhour; //闹钟小时减1
break;
case 2:
if(nmin==0)
nmin = 59;
else
nmin = --nmin; //闹钟分减1
break;
}
break;
}
}
}
//==============================================================//
//语法格式:void showsecond()
//实现功能:显示秒表功能界面
//参数 :无
//返回值 :无
//=============================================================//
void showsecond() //秒表显示界面
{
LCD501_Bitmap(20,18,(unsigned int*)encoding_maohao); //显示冒号
LCD501_Bitmap(48,18,(unsigned int*)encoding_maohao);
showsec(mmsec); //显示毫秒
showmin(mbsec); //显示秒
showhour(mbmin); //显示分
}
//==============================================================//
//语法格式 void setsecond()
//实现功能:设置秒表的功能
//参数 :无
//返回值 :无
//=============================================================//
void setsecond() //设置秒表子函数
{
int intflag = 0;
keyflag5 = 1;
LCD501_ClrScreen(0); //清屏进入秒表界面
LCD501_Bitmap(23,40,(unsigned int*)encoding_miao);
LCD501_Bitmap(45,40,(unsigned int*)encoding_biao); //显示秒表汉字
while(keyflag5==1)
{
LCD501_Bitmap(90,10,(unsigned int*)BMP_Cartoon[mapcounter2]);
//显示凌阳标志旋转界面
showsecond();
keyscan(); //按键扫描
switch(keyvalue)
{
case 1:
keyflag5 = 0;
LCD501_ClrScreen(0); //退出秒表界面,清屏。
break;
case 2:
switch(intflag)
{
case 1:
intflag = 0;
*P_INT_Ctrl=*P_INT_Ctrl_New & 0xffef;
break; //关闭1KHZ中断
case 0:
intflag = 1;
*P_INT_Ctrl_New=*P_INT_Ctrl_New | 0x0010;
break; //打开1KHZ中断
}
break;
case 4: //如果此时秒表处于暂停状态则清零
if(intflag==0)
{
mbmin = 0;
mbsec = 0;
mmsec = 0;
}
else
*P_Watchdog_Clear = 0x0001;
break;
}
}
}
//===============================================================//
//语法格式: void miaobiao()
//实现功能:秒表运行修正
//参数 :无
//返回值 :无
//==============================================================//
void miaobiao() //秒表运行修正子函数,由1kHZ中断实现
{
if(mbnum==10)
{
mbnum = 0;
mmsec = ++mmsec;
}
if(mapcounter1==300) //显示SUNPLUS旋转界面
{
mapcounter1=0;
mapcounter2=mapcounter2++;
if(mapcounter2==40)
mapcounter2=0;
}
if(mmsec==102)
{
mmsec = 0;
mbsec = ++mbsec;
}
if(mbsec==60)
{
mbsec = 0;
mbmin = ++mbmin;
}
if(mbmin==99)
{
mbmin = 0;
}
}
//===============================================================//
//语法格式: void shownaozhongset()
//实现功能:显示闹钟设置界面
//参数 :无
//返回值 :无
//==============================================================//
void shownaozhong_set() //
{
LCD501_Bitmap(28,10,(unsigned int*)encoding_nao); //闹
LCD501_Bitmap(40,10,(unsigned int*)encoding_zhong); //钟
LCD501_Bitmap(52,10,(unsigned int*)encoding_shi); //时
LCD501_Bitmap(64,10,(unsigned int*)encoding_jian); //间
LCD501_Bitmap(76,10,(unsigned int*)encoding_she); //设
LCD501_Bitmap(88,10,(unsigned int*)encoding_zhi); //置
LCD501_Bitmap(28,30,(unsigned int*)encoding_nao); //闹
LCD501_Bitmap(40,30,(unsigned int*)encoding_zhong); //钟
LCD501_Bitmap(52,30,(unsigned int*)encoding_ling); //铃
LCD501_Bitmap(64,30,(unsigned int*)encoding_sheng); //声
LCD501_Bitmap(76,30,(unsigned int*)encoding_she); //设
LCD501_Bitmap(88,30,(unsigned int*)encoding_zhi); //置
LCD501_Bitmap(28,50,(unsigned int*)encoding_fan); //返
LCD501_Bitmap(40,50,(unsigned int*)encoding_hui); //回
}
//===============================================================//
//语法格式: void set_ring()
//实现功能:按键选择闹钟的时间设置或者是铃声设置
//参数 :无
//返回值 :无
//==============================================================//
void set_ring()
{
int i = 0;
keyflag6 = 1;
LCD501_ClrScreen(0);
while(keyflag6==1)
{
shownaozhong_set(); //闹钟设置界面
LCD501_Bitmap(14,clockset[i],(unsigned int*)encoding_mouse);
//光标
keyscan();
switch(keyvalue)
{
case 1:
switch(i)
{
case 0:
setclock(); //调用闹钟时间设置界面
break;
case 1: //调用铃声选择
ring_choice();
break;
case 2:
keyflag6=0;
LCD501_ClrScreen(0);
break;
}
break;
case 2: //光标下移
LCD501_Bitmap(14,clockset[i],(unsigned int*)encoding_empty);
if(i==2)
i = 0;
else
i = ++i;
break;
case 4: //光标上移
LCD501_Bitmap(14,clockset[i],(unsigned int*)encoding_empty);
if(i==0)
i = 2;
else
i = --i;
break;
}
}
}
//===============================================================//
//语法格式: void showringmap()
//实现功能:进入铃声选择界面
//参数 :无
//返回值 :无
//==============================================================//
void showringmap()
{
LCD501_Bitmap(45,10,(unsigned int*)encoding_ling); //铃声1
LCD501_Bitmap(57,10,(unsigned int*)encoding_sheng);
LCD501_Bitmap(69,10,(unsigned int*)encoding_1);
LCD501_Bitmap(45,30,(unsigned int*)encoding_ling); //铃声2
LCD501_Bitmap(57,30,(unsigned int*)encoding_sheng);
LCD501_Bitmap(69,30,(unsigned int*)encoding_2);
}
//===============================================================//
//语法格式: ring_choice()
//实现功能:铃声选择
//参数 :无
//返回值 :无
//==============================================================//
void ring_choice()
{
int i = 0;
keyflag7 = 1;
LCD501_ClrScreen(0);
while(keyflag7==1)
{
showringmap();
LCD501_Bitmap(23,clockset[i],(unsigned int*)encoding_mouse);
keyscan();
switch(keyvalue)
{
case 1:
{
keyflag7 = 0;
LCD501_ClrScreen(0); //退出循环清屏
if(i==0)
ringflag = 0; //选中铃声1
else
ringflag = 1; //选中铃声2
}
break;
case 2:
{
switch(i) //切换光标的位置
{
case 0:
LCD501_Bitmap(23,clockset[i],(unsigned int*)encoding_empty);
i = 1;
break;
case 1:
LCD501_Bitmap(23,clockset[i],(unsigned int*)encoding_empty);
i = 0;
break;
}
}
break;
case 4:
if(i==0)
PlayRespond(17);
else
PlayRespond(18);
break;
}
}
}
//=========================================================================//
//system.c end
//=========================================================================//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -