0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机程序如何编写

姚小熊27 来源:电工之家 作者:电工之家 2020-02-12 14:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设计编写单片机程序是一个渐进的过程不可一蹴而就,毕竟单片机程序是与硬件有密切关系的,我们一般称为单片机程序叫底层硬件驱动程序。编写程序不但要对软件要熟悉而且对硬件也要熟悉才行,所以对于我们从事单片机技术的人员来说能够编写出没有“bug”的优秀程序需要具有“软硬兼施”的本领,否则编写的程序就会出现问题。下面根据我学习单片机来谈谈我对这个问题的体会。

设计不出来单片机程序的原因

我认为初学者感觉设计不出真正的单片机程序是一个普遍的问题。我先说说刚学单片机的朋友为什么设计不出单片机程序,首先是对软件知识和硬件知识有“短板”。因为程序的设计少不了使用程序语言,现在比较流行的单片机编程语言是C语言,如果在编程语言方面有欠缺的话编程会受到影响这是其一,其二是硬件方面,我们要知道单片机的外设硬件方面的一些工作原理,比如按键、显示器件、各种驱动芯片等,这些都与数字电路模拟电路知识有关,如果这方面有欠缺应及时加强。

其次是对单片机程序与硬件的内在联系不清楚。我们编写的程序是与单片机外设的硬件紧密相联系的,如果不知道用编程语言的哪种处理方法或技巧去控制硬件工作,那么就无法编写出控制程序。比如编写一个测温度的程序,如何能采集到温度、如何编写把温度数据转换成数码管或者液晶能够显示的程序并分理处小数点等等都有一定的处理方法和技巧。

再次是缺乏设计编写程序的经验。有句话叫“万事开头难”,我们在做许多事情时刚开始都会感觉到无所适从,我认为这是很正常的现象,我建议刚开始学习时我建议从最简单的开始,比如从控制LED小灯开始再到各种花样的“跑马灯”小程序、模拟交通灯程序、具有数码管倒计时的模拟交通灯程序等,通过这样的循序渐进,由简入难地训练经过一段时间就会见到成效;最后一点我认为是缺乏整体布局的能力。因为一个完整的程序除了需要主程序外,还要有许多子程序。要完成整个控制流程就要对各个程序之间的不断调用来实现,这就要在程序的编排上要考虑周全。所以设计编写也就是对整个控制流程有整体的把控才行。

单片机程序如何编写

如何能编写出合格的单片机程序

其实设计单片机并不是很难能,那么如何才能设计编写出合格的单片机程序呢?我认为要从以下几个方面。一方面除了把我们自己感觉有“短板”的地方补齐外,另一方面我感觉还要做到以下几点:

单片机程序如何编写

第一点就是在设计程序时先要对控制的对象做全面的分析,也就是要把解决的问题的条件、初始化的数据、输入与输出的信息以及要达到的控制目的都要知道,虽然达不到“庖丁解牛”的那种娴熟的程度,最起码要做到心中有数。

第二点是在设计程序时要确定程序的“算法”,这个词听起来有点高大上,其实我们在设计程序时要知道根据控制的要求和我们所有的条件来确定我们所用的计算方法。我在学C语言时经常听老师说:算法是程序的灵魂这一句话,当时刚接触对这句话并不理解,现在回头看来这句话是很有道理的。这就像我们炒菜一样,如果我们能按菜谱去做就非常好吃,若是随心所欲去做菜那肯定难以下咽,我认为在这方面两者有“异工同曲”之处。

单片机程序如何编写

第三点是要善于绘制流程图,这一点在我们刚学习设计程序时我感觉很有必要。绘制流程图可以直观地体现我们编写程序的思路,它也是我们设计程序时的依据。从一定程度上说能绘制完一个控制流程图也就离设计出程序不远了。

第四点就是要抱着“他山之石,可以攻玉”的心态去多看别人的程序,学习别人的设计编写程序的技巧。我们知道C语言的可移植性很好,看到有非常好的子程序只要略微修改一下就可以为我所用,这样有时会节省很多时间。

我认为只要通过以上几点坚持下去,我们编写出没有“bug”的合格程序应该是水到渠成的事情了!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45333

    浏览量

    663291
  • 单片机程序
    +关注

    关注

    1

    文章

    12

    浏览量

    9710
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机程序的执行

    更快的SRAM中,以得到更快的执行速度。而对于,单片机而言工作频率也就几M,几十M,从Flash中与从RAM中读的差异可能并不明显,不会成为程序执行的瓶颈。 而对于PC而言,Flash的速度太慢
    发表于 12-04 06:20

    为什么单片机还在用C语言编程?

    说起单片机我们就会想到C语言,单片机为什么还在用C语言编程?现在有很多很好用的高级语言,如VC、PYTHON、PHP等等,为什么这些语言不能用来编写单片机
    发表于 11-28 07:37

    编写简单高效单片机汇编程序

    的行数多并不一定意味着效率低。 关键在于写代码时避免冗余,灵活运用模块化设计和单片机资源。 最终程序既要高效运转,又不失结构清晰。 汇编语言的难点在于编写简短而高效的代码,需要理解单片机
    发表于 11-24 07:00

    单片机的误区

    任何单片机程序编写。根本就不要学去C语言的高级用法,即使你用C语言的最基础的语句能够完成程序编写,底层运行的机制是学习重中之重! 等你积
    发表于 11-14 07:46

    单片机烧录原理是怎样的?辉芒微单片机烧录程序详细步骤讲解

    烧录(Programming)就是把 .hex/.bin 文件里的机器码搬运进单片机片内 Flash 的过程。辉芒微(FMD)单片机内部有一块 自举 BootROM,上电时会先跑这段程序;如果检测
    的头像 发表于 09-17 16:14 1373次阅读
    <b class='flag-5'>单片机</b>烧录原理是怎样的?辉芒微<b class='flag-5'>单片机</b>烧录<b class='flag-5'>程序</b>详细步骤讲解

    【老法师】多核异构处理器中M核程序的启动、编写和仿真

    有很多研究单片机的小伙伴在面对多核异构处理器时,可能会对多核的启动流程感到困惑——因为不熟悉GCC编程和GDB调试,所以也无法确定多核异构处理器的程序是否能像单片机那样方便地编写和仿真
    的头像 发表于 08-13 09:05 3626次阅读
    【老法师】多核异构处理器中M核<b class='flag-5'>程序</b>的启动、<b class='flag-5'>编写</b>和仿真

    单片机的储存优点是什么

    单片机作为嵌入式系统的核心,其储存系统是实现数据存储与程序运行的关键部分。与独立存储芯片相比,单片机的储存单元在集成度、功耗、可靠性等方面具备独特优势,这些优点使其能适应从消费电子到工业控制的多样化
    的头像 发表于 07-31 10:09 482次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 468次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 436次阅读

    单片机怎么烧程序

    单片机程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是
    的头像 发表于 07-23 11:47 643次阅读

    STC单片机范例程序

    电子发烧友网站提供《STC单片机范例程序.zip》资料免费下载
    发表于 06-04 16:27 8次下载

    2.4寸TFT彩屏配套测试程序-51单片机

    如题,2.4寸TFT彩屏配套测试程序-51单片机
    发表于 06-04 16:26 0次下载

    tlc3578在程序编写的过程中,单片机检测外部中断到来,可是一直检测不到,为什么?

    1 、在时序图上看到在MASTER SPI 发送完数据之后,SCLK还需要时钟输入,可是单片机SPI在输出完数据无时钟。 2 、在程序编写的过程中,先发送A000进行初始化,后接着发送0A23
    发表于 01-16 07:02

    单片机Debug工具性能对比 单片机调试常用命令

    单片机(Microcontroller Unit, MCU)调试是嵌入式开发中的一个重要环节,它帮助开发者发现和修复代码中的错误,优化程序性能。不同的单片机和开发环境可能使用不同的调试工具和命令
    的头像 发表于 12-19 09:56 2152次阅读

    单片机Debug与仿真区别

    是指在软件或硬件开发过程中,通过特定的工具和技术来查找、诊断和修复错误的过程。在单片机开发中,Debug通常涉及到以下几个方面: 硬件调试 :检查单片机的硬件连接是否正确,包括电源、时钟、I/O接口等。 软件调试 :使用调试器(Debugger)来检查
    的头像 发表于 12-19 09:47 1398次阅读