热搜关键词: 数字信号处理RTOSC语言Linux射频电路

rar

Arduino学习笔记A10_Arduino数码管骰子实验

  • 1星
  • 2012-12-19
  • 317.26KB
  • 需要2积分
  • 7次下载
标签: 实验

实验

Arduino

实验

数码管骰子

实验

  电路连接

由于数码管品种多样,还有共阴共阳的,下面我们使用一个数码管段码生成器(在文章结尾)  去解决不同数码管的问题:

本例作者利用手头现有的一位不知品牌的共阳数码管:型号D5611  A/B,在Eagle  找了一个  类似的型号SA56-11,引脚功能一样可以直接代换。所以下面电路图使用SA56-11  做引脚说明。

注意:

1.  将数码管的a~g  段,分别接到Arduino  的D0~D6  上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g  即可。

2.  分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。

3.  220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。

4.  按下按钮即停。

 

源代码

由于我是按照段码生成器默认接法接的,所以不用修改段码生成器了,直接在段码生成器选择共阳极,再按“自动”生成数组就搞定。

 

下面是源代码,由于偷懒不用写循环,使用了部分AVR  语句。

PORTD  这个是AVR  的端口输出控制语句,8  位对应D7~D0,PORTD=00001001  就是D3  和D0  是高电平

PORTD  =  a;就是找出相应的段码输出到D7~D0。

DDRD  这个是AVR  语句中控制引脚作为输出/输入的语句。DDRD  =  0xFF;就是D0~D7  全部

作为输出脚了。

ARDUINO  CODECOPY

/*

Arduino  单数码管骰子

Ansifa  2011-12-28

*/

//定义段码表,表中十个元素由LED  段码生成器生成,选择了共阳极。

inta[10]  =  {0xC0,  0xF9,  0xA4,  0xB0,  0x99,  0x92,  0x82,  0xF8,  0x80,  0x90};

voidsetup()

{

DDRD  =  0xFF;  //AVR  定义PortD  的低七位全部用作输出使用。即0xFF=B11111111对

应D7~D0

pinMode(12,  INPUT);  //D12用来做骰子暂停的开关

}

voidloop()

{

for(int  i  =  0;  i  <  10;  i++)

{

//将段码输出PortD  的低7位,即Arduino  的引脚D0~D6,这样需要取出PORTD  最高位,即

D7的状态,与段码相加,之后再输出。

PORTD  =  a[i];

delay(50);  //延时50ms

while(digitalRead(12))  {}  //如果D12引脚高电平,则在此死循环,暂停LED  跑

}

}

 

 

展开预览

猜您喜欢

评论

sunxin1984
我测试了软件可以正常使用,pde程序好像有一些问题,回头检查吧
2018-04-06 12:59:24
登录/注册

积分规则

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved
×