标题: 51单片机静态数码管显示八位数字源程序 [打印本页]

作者: 我要玩爆单片机    时间: 2019-7-9 09:56
标题: 51单片机静态数码管显示八位数字源程序
在P0=smg[]的中括号内填入想要显示的数字,将delay()括号内改动不同的数值,会看到不同的现象。
程序:
#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

void delay(u16 i)
{
   while(i--);
}

void DigDisplay()
{
   u16 i;
   for(i=0;i<8;i++)
   {
      switch(i)
          {
                     case(0):
                            LSA=0;LSB=0;LSC=0;P0=smg[];break;
                 case(1):
                            LSA=1;LSB=0;LSC=0;P0=smg[]; break;
                 case(2):
                            LSA=0;LSB=1;LSC=0;P0=smg[]; break;
                 case(3):
                            LSA=1;LSB=1;LSC=0;P0=smg[]; break;
                 case(4):
                            LSA=0;LSB=0;LSC=1;P0=smg[]; break;
                 case(5):
                            LSA=1;LSB=0;LSC=1;P0=smg[]; break;
                 case(6):
                            LSA=0;LSB=1;LSC=1;P0=smg[]; break;
                 case(7):
                            LSA=1;LSB=1;LSC=1;P0=smg[];break;
          }
          delay(100);
          P0=0x00;
   }
}

void main()
{
   DigDisplay();
}


作者: 还好。    时间: 2020-3-2 17:55
看不太懂,现在要做一个显示8位学号的作业,楼主能指导一下吗
作者: 还好。    时间: 2020-3-2 18:00
行了,感谢
作者: 还好。    时间: 2020-3-2 18:22
这个算是静态还是动态呀
作者: ROUROU    时间: 2020-3-20 10:23
非常感谢
作者: adangmmm    时间: 2021-1-24 18:03
楼主我有点不明白为什么数码管会一直循环显示,不是程序里i到8就停了吗,能不能帮我解释下谢谢啦




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