微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 数码管led菜单求助

数码管led菜单求助

时间:10-02 整理:3721RD 点击:
谁有数码管led菜单例程

#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

是啊 还得根据自己的电路来考虑  不过程序大同小异

谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top