📄 led菜单程序.c
字号:
uled[6]=uled[5]=0;
uled[4]=dis_code(x/10000);x%=10000;
uled[3]=dis_code(x/1000);x%=1000;
uled[2]=dis_code(x/100);x%=100;
uled[1]=dis_code(x/10);x%=10;
uled[0]=dis_code(x);
}
/*-------------------------------------------------------------------------*/
void wait_renew_display_read_key(void)
{
while(renew_dis_key_flag==0)PCON=0x01;
renew_dis_key_flag=0;
CH451_WRITE(SYSON1_ADD,SYSON1_CODE,SYSON2_ADD,SYSON2_CODE);
CH451_WRITE(DSP_ADD,DSP_CODE,DSP_ADD,DSP_CODE);
last_key=key;
key=CH451_READ();
display_led();
CH451_WRITE(0,0,DIG0,key);
}
/*-------------------------------------------------------------------------*/
void code_display(void)
{
uled[0]=0x01;
uled[1]=0x02;
uled[2]=0x04;
uled[3]=0x08;
uled[4]=0x10;
uled[5]=0x20;
uled[6]=0x40;
uled[7]=0x80;
}
/*-------------------------------------------------------------------------*/
void key_display(void)
{
CH451_WRITE(0,0,DIG0,key) ;
}
/*-------------------------------------------------------------------------*/
void display_h_m_s()
{
time=read_8583_byte(0x02);
time_min=read_8583_byte(0x03);
write_8583_byte(0x04,0x23);
time_hou=read_8583_byte(0x04);
time1=time/16;z=time%16; /*将频率值转换为显示断码*/
time2=z;
time1=time1-0x01;
time2=time2-0x01;
uled[0]=dis_code(time2+1);
uled[1]=dis_code(time1+1);
uled[2]=CODE_;
uled[3]=dis_code(time_min%16);
uled[4]=dis_code(time_min/16);
uled[5]=CODE_;
uled[6]=dis_code(time_hou%16);
uled[7]=dis_code(time_hou/16);
}
/*-------------------------------------------------------------------------*/
void display_7705_ad()
{
uled[0]=CODE0;
uled[1]=CODE1;
uled[2]=CODE2;
uled[3]=CODE3;
uled[4]=CODE4;
uled[5]=CODE5;
uled[6]=CODE6;
uled[7]=CODE7;
display_led();
}
/*-------------------------------------------------------------------------*/
void display_temp()
{
uled[0]=CODE7;
uled[1]=CODE6;
uled[2]=CODE5;
uled[3]=CODE4;
uled[4]=CODE3;
uled[5]=CODE2;
uled[6]=CODE1;
uled[7]=CODE0;
display_led();
}
/*-------------------------------------------------------------------------*/
display_y_m_d()
{
write_8583_byte(0x06,0x08);
time_month=read_8583_byte(0x06);
write_8583_byte(0x05,0x05);
time_data=read_8583_byte(0x05);
uled[0]=dis_code(time_data%10);
uled[1]=dis_code(time_data/10);
uled[2]=CODE_;
uled[3]=dis_code(time_month%10);
uled[4]=dis_code(time_month/10);
uled[5]=CODE_;
uled[6]=CODE7;
uled[7]=CODE0;
}
/*-------------------------------------------------------------------------*/
h_operation()
{}
/*-----*/
m_operation()
{
}
/*-----------*/
ad7705_operation()
{
}
/*-----------*/
ffs_operation()
{
}
/*----------------*/
ad654_vfs_operation()
{
}
/*----*/
y_m_d_operation()
{
}
/*------*/
/*----------------------*/
led()
{
uled[0]=0;
wait_renew_display_read_key();
if(last_key==NOKEY && key==CLEAR)return;
}
/*-------------*/
s_operation()
{
for(;;)
{
time=read_8583_byte(0x02);
write_8583_byte(0x04,0x23);
time_min=read_8583_byte(0x03);
time_hou=read_8583_byte(0x04);
time1=time/16;z=time%16; /*将频率值转换为显示断码*/
time2=z;
time1=time1-0x01;
time2=time2-0x01;
uled[0]=dis_code(time2+1);
uled[1]=dis_code(time1+1);
uled[2]=CODE_;
uled[3]=dis_code(time_min%16);
uled[4]=dis_code(time_min/16);
uled[5]=CODE_;
uled[6]=dis_code(time_hou%16);
uled[7]=dis_code(time_hou/16);
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)
{
dilplay_led();
return;
}
if(last_key==NOKEY && key==CLEAR)
{
key=NOKEY;
return;
}
}
}
/*--------------------------------------------------*/
void fo_operation(void)
{
unsigned int x;
for(;;)
{
x=delta_counter;
uled[7]=CODEF;uled[6]=CODEo;uled[5]=0;
uled[4]=dis_code(x/10000);x%=10000;
uled[3]=dis_code(x/1000);x%=1000;
uled[2]=dis_code(x/100);x%=100;
uled[1]=dis_code(x/10);x%=10;
uled[0]=dis_code(x);
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)
{
fo.unsigned_int=frequency;
return;
}
if(last_key==NOKEY && key==CLEAR)
{
fo.unsigned_int=frequency;
key=NOKEY;
return;
}
}
}
/*-------------------------------------------------------------------------*/
vf654_operation()
{
for(;;)
{
for(;;)
{
uled[7]=CODEF;uled[6]=CODEo;uled[5]=0;uled[4]=0;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)fo_operation();
if(last_key==NOKEY && key==CLEAR){key=NOKEY;return;}
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEA;uled[6]=CODEd;uled[5]=CODEF;uled[4]=CODES;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)ffs_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEU;uled[6]=CODEF;uled[5]=CODES;uled[4]=0;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)ad654_vfs_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
}
}
/*-------------------------------------------------------------------------*/
h_m_s_operation()
{
for(;;)
{
for(;;)
{
uled[7]=CODEh;uled[6]=0;uled[5]=0;uled[4]=0;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)h_operation();
if(last_key==NOKEY && key==CLEAR){key=NOKEY;return;}
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEN;uled[6]=0;uled[5]=0;uled[4]=0;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)m_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODES;uled[6]=0;uled[5]=0;uled[4]=0;uled[3]=0;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)s_operation();
if(last_key==NOKEY && key==CLEAR){key=NOKEY;return;}
if(last_key==NOKEY && key==MENU)break;
}
}
}
/*--------------------------------------------------------------------------*/
void main_menu_operation(void)
{
for(;;)
{
for(;;)
{
uled[7]=CODEA;uled[6]=CODEd;uled[5]=CODE6;uled[4]=CODE5;uled[3]=CODE4;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)vf654_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEA;uled[6]=CODEd;uled[5]=CODE7;uled[4]=CODE7;uled[3]=CODE0;uled[2]=CODE5;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK) ad7705_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEY;uled[6]=CODE_;uled[5]=CODEN;uled[4]=CODE_;uled[3]=CODEd;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)y_m_d_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
for(;;)
{
uled[7]=CODEh;uled[6]=CODE_;uled[5]=CODEN;uled[4]=CODE_;uled[3]=CODES;uled[2]=0;uled[1]=0;uled[0]=CODE_ASK;
wait_renew_display_read_key();
if(last_key==NOKEY && key==OK)h_m_s_operation();
if(last_key==NOKEY && key==CLEAR)return;
if(last_key==NOKEY && key==MENU)break;
}
}
}
/*-------------------------------------------------------------------------*/
void main(void)
{
TMOD=0x51; /*设置定时中断T0*/
EA=1;
ET0=1;
TR0=1;
TR1=1;
for(;;)
{
switch(display_state)
{
case 1:display_frequency();break;
case 2:display_7705_ad();break;
case 3:display_temp();break;
case 4:display_y_m_d();break;
case 5:display_h_m_s();break;
case 6:code_display();break;
default:display_state=1;break;
}
wait_renew_display_read_key();
if((last_key==NOKEY )&& (key==UP))
{
display_state++;
if(display_state>6)display_state=1;
}
if(last_key==NOKEY && key==DOWN)
{
display_state--;
if(display_state==0)display_state=6;
}
if(last_key==NOKEY && key==MENU)
{
main_menu_operation();
}
}
}
/*------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -