结合论坛前几课的学习,今天突发奇想,来搞一搞显示界面,先从最简单的7段数码管搞起,随后还会弄一下LCD显示屏。话不多说,步入正题。
本次设计的目的是要实现串口输入数字,ChipKIT 识别后用输出口驱动7段数码管显示。
首先,需要找一个7段数码管,7段数码管这个东西是分公母的,称为为共阴极和共阳极。一般情况下有10个引脚。上面5个下面5个,每排的中间一个一般情况下是接低电平或者高电平。先用万用表的正极放在中间一个,另外一个依次去测。如果是共阳极就有亮,否则共阴极,根据发光位置就可以判断引脚了。
可以发现我使用的7段数码管是共阳极的。
7段数码管即相当于7个条状LED放在一起组成数字使用,所以可用电流表测得各个引脚通电时对应哪个LED点亮,以此作为最后编码数字的参照。
中间上下两个引脚互通,用于接通高电平。黑色加重代表此段LED被点亮。
然后构建硬件电路,如下:
(注:由于数码管是共阳极,故将输出引脚拉低时,LED点亮,而输出电压为3.3V,所以总的输入电压也需要3.3V)
然后在Mpid环境下编写程序,以实现从串口输入数字,在数码管段显示:
1.引脚初始化,串口初始化:
参照上面说过的引脚通电对应单个条状LED点亮的对应图(如下):
观察数字如何组成,得出数字对应与各个引脚的赋值:
为方便每次读串口,根据串口给管脚输出电平,编写数字对应引脚的调用函数:
读串口,判断数字,然后对应参数表对相应管脚赋值:
然后编译烧写,等待几秒,打开串口监视工具(需等待几秒,直到LED4停止闪烁),输入,数字0-9,观察数码管对应显示:
结果如下:
如果数字显示不正确,则检查程序编写是否有误,因为数码管上条状LED显示,所以很容易找出那个引脚赋值错误。
创建讨论帖子
登录 后参与评论