×
单片机 > 单片机程序设计 > 详情

PIC入门1,跑马灯和数码管显示实验

发布时间:2020-05-16 发布时间:
|
我使用的是爱晶3ePIC实验板,以下都是自己写的程序,只是为了纪念和学习交流使用,别无它意。在我的

 相册里有板子的原理图。

跑马灯实验:

程序:

//适合3epic实验板,是跑马灯程序
#include
unsigned int i;
//主函数
main()
{
 TRISD=0X00; //D口为输出模式,接LED的正极
 TRISE=0X00; //E口为输出输出模式,LED使能,接LED的负极  
while(1)   
 {
  PORTE=0X00;
  PORTD=0X01;    //点亮第一个LED
  for(i=0;i<50000;i++); //延时

  PORTD=0X02;    //点亮第二个LED
  for(i=0;i<50000;i++);
  
  PORTD=0X04;
  for(i=0;i<50000;i++);

  PORTD=0X08;
  for(i=0;i<50000;i++);

  PORTD=0X10;
  for(i=0;i<50000;i++);

  PORTD=0X20;
  for(i=0;i<50000;i++);

  PORTD=0X40;
  for(i=0;i<50000;i++);

  PORTD=0X80;
  for(i=0;i<50000;i++);
       
 }
}
数码显示实验:

程序:

//适合3epic实验板,是LED显示数据实验
#include  
#include       
volatile  unsigned  char  data;
static volatile int table[]={
0X3F,0X06,0X5B,0X4F,
0X66,0X6D,0X7D,0X07,
0X7F,0X6F,0X77,0X7C,
0X39,0X5E,0X79,0X71};
volatile  unsigned  char  data;
//主函数
main()
{
 unsigned i,a;
 TRISB=0x00;  //段选控制为输出
 TRISD=0x00;  //位选控制位输出
 while(1)
  {
  for(i=0;i<16;i++)
   {
    PORTB=0xE0;   //段选
   data=table[i];  
   PORTD=data;   //位选
   for(a=0;a<50000;a++);  //延时
   
   }  
  }
}

单键控制LED灯。

程序:

//适合3ePIC实验板,单按键控制一个LED灯
#include  
#include   
//系统初始化
void initial()
{
 TRISE=0x00;  //E口为输出
 TRISB=0xFF;  //B口为输入
 TRISD=0x00;  //D口为输出
}

//主函数
main()
{
  initial();
  PORTE=0x00;  //控制LED灯的负极
 while (1)
 {
 if(RB0==0)   //如果sw7按下,则LED0亮
  PORTD=0x01;
 else
  PORTD=0x00;  //没有按键按下,LED0灭
 }
}

键盘控制数码管实验:

因为没有加去键抖动,所以编的不是很好,事情一忙就没有修改。

程序:

//适合3EPIC实验板,键盘控制数码管
#include  
#include   

unsigned int i;
unsigned char j;
//初始化
void initial()
{
 TRISB=0x1E;
 TRISD=0x00;
 j=0; 
}
//延时
void DELAY()
{
 for(i=0;i<50000;i++)
 continue;
}
//主函数
main()
{
 static int table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
  
  initial();
  RB5=0;
 while (1)
 {

 if(RB1==0)
  {
   DELAY();
   j=1;
  }
 if(RB2==0)
  {
   DELAY();
   j=2;
  }
 if(RB3==0)
  {
   DELAY();
   j=3;
  }
 if(RB4==0)
  {
   DELAY();
   j=4;
  } 
  
  PORTD=table[j];
 
 }
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址