一、 如何提高C语言编程代码的效率
邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。他说:“对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。”
二、 如何减少程序中的bug?
对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管理参数有:
1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。
2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。
3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。
4.过程参数。指系统运行中的有序变化的参数。
三、如何解决单片机的抗干扰性问题
邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
四、 如何测试单片机系统的可靠性
有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:
1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。
2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。
3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
关键字:C语言 单片机 程序设计
引用地址:
简介如何用用C语言进行单片机程序设计
推荐阅读最新更新时间:2024-03-16 13:40
基于51单片机的简易电子琴设计
一.系统概述 系统使用的模块有AT89C51单片机+8位共阳数码管+矩阵键盘+小灯+按键+蜂鸣器。 本次设计的电子琴系统以AT89C51单片机为控制核心,使用数码管显示音符,右侧的矩阵键盘可以理解为琴键,按下不同的按键就能显示不同的音符。按下下方的弹奏/停止按键后点击歌曲选择就能进入自动播放模式,矩阵键盘上每个按键都对应一种音调。 二.仿真概述 1.使用数码管显示按下的音符。 2.通过矩阵键盘输入音符,蜂鸣器就会发出对应的音调。 3.按下弹奏/停止按键后,点击歌曲选择,并选择矩阵键盘上的任一按键就能播放指定的音调。 三.程序设计 使用 Keil 51进行程序设计,打开 Proteus 时程序是默认烧录的状态,如果
[单片机]
玩转单片机之一
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。 它是一种在线
[单片机]
用VMLAB进行AVR单片机硬件/软件协仿真
前言 在单片机应用开发过程中,当源文件的编译成功后,就要进行仿真调试工作。仿真调试可分为两大类--芯片级仿真和代码级仿真。芯片级仿真是指使用仿真软件和ICE硬件工具相配合,在实际硬件上进行仿真调试工作;而代码级仿真则完全在计算机上完成,不需要硬件的参与。两种类型的仿真各有特点,使用的场合不同。本文基于VMLAB,讲述了进行AVR单片机硬件/软件协同仿真的方法。 VMLAB的全称为:VisualMicroLab。它针对于AVR以及ST62系列单片机设计,是一个单片机的虚拟原型(virtualprototype)框架(frame),它可以提供给用户一个真正意义上的虚拟微控制器(MCU)设计实验室。它具有强大的多窗口、多文件的编辑器
[单片机]
对单片机行业的一些理解
单片机,single chip microcomputer,单芯片微型计算机。总体来说,他就是一个芯片。但是他是一个特殊的芯片,因为他不是实现单独的逻辑功能。他是将一个整体的计算机系统集成到这个芯片上。这个计算机系统包括运算器,控制器,存储器,输入设备和输出设备。 其实单片机的学习,和计算机的学习差别不是太大。包括运算器,控制器,存储器,以及输入输出设备的学习。 运算器 运算器由运算部件--算术逻辑单元(alu)、累加器、计算器等部件组成。 控制器 学习的难点在于涉及到指令方面的操作。控制器由程序计数器,指令寄存器,指令译码器,时序发生器和操作控制器。 单片机的开发过程: 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们
[单片机]
基于单片机的超低功耗电子温度计的设计
0 引言 本文设计的超低功耗电子温度计能够通过温度传感器测量和显示被测量点的温度,并可进行扩展控制。该温度计带电子时钟,其检测范围为l0℃~30℃,检测分辨率为1℃,采用LCD液晶显示,整机静态功耗为0.5μA。其系统设计思想对其它类型的超低功耗微型便携式智能化检测仪表的研究和开发,也具有一定的参考价值。 1元器件选择 本系统的温度传感器可选用热敏电阻。在10~30℃的测量范围内,该器件的阻值随温度变化比较大,电路简单,功耗低,安装尺寸小,同时其价格也很低,但其热敏电阻精度、重复性、可靠性相对稍差,因此,这种传感器对于检测在1℃以下,特别是分辨率要求更高的温度信号不太适用。 显示部分可以采用笔段式LCD
[单片机]
基于PIC18F系列单片机的嵌入式系统设计
前 言 嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用的,系统的硬件选型和软件开发模式都必须根据具体的应用确定。 永磁无刷直流电动机是电机控制研究领域的热点之一,这与其自身固有的技术优势密切相关:以电子换相取代了有刷直流电动机的机械换相。从根本上革除了普通有刷直流电动机由于电刷换相带来的火花、噪音、高故障率等一系列问题,同时又使系统的性能能够与普通有刷直流电动机相媲美,因此得到了广泛的应用。永磁无刷直流电动机的电子换相离不开电机的转子位置信号,传统的方法是采用 霍尔器件 或其他位置 传感器 检测位置信号,这使得系统的
[单片机]
基于51单片机智能红外温控风扇设计
1、设计需求及目标 本产品采用单片机+最小系统+数码管显示模块+数码管驱动模块+温度采集模块+人体感应模块+风扇模块+按键模块等构成; 功能描述: (1)采用DS18B20温度传感器测温,人体感应模块检测是否有人。 (2)共3个按键:1键切换/设置、2键加、3键减。 (3)本设计共三种模式:自动模式、手动模式和自然风模式。 (4)自动模式,按一下1键可以设置温度上限,再按下设置温度下限,均可以按键加减调整。数码管第一位不显示,后三位显示温度值。人体感应模块检测有人时,温度小于下限风扇不转,温度在上下限之间50%转动,大于上限时,风扇全速转动。人离开后,延迟几秒风扇停止转动,起到节能环保的作用。 (5)手动模
[单片机]
基于MCU和FPGA灵活设计车载信息娱乐系统
汽车工业蓬勃发展,车载信息娱乐系统已经不再是豪华轿车的独有设施,越来越多的中低端轿车开始拥有自己的信息娱乐系统。 然而,车载信息娱乐系统是一个高度集成的复杂系统,其中可以包括导航系统、影音系统、电话系统、空调通风系统,以及其他车内外舒适设备的控制系统等,这些系统涉及的通讯网络可以包括LINK_KEYWORD0、MOST、LIN、蓝牙和其他无线网络协议等。设计这样一个复杂系统,不但要考虑系统的性能和成本,更要考虑设计的灵活性,以保持产品在快速变化的市场中的竞争力。 汽车电子系统要求温度适应范围大、有利于生产标准化和很长的设计寿命。车载信息娱乐系统是一个快速发展和适应各种用户的系统,如果既要保持一个设计具有长的寿命又要有
[嵌入式]