arduino学习笔记5数码管实验Word格式.docx

上传人:b****6 文档编号:18980350 上传时间:2023-01-02 格式:DOCX 页数:10 大小:564.57KB
下载 相关 举报
arduino学习笔记5数码管实验Word格式.docx_第1页
第1页 / 共10页
arduino学习笔记5数码管实验Word格式.docx_第2页
第2页 / 共10页
arduino学习笔记5数码管实验Word格式.docx_第3页
第3页 / 共10页
arduino学习笔记5数码管实验Word格式.docx_第4页
第4页 / 共10页
arduino学习笔记5数码管实验Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

arduino学习笔记5数码管实验Word格式.docx

《arduino学习笔记5数码管实验Word格式.docx》由会员分享,可在线阅读,更多相关《arduino学习笔记5数码管实验Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

arduino学习笔记5数码管实验Word格式.docx

分别表示了1,6,5,10针脚。

数码管和发光二极管一样,需要添加限流电阻,因为网上没有查到资料说明该数码管的击穿电压是多大。

所以供给电源电压宁可小不可大,所以选择220Ω限流电阻,和3.3V供电。

线路连接图如下

把下面的代码编译后下载到控制板上,看看效果~

//设置控制各段的数字IO脚,具体几号引脚对应哪一段,来源为数码管官方引脚图。

inta=7;

intb=6;

intc=5;

intd=11;

inte=10;

intf=8;

intg=9;

intdp=4;

//显示数字1

voiddigital_1(void)

{

unsignedcharj;

digitalWrite(c,LOW);

//给数字5引脚低电平,点亮c段

digitalWrite(b,LOW);

//点亮b段

for(j=7;

j<

=11;

j++)//熄灭其余段

digitalWrite(j,HIGH);

digitalWrite(dp,HIGH);

//熄灭小数点DP段

}

//显示数字2

voiddigital_2(void)

digitalWrite(a,LOW);

for(j=9;

j++)

digitalWrite(j,LOW);

digitalWrite(c,HIGH);

digitalWrite(f,HIGH);

//显示数字3

voiddigital_3(void)

digitalWrite(g,LOW);

digitalWrite(d,LOW);

for(j=5;

=7;

digitalWrite(e,HIGH);

//显示数字4

voiddigital_4(void)

digitalWrite(f,LOW);

digitalWrite(a,HIGH);

digitalWrite(d,HIGH);

//显示数字5

voiddigital_5(void)

=9;

digitalWrite(b,HIGH);

//显示数字6

voiddigital_6(void)

//显示数字7

voiddigital_7(void)

for(j=8;

//显示数字8

voiddigital_8(void)

voidsetup()

inti;

//定义变量

for(i=4;

i<

i++)

pinMode(i,OUTPUT);

//设置4~11引脚为输出模式

voidloop()

{

while

(1)

{

digital_1();

//数字1

delay(2000);

//延时2s

digital_2();

digital_3();

digital_4();

digital_5();

digital_6();

digital_7();

digital_8();

}

本次试验的效果为数码管1,2,3,4,5,6,7,8这样子循环显示。

上面的代码使用的是传统的方法来显示1,2,3,4。

如果遇到工程量比较大的时候,这种方法就不合适了。

这时我们需要使用数组的方法来进行控制。

使用数组前,需要先对显示0,1,2,3等情况下,各个端口的开关情况进行统计,统计结果如下图。

请大家把下面的代码输入控制板,看看实验效果,然后对两种代码表达方式进行研究~~看看异同。

byteseven_seg_digits[10][8]={//设置每个数字所对应的开关数组

{1,0,0,0,0,1,0,0},//=0

{1,0,0,1,1,1,1,1},//=1

{1,1,0,0,1,0,0,0},//=2

{1,0,0,0,1,0,1,0},//=3

{1,0,0,1,0,0,1,1},//=4

{1,0,1,0,0,0,1,0},//=5

{1,0,1,0,0,0,0,0},//=6

{1,0,0,0,1,1,1,1},//=7

{1,0,0,0,0,0,0,0},//=8

{1,0,0,0,0,0,1,0}//=9

};

voidsetup(){//4-11号端口设定为输出模式

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

voidsevenSegWrite(bytedigit){//设置通过数组控制引脚开关,顺序为4-11号端口

bytepin=4;

for(bytesegCount=0;

segCount<

8;

++segCount){

digitalWrite(pin,seven_seg_digits[digit][segCount]);

++pin;

voidloop(){//设置显示效果为从9开始倒数

for(bytecount=10;

count>

0;

--count){

delay(1000);

sevenSegWrite(count-1);

视频效果如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1