这里写自定义目录标题
欢迎使用Markdown编辑器
之前看了文章https://blog.csdn.net/ling3ye/article/details/52973365
弄了半在才明白管不对。于是又改了一下。共阳极的。
有需要的复制去用吧。没有错误。
以后加上放大器后的效果可以就不来记录了。
#define d_a 2 //定义数码管a 接引脚 2
#define d_b 3
#define d_c 4
#define d_d 5
#define d_e 6
#define d_f 7
#define d_g 8
#define d_h 9
#define COM1 10 //定义 第一组数码管 com1 接引脚2
#define COM2 11
#define COM3 12
#define COM4 13
//数码管0-9码值 这个是共阳极的和共阴的不一样
unsigned char num[10][8] =
{
//a b c d e f g h 定义0-9的编码
{
0, 0, 0, 0, 0, 0, 1, 1}, //0
{
1, 0, 0, 1, 1, 1, 1, 1}, //1
{
0, 0, 1, 0, 0, 1, 0, 1}, //2
{
0, 0, 0, 0, 1, 1, 0, 1}, //3
{
1, 0, 0, 1, 1, 0, 0, 1}, //4
{
0, 1, 0, 0, 1, 0, 0, 1}, //5
{
0, 1, 0, 0, 0, 0, 0, 1}, //6
{
0, 0, 0, 1, 1, 1, 1, 1}, //7
{
0, 0, 0, 0, 0, 0, 0, 1}, //8
{
0, 0, 0, 0, 1, 0, 0, 1}, //9
};
void setup()
{
pinMode(d_a,OUTPUT); //设置为输出引脚
pinMode(d_b,OUTPUT);
pinMode(d_c,OUTPUT);
pinMode(d_d,OUTPUT);
pinMode(d_e,OUTPUT);
pinMode(d_f,OUTPUT);
pinMode(d_g,OUTPUT);
pinMode(d_h,OUTPUT);
pinMode(COM1,OUTPUT);
pinMode(COM2,OUTPUT);
pinMode(COM3,OUTPUT);
pinMode(COM4,OUTPUT);
}
void loop()
{
//累加循环当去到9999自动从0开机计数
for(int l = 0;l < 10;l++ )
{
for(int k = 0; k < 10;k++)
{
for(int j = 0; j < 10; j++)
{
for(int i = 0;i < 10;i++)
{
//一秒钟快闪50次,就等于一秒,
//1000/20=50
for(int q = 0;q<50;q++)
{
Display(1,l);//第1位数码管显示l的值
delay(5);
Display(2,k);
delay(5);
Display(3,j);
delay(5);
Display(4,i);//第4位数码管显示k的值
delay(5);
}
}
}
}
}
}
void Display(unsigned char com,unsigned char n) //显示函数,com可选数值范围1-4,num可选数值范围0-9
{