📄 1632_h_v_c_e.c
字号:
{
goto top;
}
km=1;
while(km)
{
//func_display_H();
//func_display_H();
//func_display_H();
//func_display_H();
//func_display_H();
func_display_H();
if((arriver_arrow)&&(rolls==0))
{
gd_k=0;
}
if(arriver_arrow==0)
{
gd_k=1;
}
//func_display_H();
//func_display_H();
if((used_time>4)&&(arrow_old)&&(gd_k))//箭头滚动
{
used_time=0;
func_disp_roll_H(arrow_old);
rolls++;
if(rolls>=16)
rolls=0;
}
if(!FlagChanged)
{
for(kk=0;kk<10;kk++)
{
func_display_H();//垂直刷显示
}
km=0;FlagChanged=1;
}
}
}
}
else
{
while(1)
{
top1: arriver_arrow=staute&0x03;//预选箭头
roll_arrow=_cror_(staute&0x0c,2);
// graycode_cur_old=graycode_cur;
if (out) //暂停服务
{
gd_k=0;
func_out_of_service_V();//英文暂停显示V
// func_out_of_service_C_E_V();//中英文暂停显示V
func_whole_buffer_clear();
arrow_old=0xff;ten_old=0xff;single_old=0xff;
goto top1;
}
if ((cx_w_z==0)&&(arriver_arrow))//到站
{
gd_k=0;
func_preselect_disp_V();
func_whole_buffer_clear();
arrow_old=0xff;ten_old=0xff;single_old=0xff;
goto top1;
}
if (roll_arrow!=arrow_old)//箭头变化写箭头
{
if(roll_arrow>2)roll_arrow=0;
arrow_old=roll_arrow;
if(arrow_old>0)
{
func_write_arrow_V(arrow_old-1); //写箭头V
rolls=0;gd_k=1;//滚动
}
else
func_whole_buffer_clear();//全清除
ten_old=0xff;single_old=0xff;//箭头变化清数字重新刷
}
if(ten_old!=ten || single_old!=single)//数字变化写数字
{
ten_old=ten;single_old=single;
if(roll_arrow==0)//没有箭头
{
func_whole_buffer_clear();
if(ten_old)
{
func_fill_letter_to_buffer_x_V(ten_old,16);
func_fill_letter_to_buffer_x_V(single_old,17);
}else
{
func_fill_letter_to_buffer_x_one_V(single_old,16);
}
}
else//有箭头
{
if(ten_old)
{
func_fill_letter_to_buffer_x_V(ten_old,32);
func_fill_letter_to_buffer_x_V(single_old,33);
}else
{
func_whole_buffer_clear_x_V();
func_fill_letter_to_buffer_x_one_V(single_old,32);
}
}
}
if(ten_old!=ten || single_old!=single)
{
goto top1;
}
km=1;
while(km)
{
// func_display_V();
// func_display_V();
// func_display_V();
// func_display_V();
// func_display_V();
func_display_V();
if((arriver_arrow)&&(rolls==0))//有预选箭头关滚动
{
gd_k=0;
}
if(arriver_arrow==0)//开滚动
{
gd_k=1;
}
// func_display_V();
// func_display_V();
if((used_time>4)&&(arrow_old)&&(gd_k))
{
used_time=0;
func_disp_roll_V(arrow_old);
rolls++;
if(rolls>=16)
rolls=0;
}
if(!FlagChanged)
{
for(kk=0;kk<10;kk++)
{
func_display_V();//垂直刷显示
}
km=0;FlagChanged=1;
}
}
}
}
}
void r_d_cx (void)//读层选
{
select=1;
_nop_();_nop_();_nop_();
cx_w=select;
if(cx_w!=cx_w_old)
{
cx_w_old=cx_w;
cx_w_i=0;
}
else
{
cx_w_i++;
}
if((cx_w_i>5)&&(cx_w!=cx_w_z))
{
cx_w_z=cx_w;FlagChanged=0;
}
}
/*
void recieve() interrupt 4 //串口中断
{
unsigned char temp,label;
temp=SBUF;
RI=0;
label=temp&0xc0;
temp=temp&0x3f;
switch (label)
{
case 0x00:
if (tens!=temp)
{
tens=temp;tensi=0;
}else
{
tensi++;
}
if(tensi>3&&ten!=temp)
{
ten=temp;
FlagChanged=0;
}
break;
case 0x40:
if(singles!=temp)
{
singles=temp;singlesi=0;
}else
{
singlesi++;
}
if(singlesi>3&&single!=temp)
{
single=temp;
FlagChanged=0;
}
break;
case 0xc0:
if(stautes!=temp)
{
stautes=temp;stautesi=0;
}else
{
stautesi++;
}
if(stautesi>5&&staute!=temp)
{
staute=temp;
FlagChanged=0;
}
break;
/* case 0x80:
if(temp&0x20)
{
if(tss!=temp)
{
tss=temp;tsi=0;
}
else
{
tsi++;
}
if((tsi>5)&&(ts!=temp))
{
ts=temp;
if(ts&0x01)
graycode_cur|=0x20;
else
graycode_cur&=0x1F;
FlagChanged=0;
}
}
else
{
if(graycodes!=temp)
{
graycodes=temp;graycodei=0;
}else
{
graycodei++;
}
if((graycodei>5)&&(graycode_cur1!=temp))
{
graycode_cur1=temp;
graycode_cur=graycode_cur1;
if(ts&0x01)
graycode_cur|=0x20;
else
graycode_cur&=0x1F;
FlagChanged=0;
}
}
break;
default:_nop_();
}
r_d_cx();//读层选信号
WDTSFR=0xe1;//喂狗
}
*/
void func_display_H(void)//水平刷显示
{
register unsigned char i,line,skip,skip_1;
unsigned char pdata P0_data;
line=0x80; skip=49;
WDTSFR=0x1e;
for (i=0;i<8;i++)
{
pec1=0;skip_1=skip;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1--;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=3;
pec1=0; P2=line;
func_delay(20);//红
// func_delay(50);//绿
P2=0; skip_1=skip;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1--;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=3;
pec1=0; P2=line;
func_delay(20);//红
// func_delay(50);//绿
P2=0;
skip=skip_1;
line=_cror_(line,1);
}
WDTSFR=0xe1;
}
void func_display_V(void)//垂直刷显示
{
register unsigned char i,line,skip,skip_1;
unsigned char pdata P0_data;
line=0x80; skip=49;
WDTSFR=0x1e;
for (i=0;i<8;i++)
{
pec1=0;skip_1=skip;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1--;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=3;
pec1=0; P2=line;
func_delay(20);//红
// func_delay(50);//绿
P2=0; skip_1=skip;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1-=0x10;
P0_data=0; skip_1-=0x10;
P0_data=BufferDisp[skip_1]; skip_1--;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=0x10;
P0_data=0; skip_1+=0x10;
P0_data=BufferDisp[skip_1]; skip_1+=3;
pec1=0; P2=line;
func_delay(20);//红
// func_delay(50);//绿
P2=0;
skip=skip_1;
line=_cror_(line,1);
}
WDTSFR=0xe1;
}
void func_delay(unsigned char x)//延时
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -