本人从事从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,系统自动给出下载链接。
本次课程到此结束,如果有什么疑问欢迎留言。