因為程序內(nèi)存的原因不能用2維數(shù)組,所以只好定義8個數(shù)組來顯示字母,也就只有8個字母可以顯示了,聽何家偉說往數(shù)組前面加一個code就可以定義了,不過不知道PIC里面能不能用,先把還不算太完善的作品貼出來再慢慢改吧。本來想把視頻傳上來還要黃鉆,暈。算了。
#include <pic.h> void delay(); void init(); unsigned char table[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; unsigned char scan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char A[8]={0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44};//A unsigned char B[8]={0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C};//B unsigned char C[8]={0x00,0x78,0x04,0x04,0x04,0x04,0x04,0x78};//C unsigned char D[8]={0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C};//D unsigned char E[8]={0x00,0x7C,0x04,0x04,0x7C,0x04,0x04,0x7C};//E unsigned char F[8]={0x00,0x7C,0x04,0x04,0x7C,0x04,0x04,0x04};//F unsigned char G[8]={0x00,0x38,0x44,0x04,0x04,0x74,0x44,0x38};//G unsigned char H[8]={0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44};//H unsigned char i,j,k,temp,m,x,y,z,n; main() { TRISC=0X00; TRISB=0X00; while(1) { init(); while(k) { for(m=0;m<8;m++) { table=A<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=A>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=B<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=B>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=C<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=C>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=D<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=D>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=E<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=E>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=F<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=F>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=G<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=G>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } init(); while(k) { for(m=0;m<8;m++) { table=H<<k; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; k--; } if(!k) { for(x=0;x<8;x++) { for(m=0;m<8;m++) { table=H>>x; } for(temp=1;temp<=200;temp++) { for(i=0;i<8;i++) { PORTB=~table[i]; PORTC=scan[i]; delay(); PORTC=0X00; } } if(temp>200)temp==1; } } } } void init() { k=5;x=0; } void delay() { for(j=1;j<100;j++); }