赞
踩
之前看了文章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 {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。