导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:sos!!大虾们请过来[byb518]

 *第3533篇: C51编程:sos!!大虾们请过来

  
楼 主:byb518 2002年5月31日15:34
 C51编程:sos!!大虾们请过来
下面是我的vfd的相关程序清单,中断程序只要放上,不管开不开中断,都显示不正常,而
不加时正常,是我环境设置问题?该怎么设?或是什么其他问题?
vfd.c如下:
void send(uchar x)
{uchar j;
 for (j=8;j>0;j--)
  {DIS_DT=(bit)(x&0x01);
   DIS_CLK=1;
   x=x>>1;
   DIS_CLK=0; 
  }
 } 
     
void display2(p,n )                        
    //updata specific address  
uchar *p,n;
    {uchar i,send0;
     DIS_STB=0;
     send0=0x40;                    
    //command2
     send(send0);
     DIS_STB=1;
     for (i=0;i<3;i++)
      {DIS_STB=0;
       send0=0xc0+3*n+i;                
    //command3
       send(send0);
       send0=p[i];
       send(send0);
       DIS_STB=1;
     }
      
    }   
                          
void display1(p)
uchar  p[12][3];
{  uchar commond[]={0x0b,0x40,0xc0,0x8f};
   uchar i,j,send0;
   void send(uchar x);            //send 36data to vfd 
   DIS_STB=1;
   DIS_DT=1;
   DIS_CLK=1;
   for (i=0;i<2;i++)
   {DIS_STB=1;
    send0=commond[i];
    DIS_STB=0;
    DIS_CLK=0;
    send(send0);
    DIS_STB=0;
    }
    for (i=0;i<12;i++)
    for (j=0;j<3;j++)
    {send0=p[i][j];
     send(send0);
     }

     DIS_STB=1;
    send0=commond[3];
    DIS_STB=0;
    send(send0); 
    DIS_STB=1;
}
define.c如下:
#include<reg51.h>
typedef unsigned char uchar;
/****define special bit for I/O*****/
sbit DIS_DT=P1^2;                                      /**data**/
sbit DIS_CLK=P1^1;                                     /**CLK**/
sbit DIS_STB=P1^0; 
sbit WB0=P3^2;
uchar data *data mab;
主程序3008.c如下:
#include<define.c>
#include<vfd.c>
uchar data *data mab;

void main(void)
{  uchar code vfddis[12][3]={{00,00,00},{00,00,00},{00,00,00},{00,00,00},
                {0x8c,0xc4,00},{0x20,0x10,00},
{0x0c,0x87,00},{0x0c,0xc3,00},
                 {0x88,0x43,00},{0x84,0xc3,00},{0x84,0xc7,00},
{0x0c,0x40,00}};
     uchar  p[3]; 
  
   uchar i;
   display1(vfddis);  
    EA=1;
    IT0=1;
    ET0=1;
for(i=0;i<3;i++){p[i]=vfddis[4][i];}
  display2(p,4);             //send 1data to vfd
// if(mab[0]==mab[1]!=0)
 //  if(mab[2]==~mab[3])
//     switch(mab[2])
//     {case(0x01): for(i=0;i<3;i++){p[i]=vfddis[4][i];}
//                        display2(p,8);
//        break;
//      case(0x02): for(i=0;i<3;i++){p[i]=vfddis[4][i];}
//                        display2(p,7);    
//        break;
//      case(0x03): for(i=0;i<3;i++){p[i]=vfddis[4][i];}
//                        display2(p,6);
//        break;
//      case(0x04): for(i=0;i<3;i++){p[i]=vfddis[4][i];}
//                        display2(p,5);
//        break;
//      case(0x05): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,6);
//        break;
//      case(0x06): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,7);
//        break;
//      case(0x07): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,8);
//        break;
//      case(0x08): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,9);
//        break;
//      case(0x09): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,10);
//        break;
//      case(0x0a): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,11);
//        break;
//      case(0x0b): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,10);
//        break;
//      case(0x0c): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,9);
//        break;
//      case(0x0d): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,8);
//        break;
//      case(0x0e): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,7);
//        break;
//      case(0x0f): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,6);
//        break;
//      case(0x11): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,5);
//        break;
//      case(0x12): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,6);
//        break;
//      case(0x13): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,7);
//        break;
//      case(0x14): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,8);
//        break;
//      case(0x15): for(i=0;i<3;i++){p[i]=vfddis[4][i];}display2(p,9);
//        break;
//      case(0x16): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,10);
//        break;
//      case(0x17): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,11);
//        break;
//      case(0x18): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,10);
//        break;
//  case(0x19): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,9);
//        break;
//      case(0x1a): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,8);
//        break;
//      case(0x1b): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,7);
//        break;
//      case(0x1c): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,6);
///        break;
//      case(0x1d): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,5);
//        break;
//      case(0x1e): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,6);
//        break;
//      case(0x1f): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,7);
//        break;
//      case(0x20): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,8);
//        break;
//      case(0x60): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,9);
//        break;
//      case(0xa0): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,10);
///        break;
///      case(0xe0): for(i=0;i<3;i++){p[i]=vfddis[4][i];}//display2(p,11);
//        break;
 //   default: break;
//     }
 
 
 }

//中断/*******for remo scan**********/


/*void scan1()interrupt 0 //using 1
{     uchar i,j,k,maa[3]={0};
     EA=0;            //prohibit interrupt
     for(i=3;i>0;i--)
      {    for(j=0xf9;j>0&&WB0;j--){;}
       }            //delay 4.5ms
    if(WB0)
     {while(WB0);    //wait low lever
      for(i=3;i>0;i--)
      {    for(j=0xf9;j>0&&!WB0;j--){;}
       }            //delay 4.5ms
      if(!WB0)
      {while(!WB0);    //wait data
       for(k=0;k<32;k++)
        {j=k/8;
         for(i=90;i>0&&WB0;i--){;} //delay 0.5ms
          while(WB0);
         for(i=94;i>0&&!WB0;i--){;} //delay 0.58ms
         if(!WB0){maa[j]<<=1;
                  maa[j]+=1;
                  }
         else      {maa[j]<<=1;
             for(i=90;i>0&&!WB0;i--){;} //delay 0.5ms
                  }
         
        }
        //for(j=3;j>=0;j--)mab[j]=maa[j];
            mab=maa;
        EA=1;
      }
    }
}
*/


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:硬件:SOS!

[下一篇主题]:初学者:to Kolta