2019年7月6日 星期六

四位七段顯示器,向左移-keil c

#include <at89x52.h>
char P1table[]={1,2,4,8};
char P2table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ; 
char bcd[]={0,0,0,0};
int jj=0;
void delay_1ms(int k)
{
  int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
    ;
}
void ch_data(char x)                         
{
  bcd[3]=bcd[2];
  bcd[2]=bcd[1];
  bcd[1]=bcd[0];
  bcd[0]=x;
}

main()
{
 while(1)
 {
P2=0xff; //消除移位殘影,不可以放在P2=P2table[bcd[jj]];下面,峰鳴器會一直叫
{
   P1=~P1table[jj];
   P2=P2table[bcd[jj]];
   jj++;
   if(jj >= 4) jj=0;

}
P3=0x7f;
if(P3_3==0){ch_data(1); delay_1ms(20); while(P3_3==0); delay_1ms(20); }  //1
if(P3_2==0){ch_data(4);   delay_1ms(20); while(P3_2==0); delay_1ms(20);  }  //4
if(P3_1==0){ch_data(7);   delay_1ms(20); while(P3_1==0); delay_1ms(20);  }  //7
if(P3_0==0){ch_data(12);  delay_1ms(20); while(P3_0==0); delay_1ms(20);  }  //E 

P3=0xbf;         
if(P3_3==0){ch_data(2);   delay_1ms(20); while(P3_3==0); delay_1ms(20);  }  //2
if(P3_2==0){ch_data(5);   delay_1ms(20); while(P3_2==0); delay_1ms(20);  }  //5
if(P3_1==0){ch_data(8);   delay_1ms(20); while(P3_1==0); delay_1ms(20);  }  //8
if(P3_0==0){ch_data(0);   delay_1ms(20); while(P3_0==0); delay_1ms(20);  }  //0

P3=0xdf;
if(P3_3==0){ch_data(3);   delay_1ms(20); while(P3_3==0); delay_1ms(20);  }  //3
if(P3_2==0){ch_data(6);   delay_1ms(20); while(P3_2==0); delay_1ms(20);  }  //6
if(P3_1==0){ch_data(9);   delay_1ms(20); while(P3_1==0); delay_1ms(20);  }  //9
if(P3_0==0){ch_data(12);  delay_1ms(20); while(P3_0==0); delay_1ms(20);  }  //F   

P3=0xef;
if(P3_3==0){ch_data(12);  delay_1ms(20); while(P3_3==0); delay_1ms(20);  }  //A   
if(P3_2==0){ch_data(12);  delay_1ms(20); while(P3_2==0); delay_1ms(20);  }  //B   
if(P3_1==0){ch_data(12);  delay_1ms(20); while(P3_1==0); delay_1ms(20);  }  //C   
if(P3_0==0){ch_data(12);  delay_1ms(20); while(P3_0==0); delay_1ms(20);  }  //D 
 }
}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...