原创 单片机开发中应掌握的几个基本技巧

2009-8-12 16:25 1577 9 9 分类: MCU/ 嵌入式
在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着
NpgW0D z(X40185工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香电子园51单片机学习网 j0kE8E%pt3B
港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大
/q*j,}A M40185设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握电子园51单片机学习网x-AALY!{!O8_(R
的几个基本技巧。
电子园51单片机学习网+Q U`h!m4F A_kJ

一、 如何提高C语言编程代码的效率电子园51单片机学习网;Dg0}6|!z.m9\J


D SMs(|G(`%_c40185邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“
b$xaqE40185如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语
5c2UK)rIgV/^40185言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的
8c;G:p0Pw_40185时候,使用编译效率最高的语句。”

X"^C)S(y([/T+O[40185 电子园51单片机学习网 vN2Cx4m!ipy7M

他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系
-H"y6UF P!ET-Q w40185统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。他说:“
i)p;` \*no%{9]m40185对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言电子园51单片机学习网3}R:XQ^7?5M7fy)S:I
和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是
WBlB4uS~!r8|40185最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是电子园51单片机学习网5c7AC M+Pl
在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很电子园51单片机学习网z YvN]#a,~
多,反而导致执行效率低于汇编语言。”

)c6A e&q&W40185 电子园51单片机学习网 O)I2PhP a4k

二、 如何减少程序中的bug?电子园51单片机学习网_F't-S@4E


m-^w?sfbp5j40185对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管
ti/FjJ9pP40185理参数有:
Z,a$S]7dZ)T0b2L N401851.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参
Pq5vl:@W!n40185数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或
|u Rm/?q)l40185非正常回应进行出错处理。
+Ue mI {b dDa8eQ401852.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、
{Yo)g%RO0s40185存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。
/dz_;o\W401853.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦电子园51单片机学习网a a?5}/{HL~!W
写次数与资料存储时间等应用参数界限。电子园51单片机学习网W g7r*~{F5k
4.过程参数。指系统运行中的有序变化的参数。

@ |^z N#V40185

/v#D]\)Z2C{3o40185电子园51单片机学习网1F8|wQQx;YdJQ
三、如何解决单片机的抗干扰性问题电子园51单片机学习网{ w)A4a.DAF)m%f


3H0K*My-?#o6J|40185邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,
2}mx6T e4\#Dj[|v40185所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程电子园51单片机学习网xBTm`0Fu
序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干
eHu$S.J/Z40185扰最重要的是处理好复位状态。
,| L#z-kSi40185一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中
y&P'c9kC`BC*lU40185埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还
} ULe;n;t z40185可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用
)`1J.`6FP!b40185时也不会察觉到程序被重新复位过。

Ef4`D$c40185 电子园51单片机学习网-z.q+r+kkiB/Tg+Qv

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

^|LlA,j7uv x%T40185 电子园51单片机学习网Aw&C+RT@#bp

有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片
5W3K5j ~l @_40185机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些电子园51单片机学习网M0Q'f[$wZ,?1Z
是必须测试的:
"y-\4h"SjmM R401851.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否
u%b3Gk^:|/j w'v40185写的正确完整。电子园51单片机学习网A"H6l%Ft!L$a/H
2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电
L-vD C#W%~*I#e}40185源,测试单片机系统的可靠性。电子园51单片机学习网Yi/f^)XA2L
3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温电子园51单片机学习网+v3K6hEW ]5X
,高压以及强电磁干扰的环境下测试。电子园51单片机学习网zx0Qqn+y(l
4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静
"XK&ET6B_40185电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰E电子园51单片机学习网9T3z4A)Fk`m
FT测试等等。电子园51单片机学习网H,v-[J,yglN


.Xv*o {I2A40185邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织电子园51单片机学习网 K!`Ev"G-i!H
物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机电子园51单片机学习网eg5j@nRq
系统工作,由此测试抗电磁干扰能力等。”
8dwrd3uT40185电子园51单片机学习网&Z'rg7d/n!u7jC

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条