查看: 776|回复: 0
打印 上一主题 下一主题

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

[复制链接] qrcode

33

主题

38

帖子

113

积分

注册会员

Rank: 2

积分
113
楼主
跳转到指定楼层
发表于 2015-3-24 10:22 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Arduino数码管骰子实验

看到特高科的数码管骰子http://www.geek-workshop.com/forum.php?mod=viewthread&tid=76写的太极品了,忍不住改一下。这个应该是非常简单的代码了,欢迎挑战更短写法(一行多语句的不算) 。

电路连接

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

本例作者利用手头现有的一位不知品牌的共阳数码管:型号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全部作为输出脚了。


  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表