零成本学习之单片机开发之(3)跑马灯原来可以这么玩
从今天开始给大家逐步讲解单片机编程,有兴趣的小伙伴们,可以关注本课程,完全免费。
本人从事从2004年大学毕业开始从事开发工作,先后做过单片机开发、ucOSII开发、手机开发、android APP开发、PHP开发、微信小程序开发,目前从事物联网开发。我本人并非学计算机的,除了学校上课之外,基本上这些开发都是自学的。边学习边工作,基本上以学以致用为目的,用到什么学习什么。
深深体会到自学的艰辛,尤其是最初入门的时候,那道砍迈过去后面再学习基本上就简单多了,所谓触类旁通,举一反三。但是前面打基础的时候是非常费力的,看到很多评论说C语言指针太难了,后来就放弃了。其实那是没有找到好的学习方法,没有人指导。只要有人带一带指点一下,问题很快就能解决。
相比于国外的开源学习氛围,我认为我们做的还远远不够,我们的编程大师还非常少,像ucLinux、ucOSII、FreeRtos等等非常有名的嵌入式操作系统,商业的更不用说了,太多了。我们在软件方面一直都是落后的状态,当然近几年我们自己也有不少好的作品。比如,Huawei LiteOS、Alios Things、djyos、RT-Thread、SylixOS等。一直想为学习单片机的同学做点什么,今年相对来说会轻松一些,利用闲暇时间,给大家分享一些案例、学习方法和心得。本课系列课程主要针对初学者、单片机学习爱好者、学习中遇到困难者,有什么不清楚的地方可以留言讨论。
首先、课程目标
使用一个按键和8个LED指示灯实现跑马灯效果,总共4中显示效果使用按键按下事件切换显示模式第二、原理图设计
添加8个LED指示灯,也可以利用上节课的原理图直接用右键复制出7个LED元器件添加8个限流电阻,并调整布线,直接上结果。第三、编码设计
软硬件接口
端口P0 第一个管脚P00z作为按键输入端口端口P2作为LED的输出端口软件流程
1.串口初始化
2.主循环处入口
检测按键事件 根据按键事件切换显示模式 根据模式更新显示数据 根据显示模式显示显示数据3.考虑到排版整洁性,只上了主函数代码,其他模块代码见源代码文件
void main(void)
{
initUart();//串口初始化
while(1)//主循环
{
handleKey();//检测按键
checkMode();//根据按键事件切换显示模式
handleMode();//根据显示模式更新显示数据
if(ledmode%2==0)//根据显示模式把数据显示到LED上
displayDriver1(cnt);
else
displayDriver2(cnt);
delay(100); //延时100ms
}
}
最后、知识点总结
1.跑马灯也是IO操作的进一步巩固,只不过加入了时序上的小算法,看起来更具有动态感
2.注意如何通过按键事件切换模式的
3.注意如何模式和更新的数据进行换算的
4.注意显示驱动的技巧
5.本次课程所用的工程文件私信20002,系统自动给出下载链接。
本次课程到此结束,如果有什么疑问欢迎留言。
一个不需要专业知识和单片机就可以轮流交替闪烁的跑马灯设计
接触过单片机的朋友都会对流水灯有了解,那时我们是用单片机来制作的,但是你如果单纯做个流水灯,选择使用单片机来做的话未免有些资源的浪费,今天就教给大家一个不用单片机就可以交替闪烁的跑马灯。
单片机流水灯(图片来源于网络,若侵权请联系删除)
单片机流水灯(图片来源于网络,若侵权请联系删除)
怎么制作的呢?来看一下原理图
流水灯原理图
由这个原理图可以看出我们使用的元件有电阻、电容、LED灯、三极管就这些常用的元件就可以了。
至于能够闪烁的原理呢也不难理解,三极管在电路中充当开关的作用,通上电后最左边的LED由于三极管最先被导通,从而最先被点亮,集电极串联一个电容连接到下一个三极管,当电容充电后把后一个三极管导通,导致后一个LED灯点亮,而由于后一个三极管导通又会引起前一个三极管截止,造成前一个LED熄灭,以次类推循环,这样就形成了这三类LED灯轮流被点亮,通过改变电容的大小还可以改变跑马灯闪烁的时间。
讲完原理后就准备下材料吧,来看下图片
制作材料
找到材料之后接下来就是按照原理图把应该连接的部分进行电气连接,大家在焊接的时候,最好把这些元件焊接到洞洞板上或者说在面包板上进行连接也行,如果单纯进行连接的话,会很乱,故障也难排查,而且容易失败,这几天给大家介绍几个小制作基本上都用到了洞洞板,也把我仅有的几个洞洞板给消耗完了,如果不用洞洞板直接焊接是很乱的,看下焊接图你就知道了
制作图
是不是看起来非常乱,确实是这样,再来看一张以前打印的PCB
PCB跑马灯
打成PCB板的看起来是不是好多了,把它设计成心形就更好看了。
可能有人不理解了为什么原理图中的跑马灯的制作是三个LED灯,而到变成那么多了,其实不管LED灯再多原理都是一样的,那个原理图可以说是单位电路,我们需要多加LED无外乎在原先有LED的地方再多并联几个LED,这样就能做成上图中的心形。
这种制作方法,简单,材料好找又不需要单片机基础,可以说只要你想做就能做出来,还不赶快制作一个。
注:流水灯和跑马灯是指一种东西,所以文章中没有区分,不同的人有不同的叫法!
相关问答
帮个忙同志们!谁能告诉我!! 51单片机 最小系统( 跑马灯 )不工作?...[回答]今年刚跟品阔信息合作,朋友公司和他们合作好几年了,各方面都挺满意给我推荐的。没找到主函数~~数组里面写的是你想让跑马灯的跑法~~叮叮开课专业...
烦大神们!咨询一下 51单片机 最小系统( 跑马灯 )不工作?,视频...[回答]下载部分要接串口通信电路。直接接max232就可以了10年经验开发技术团队-支从事软件开发10余年、反应迅速、讲求团队合作的技术团队,奠定了开发实力...
24个 跑马灯 c程序怎么写,要求4个同时亮灯跑动?/*跑马灯*/#include/*单片机上P0P1P2端口按次序接led*/voiddelay(unsignedinttime){while(time--);}voidmai...
老铁们麻烦回答一下!!阶新科技运用汇编语言怎么编写 跑马灯 程序?项目时间:2014-09-2013-11项目名称:C语言在单片机上的应用项目描述:项目介绍设计一个数字时钟的电路,然后用汇编语言或者C语言编写数字时钟时钟的...
请问小白学 单片机 的具体方向和步骤该如何呢?我是从大学开始学习单片机的,现在分享一下我的学习感受。单片机学习分为硬件部分和软件部分,硬件那部分需要电路,模电数电等作为基础,软件部分只需要有一点...
关于max485与 单片机 连接的问题?传统的单片机实验系统因其购买成本高、系统使用烦琐,已经越来越不适合当前以培养学生实际能力为主要方向的高等教育,本系统可以帮助学校轻松组建单...
人眼对于多少赫兹频率以上的刷新率基本不感到闪烁? - 乖乖球...答:刷新率达到100Hz时,几乎不感到闪烁。试验:(1)初始,单片机跑马灯试验,初始设置闪烁周期100ms,使得两个LED灯以10Hz刷新率来回闪烁(交替亮暗)。(2)...
mega128 单片机 ,编写定时器中断程序里switch函数什么意思,怎么用的啊?应该是PORTA的低4位,循环输出0比如num=2时,PORTA=PORTA&FE,第1个I/O口(PA0)将输出0,其他口保留原状num=3时,PORTA的第2个I/O口(PA1)将输...
关于ARM嵌入式系统的 跑马灯 代码- 一起装修网关于ARM嵌入式系统的跑马灯代码如果采用查询方式设计一个跑马灯的方向开关(即按下键盘跑马灯正跑,再按下跑马灯向反跑。。。。),程序将如何设计?请给出完...
北京七彩循环装饰灯控制器七彩循环装饰灯控制器的设计看不懂!linalingxj1天前七彩循环装饰灯555器各个引脚功能如下:1脚:外接电源负端VSS或接地,一般情况下接地。8脚:外接电源VCC,双极...