设计编写单片机程序是一个渐进的过程不可一蹴而就,毕竟单片机程序是与硬件有密切关系的,我们一般称为单片机程序叫底层硬件驱动程序。编写程序不但要对软件要熟悉而且对硬件也要熟悉才行,所以对于我们从事单片机技术的人员来说能够编写出没有“bug”的优秀程序需要具有“软硬兼施”的本领,否则编写的程序就会出现问题。下面根据我学习单片机来谈谈我对这个问题的体会。
设计不出来单片机程序的原因
我认为初学者感觉设计不出真正的单片机程序是一个普遍的问题。我先说说刚学单片机的朋友为什么设计不出单片机程序,首先是对软件知识和硬件知识有“短板”。因为程序的设计少不了使用程序语言,现在比较流行的单片机编程语言是c语言,如果在编程语言方面有欠缺的话编程会受到影响这是其一,其二是硬件方面,我们要知道单片机的外设硬件方面的一些工作原理,比如按键、显示器件、各种驱动芯片等,这些都与数字电路和模拟电路知识有关,如果这方面有欠缺应及时加强。
其次是对单片机程序与硬件的内在联系不清楚。我们编写的程序是与单片机外设的硬件紧密相联系的,如果不知道用编程语言的哪种处理方法或技巧去控制硬件工作,那么就无法编写出控制程序。比如编写一个测温度的程序,如何能采集到温度、如何编写把温度数据转换成数码管或者液晶能够显示的程序并分理处小数点等等都有一定的处理方法和技巧。
再次是缺乏设计编写程序的经验。有句话叫“万事开头难”,我们在做许多事情时刚开始都会感觉到无所适从,我认为这是很正常的现象,我建议刚开始学习时我建议从最简单的开始,比如从控制led小灯开始再到各种花样的“跑马灯”小程序、模拟交通灯程序、具有数码管倒计时的模拟交通灯程序等,通过这样的循序渐进,由简入难地训练经过一段时间就会见到成效;最后一点我认为是缺乏整体布局的能力。因为一个完整的程序除了需要主程序外,还要有许多子程序。要完成整个控制流程就要对各个程序之间的不断调用来实现,这就要在程序的编排上要考虑周全。所以设计编写也就是对整个控制流程有整体的把控才行。
如何能编写出合格的单片机程序
其实设计单片机并不是很难能,那么如何才能设计编写出合格的单片机程序呢?我认为要从以下几个方面。一方面除了把我们自己感觉有“短板”的地方补齐外,另一方面我感觉还要做到以下几点:
第一点就是在设计程序时先要对控制的对象做全面的分析,也就是要把解决的问题的条件、初始化的数据、输入与输出的信息以及要达到的控制目的都要知道,虽然达不到“庖丁解牛”的那种娴熟的程度,最起码要做到心中有数。
第二点是在设计程序时要确定程序的“算法”,这个词听起来有点高大上,其实我们在设计程序时要知道根据控制的要求和我们所有的条件来确定我们所用的计算方法。我在学c语言时经常听老师说:算法是程序的灵魂这一句话,当时刚接触对这句话并不理解,现在回头看来这句话是很有道理的。这就像我们炒菜一样,如果我们能按菜谱去做就非常好吃,若是随心所欲去做菜那肯定难以下咽,我认为在这方面两者有“异工同曲”之处。
第三点是要善于绘制流程图,这一点在我们刚学习设计程序时我感觉很有必要。绘制流程图可以直观地体现我们编写程序的思路,它也是我们设计程序时的依据。从一定程度上说能绘制完一个控制流程图也就离设计出程序不远了。
第四点就是要抱着“他山之石,可以攻玉”的心态去多看别人的程序,学习别人的设计编写程序的技巧。我们知道c语言的可移植性很好,看到有非常好的子程序只要略微修改一下就可以为我所用,这样有时会节省很多时间。
我认为只要通过以上几点坚持下去,我们编写出没有“bug”的合格程序应该是水到渠成的事情了!
餐饮业为什么要安装油烟在线检测仪,油烟在线监测系统有哪些优势
配电自动化通信系统解决方案的应用优势及存在哪些问题
AI应用的最后一段路怎么走
栅极源极漏极怎么区分?漏极 源极 栅极相当于三极管的哪极?
i.MX评估板和开发板官方资源大全:一键获取,拿走不谢!
单片机程序如何编写
哪几种情况下万用表能烧毁
VR和MR在医疗保健领域应用广泛
reality应用程序引入了新的DLC,可通过VR捕捉位置,来探索德国工业煤矿
制作一个具有信号增益增强选项的200wHiFi单声道放大器
家有学生,需要家庭打印机吗?如何选购?
上海航芯荣获独角兽!精彩亮相2022中国IC独角兽论坛
探究雷达信号传输的应用和维护
SiC的优势及典型设备
艾迈斯半导体针对工业市场2D/3D传感应用推出新系列VCSEL红外泛光照明器
解析简易示波器和信号发生器的实现
DiffusionDet检测范式实现良好性能
苹果春季新品发布会将于3月25日在史蒂夫-乔布斯剧院召开
TCL未来将偏重于发展面板业务,对TCL来说未必是好事
国星光电获评“佛山市育才引才标杆企业”荣誉称号