📄 display1.c
字号:
0x01,0x3B,0x42,0x12,0x38,0x14,0x04,0x33,0x00,0x10,0x7e,0x44,0x28,0x4D,0x60,0xff,
// A b C d E F A. b. C. D. E. F.
0xa0,0x8C,0xcA,0x8A,0xc4,0xe4,0x20,0x0C,0x4A,0x0A,0x44,0x64,0x24,0x47,0x60,0xff};
code uchar wei[12]={0xff,0xff, 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xff};
// P3.7 P3.6 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3.5
dis_wei=0xff;
disw0=disw1=diswa=1; //P3^7;
key_enable=0; //1;
dis_out=0xff;
key_value=KEYBORD; key0=disw0; key1=disw1; flag_key0=1; //dis_wei;
key_enable=1;
key_enable=1;
dis_out=0xff; //seg[dis_buff[dis_p]];
switch(dis_p){
case 0:
//diswb=1;
//for(i=0;i<30;i++){}
disw1=disw2=disw3=disw4=disw5=disw6=disw7=disw8=disw9=diswa=1;
disw0=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 1:
//disw0=1;
//for(i=0;i<30;i++){}
//disw0=disw2=disw3=disw4=disw5=disw6=disw7=disw8=disw9=diswa=diswb=1;
disw0=1; disw1=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 2:
//disw1=1;
//for(i=0;i<30;i++){}
//disw1=disw0=disw3=disw4=disw5=disw6=disw7=disw8=disw9=diswa=diswb=1;
disw1=1; disw2=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 3:
//disw2=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw0=disw4=disw5=disw6=disw7=disw8=disw9=diswa=diswb=1;
disw2=1; disw3=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 4:
//disw3=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw0=disw5=disw6=disw7=disw8=disw9=diswa=diswb=1;
disw3=1; disw4=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 5:
//disw4=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw0=disw6=disw7=disw8=disw9=diswa=diswb=1;
disw4=1; disw5=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 6:
//disw5=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw5=disw0=disw7=disw8=disw9=diswa=diswb=1;
disw5=1; disw6=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 7:
//disw6=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw5=disw6=disw0=disw8=disw9=diswa=diswb=1;
disw6=1; disw7=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 8:
//disw7=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw5=disw6=disw7=disw0=disw9=diswa=diswb=1;
disw7=1; disw8=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 9:
//disw8=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw5=disw6=disw7=disw8=disw0=diswa=diswb=1;
disw8=1;disw9=0;
dis_out=dis_buff[dis_p]; //bit display
break;
case 10:
//disw9=1;
//for(i=0;i<30;i++){}
//disw1=disw2=disw3=disw4=disw5=disw6=disw7=disw8=disw9=disw0=diswb=1;
disw9=1; diswa=0;
dis_out=dis_buff[dis_p]; //位操作
break;
default:
disw0=1;
disw1=disw2=disw3=disw4=disw5=disw6=disw7=disw8=disw9=diswa=1;
break;
}
dis_p++;
if(dis_p>10)dis_p=0; //&=0x07; //3??
/*
switch(dis_p){
case 0:
dis_wei2=1; dis_wei0=0; //dis_wei1=dis_wei2=1;
dis_out=seg[dis_buff[dis_p]];
break;
case 1:
dis_wei0=1; dis_wei1=0;
dis_out=seg[dis_buff[dis_p]];
break;
case 2:
dis_wei0=dis_wei1=dis_wei2=1;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
dis_wei&=wei[dis_p];
dis_out=seg[dis_buff[dis_p]];
break;
case 9:
//dis_wei0=dis_wei1=dis_wei2=1;
dis_wei&=wei[dis_p];
dis_out=dis_buff[dis_p];
break;
case 10:
dis_wei2=0; //dis_wei0=dis_wei1=1;
dis_out=dis_buff[dis_p];
break;
default:
dis_wei2=dis_wei0=dis_wei1=1;
dis_p=0;
break;
}
dis_p++;
if(dis_p>10)dis_p=0; //&=0x07; //3??
*/
us250++;
if(!(us250^122)){
us250=0;
ms50++; T_key++;
if(ms50&0x20){
ms50=0;
second++; second1++; second_COM++;
if(second>=60){
second=0; minuter++;
}
}
}
}
/*********************************************************/
void t1int(void) interrupt 3 using 2
{
return;
}
/*---------------------------------------------------------*/
void itoa(int x,unsigned char *str2)
{
data unsigned int n;
data unsigned char chn,*p,str1[5],*str;
data unsigned char i,j;
str=str2;
if(x<0){
*str++='-';
x=-x;
}
n=x;
p=str1;
j=0;
while(n!=0){
chn=n%10;
n=n/10;
*p++=chn+'0';
j++;
}
if(j!=0){
p--;
for(i=0;i<j;i++)*str++=*p--;
}
else *str++='0';
*str=0;
return;
}
/*---------------------------------------------------------*/
/*----------------------------------------------------*/
/*
chl=1,2,3 select display the LED view window
*/
void display(uint x1,uchar chl1)
{
data uchar str[5],*p,i,chl;
data uint x;
x=x1; chl=chl1;
p=str;
if(x>9999)x=9999;
itoa(x,str);
for(i=0;i<4;i++)str[i]&=0x0f;
//str[2]|=0x10;
if(x<=999){
if(x>99){
//for(i=0;i<3;i++)str[i]=str[i-1]; str[0]=0x0f;
}else{
if(x>9){
str[2]=str[1]; str[1]=str[0]; str[0]=0x0f;
}else{
str[2]=str[0]; str[1]=0x10; str[0]=0x0f;
}
}
}
if(x<=999) str[1]|=0x10;
if(x<1150){
if(chl==1)for(i=0;i<3;i++)dis_buff[i]=str[i];
else
for(i=0;i<3;i++)dis_buff[3+i]=str[i];
}else{
if(chl==1)for(i=0;i<3;i++)dis_buff[i]=0x0a; //display '---'
else
for(i=0;i<3;i++)dis_buff[3+i]=0x0a; //display '---'
}
}
/*----------------------------------------------------*/
/*----------------------------------------------------*/
void is_up_down_key(char *buff,uchar n)
{
data char *p1;
//n=n1;
p1=buff;
if(key_up){
*(p1+n)+=1;
if(speed==1) *(p1+n)+=10;
}else{
*(p1+n)-=1;
if(speed==1) *(p1+n)-=10;
}
while(key_sfr!=0xff)getkey();
key_sfr0=0;
}
/*----------------------------------------------------*/
/*----------------------------------------------------*/
void is_up_down_key2(char *buff,uchar n)
{
data char *p1;
//n=n1;
p1=buff;
if(key_up2){
*(p1+n)+=1;
if(speed==1) *(p1+n)+=10;
}else{
*(p1+n)-=1;
if(speed==1) *(p1+n)-=10;
}
while(key_sfr!=0xff)getkey();
key_sfr0=0;
}
/*----------------------------------------------------*/
/*---------------------------------------------------------*/
void main(void)
{
data uchar work,i,ch,ch1,count1;
data uint count;
SP=0xef;
P2=P3=P0=0xff;
for(count=0;count<0xd0;count++){ ch=0; }
for(count=0;count<0xd000;count++){ ch=0; rst_wdog();}
/*
for(i=0;i<16;i++)str[i]=i+'0';
save_buff(str,1);
for(i=0;i<16;i++)str[i]=0;
get_buff(str,1);
*/
init_t0();
IT0=IT1=1;
PX0=1; PX1=1; IE0=IE1=0; EX0=EX1=1;
for(i=0;i<12;i++) dis_buff[i]=0x0f;
dis_buff[9]=0x0ff; dis_buff[10]=0x0ff;
//dis_buff[0]=COM_buff[0]=0; dis_buff[1]=COM_buff[1]=0; // } //i+count;
COM_ptr=0; busy=0; flag_COM=0;
/*
dis_buff[1]=2;
dis_buff[2]=0x0a;
dis_buff[3]=4;
*/
//call_sub_set1();
work=second;
count=0; count1=0; COM_key=0; int_key=1;
while(1){
while(work==second){ //==work){
if(flag_COM) break; //{
//flag_COM=0;
//dis_buff[COM_buff[0]]=COM_buff[1];
//}
rst_wdog();
}
work=second;
IT0=IT1=1;
PX0=1; PX1=1; TR0=ET0=EX0=EX1=EA=1;
//second1=0;
getkey();
if(key_sfr!=0xff){
COM_key=key_sfr; //取键值 0---8
int_key=0; //发送按键中断申请脉冲
for(i=0;i<5;i++){}
int_key=1;
flag_key=0;
while(key_sfr!=0xff){getkey();flag_key=0;}
key_sfr0=0;
}else{
COM_key=0xff;
}
// if(key_set) call_sub_set1();
// if(key_set2) call_sub_set2();
if(flag_COM){
//dis_buff[6]++; if(dis_buff[6]>9)dis_buff[6]=0;
flag_COM=0;
//dis_buff[COM_buff[0]]=COM_buff[1];
ch=COM_buff[0]&0x0f;
//if(flag_unit2)ch=unit2[COM_buff[0]]; else ch=unit1[COM_buff[0]];
ch=ch&0x0f;
if(ch<0x09){
ch1=COM_buff[1]&0x8f;
if(ch1&0x80)ch1=(ch1&0x0f)|0x10;
dis_buff[ch]=ch1; //COM_buff[1]&0x0f;
}else{
if(ch<0x0b)dis_buff[ch]=~COM_buff[1]; //位操作 bit=0 lamp on
}
COM_buff[0]=0xff;
}
if(busy){
if(second_COM>2){ busy=0; flag_COM=0;}
}
//dis_buff[0]=COM_buff[0]; dis_buff[1]=COM_buff[1];
//dis_buff[4]=dis_buff[5]=dis_buff[7]=0x0f;
//dis_buff[8]=count;
//for(i=0;i<11;i++)dis_buff[i]=count+i;
count++; count1++;
if(count>40)count=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -