⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led菜单程序.c

📁 是对LED下的菜单的编写
💻 C
📖 第 1 页 / 共 2 页
字号:
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 + -