ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数码管动态显示,显示从1到9,每一位显示一个数字 (单片机)

2020-11-15 09:34:53  阅读:176  来源: 互联网

标签:动态显示 P0 单片机 wei 位选 数码管 段选 关闭 du


//object: 动态显示数码管,从1显示到9
//writer:mike
//time: 2020,11,14

#include<reg52.h>


sbit wei = P2^7;
sbit du = P2^6;
//数组的类型指的是每一个元素的类型, code则指定存储在代码区    ,而非code 指存户在内存中。
unsigned int code data1[10] = {
0x3F,//0
0x06,//1
0x5B,//2
0x4F,//3
0x66,//4
0x6D,//5
0x7D,//6
0x07,//7
0x7F,//8
0x6F//9
};
void delay(unsigned int);
void main()
{
    while(1)
    {
    //首先打开位选
    wei = 1;
    P0 = 0xfe;  //让第一位显示
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //显示数字1
    P0 = data1[1];
    //关闭段选
    du = 0;

    //点亮第一位之后,延时一段时间
    delay(1);

    //针对第二位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xfd;
    //关闭位选
    wei = 0;


    //打开段选
    du = 1;
    //设置段选
    P0 = data1[2];
    //关闭段选
    du = 0;
    delay(1);

    //针对第三位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xfb;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[3];
    //关闭段选
    du = 0;
   delay(1);
        //针对第四位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xf7;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[4];
    //关闭段选
    du = 0;
    delay(1);
    
    //针对第五位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xef;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[5];
    //关闭段选
    du = 0;
   delay(1);
        
    //针对第六位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xdf;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[6];
    //关闭段选
    du = 0;
    delay(1);
    
    //针对第七位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0xbf;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[7];
    //关闭段选
    du = 0;
    delay(1);
    
    //针对第八位数码管
    //打开位选
    wei = 1;
    //设置位选
    P0 = 0x7f;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    P0 = data1[8];
    //关闭段选
    du = 0;
    delay(1);
/*    //针对第九位数码管
    //打开位选
    wei = 1;
    //设置位选
    wei = 0xff;
    //关闭位选
    wei = 0;

    //打开段选
    du = 1;
    //设置段选
    du = data1[9];
    //关闭段选
    du = 0;


*/    
    
    
    
    }

}

void delay(unsigned int x)
{
    unsigned a, b;
    for(a=x;a>0;a--)
    {
        for(b=120;b>0;b--);
    }
}

 

标签:动态显示,P0,单片机,wei,位选,数码管,段选,关闭,du
来源: https://www.cnblogs.com/zijidefengge/p/13975679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有