数码管led菜单求助

2019-07-16 02:27发布

谁有数码管led菜单例程
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
丁一凡
2019-07-16 06:01
#include <AT89X52.H>                                                //包含头文件

#define shuma P0                                                        //定义P0口为数据口
unsigned char b=0;//,c=0,d=0,e=0;                                                                    //以下定义P1各口为控制口
sbit LED_4=P1^0;
sbit LED_5=P1^1;
sbit LED_6=P1^2;
sbit LED_7=P1^3;
void delay(unsigned int x);                                        //声明延时函数
void display2(unsigned char d1);//,unsigned char d2,unsigned char d3,unsigned char d4);
                                                                                        //声名数码管显示函数2
/*定义段码=====0-9=====A-G=====*/
unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
             0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
                         //共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F

void main()
{
           while(1)
          {
                for(;;)                                //       
            {

                  b++;// c++;d++;e++;
                          if(b>15)
                                  b=0;
                  delay(30000);
                          display2(b);//,c,d,e);
                 }/**/
                //在主循环中动态扫描显示,一直循环直到断电为止

                //display1(10,11,12,13);
          }
}

void delay(unsigned int x)
{
          unsigned int i;
        //x为延时长度,可以设置
          for(i=0;i<x;i++);
}

void display2(unsigned char d1)//,unsigned char d2,unsigned char d3,unsigned char d4)
{
          shuma=a[d1];                                                //选中第五位,发送第一位段码
        P1=0xf0;
         
}
不同的单片机,程序有差别,上面的是四个数码管闪0-f

一周热门 更多>