標(biāo)題: 數(shù)碼管顯示淺顯易懂 [打印本頁]

作者: daming    時(shí)間: 2014-12-29 19:37
標(biāo)題: 數(shù)碼管顯示淺顯易懂


  1. #include<reg52.h>//頭文件
  2. #define uchar unsigned char //宏定義
  3. #define uint  unsigned int
  4. uchar code table[]={0x3f,0x06,0x5b,//數(shù)碼管顯示的數(shù)值

  5. 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  6. 0x77,0x7c,0x39,0x5e,0x79,0x71};
  7. void delay(uint x) //延時(shí)子函數(shù)
  8. {
  9.   uint i,j;
  10.    for(i=x;i>0;i--)
  11.       for(j=500;j>0;j--);
  12. }
  13. void main()   //主函數(shù)
  14. {
  15.   uchar i,j; //定義局部變量
  16.    while(1) //無限循環(huán)
  17.   {
  18.      for(i=0;i<16;i++) //從0-f顯示
  19.       {
  20.          P1=0xf8; //點(diǎn)亮第一個(gè)數(shù)碼管
  21.         P2=table[i];
  22.          delay(200);  //延時(shí)0.5s
  23.      }
  24.      for(i=0;i<16;i++)//點(diǎn)亮兩位數(shù)碼管從0-f
  25.      {
  26.          for(j=100;j>0;j--)
  27.          {
  28.             P1=0xf8; //點(diǎn)亮第一個(gè)數(shù)碼管
  29.              P2=table[i];
  30.             delay(1);  //延時(shí)0.5s
  31.             P1=0xf9;
  32.             P2=table[i];
  33.            delay(1);
  34.         }

  35.     }
  36.     for(i=0;i<16;i++) //間隔數(shù)碼管顯示從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. 注:先一個(gè)數(shù)碼管顯示0-f,再兩個(gè)數(shù)碼管顯示0-f,
  56. 然后一個(gè)數(shù)碼管同時(shí)顯示0-f,
  57. */
復(fù)制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1