⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lx.c

📁 我用一个基于PIC16F877A的LED显示程序
💻 C
字号:
//本程序利用TMR1的自带外部时钟通过查询实现1S计时,利用SPI方式显示的数码管60S计数。
#include<pic.h>
#include<math.h>
unsigned int k,data,i;
const table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int s1=0,s2=0;             //定义个位 十位计数器
bank3 unsigned char s[2]={0,0};
//SP初始化子程序
void spiint()
{//PIR1=0;
 SSPCON=0X30;
 SSPSTAT=0XC0;
 TRISC=0X00;
// TRISA=0x00;
 ADCON1=0X0F;
}

void tmr1int()
{TMR1IF=0;
 TMR1ON=0;
 T1CON=0x0F;
 TMR1H=0x80;
 TMR1L=0x00;
 TMR1ON=1;
// TRISD=0X00;
}
fasong(data)
{ SSPBUF=data;
  
  do
   {;}while(SSPIF==0);
   SSPIF=0;
}
 
void jisuan()
{tmr1int();
  do{;}while(TMR1IF==0);
  TMR1IF=0;
   s1=s1+1;
   if(s1==10)
   {s1=0;
    s2=s2+1;
    if(s2==10)s2=0;
   }
   s[0]=s1;
   s[1]=s2;
 }
void display()
{RA5=0;
  for(k=0;k<=1;k++)
 {data=s[k];
  data=table[data];
   fasong(data);
   }RA5=1;
}
main()
{ OPTION=0XFF;
// PORTD=0X00;
 di();
spiint();
 while(1)  
 {jisuan();
  //PORTD=PORTD^0X57;
  display();
 }
}

⌨️ 快捷键说明

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