当前位置:首页 > 单片机 > 单片机
[导读]1前言如何编写单片机应用程序,这是一个实践性很强的题目,也是1项艰苦而细致的工作。如果按照一定的步骤并且找出难点,事先对这些难点加以处理,能够收到事半功倍的效果。下面根据实际工作中的经验,谈谈实际开发中

1前言

如何编写单片机应用程序,这是一个实践性很强的题目,也是1项艰苦而细致的工作。如果按照一定的步骤并且找出难点,事先对这些难点加以处理,能够收到事半功倍的效果。下面根据实际工作中的经验,谈谈实际开发中必经的几个步骤和可能遇到的难点的处理。对于1个单片机应用程序,其编制过程如图1所示。

2编制步骤

2.1搞清功能和编写方案

接到一个单片机项目设计文件之后,并不是马上动手编写程序,而是仔细研究用户提出的技术要求或者技术说明,根据这些技术要求和技术说明,也就是客户要求,把程序应该具备的主要功能写清楚,写仔细,这是最关键的工作。如不清楚,应向客户和使用者问清楚,否则在设计完成以后会发现有些功能由于事先没有考虑清楚再重新设计将会很麻烦,可能有些需要重新增加的功能很容易补充,而有些可能由于没有事先考虑周全而无法实现。

2.2编写总流程图和各功能模块流程图

根据要完成的程序功能写出总流程图,根据总流程图把整个程序划分成几个主要的功能模块,每个功能模块都要写出基本流程图,这主要是为以后的程序编写起到一个指导作用。当然,在实际的程序编写过程中肯定会有一些改动,1个基本的流程会指导您在写程序的过程中不会出现太大的偏差。例如,编写键盘扫描并且区分是功能键还是数字键的子程序,如果是功能键就转相应的功能处理程序;如果是数字键就在相应的数码管上显示出来;可以写出其流程图,如图2所示。

2.3准备编程所需的资料

这些资料主要是编程语言方面的书籍、杂志等。因为程序语言的有些资料任何编程人员都不可能记得太清楚,如每条指令的含义,具体操作每条指令所牵涉的硬件电路等。如果资料准备得比较充分,可以放在案边,若有需要,顺手查阅。

2.4人机界面的编程

用单片机实现的项目人机界面相对简单。若为LED显示,应根据LED的位数选取简单、明燎、用户一看便知的提示符;显示的数据位数应充分考虑用户提出的技术要求。

2.5分析编程的难点和技术解决方案

即使1个熟练的编程人员,编程过程中会遇到一些困难。为了能比较顺利地完成程序设计,应根据程序所完成的功能和程序流程对整个程序的框架分析一下,并根据自己掌握的技能定位整个程序的难点,然后找到最佳的算法。例如对于稍微大一点的项目,键盘扫描和显示部分的程序编制应该是单片机编程的难点。

(1)无论是键盘扫描还是显示过程都和硬件部分息息相关

送片选信号选取键盘就必须搞清单片机芯片是高电平选通还是低电平选通;选通键盘后,还需要读回键盘的状态。对读回的键盘状态还要进行防抖处理;若键盘抖动,放弃读回的数据,重新读键盘状态;若确定为键盘按下,才能对按键值进行处理;处理后的键值送显示或作为其它使用。由此可知以上的每一过程都和硬件电路打交道。

(2)键盘扫描和显示牵涉到的算法比较复杂

因为扫描键盘的过程就是遍历每个按键,识别抖动,识别按键是否松开等过程;除此之外还要延迟合适的时间,以便再次读取键值。显示过程也要遍历每个数码管或液晶字符;其中查表过程,送显示过程都要用到比较复杂的循环遍历算法。

(3)数字键和功能键的区分

是数字键就送显示,是功能键就转相应的功能子程序,把两者结合起来就构成比较复杂的散转程序。MCS51单片机有现成的散转子程序可供参阅,PIC可以参照MCS51的散转子程序套用。

以上3点都是单片机编程的难点部分,在编程之前都应该找出来仔细分析。通过分析,将所有可能成为难点之处都一一找出并找出相应的算法,在以后的程序编写过程中也相应地比较顺利。

2.6写程序

在上面的准备工作完成后,就可以着手编写程序。因为有了明确的程序流程,有了充足的资料,可能遇到的难点基本上找到了解决方法;这样,事先准备得比较充分,即使在以后的程序编写过程中遇到困难,也较易解决。这样就可以节省很多时间,以便静下心来认真按照方案和流程编写程序。另外,一般写完1个功能程序就进行调试,通过后再编写另外1个功能代码,这样可以防止全部代码编写完毕后再调试可能带来的相互影响,从而可以搞清楚到底是哪部分程序有问题。

2.7程序调试

程序的调试过程是1个比较复杂的过程,有些需要高度的技巧和一定的方法。一般的编程软件都提供单步、单步越过、断点、运行到光标处等基本方法,一般掌握这几种基本方法就可以解决绝大部分问题。经过长时间的调试实践之后自然就可以掌握一定的调试技巧,即熟能生巧。

3结束语

以上是编程一般单片机程序必须经过的7大步骤,假如这7个过程的工作做得比较充分,一定能够编写出令人满意的单片机程序。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭