现在的位置: 首页>正文

ChipKIT Uno32 教程–第六课:7段数码管

2012年07月12日 作者: 暂无评论 563+ 1

结合论坛前几课的学习,今天突发奇想,来搞一搞显示界面,先从最简单的7段数码管搞起,随后还会弄一下LCD显示屏。话不多说,步入正题。

本次设计的目的是要实现串口输入数字,ChipKIT 识别后用输出口驱动7段数码管显示。

首先,需要找一个7段数码管,7段数码管这个东西是分公母的,称为为共阴极和共阳极。一般情况下有10个引脚。上面5个下面5个,每排的中间一个一般情况下是接低电平或者高电平。先用万用表的正极放在中间一个,另外一个依次去测。如果是共阳极就有亮,否则共阴极,根据发光位置就可以判断引脚了。

chipkit-uno32-t6-1chipkit-uno32-t6-2

可以发现我使用的7段数码管是共阳极的。

7段数码管即相当于7个条状LED放在一起组成数字使用,所以可用电流表测得各个引脚通电时对应哪个LED点亮,以此作为最后编码数字的参照。

chipkit-uno32-t6-3

中间上下两个引脚互通,用于接通高电平。黑色加重代表此段LED被点亮。

然后构建硬件电路,如下:

(注:由于数码管是共阳极,故将输出引脚拉低时,LED点亮,而输出电压为3.3V,所以总的输入电压也需要3.3V)

chipkit-uno32-t6-4

然后在Mpid环境下编写程序,以实现从串口输入数字,在数码管段显示:

1.引脚初始化,串口初始化:

chipkit-uno32-t6-5

参照上面说过的引脚通电对应单个条状LED点亮的对应图(如下):

chipkit-uno32-t6-6

观察数字如何组成,得出数字对应与各个引脚的赋值:

为方便每次读串口,根据串口给管脚输出电平,编写数字对应引脚的调用函数:

chipkit-uno32-t6-7

读串口,判断数字,然后对应参数表对相应管脚赋值:

chipkit-uno32-t6-8

然后编译烧写,等待几秒,打开串口监视工具(需等待几秒,直到LED4停止闪烁),输入,数字0-9,观察数码管对应显示:

chipkit-uno32-t6-9

结果如下:

chipkit-uno32-t6-10

如果数字显示不正确,则检查程序编写是否有误,因为数码管上条状LED显示,所以很容易找出那个引脚赋值错误。

发表评论