main.c
来自「电子词典的设计开发」· C语言 代码 · 共 635 行 · 第 1/2 页
C
635 行
case 13 :{tel_find[tel_find_name]=value1;flag=1;tel_find_name++;}break;
case 14 :{tel_find[tel_find_name]=value2;flag=1;tel_find_name++;}break;
case 15 :{tel_find[tel_find_name]=value3;flag=1;tel_find_name++;}break;
case 16 :{tel_find[tel_find_name]=value4;flag=1;tel_find_name++;}break;
}
if(tel_find_name)Play_Num(tel_find,tel_find_name);
}
}
//=================================================================================
//void play_music() 播放音乐子程序
//=================================================================================
/*void play_music()
{
unsigned int i,j;
SACM_A2000_Initial(Auto); //A2000播放初始化 函数包含在Sacmv32.lib
SACM_A2000_Play(0,DAC1+DAC2,Ramp_Up_On+Ramp_Dn_On); //A2000语音播放 函数包含在Sacmv32.lib
if((SACM_A2000_Status()&0x01) == 0) //判断语音是否播放结束 函数包含在Sacmv32.lib
SACM_A2000_Play(0,DAC1+DAC2,Ramp_Up_On+Ramp_Dn_On); //语音播放 函数包含在Sacmv32.lib
for(j=0;j<=3;j++) //延时
for(i=0;i<0xffff;i++)
Clear_Watch_Dog();
}
*/
//=====================================================
//main() 主程序
//=====================================================
main()
{
unsigned int temp0=1; //发送第一个字符标志
unsigned int key=1,i;
SP_Init_IOA(); //带数据缓存器的高电平输出 初始化A口为输出口
SP_Init_IOB(); //初始化B口低字节的高四位带数据缓存器的高电平为输出口
Init_sys(); //初始化字库 函数定义在Splc501sys.asm
FG_InitGraphic(); //初始化LCDIO口 函数定义在Splc501sys.asm
//低四位为带下拉电阻的输入端
KeyFlag = NoKey;
SP_INT_128Hz(); //key scan
while(1)
{
Clear_Watch_Dog();
if(flag_dictionary) Play_Num(KeycodeLED,ret);
if(flag_edit_tel) Play_Num0(line,row);
if(flag_find_tel) Play_Num(tel_find,tel_find_name);
if(flag_dictionary+flag_edit_tel+flag_find_tel==0)
{
FG_ClearScreen(0);
FG_PutStr("Electronic",3,110,50);
FG_PutStr("Dictionary",3,110,35);
delay();
}
if(KeyFlag==1) //有键按下
{
KeyFlag=NoKey;
KeyVal=F_Get_Key();
switch( KeyVal)
{
case 15: //按下此键可以切换字母与数字
while(1)
{
FG_ClearScreen(0);
FG_PutStr("1.Number",3,100,50);
FG_PutStr("2.Character",3,100,35);
temp=F_Get_Key();
delay();
if(temp==13) {flag_change=1;break;}
else if(temp==14){flag_change=0;break;}
}
break;
case 7:
FG_ClearScreen(0);
if(flag_change==0) //a,b,c
{
while(1)
{
FG_PutStr("a",3,120,20);FG_PutStr("b",3,110,20);
FG_PutStr("c",3,100,20);FG_PutStr("kg",3,80,20);
choose(97,98,99,32);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=7;row++;}//数字7
break;
case 8:
FG_ClearScreen(0);
if(flag_change==0) //d,e,f
{
while(1)
{
FG_PutStr("d",3,120,20);FG_PutStr("e",3,110,20);FG_PutStr("f",3,100,20);
choose(100,101,102,0);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=8;row++;}//数字8
break;
case 9: //g,h,i
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("g",3,120,20);FG_PutStr("h",3,110,20);FG_PutStr("i",3,100,20);
choose(103,104,105,0);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=9;row++;}//数字9
break;
case 4: //j,k,l
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("j",3,120,20);FG_PutStr("k",3,110,20);FG_PutStr("l",3,100,20);
choose(106,107,108,0);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=4;row++;}//数字4
break;
case 5: //m,n,o
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("m",3,120,20);FG_PutStr("n",3,110,20);FG_PutStr("o",3,100,20);
choose(109,110,111,0);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=5;row++;}//数字5
break;
case 6: //p,r,q,s
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("p",3,120,20);FG_PutStr("q",3,110,20);
FG_PutStr("r",3,100,20);FG_PutStr("s",3,90,20);
choose(112,113,114,115);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=6;row++;} //数字6
break;
case 1: //t,u,v
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("t",3,120,20);FG_PutStr("u",3,110,20);FG_PutStr("v",3,100,20);
choose(116,117,118,0);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=1;row++;}//数字1
break;
case 2: //w,x,y,z
FG_ClearScreen(0);
if(flag_change==0)
{
while(1)
{
FG_PutStr("w",3,120,20);FG_PutStr("x",3,110,20);
FG_PutStr("y",3,100,20);FG_PutStr("z",3,90,20);
choose(119,120,121,122);
if(flag||temp==11) {flag=0;break;}
}
}
else if(flag_change&&flag_edit_tel){telephone[line][row]=2;row++;}//数字2
break;
case 3:
if(flag_change&&flag_edit_tel){telephone[line][row]=3;row++;}//数字3
break;
case 16: // 查找电话本或单词
FG_ClearScreen(0);
while(1)
{
if(flag_dictionary) //查找单词
{
Play_Num(KeycodeLED,ret);
ciku();delay();
temp=F_Get_Key();
if(temp==11)
{
while(1)
{
FG_ClearScreen(0);
FG_PutStr("GO On Find Word?",3,120,55);
FG_PutStr("1.YES",3,110,40);
FG_PutStr("2. NO",3,110,25);
if(temp==13) {ret=0;break;}
if(temp==14) {flag_dictionary=0;ret=0;break;}
delay();
}
}
}
else if(flag_edit_tel) //电话本编辑结束
{
FG_ClearScreen(0);
if(key){FG_PutStr("Have Saved",3,120,40);delay();delay();FG_ClearScreen(0);key=0;}
FG_PutStr("GO ON Edit?",3,110,55);
FG_PutStr("1.YES",3,110,40);
FG_PutStr("2. NO",3,110,25);
delay();
temp=F_Get_Key();
if(temp==13) {line++;row=0;key=1;break;}
if(temp==14) {flag_edit_tel=0;line++;row=0;key=1;break;}
}
else if(flag_find_tel) //查找电话本
{
tel_num_find();
delay();
temp=F_Get_Key();
if(temp==11) {flag_find_tel=0;tel_num_you=0;tel_find_name=0;break;}
}
else break;
}
break;
case 10: //按此键可以输入单词或数字0
if(flag_change&&flag_edit_tel){telephone[line][row]=0;row++;}
else
{
if(flag_dictionary==0)flag_dictionary=1;
flag_you=0;
delay();
}
break;
case 11: //如果是删除键,ret依次减一
if(flag_dictionary) {if(ret>0) ret--;}
else if(flag_edit_tel) {if(row>0) row--;}
else if(flag_find_tel) {if(tel_find_name>0) tel_find_name--;}
break;
case 12: //按编辑电话本键,编辑电话本
while(1)
{
FG_ClearScreen(0);
FG_PutStr("DO WHAT?",3,120,60);
FG_PutStr("1.Edit Tel Book",3,120,45);
FG_PutStr("2.Find Tel Book",3,120,30);
temp=F_Get_Key();
delay();
if(temp==13)
{
flag_edit_tel=1;
break;
}
else if(temp==14)
{
flag_find_tel=1;
break;
}
else if(temp==11)break;
}
break;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?