icl7135.txt

来自「本代码介绍了使用VHDL开发FPGA的一般流程」· 文本 代码 · 共 101 行

TXT
101
字号
void SPI_Init(void)
{
 SPCR=_BV(SPE)|_BV(DORD)|_BV(MSTR)|_BV(CPHA);//|_BV(SPR1)|_BV(SPR0);
 SPSR=0;
}



void send_data(unsigned char data)
{
 SPDR=data; //发送数据

 while(!(SPSR &(_BV(SPIF)))); //等待数据发送完毕
}


void ShowSel(void)
{
 unsigned int i;
 for(i=0;i<6;i++)
 {
  send_data(DisTab[DisBuf[5-i]]);
 }

 for(i=0;i<10000;i++);
}


void INT0_Init(void)
{
 MCUCR=_BV(SE)|_BV(ISC01);//采取下降沿进入中断
 GICR=_BV(INT0); //开外部中断0
 sei(); //开总中断
}


ISR(INT0_vect)
{
 count++;
 BCD_Tab[count-1]=Data_Port&0x0f;
 if(count==4) Pol_vog=POL;
 if(count==5)
 {
  count=0;
  flag=1;
  Stop_run;
 }
}


int main(void)
{
 //unsigned char j;

 PORTB=0xff;
 DDRB=0xff;
 DDRB&=~_BV(PB1);//POL口定义为输入

 DDRC=0x00;
 PORTC=0xff;

 count=0;
 flag=0;
 
 SPI_Init();
 INT0_Init();

 Start_run;

 while(1)
 {
  if(flag)
  {
   flag=0;
   Stop_run;

   if(Pol_vog)
      DisBuf[0]=20;
   else
      DisBuf[0]=21;
   
   //for(j=0;j<5;j++)
   //{
   // DisBuf[i+1]=BCD_Tab[i];
    //if(j==0)
    // DisBuf[i+1]+=0x80;
   //}
   DisBuf[1]=BCD_Tab[0]+10;
   DisBuf[2]=BCD_Tab[1];
   DisBuf[3]=BCD_Tab[2];
   DisBuf[4]=BCD_Tab[3];
   DisBuf[5]=BCD_Tab[4];


   ShowSel();

   Start_run;
  }
 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?