光电之家吧 关注:14贴子:63
  • 12回复贴,共1

20光信毛庆宇

只看楼主收藏回复

29光信毛庆宇


IP属地:山东来自Android客户端1楼2021-09-30 15:58回复
    你们尽快搞定51,具体完成下面的步骤:
    1. 安装程序Keil C
    2.安装烧录软件
    3.点亮一个LED(了解基本的写程序和烧录过程)
    4.跑马灯LED(了解子函数的调用方法)
    5.让7段数码管显示数字1-9(学习七段数码管的用法)
    6.做一个按键计数器(学习按键的用法)
    7.做一个计时器(学习计时器终中断的用法)
    8.综合实验:做一个按键电子时钟。


    IP属地:山东2楼2021-09-30 17:08
    回复
      电亮一个led

      是不是只要把连起来就行了


      IP属地:山东4楼2021-10-01 19:29
      收起回复
        #include <REGX52.H>
        #include <INTRINS.H>
        void Delay100ms()//@12.000MHz
        {
        unsigned char i, j, k;
        _nop_();
        _nop_();
        i = 5;
        j = 144;
        k = 71;
        do
        {
        do
        {
        while (--k);
        } while (--j);
        } while (--i);
        }
        void main()
        {
        while(1)
        {
        P1_0=0;
        delay100ms();
        P1_0=1;
        delay100ms();
        P1_1=0;
        delay100ms();
        P1_1=1;
        delay100ms();
        P1_2=0;
        delay100ms();
        P1_2=1;
        delay100ms();
        P1_3=0;
        delay100ms();
        P1_3=1;
        delay100ms();
        P1_4=0;
        delay100ms();
        P1_4=1;
        delay100ms();
        P1_5=0;
        delay100ms();
        P1_5=1;
        delay100ms();
        P1_6=0;
        delay100ms();
        P1_6=1;
        delay100ms();
        P1_7=0;
        delay100ms();
        P1_7=1;
        delay100ms();
        }
        }


        IP属地:山东5楼2021-10-02 10:27
        收起回复
          #include <REGX52.H>
          unsigned char NixieTable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
          void Delay(unsigned int xms)
          {
          unsigned char i, j;
          while(xms--)
          {i = 12;
          j = 169;
          do
          {
          while (--j);
          } while (--i);
          }
          }
          void NixieTube (unsigned char Location,Number)
          {
          switch(Location)
          {
          case 1:P2_4=1;P2_3=1;P2_2=1;break;
          case 2:P2_4=1;P2_3=1;P2_2=0;break;
          case 3:P2_4=1;P2_3=0;P2_2=1;break;
          case 4:P2_4=1;P2_3=0;P2_2=0;break;
          case 5:P2_4=0;P2_3=1;P2_2=1;break;
          case 6:P2_4=0;P2_3=1;P2_2=0;break;
          case 7:P2_4=0;P2_3=0;P2_2=1;break;
          case 8:P2_4=0;P2_3=0;P2_2=0;break;
          }
          P0=NixieTable[Number];
          Delay(1);
          P0=0x00;
          }
          void main()
          {
          while(1)
          {
          NixieTube(1,1);
          NixieTube(2,2);
          NixieTube(3,3);
          }
          }


          IP属地:山东7楼2021-10-03 21:54
          收起回复
            51单片机的命名规则


            IP属地:山东8楼2021-10-04 02:39
            回复
              #include <REGX52.H>
              int x=1;
              unsigned char NixieTable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
              void Delay(unsigned int xms)
              {
              unsigned char i, j;
              while(xms--)
              {i = 12;
              j = 169;
              do
              {
              while (--j);
              } while (--i);
              }
              }
              void NixieTube (unsigned char Location,Number)
              {
              switch(Location)
              {
              case 1:P2_4=1;P2_3=1;P2_2=1;break;
              case 2:P2_4=1;P2_3=1;P2_2=0;break;
              case 3:P2_4=1;P2_3=0;P2_2=1;break;
              case 4:P2_4=1;P2_3=0;P2_2=0;break;
              case 5:P2_4=0;P2_3=1;P2_2=1;break;
              case 6:P2_4=0;P2_3=1;P2_2=0;break;
              case 7:P2_4=0;P2_3=0;P2_2=1;break;
              case 8:P2_4=0;P2_3=0;P2_2=0;break;
              }
              P0=NixieTable[Number];
              Delay(1);
              P0=0x00;
              }
              void main()
              {
              while(1)
              {
              if(P3_1==0)
              {
              Delay(20);
              while(P3_1==0);
              Delay(20);
              NixieTube(1,x);
              x++;
              }
              }
              }


              IP属地:山东9楼2021-10-04 12:17
              收起回复
                接下来可能要搞多位的数码管显示,多位的显示和一位的显示原理可能不同,它是各个数码管轮着亮。比如对于两个位的数码管,第1个亮10ms,然后第2个亮10ms,然后第1个再亮10ms,依次类推。只要速度够快,人眼就看不出闪烁。这样的好处可以节省单片机的引脚数,因为一个7段数码管有8个数据位,就要占8个引脚,如果4个7段数码管同时亮,就得32个,51单片机根本就不够。


                IP属地:山东10楼2021-10-04 21:50
                回复