zoukankan      html  css  js  c++  java
  • 51单片机 数码管的显示与译码器

    共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90}

    共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E}

     

    共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F}

    共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71}

     

    共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。

    若不使用译码器,可直接将位选段接IO口,赋值改变。


    /*******************************************************************************
    * 实 验 名         : 动态数码管显示
    * 实验说明         : 8位数码管依次显示0~7
    * 作    者         : L2
    * 时    间         : 2016-08-02
    
    *******************************************************************************/
    #include<reg51.h>
    
    #define GPIO_DIG P1         //Digitron  数码管
    sbit LSA= P2^0;
    sbit LSB= P2^1;
    sbit LSC= P2^2;
    
    unsigned char code DIG_CODE[10]={
    0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0~9的显示码
    void DigDisplay();
    
    void main(void)
    {
        while(1)
            DigDisplay();                
    }
    
    
    void DigDisplay()
    {
        unsigned char i;
        unsigned int j;
        for(i=0;i<8;i++)
        {
            switch(i)     //位选,选择点亮的数码管,
            {
                case(0):
                    LSA=0;LSB=0;LSC=0; break;//显示第0位
                case(1):
                    LSA=1;LSB=0;LSC=0; break;//显示第1位
                case(2):
                    LSA=0;LSB=1;LSC=0; break;//显示第2位
                case(3):
                    LSA=1;LSB=1;LSC=0; break;//显示第3位
                case(4):
                    LSA=0;LSB=0;LSC=1; break;//显示第4位
                case(5):
                    LSA=1;LSB=0;LSC=1; break;//显示第5位
                case(6):
                    LSA=0;LSB=1;LSC=1; break;//显示第6位
                case(7):
                    LSA=1;LSB=1;LSC=1; break;//显示第7位    
            }
            GPIO_DIG=DIG_CODE[i];//发送段码
            j=10000;                         //扫描间隔时间设定,若减少j,可观察到稳定显示的0~7 (扫描速度太快,人眼识别不了)
            while(j--);    
            GPIO_DIG=0x00;//消隐
        }
    }


  • 相关阅读:
    计算机网络基础知识整理
    计算机操作系统知识整理
    各类编程语言的主要用途
    计算机的基本组成知识整理
    对IT行业的看法和对软件工程的理解
    正规文法转换
    语法树评论
    c语言文法定义
    词法分析
    0909我对编译原理的见解
  • 原文地址:https://www.cnblogs.com/l20902/p/10610974.html
Copyright © 2011-2022 走看看