天天看点

单片机第三讲 ——数码管的显示

数码管分类:共阴极数码管,共阳极数码管

数码管的显示方式:静态和动态

共阴级数码管:1亮0不亮

共阳极数码管:0亮1不亮

数码管的基础知识就不多讲了,下面是我写的几个数码管的程序,通过和单片机连接可以实现其相应的功能。

/*-------------------------------
    2018.7.22
    七段显示实验
    功能让数码管从0到99不停的显示
-----------------------------*/
#include <reg51.h>
#include "delay.h"
#define DataPort P1 //宏定义,如果换接口,只需要修改这里
//#define DataPort2 P1 //宏定义,如果换接口,只需要修改这里

sbit Seg_Latch = P2^;//段锁存
sbit Bit_Latch = P2^;//位锁存
unsigned char Seg_Code[] = {,,,,,,,,,};
unsigned char code Bit_Code[] = {,,,,,,,};
//段码,位码
unsigned char Template[];
void delay(unsigned int t)
{
    while(t--);
}
void display(unsigned char n)
{
    unsigned char i;
    for(i = ; i < n; i++)
    {
        DataPort = ;//清除数据,防止重影
        Seg_Latch = ;//开门
        Seg_Latch = ;//关门

        DataPort = Bit_Code[i];//送位码
        Bit_Latch = ;//开门
        Bit_Latch = ;//关门

        DataPort = Template[i];//送段码
        Seg_Latch = ;//开门
        Seg_Latch = ;//关门
        delay();
    }
}

void main()
{
    unsigned char count;
    unsigned char j = ;
    while()
    {
        j++;
        if(j == )
        {
            j = ;
            count++;
            if(count == )
                count = ;
        }
        Template[] = Seg_Code[count / ];
        Template[] = Seg_Code[count % ];
        display();

    }

}
           

继续阅读