×
嵌入式 > 技术百科 > 详情

跑秒程序-数码管显示

发布时间:2020-06-20 发布时间:
|

/*
程序效果:跑秒,同时显示四位数码管
版权所有:http://www.51hei.com 转载请保留.
P1控制数码管的位 P2控制段
注意:如果无法在keil里编译,请删除每一行的所有前导空白,
*/
#include  //头文件
#define uchar unsigned char  //宏定义
#define uint  unsigned int
void display();   //函数声明
uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x)   //延时函数,时间我也不会算啊
{
   uchar i,j;
   for(i=x;i>0;i--)
      for(j=110;j>0;j--);
}
void main()    //主函数
{
   while(1)
   {
      display(); //显示子函数
   }
}
void display()
{
   uchar i,j,k,l;  //定义局部变量
   P1=0xff;    //点亮最右边的数码管
   P2=table[i];  //送数值,显示各位
   delay(10);   //延时
   i++;   //自加一,为下次显示作准本
   if(i==10)
   {
      i=0;   //i值加满10,清零
      j++;
      P1=0xfe; //点亮下一个数码管
      P2=table[j];
      delay(10);
   }
   if(j==10)
      {
      j=0;
      k++;
      P1=0xfd;
      P2=table[k];
      delay(10);
   }
   if(k==10)
   {
      k=0;
      l++;
      P1=0xfc;
      P2=table[l];
      delay(10);
      if(l==10)
       l=0;
   }
 //以下语句是不可以缺少的
   P1=0xfe; //显示十位
   P2=table[j];
   delay(10);

   P1=0xfd;   //显示百位
   P2=table[k];
   delay(10);

   P1=0xfc; //显示千位
   P2=table[l];
   delay(10);
}
注意:如果无法在keil里编译,请删除每一行的所有前导空白,




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

热门文章 更多
Semtech的LoRa技术携手Chipsafer将牧场连接至云端