📄 lcm141-key.c
字号:
buffer=0x20;
Write_Data();
addr_buffer=addr_rights15; //h
buffer=0x04;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
case 12:
addr_buffer=addr_rights17; //kg
buffer=0x20;
Write_Data();
addr_buffer=addr_rights15; //d
buffer=0x08;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
case 13:
addr_buffer=addr_rights15; //t/s
buffer=0x22;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
case 14:
addr_buffer=addr_rights15; //t/m
buffer=0x42;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
case 15:
addr_buffer=addr_rights15; //t/h
buffer=0x06;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
case 16:
addr_buffer=addr_rights15; //t/d
buffer=0x0A;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
break;
default:
break;
}
}
else if(UNSCALED_PULSE==1)
{
/*
addr_buffer=addr_rights3; //HZ
buffer=0x10;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
*/
}
else if(TEMP_f==1)
{
addr_buffer=addr_rights15; //摄氏度
buffer=0x80;
Write_Data();
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
}
FLOAT2ASCII();
Display_up();
}
void Switching_Display1(void)
{
Display_Init();
if(PRESS_f==1)
{
/*
if(压力〉)
{
addr_buffer=addr_rights31; //KP
buffer=0x88;
Write_Data();
}
else
{
addr_buffer=addr_rights31; //MP
buffer=0x84;
Write_Data();
}
//view=(unsigned long int)(Density*1000); //仪表系数;
//view_cnt=3;
*/
}
if(DENSITY_UNIT>0)
{
switch(DENSITY_UNIT)
{
case 1: //kg/m3
addr_buffer=addr_rights31;
buffer=0x32;
Write_Data();
//view=(unsigned long int)(f*1000);//频率;
//view_cnt=1;
break;
case 2:
addr_buffer=addr_rights31; //kg/l
buffer=0x52;
Write_Data();
//view=(unsigned long int)(Q*1000);//瞬时流量;
//view_cnt=2;
break;
case 3:
addr_buffer=addr_rights31; //t/m3
buffer=0x23;
Write_Data();
//view=(unsigned long int)(QL*1000);//累计流量;
//view_cnt=3;
break;
case 4:
addr_buffer=addr_rights31; //t/l
buffer=0x43;
Write_Data();
//view=(unsigned long int)(Diameter*1000); //仪表口径;
//view_cnt=1;
break;
}
FLOAT2ASCII();
Display_up();
}
}
/*
void Key_Init(void)
{
P1SEL &= ~(BIT5+BIT6+BIT7);
P1DIR &= ~(BIT5+BIT6+BIT7);
P1IE |= (BIT5+BIT6+BIT7);
P1IES |= (BIT5+BIT6+BIT7);
}
//读键盘子程序
void Read_Key(void)
{
key_temp=P1IN&0xE0;//屏蔽没用的位
msdelay(100);
if(key_temp==(P1IN&0xE0))//两次读取的相同键值
{
switch(key_temp)
{
case 128:
while(key_temp==0x80)//-> 移位键
{
key_temp=P1IN&0xE0;
value=1;
}
while(key_temp==0xC0)//F键与-> 键组合
{
key_temp=P1IN&0xE0;
value=4;
}
while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
{
key_temp=P1IN&0xE0;
}
break;
case 32:
while(key_temp==0x20)//^键循环增加
{
key_temp=P1IN&0xE0;
value=2;
}
while(key_temp==0x60)//F键与^键组合
{
key_temp=P1IN&0xE0;
value=5;
}
while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
{
key_temp=P1IN&0xE0;
}
break;
case 64://F键保存数据
while(key_temp==0x40)
{
key_temp=P1IN&0xE0;
value=3;
}
while(key_temp==0xC0)//F键与-> 键组合
{
key_temp=P1IN&0xE0;
value=4;
}
while(key_temp==0x60)//F键与^键组合复位
{
key_temp=P1IN&0xE0;
value=5;
}
while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
{
key_temp=P1IN&0xE0;
}
break;
default:
break;
}
}
}
void Key_act(void)
{
unsigned long int view_10x;
switch(value)
{
case 1:
if(EditFlag==1)
{
switch(order_count)
{
case 4:
bit_count++;
if(bit_count>5)
{
bit_count=0;
}
Flickering_Display();
break;
case 5:
bit_count++;
if(bit_count>3)
{
bit_count=0;
}
Flickering_Display();
break;
case 6:
bit_count++;
if(bit_count>4)
{
bit_count=0;
}
Flickering_Display();
break;
default:
break;
}
}
break;
case 2:
if(EditFlag==1)
{
switch(order_count)
{
case 4:
dis_down[bit_count]+=1;
view_10x=1;
view=0;
for(i=0;i<8;i++)
{
if(dis_down[i]>=10)
{
dis_down[i]-=10;
}
view+=dis_down[i]*view_10x;
view_10x=view_10x*10;
}
Diameter=(float)view/1000;
Flickering_Display();
break;
case 5:
dis_down[bit_count]+=1;
view_10x=1;
view=0;
for(i=0;i<8;i++)
{
if(dis_down[i]==10)
{
dis_down[i]=0;
}
view+=dis_down[i]*view_10x;
view_10x=view_10x*10;
}
Meter_coeffient=(float)view/1000;
Flickering_Display();
break;
case 6:
dis_down[bit_count]+=1;
view_10x=1;
view=0;
for(i=0;i<8;i++)
{
if(dis_down[i]==10)
{
dis_down[i]=0;
}
view+=dis_down[i]*view_10x;
view_10x=view_10x*10;
}
Density=(float)view/1000;
Flickering_Display();
break;
default:
break;
}
}
else
{
order_count++;
if((order_count>6)|(order_count<4))
{
order_count=4;
}
Switching_Display();
}
break;
case 3:
if(EditFlag==1)
{
order_count++;
if(order_count>6)
{
order_count=4;
}
bit_count=0;
Flickering_Display();
}
else
{
order_count++;
if(order_count>3)
{
order_count=1;
}
Switching_Display();
}
break;
case 4:
if(EditFlag==1)
{
EditFlag=0;
order_count=4;
Write_float_FLASH ((float *)FLASH_A,Diameter);
Write_float_FLASH ((float *)FLASH_A+1,Meter_coeffient);
Write_float_FLASH ((float *)FLASH_A+2,Density);
Write_unchar_FLASH ((unsigned char*)FLASH_A+12,0xAA);
Switching_Display();
}
else
{
EditFlag=1;
order_count=4;
bit_count=0;
Flickering_Display();
}
break;
case 5:
if(EditFlag==0)
{
order_count=4;
RESET_FLASH ((float *)FLASH_A,(float *)FLASH_B);
Switching_Display();
}
break;
default:
break;
}
}
*/
void msdelay(unsigned int delaytime)
{
unsigned int intdelay;
for(intdelay=0;intdelay<delaytime;intdelay++);
}
// P1口中断,产生按键中断标志
/*
#pragma vector=PORT1_VECTOR
__interrupt void Port1Key()
{
P1IFG&=0X00;
msdelay(100);
if((P1IN&0xE0)!=0xE0)
{
KeyFlag=1;
Read_Key();
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -