我是按照教程做的呼吸灯,但是单片机和板子跟教程使用不同,因为我是先买的板子,后找的教程,先说下不一样的好处

因为用的板子设计不同,所以编写代码时,代码逻辑大部分可以照抄,但是实际对板子的控制需要自己根据代码思路对照板子电路编写,能够加深理解,并且在一定程度上避免一直抄写代码,而不知道自己写的啥的问题,当然主要是对电路的控制这一方面,根据我学PWM经验,至少这一块不懂照抄代码也能运行,因为对定时器的控制跟板子关系不大。

再说下缺点

由于板子不同,可能会发生奇奇怪怪的问题,这些问题可能不难,但是新手很难搞定,比如说我的板子,按键和数码管共用引脚(数码管接38译码器,38译码器引脚和按键共用),这时候就要解决冲突问题,还有鬼影之类的,按键时显示还可能会发生变化。

如果有人指导可以用不同的,不然建议用相同的

 

接下来说下我的呼吸灯问题:

我的代码跟书上差不多,没啥问题,但是呼吸灯给我的感觉只有两个亮度快速切换,无论我如何改参数都不能调好。

后来我想起来,我用的晶振是32M的,因此按照我的代码可能在计算定时器初值时可能溢出,并且定时器能记录的最长时间可能比较小,导致不同亮度灯光切换过快,使视觉上不能产生正常呼吸灯样子,因此我在定时器代码中增加判断,使进入定时器一定次数才更改占空比,果然变好了。

 

这提醒我们在对单片机编程时一定要细心细心再细心,任何小的错误都可能导致意料之外的错误,同样的想不到的错误可能有一个小问题引起,特别应注意单片机中溢出问题。

当然我还没有考虑不加判断只用单片机能提供的定时器时间能否写好这个程序,理论上应该是可以的

posted on 2021-02-26 19:25  黑光夜中明  阅读(307)  评论(0编辑  收藏  举报