|
发表于 2007-11-3 17:46:46
|
显示全部楼层
我的菜单部分代码
用最笨拙的判断语句实现
//************************************************************************************
//函数名称:SIGNAL(SIG_INTERRUPT7)
//函数功能:键盘上有键被按下时触发该中断
//入口参数:无
//出口参数:无
//附注:
//************************************************************************************
void disp_layer_1()
{
unsigned char i;
unsigned char manu1[]="电压设置";
unsigned char manu2[]="角度变比设置";
unsigned char manu3[]="起始位置设置";
unsigned char manu4[]="状态查看";
unsigned char manu5[4][2]={{0xa2,0xb1},{0xa2,0xb2},{0xa2,0xb3},{0xa2,0xb4}};
write_command(clr_screen);
delay_ms(10);
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<2;i++)
write_data(manu5[0]);
write_command(0x81);
for(i=0;i<8;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<2;i++)
write_data(manu5[1]);
write_command(0x91);
for(i=0;i<12;i++)
write_data(manu2);
write_command(0x88);
for(i=0;i<2;i++)
write_data(manu5[2]);
write_command(0x89);
for(i=0;i<12;i++)
write_data(manu3);
write_command(0x98);
for(i=0;i<2;i++)
write_data(manu5[3]);
write_command(0x99);
for(i=0;i<8;i++)
write_data(manu4);
write_command(0x80);
write_command(AC_highlight);
}
void disp_standby()
{
unsigned char i;
unsigned char manu2[2]={0xA3,0xAE};
write_command(clr_screen);
delay_ms(10);
write_command(0x92);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[3]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[6]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[0]);
for(i=0;i<2;i++)
write_data(manu2);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[0]);
write_command(AC_highlight_off);
}
void disp_voltage_setup(int shi_kuang_ge_shu)
{
unsigned char i,j;
unsigned char manu1[]="电压幅度";
// - + 实框 虚框
unsigned char manu2[4][2]={{0xA3,0xAD},{0xA3,0xAB},{0xA1,0xF6},{0xA1,0xF5}};
write_command(clr_screen);
delay_ms(10);
write_command(0x82);
for(i=0;i<8;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<2;i++)
write_data(manu2[0]);
write_command(0x97);
for(i=0;i<2;i++)
write_data(manu2[1]);
write_command(0x91);
for(j=0;j<(shi_kuang_ge_shu);j++)
for(i=0;i<2;i++)
write_data(manu2[2]);
write_command(0x91+shi_kuang_ge_shu);
for(j=0;j<(6-shi_kuang_ge_shu);j++)
for(i=0;i<2;i++)
write_data(manu2[3]);
write_command(0x8b);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shi_kuang_ge_shu]);
write_command(AC_highlight_off);
}
void disp_ratio_warning()
{
unsigned char i;
unsigned char manu1[]="提示:设置之前请";
unsigned char manu2[]="先确认罗盘已变换";
unsigned char manu3[]=" 是否继续操作?";
unsigned char manu4[]=" 是否 ";
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<16;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<16;i++)
write_data(manu2);
write_command(0x88);
for(i=0;i<16;i++)
write_data(manu3);
write_command(0x98);
for(i=0;i<16;i++)
write_data(manu4);
write_command(0x9b);
write_command(AC_highlight);
}
void disp_ratio_setup()
{
unsigned char i;
unsigned char manu1[14]={0xa2,0xb1,0x20,0x20,0xa3,0xb1,0xa3,0xba,0xa3,0xb3,0xa3,0xb6,0xa3,0xb0};
unsigned char manu2[14]={0xa2,0xb2,0x20,0x20,0xa3,0xb1,0xa3,0xba,0xa3,0xb1,0xa3,0xb8,0xa3,0xb0};
unsigned char manu3[14]={0xa2,0xb3,0x20,0x20,0xa3,0xb1,0xa3,0xba,0xa3,0xb9,0xa3,0xb0,0x20,0x20};
unsigned char manu4[14]={0xa2,0xb4,0x20,0x20,0xa3,0xb1,0xa3,0xba,0xa3,0xb6,0xa3,0xb0,0x20,0x20};
unsigned char manu5[2]={0xA1,0xCC};
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<14;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<14;i++)
write_data(manu2);
write_command(0x88);
for(i=0;i<14;i++)
write_data(manu3);
write_command(0x98);
for(i=0;i<14;i++)
write_data(manu4);
switch(ratio)
{
case 360:
{
write_command(0x87);
for(i=0;i<2;i++)
write_data(manu5);
}; break;
case 180:
{
write_command(0x97);
for(i=0;i<2;i++)
write_data(manu5);
}; break;
case 90:
{
write_command(0x8f);
for(i=0;i<2;i++)
write_data(manu5);
}; break;
case 60:
{
write_command(0x9f);
for(i=0;i<2;i++)
write_data(manu5);
}; break;
default:;
}
write_command(0x80);
write_command(AC_highlight);
}
void disp_position_warning()
{
unsigned char i;
unsigned char manu1[]=" 提示 ";
unsigned char manu2[]=" 更改此项有风险";
unsigned char manu3[]=" 是否继续操作?";
unsigned char manu4[]=" 是否 ";
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<16;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<16;i++)
write_data(manu2);
write_command(0x88);
for(i=0;i<16;i++)
write_data(manu3);
write_command(0x98);
for(i=0;i<16;i++)
write_data(manu4);
write_command(0x9b);
write_command(AC_highlight);
}
void disp_position_setup()
{
unsigned char i;
unsigned char character1[]="初始位置修改";
cli();
eeprom_add_0=EEPROM_read(0x0000);
eeprom_add_1=EEPROM_read(0x0001);
eeprom_add_2=EEPROM_read(0x0002);
eeprom_add_3=EEPROM_read(0x0003);
bai_wei=eeprom_add_0;
shi_wei=eeprom_add_1;
ge_wei=eeprom_add_2;
shifen_wei=eeprom_add_3;
write_command(clr_screen);
delay_ms(10);
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<12;i++)
write_data(character1);
write_command(0x8a);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[bai_wei]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shi_wei]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[ge_wei]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[10]);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shifen_wei]);
write_command(0x8a);
write_command(AC_highlight);
sei();
}
void disp_status()
{
{
unsigned char i;
unsigned char manu1[]="角度变比";
unsigned char manu2[]="电压幅度";
unsigned char manu3[4][10]={ {0xa3,0xb1,0xa3,0xba,0xa3,0xb3,0xa3,0xb6,0xa3,0xb0},
{0xa3,0xb1,0xa3,0xba,0xa3,0xb1,0xa3,0xb8,0xa3,0xb0},
{0xa3,0xb1,0xa3,0xba,0xa3,0xb9,0xa3,0xb0,0x20,0x20},
{0xa3,0xb1,0xa3,0xba,0xa3,0xb6,0xa3,0xb0,0x20,0x20}};
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<8;i++)
write_data(manu1);
write_command(0x88);
for(i=0;i<8;i++)
write_data(manu2);
switch(ratio)
{
case 360:
{
write_command(0x92);
for(i=0;i<10;i++)
write_data(manu3[0]);
} ; break;
case 180:
{
write_command(0x92);
for(i=0;i<10;i++)
write_data(manu3[1]);
} ; break;
case 90:
{
write_command(0x92);
for(i=0;i<10;i++)
write_data(manu3[2]);
} ; break;
case 60:
{
write_command(0x92);
for(i=0;i<10;i++)
write_data(manu3[3]);
} ; break;
default: ;
}
write_command(0x9c);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[module-2]);
write_command(AC_highlight_off);
}
}
SIGNAL(SIG_INTERRUPT7)
{
unsigned char a,b,key,i;
a=TIMSK; //保存定时器中断屏蔽寄存器的状态值
TIMSK&=~(1<<TOIE1); //不管先前定时器溢出是否允许,到要将其禁止。程序中有溢出中断,若溢出标志位置位
//程序将会去等待该按键中断结束(溢出中断的优先级别比外部中断7低)再去实行溢出中断
//实际上保存此定时器中断屏蔽寄存器的状态值无太多意义,暂时先这样写着
//测试是否是键盘误抖动
delay_ms(10);
if(!(PIND&0x80)) //软件延时10ms还有键按下
{
//开始键盘扫描
DDRD|=(1<<DDD7); //改变口D的第7位的方向为输出低
PORTD&=~(1<<PORTD7);
DDRF=0x00; //F口输入上拉
PORTF=0x00;
delay_us(10); //软件延时
b=PINF; //读断口F的电平值
b|=0xc0; //屏蔽掉不用的高两位
if(b==0xFE)
key=1; //向上键
if(b==0xFD)
key=2; //向左键
if(b==0xFB)
key=3; //向右键
if(b==0xF7)
key=4; //向下键
if(b==0xEF)
key=5; //菜单键
if(b==0xDF)
key=6; //确定键
keyboard_init(); //将各口的输入输出情况翻转过来
while(!(PIND&0x80)); //等待键释放
/* if(press_num==1) //第一次有键被按下,则必须是菜单键才会有响应
{
if(key==5)
{
write_command(clr_screen);
delay_ms(10);
write_command(0x80);
for(i=0;i<10;i++)
write_data(manu1);
write_command(0x90);
for(i=0;i<14;i++)
write_data(manu2);
write_command(0x88);
for(i=0;i<14;i++)
write_data(manu3);
write_command(0x98);
for(i=0;i<6;i++)
write_data(manu4);
write_command(0x90);
write_command(AC_highlight);
}
}
} */
//第一次有键被按下,则必须是菜单键才会有响应,显示的是第一层画面,也就是
// 1.电压设置 +
// 2.角变比
// 3.起始位置
// 4.状态查看
/*11111111************************************************************************************************************/
if(press_num==1)
{
if(key==MENU)
{
disp_layer_1(); //刷新显示第一层界面
layer=1;where=0; //层标记为1,选中行标记为0
press_num=2;
}
}
/*22222222************************************************************************************************************/
//再有键被按下,响应的键有UP DOWN MENU ENTER。LEFT和RIGHT不被响应,这里的响应是指界面不会被刷新
else if(press_num==2)
{
if(key==MENU) //如果是MENU,则返回待机画面。层标记为0,press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
layer=0;
}
else if(key==ENTER) //是ENTER,先判断where的值,再确定要跳入的下一个界面,最后层标记为2,选中行标记为0
{
if(where==0)
disp_voltage_setup(module-2); //显示“1.电压设置”的子菜单
else if(where==1)
disp_ratio_warning(); //显示“2.角度变比设置”的子菜单“提示:修改此项之前请先确认罗盘是否变化 是否继续操作 是 否”
else if(where==2)
disp_position_warning(); //显示“3.初始位置设置”的子菜单
else if(where==3)
disp_status(); //显示“4.状态查看”的内容
else
;
press_num=3;
layer=2;
where_0_next=0;
where_1_next=0; //层标记为2,下一子菜单的位置标记默认为0
where_2_next=0;
}
else if(key==UP) //是UP,先判断显白的位置也就是where的值,如果where==0则where=3,否则where-=1;然后再依据where的值去刷新显白的位置
{
if(where==0)
where=3;
else
where-=1;
write_command(clr_address); //复位lcm的ac值
if(where==0) //在第一行位置处显白
{
write_command(0x80);
write_command(AC_highlight);
}
else if(where==1) //在第二行位置处显白
{
write_command(0x90);
write_command(AC_highlight);
}
else if(where==2) //在第三行位置处显白
{
write_command(0x88);
write_command(AC_highlight);
}
else //在第四行位置处显白
{
write_command(0x98);
write_command(AC_highlight);
}
}
else if(key==DOWN) //是DOWN,先判断显白的位置也就是where的值,如果where==3则where=0,否则where+=1;然后再依据where的值去刷新显白的位置
{
if(where==3)
where=0;
else
where+=1;
write_command(clr_address); //复位lcm的ac值
if(where==0) //在第一行位置处显白
{
write_command(0x80);
write_command(AC_highlight);
}
else if(where==1) //在第二行位置处显白
{
write_command(0x90);
write_command(AC_highlight);
}
else if(where==2) //在第三行位置处显白
{
write_command(0x88);
write_command(AC_highlight);
}
else //在第四行位置处显白
{
write_command(0x98);
write_command(AC_highlight);
}
}
else //其余,什么也不做
;
}
/*3333333************************************************************************************************************/
//再有键被按下,当where=3时响应的键有 MENU ENTER。LEFT和RIGHT不被响应,这里的响应是指界面不会被刷新
//当where=0,1,2时,响应的键有MENU ENTER LEFT和RIGHT.
else if(press_num==3)
{
//电压设置的子菜单,也就是显示
// 1.30v
// 2.50v
// 3.70v
// 4.90v
if(where==0)
{
if(key==MENU) //如果是MENU,则返回待机画面。层标记为0,press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
layer=0;
}
else if(key==ENTER) //如果是ENTER,则先判断where_next的值然后再进行响应的处理
{
if(where_0_next==0) //30v
module=3; //改变调制度
else if(where_0_next==1)
module=4;
else if(where_0_next==2)
module=5;
else if(where_0_next==3)
module=6;
else if(where_0_next==4)
module=7;
else if(where_0_next==5)
module=8;
else //故障恢复调制度为4
module=4;
//修改完毕返回待机画面
disp_standby(); //返回待机画面
press_num=1;
}
else if(key==LEFT) //如果是向左按键
{
if(where_0_next!=0)
where_0_next-=1;
disp_voltage_setup(where_0_next+1);
}
else if(key==RIGHT) //如果是向下按键
{
if(where_0_next!=5)
where_0_next+=1;
disp_voltage_setup(where_0_next+1);
}
else //如果是LEFT和RIGHT键
;
}
else if(where==1)
{
if(key==MENU) //如果是MENU,则返回待机画面。层标记为0,press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
layer=0;
}
else if(key==ENTER)
{
if(where_1_next==0)
{
disp_ratio_setup(); //显示 "1.1:360 ";
// "2.1:180 ";
// "3.1:90 ";
// "4.1:60 ";
press_num=4;
where_1_next_next=0; //层标记为2,下一子菜单的位置标记默认为0
}
else
{
press_num=2; //返回上一目录
disp_layer_1();
write_command(0x90);
write_command(AC_highlight);
}
}
else if(key==LEFT)
{
if(where_1_next==0)
where_1_next=1;
else
where_1_next-=1;
if(where_1_next==0)
{
write_command(0x9b);
write_command(AC_highlight);
}
else
{
write_command(0x9c);
write_command(AC_highlight);
}
}
else if(key==RIGHT)
{
if(where_1_next==1)
where_1_next=0;
else
where_1_next+=1;
if(where_1_next==0)
{
write_command(0x9b);
write_command(AC_highlight);
}
else
{
write_command(0x9c);
write_command(AC_highlight);
}
}
else
;
}
else if(where==2)
{
if(key==MENU) //如果是MENU,则返回待机画面。层标记为0,press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
layer=0;
}
else if(key==ENTER)
{
if(where_2_next==0)
{
disp_position_setup(); //显示 "1.1:360 ";
press_num=4;
where_2_next_next=0; //层标记为2,下一子菜单的位置标记默认为0
}
else
{
press_num=2; //返回上一目录
disp_layer_1();
write_command(0x88);
write_command(AC_highlight);
}
}
else if(key==LEFT)
{
if(where_2_next==0)
where_2_next=1;
else
where_2_next-=1;
if(where_2_next==0)
{
write_command(0x9b);
write_command(AC_highlight);
}
else
{
write_command(0x9c);
write_command(AC_highlight);
}
}
else if(key==RIGHT)
{
if(where_2_next==1)
where_2_next=0;
else
where_2_next+=1;
if(where_2_next==0)
{
write_command(0x9b);
write_command(AC_highlight);
}
else
{
write_command(0x9c);
write_command(AC_highlight);
}
}
else
;
}
/***********if(where==3)*******************************************************************************/
else if(where==3)
{
if(key==MENU) //如果是MENU,则返回待机画面。层标记为0,press_num标记复位为1
{
disp_standby(); //返回待机画面
write_command(AC_highlight_off);
press_num=1;
}
else if(key==ENTER)
{
disp_standby(); //返回待机画面
write_command(AC_highlight_off);
press_num=1;
}
else
;
}
else
;
}
/*44444444444****************************************************************************************/
else if(press_num==4) //能进到这一层界面的也就是where==1和where==2这两个
{
if(where==1) //能响应的按键有UP DOWN MENU和ENTER,不响应LEFT和RIGHT
{
if(key==MENU) //如果是MENU,则返回待机画面。press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
}
else if(key==ENTER) //如果是ENTER,则先判断where_1_next_next的值然后再进行响应的处理
{
if(where_1_next_next==0) //1:360
ratio=360; //改变角变比
else if(where_1_next_next==1) //1:180
ratio=180;
else if(where_1_next_next==2) //1:90
ratio=90;
else if(where_1_next_next==3) //1:60
ratio=60;
else //故障恢复为1:360
ratio=360;
//修改完毕返回待机画面
disp_standby(); //返回待机画面
press_num=1;
}
else if(key==UP) //如果是向上按键
{
if(where_1_next_next==0)
where_1_next_next=3;
else
where_1_next_next-=1;
write_command(clr_address); //复位lcm的ac值
if(where_1_next_next==0) //在第一行位置处显白
{
write_command(0x80);
write_command(AC_highlight);
}
else if(where_1_next_next==1) //在第二行位置处显白
{
write_command(0x90);
write_command(AC_highlight);
}
else if(where_1_next_next==2) //在第三行位置处显白
{
write_command(0x88);
write_command(AC_highlight);
}
else //在第四行位置处显白
{
write_command(0x98);
write_command(AC_highlight);
}
}
else if(key==DOWN) //如果是向下按键
{
if(where_1_next_next==3)
where_1_next_next=0;
else
where_1_next_next+=1;
write_command(clr_address); //复位lcm的ac值
if(where_1_next_next==0) //在第一行位置处显白
{
write_command(0x80);
write_command(AC_highlight);
}
else if(where_1_next_next==1) //在第二行位置处显白
{
write_command(0x90);
write_command(AC_highlight);
}
else if(where_1_next_next==2) //在第三行位置处显白
{
write_command(0x88);
write_command(AC_highlight);
}
else //在第四行位置处显白
{
write_command(0x98);
write_command(AC_highlight);
}
}
else //如果是LEFT和RIGHT键
;
}
if(where==2) //响应所有的按键
{
if(key==MENU) //如果是MENU,则返回待机画面。press_num标记复位为1
{
disp_standby(); //返回待机画面
press_num=1;
}
else if(key==ENTER) //如果是ENTER,则先判断where_1_next_next的值然后再进行响应的处理
{
//将修改的数据赋给new_position,同时也赋old_position,保证再次运行时电机是从这个位置开始启动的
old_position=bai_wei*100.0+shi_wei*10.0+ge_wei+shifen_wei*0.1;
new_position=old_position;
//修改完毕返回待机画面
disp_standby(); //返回待机画面
press_num=1;
}
else if(key==UP) //如果是向上按键,先判断光标所处的是哪个位置,百位,十位,个位或者十分位
{
if(where_2_next_next==0) //百位
{
if(bai_wei==3)
bai_wei=0;
else
bai_wei+=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8a);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[bai_wei]);
write_command(0x8a);
write_command(AC_highlight);
}
else if(where_2_next_next==1) //十位
{
if(shi_wei==5)
shi_wei=0;
else
shi_wei+=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8b);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shi_wei]);
write_command(0x8b);
write_command(AC_highlight);
}
else if(where_2_next_next==2) //个位
{
if(ge_wei==9)
ge_wei=0;
else
ge_wei+=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8c);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[ge_wei]);
write_command(0x8c);
write_command(AC_highlight);
}
else if(where_2_next_next==3) //十分位
{
if(shifen_wei==9)
shifen_wei=0;
else
shifen_wei+=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8e);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shifen_wei]);
write_command(0x8e);
write_command(AC_highlight);
}
else //其他出错不处理
;
}
else if(key==DOWN) //如果是向下按键
{
if(where_2_next_next==0) //百位
{
if(bai_wei==0)
bai_wei=3;
else
bai_wei-=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8a);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[bai_wei]);
write_command(0x8a);
write_command(AC_highlight);
}
else if(where_2_next_next==1) //十位
{
if(shi_wei==0)
shi_wei=5;
else
shi_wei-=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8b);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shi_wei]);
write_command(0x8b);
write_command(AC_highlight);
}
else if(where_2_next_next==2) //个位
{
if(ge_wei==0)
ge_wei=9;
else
ge_wei-=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8c);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[ge_wei]);
write_command(0x8c);
write_command(AC_highlight);
}
else if(where_2_next_next==3) //十分位
{
if(shifen_wei==0)
shifen_wei=9;
else
shifen_wei-=1;
//确定好百位上的值以后就去刷新该位显示
write_command(clr_address);
write_command(0x8e);
for(i=0;i<2;i++)
write_data(chinese_0_to_9[shifen_wei]);
write_command(0x8e);
write_command(AC_highlight);
}
else //其他出错不处理
;
}
else if(key==LEFT) //向左按键
{
if(where_2_next_next!=0)
where_2_next_next-=1;
if(where_2_next_next==0)
{
write_command(clr_address);
write_command(0x8a);
write_command(AC_highlight);
}
else if(where_2_next_next==1)
{
write_command(clr_address);
write_command(0x8b);
write_command(AC_highlight);
}
else if(where_2_next_next==2)
{
write_command(clr_address);
write_command(0x8c);
write_command(AC_highlight);
}
else if(where_2_next_next==3)
{
write_command(clr_address);
write_command(0x8e);
write_command(AC_highlight);
}
else
;
}
else if(key==RIGHT) //向右按键
{
if(where_2_next_next!=3)
where_2_next_next+=1;
if(where_2_next_next==0)
{
write_command(clr_address);
write_command(0x8a);
write_command(AC_highlight);
}
else if(where_2_next_next==1)
{
write_command(clr_address);
write_command(0x8b);
write_command(AC_highlight);
}
else if(where_2_next_next==2)
{
write_command(clr_address);
write_command(0x8c);
write_command(AC_highlight);
}
else if(where_2_next_next==3)
{
write_command(clr_address);
write_command(0x8e);
write_command(AC_highlight);
}
else
;
}
else //key值出现异常处理,什么都不做
;
}
}
else if(press_num==5)
{
;
}
else
;
}
TIMSK=a; //恢复TIMSK
} |
|