单片机学习札记9 定时器模拟PWM呼吸灯
2021-07-21 来源:eefocus
在上一节中,我们交代了为什么要做这样一个项目,以及我们提出了需求,并根据具体的需求分析,将其转化为硬件设计,画出了具体的原理图,但是还有许多的问题没有交代清楚,比如数码管的引脚判断,12个管脚哪8个是数码管的段码?4个是数码管的位码?这个我们刚买来并不清楚,还需要测量,这就要用到万用表了,将万用表拨到二极管档位,二极管有单向导电性,我们知道数码管就是8个小灯组成的,如果我们买的是共阳极的数码管,也就是如下图所示:
如果我们将万用表的红表笔接12个引脚中的任意一个,黑表笔接其余11的任意一个引脚,如果小灯亮的话,说明红表笔管脚是数码管的位码,而我们的数码管有四个,所以有4个位码,可以按照点亮小灯的方法查找,找完位码之后,记下来,然后,我们开始逐一寻找数码管的段码,数码管的段码是按照下图的顺序排列的:
每一个小灯的阳极都连接在一起,所以叫共阳极数码管,DB0-DB7分别是8个小灯的阴极,有人发现怎么没有DB7?DB7是小数点,示意图一般不用加。
现在我们既然已经搞清楚了引脚定义,就需要看相关元器件的数据手册,开始画封装了,一般元器件需要购买回来,实际用游标卡尺测量,很多元器件,都有厂家提供的数据手册,上面都有封装尺寸,我们照着画一个就是了,也有部分通用的封装。
画元器件需要用到画图软件,以前很多人用99SE,我上学那会用的就是这古老的软件,包括很多老工程师现在还在用,我习惯用AD13,功能比较强大,当然安装文件比较大,对电脑的要求相对高一点,其实就是一工具,适合自己的就是好的,由于这篇文档主要侧重于单片机的学习,至于原理图以及PCB的制作,以及原理图封装,PCB封装,布线等等,以后会单独开一篇帖子,这个不是简单介绍下就能学会的,这里这个过程就省略了。。。如果有需要的同学,可以搜索相关教程进行学习,好了,画好的PCB如下图所示:DRC在线检查,确认没有错误之后,我们就可以发给PCB制作厂家做样板了。晒一张PCB3D照。如果想做一个的同学,可以参考我们给出的元器件布局图以及元器件形状,自己动手画一个,锻炼下。
将画好的PCB去打样,需要等个3-7天左右。。。
PCB拿到手之后,我们就开始焊接,当然不是焊接全部元件,是进行测试,测试PCB是不是不合格品或者是元器件的封装位置对不对,因为这个时候我们还没有编程序,如果在这个过程中,发现问题,及时的去修正,以免下一次在出现类似的问题,我们试着将LQFP32单片机焊接,这个要小心一点,然后数码管以及限流电阻,稳压芯片元件等焊接,这个时候,我们就可以编写一个测试程序了,程序通过预留的串口下载,程序的功能是点亮全部数码管。
单片机和一般编程不一样的地方,就是单片机属于硬件编程,我们知道LED0-LED3分别接在P3.3,P3.4,P3.6,P3.7引脚上,DB0-DB7接在P2口上。
好了,我们知道了硬件,就可以利用KEIL4编译软件用C语言编程了,先写一个简单的测试数码管全亮的程序:我们用KEIL4新建一个工程,命名为LED,关于如何新建KEIL4工程以及下载调试,是下一贴内容,我们先不管,编写好的程序如下:
将程序编译之后,下载到目标板中,我们就可以看到,数码管全部被点亮了,实际硬件效果图如下:
虽然达到了我们的预期目的,但这个程序仍然是不完善的。
好了,这一贴就到这里,下一贴,我们讲一下如何新建KEIL工程以及下载编译的步骤。