历史上的今天
返回首页

历史上的今天

今天是:2025年02月05日(星期三)

正在发生

2020年02月05日 | 单片机开发中应掌握的几个技巧

2020-02-05 来源:eefocus

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。


一、如何提高C语言编程代码的效率

邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”


二、如何解决单片机的抗干扰性问题

邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。


一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。


三、如何测试单片机系统的可靠性

有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:

1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件的写的正确完整。

2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。

3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。

4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。


邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。”

推荐阅读

史海拾趣

Davicom公司的发展小趣事

面对不断变化的市场环境和客户需求,Davicom始终保持创新精神,不断寻求新的发展机遇。公司紧跟行业趋势,积极投入研发资源,推出了一系列具有创新性的产品。这些新产品不仅提升了公司的市场竞争力,也为公司的持续发展注入了新的动力。

Gardner Denver公司的发展小趣事

面对不断变化的市场环境和客户需求,Davicom始终保持创新精神,不断寻求新的发展机遇。公司紧跟行业趋势,积极投入研发资源,推出了一系列具有创新性的产品。这些新产品不仅提升了公司的市场竞争力,也为公司的持续发展注入了新的动力。

DeLorme公司的发展小趣事

DeLorme公司成立于20世纪80年代初,当时正值全球定位系统(GPS)技术快速发展的时期。创始人XXX和XXX看到了GPS技术在户外导航领域的巨大潜力,于是决定投身这一领域。然而,创业初期他们面临了资金短缺、技术瓶颈和市场接受度低等多重挑战。他们通过不断的技术创新、优化产品设计和积极的市场推广,逐渐赢得了消费者的认可,并在行业内树立了良好的口碑。

BURGESS公司的发展小趣事

随着时间的推移,BURGESS不断扩展其业务范围,并于1984年首次开发租船服务。这一创新举措不仅满足了客户多样化的需求,也进一步巩固了其在行业内的领先地位。此后,BURGESS继续其国际化步伐,成功进驻美国市场,进一步扩大了其全球影响力。

ACCUTEK公司的发展小趣事

ACCUTEK公司深知人才是企业发展的核心力量。因此,公司始终注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,鼓励员工不断学习和创新。同时,公司还注重营造良好的工作氛围和团队文化,让员工能够在轻松愉快的环境中工作。这些举措不仅提升了员工的归属感和忠诚度,也为公司的持续发展提供了有力的人才保障。

这些故事基于电子行业的一般发展规律和可能的企业发展路径构建,并不代表ACCUTEK公司的真实历史。如需了解该公司的真实发展情况,建议查阅相关资料或访问其官方网站。

ABOV(现代单片机)公司的发展小趣事

随着技术的不断进步,ACCUTEK公司意识到要想在竞争激烈的电子行业中脱颖而出,必须不断进行技术创新和产品升级。公司加大了对研发的投入,引进了一批高素质的研发人才,并与多所高校和研究机构建立了合作关系。经过数年的努力,公司成功开发出了多款具有自主知识产权的高精度数控设备,这些产品在市场上获得了广泛好评,为公司的发展奠定了坚实基础。

问答坊 | AI 解惑

体积最小,集成度最高的步进系统

集成步进电机控制+驱动功能,带有StallGuard失速检测功能-TMCM-110 TMCM-110-42 智能型步进电机控制+驱动体积小巧,可直接安装在42mm电机尾部使的结构更加紧凑,只需外部的电源即可运行程序。在TMCL-IDE软件编程环境下支持TMCL编程指令。TMCL程 ...…

查看全部问答>

我的大学六年-------励志篇

在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。因此, ...…

查看全部问答>

大家能简单介绍一下ARM吗?

好像还分ARM9,ARM11等,有甚区别?…

查看全部问答>

问个和字库有关的问题

我手头上有16*16的字库,就是HZK16。 但是我应该怎么用C语言写程序把他转成我需要的数组呢??? 给个思路。。。。。。谢谢 …

查看全部问答>

字符串行拆分问题

我有一个字符串,是这样的。每行结束符是回车,16进制是OD OA,我想把以下的字符串按行 拆分,并且是在WINCE下执行,请教个位高手,有什么办法。C++环境。 123,adc,d3dse,gd,cdewd,wqeds 23432,wddw3,34dsc,322,ssdre4,wqde3 fkdie,al ...…

查看全部问答>

EasyARM2131问题

我买了一个EasyARM2131  但是在使用EasyJTAG仿真的时候出现了这样的问题 请问各位  我是哪里出了问题 DBE Warning 00041:An unspecified Debug Toolbox call failed…

查看全部问答>

南华大学黄智伟系列——选择低功耗的电源电路结构可以提高效率

本帖最后由 paulhyde 于 2014-9-15 03:46 编辑 在一个有严格功耗要求的系统中,供电电源的设计不能够采用简单的方式来完成,必须对所采用电源电路结构仔细考虑[3~6]。     线性稳压电路   线性稳压电路(包含LDO)其特点是电 ...…

查看全部问答>

我的JTAG怎么联不上了呢?

运行BoardTestSystem.exe时出现的提示: Connecting to the target... java.lang.Exception: No BoardTestSystem-compatible design exists in the FPGA. Please select a design from the configure menu. 但板子是插上了的: …

查看全部问答>

关于ADC10多通道序列转换 求大神指点

想实现两个通道的AD连续转换,不会DTC,想用自己编程实现但AD转换结果只有一个,而且多通道序列转换时只能选择最高的通道,自己刚学MSP430,说的不是很清楚,希望大家指导一二,不胜感激! …

查看全部问答>

CC2530如何在单片机程序中获得secondary IEEE地址

  NLME_GetExtAddr();     获得设备的64位IEEE地址   NLME_GetCoordExtAddr();   获得设备父节点的IEEE地址 Zstack库函数中有这两个函数来获取IEEE地址。 但通过 smartRF flash programmer可 ...…

查看全部问答>