历史上的今天
返回首页

历史上的今天

今天是:2025年06月03日(星期二)

正在发生

2020年06月03日 | 开发单片机时需掌握的四个基本技巧

2020-06-03 来源:eefocus

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。

1、如何减少程序中的bug。

对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。


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

用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。


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

防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。


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

当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;ESD和EFT等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。

推荐阅读

史海拾趣

Hirosugi-Keiki公司的发展小趣事

对于门控夜明灯电路,网友们可能会有多种问题,以下是一些常见问题及其详细回答:

一、工作原理相关问题

  1. 问:门控夜明灯电路是如何实现自动开关的?
    : 门控夜明灯电路主要通过门控开关、延迟电路、光控电路和电源电路等几部分组成。当门打开时,门控开关触发电路,使电灯点亮。同时,延迟电路控制电灯的点亮时间,一般为几十秒左右。光控电路则确保在光线较暗的环境下(如夜晚)电路才会工作,而在白天则自动封锁电路,避免电灯误亮。

  2. 问:电路中的光控部分是如何工作的?
    : 电路中的光控部分通常由光敏电阻器(如MG45型)和相关的电子元件组成。光敏电阻器的阻值会随着光照强度的变化而变化。在白天,由于光照强度大,光敏电阻器呈现低阻值状态,导致电路中的某个三极管(如VT3)导通,进而封锁整个电路,使电灯不会点亮。而在夜晚,光照强度减弱,光敏电阻器呈现高阻值状态,三极管截止,电路恢复正常工作状态,受门控开关控制。

二、安装调试相关问题

  1. 问:如何安装门控夜明灯电路?
    : 安装门控夜明灯电路时,首先需要将干簧管安装在门框上,将小磁铁安装在门上,并确保两者在门关闭时能够对准并吸合。接着,将电路板固定在合适的位置,并连接好电源线和电灯线。最后,进行电路调试,确保电路能够正常工作。

  2. 问:如何调整电灯的点亮时间?
    : 电灯的点亮时间主要由延迟电路中的电阻和电容决定。要调整点亮时间,可以通过改变电阻(如R2)的阻值或电容(如C1)的容量来实现。一般来说,电阻阻值增大或电容容量增大,都会导致点亮时间延长;反之,则点亮时间缩短。

三、故障排除相关问题

  1. 问:如果电灯不亮,可能是什么原因?
    : 如果电灯不亮,可能是由多种原因造成的。首先,应检查电源是否正常,以及电路中的保险丝是否熔断。其次,检查门控开关是否工作正常,即干簧管和小磁铁是否能够在门打开时正确触发电路。此外,还应检查光控电路是否因光线过强而处于封锁状态。最后,检查电灯本身是否损坏。

  2. 问:电灯在白天也会亮,怎么办?
    : 如果电灯在白天也会亮,可能是光控电路出现了问题。首先,应检查光敏电阻器是否损坏或受到其他光源的干扰。其次,检查与光敏电阻器相关的电子元件(如VT3)是否工作正常。如果问题依然存在,可能需要重新调整光控电路的灵敏度或更换相关元件。

四、其他相关问题

  1. 问:门控夜明灯电路适用于哪些场合?
    : 门控夜明灯电路适用于需要自动照明的各种场合,如家庭玄关、走廊、楼梯间等。它能够在人们进门时自动点亮电灯,为人们提供方便,同时也能够节省能源。

  2. 问:如何选择合适的电灯与电路匹配?
    : 在选择电灯与电路匹配时,首先需要考虑电灯的功率和类型。由于门控夜明灯电路通常设计为低功耗电路,因此建议选择功率较小、发光效率较高的电灯,如LED灯泡。此外,还需要确保电灯的电压和电流与电路的输出相匹配,以避免电路损坏或电灯烧毁。

FLIR公司的发展小趣事

为了进一步扩大市场份额,FLIR在20世纪80年代末至90年代进行了一系列重要的战略并购。1990年,FLIR收购了美国休斯飞机公司在工业红外成像领域的业务,这一举动极大地增强了其在商业热成像市场的竞争力。随后,FLIR又分别收购了瑞典的Agema公司和波士顿的Inframetrics公司,这两家公司都是红外热像仪领域的佼佼者,拥有丰富的技术积累和市场资源。通过这些并购,FLIR不仅壮大了自身的研发团队和销售网络,还加速了其挺进商用热成像市场的步伐,进一步巩固了其市场领先地位。

Custom LeatherCraft Manufacturing Co Inc公司的发展小趣事

CLC起源于一个对高质量手工皮革制品有着无限热情的小型工坊。创始人是一位经验丰富的皮革工匠,他看到了电子工程师和户外工作者对耐用、实用的工具包的需求。于是,他开始了自己的创业之路,以“定制皮革工艺”为核心理念,承诺每一件产品都经过精心制作和严格质检。凭借这份承诺和精湛的技艺,CLC逐渐在市场中赢得了口碑。

Accelink Technologies Co Ltd公司的发展小趣事

CLC起源于一个对高质量手工皮革制品有着无限热情的小型工坊。创始人是一位经验丰富的皮革工匠,他看到了电子工程师和户外工作者对耐用、实用的工具包的需求。于是,他开始了自己的创业之路,以“定制皮革工艺”为核心理念,承诺每一件产品都经过精心制作和严格质检。凭借这份承诺和精湛的技艺,CLC逐渐在市场中赢得了口碑。

Black Box Corporation公司的发展小趣事

在数字化时代,通信技术的更新换代速度极快。为了保持竞争优势,Black Box不断投入研发,推出了一系列创新产品和技术。例如,公司研发了一款智能网络管理平台,能够实时监控网络状态并进行故障预警。这一技术创新大大提高了网络的稳定性和安全性,赢得了客户的广泛好评。

联智(Celfras)公司的发展小趣事

作为江西省首家提供高端应用芯片整体解决方案的公司,联智在集成电路设计领域展现了其强大的实力。公司不仅关注无线充电技术,还致力于电源管理、低功耗蓝牙、近场感应等IoT(物联网)应用芯片的研发和产业化。这种多元化的产品策略使联智能够满足不同客户的需求,进一步巩固了其在市场中的地位。

问答坊 | AI 解惑

请赐教关于LCD12232显示的问题

请赐教,我要怎么修改源程序,才能让“京”字显示在  “南”字的右下方?                                  &nb ...…

查看全部问答>

ICCAVR教程

初学AVR,下了ICCAVR教程,上传与大家共享。…

查看全部问答>

印字为4AZAA与55LAK的贴片ic(SOT23-6)是什么型号啊

有2个元件,是6脚的SOT23大小,一个印的白字是 4AZAA,左边第1个第2个A上面有一横, 另一个印字是 55LAK, 且在第2个5及A上面各有一横。请问是什么型号啊?见如下图:…

查看全部问答>

写一个API 来替代etherOutput()函数?

在tornado 2.2下以前的API etherOutput()没有了要怎么办?有类似的函数可以替代吗? etherOutput( ) - send a packet on an Ethernet interface SYNOPSIS STATUS etherOutput     (     struct ifnet   &nb ...…

查看全部问答>

wince和linux启动时间

这两个系统的启动时间怎么样,我购买的开发板wince启动时间有1分钟左右,太慢了,可不可以缩短启动时间。启动时间对我们的项目不适用。…

查看全部问答>

wince开机内存占用问题?

如上图,红色指示区域是wince进入桌面后程序内存的使用量。有9M多呢 这样子正常吗?启动应用都没运行呢! 哪位兄台解答一下啊? …

查看全部问答>

pxa270的电源管理

小弟最近在研究pxa270的电源管理,用的BSP是BVDMAIN,进入WINCE后,点击开始中的“挂起”后,在执行完所有驱动的POWEROFF函数后,开始执行OEMPowerOff(),执行到XllpPmEnterSleep()时发生异常,我查了一下,这个函数是内容都是汇编语言,发生异常 ...…

查看全部问答>

嵌入开发入门

嵌入开发入门级菜鸟 请求各位大虾帮忙学习! 散分先!…

查看全部问答>

如何将pc中的文件传到Pocket pc 2003 模拟器中的某个文件夹中

我要将PC上的文件传到ppc上安装,请教各位,如何将PC上的文件传到ppc的某个目录下,新手希望具体点,谢谢!…

查看全部问答>

9B96与FPGA如何互联?

只接触了8962一个月,现在想要实现9B96与FPGA的互联,请教下各位,怎么配置? 用GPIO还是用EPI? 用EPI的话电路怎么连接?有没达人已实现,可否分享下,谢谢了。…

查看全部问答>