标题: 数码管显示浅显易懂 [打印本页]

作者: daming    时间: 2014-12-29 19:37
标题: 数码管显示浅显易懂


  1. #include<reg52.h>//头文件
  2. #define uchar unsigned char //宏定义
  3. #define uint  unsigned int
  4. uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值

  5. 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  6. 0x77,0x7c,0x39,0x5e,0x79,0x71};
  7. void delay(uint x) //延时子函数
  8. {
  9.   uint i,j;
  10.    for(i=x;i>0;i--)
  11.       for(j=500;j>0;j--);
  12. }
  13. void main()   //主函数
  14. {
  15.   uchar i,j; //定义局部变量
  16.    while(1) //无限循环
  17.   {
  18.      for(i=0;i<16;i++) //从0-f显示
  19.       {
  20.          P1=0xf8; //点亮第一个数码管
  21.         P2=table[i];
  22.          delay(200);  //延时0.5s
  23.      }
  24.      for(i=0;i<16;i++)//点亮两位数码管从0-f
  25.      {
  26.          for(j=100;j>0;j--)
  27.          {
  28.             P1=0xf8; //点亮第一个数码管
  29.              P2=table[i];
  30.             delay(1);  //延时0.5s
  31.             P1=0xf9;
  32.             P2=table[i];
  33.            delay(1);
  34.         }

  35.     }
  36.     for(i=0;i<16;i++) //间隔数码管显示从0-f
  37.        for(j=100;j>0;j--)
  38.        {
  39.           P1=0xf8;
  40.           P2=table[i];
  41.          delay(1);
  42.           P1=0xfa;
  43.           P2=table[i];
  44.           delay(1);
  45.           P1=0xfc;
  46.           P2=table[i];
  47.           delay(1);
  48.           P1=0xfe;
  49.           P2=table[i];
  50.           delay(1);
  51.       }
  52.   }
  53. }
  54. /*
  55. 注:先一个数码管显示0-f,再两个数码管显示0-f,
  56. 然后一个数码管同时显示0-f,
  57. */
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1