项目七(任务八)利用一位数码管实现0-9数字的显示——例程4.2
例程4.2:0-9循环显示,每个数字显示1秒
1.模拟电路图
Friting电路图该例程连接电路和代码编写均以共阴极为例——公共端接地,当需要数码管某段点亮时,应将该段代码置位高电平。因为数码管中每段均为一个发光二极管,为了避免发光二极管损坏,每一段均需要连接电阻。为达到该Friting电路图简单清晰的目的,画图时采取对称式画图。
2.实物连接电路图
实物连接电路图该实物连接电路图与friting模拟电路图一一对应。
3.程序代码及相应注释
int a=7;//定义数字接口7 连接a 段数码管
int b=6;// 定义数字接口6 连接b 段数码管
int c=5;// 定义数字接口5 连接c 段数码管
int d=11;// 定义数字接口11 连接d 段数码管
int e=10;// 定义数字接口10 连接e 段数码管
int f=8;// 定义数字接口8 连接f 段数码管
int g=9;// 定义数字接口9 连接g 段数码管
int dp=4;// 定义数字接口4 连接dp 段数码管
unsigned char num[10][8] =
{ //1为点亮,0为关闭,a表示数码管a的led灯,其他类似
//a b c d e f g h
{1,1, 1, 1, 1, 1, 0, 0}, //0
{0,1, 1, 0, 0, 0, 0, 0}, //1
{1,1, 0, 1, 1, 0, 1, 0}, //2
{1,1, 1, 1, 0, 0, 1, 0}, //3
{0,1, 1, 0, 0, 1, 1, 0}, //4
{1,0, 1, 1, 0, 1, 1, 0}, //5
{1,0, 1, 1, 1, 1, 1, 0}, //6
{1,1, 1, 0, 0, 0, 0, 0}, //7
{1,1, 1, 1, 1, 1, 1, 0}, //8
{1,1, 1, 1, 0, 1, 1, 0}, //9
};
void setup()
{
pinMode(a,OUTPUT); //设置引脚为输出
pinMode(b,OUTPUT); //设置引脚为输出
pinMode(c,OUTPUT); //设置引脚为输出
pinMode(d,OUTPUT); //设置引脚为输出
pinMode(e,OUTPUT); //设置引脚为输出
pinMode(f,OUTPUT); //设置引脚为输出
pinMode(g,OUTPUT); //设置引脚为输出
pinMode(dp,OUTPUT); //设置引脚为输出
}
void loop()
{
for( int i = 0 ; i <= 9 ; i++) //循环显示0-9
{digitalWrite(a,num[i][0]); //设置a 引脚的电平
digitalWrite(b,num[i][1]); //设置b 引脚的电平
digitalWrite(c,num[i][2]); //设置c 引脚的电平
digitalWrite(d,num[i][3]); //设置d 引脚的电平
digitalWrite(e,num[i][4]); //设置e 引脚的电平
digitalWrite(f,num[i][5]); //设置f 引脚的电平
digitalWrite(g,num[i][6]); //设置g 引脚的电平
digitalWrite(dp,num[i][7]); //设置h 引脚的电平
delay(1000); //延迟1秒
}
}