单片机开发技巧

发布者:MusicLover123最新更新时间:2011-09-23 关键字:单片机  开发技巧 手机看文章 扫描二维码
随时随地手机看文章

一、 如何提高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能力;使用突波杂讯模拟器进行快速脉冲抗干扰E
FT测试等等。

关键字:单片机  开发技巧 引用地址:单片机开发技巧

上一篇:基于单片机的高精度时间间隔测量模块设计
下一篇:单片机硬件设计原则

推荐阅读最新更新时间:2024-03-16 12:41

台系MCU厂商第三季度再传涨价
据台媒工商时报报道,马来西亚祭出封城措施以围堵新冠肺炎疫情,同步让微控制器(MCU)价格再度看涨。法人指出,在IDM厂率先喊涨后,义隆、松翰、纮康及九齐等MCU厂有望在第三季跟进调涨,涨幅落在双位数水准。 马来西亚因疫情封城,虽然半导体产业仍旧可维持六成人力上班维持营运,不过MCU市场目前正处于严重供不应求状况,在IDM大厂封测厂产能降载情况下,下半年MCU市场将更加吃紧。 不仅如此,中国大陆晶圆代工厂中芯国际及华虹等厂商传出下半年将优先供应中国大陆IC设计厂产能,因此恐将排挤到台湾MCU厂商。 供应链指出,中芯国际及华虹等晶圆代工厂早在2020年底前就通知台湾IC设计厂此事,台湾MCU厂商早已将产能全面移回台湾晶圆
[半导体设计/制造]
用51单片机的4个I/O口实现16个键的键盘
  如果要想实现16个键的键盘,用独立式键盘需要16个I/O口,采用行列式键盘也要8个I/O口,而采用改进型I/O端口键盘则只需要4个I/O口。   1、硬件设计      如下图所示就是用4个I/O口实现16个键盘的原理图。   2、程序设计      改进型I/O端口键盘与上述的2种键盘的设计还是存在很大差别的,从设计原理图上可以很容易区别开来。同时程序的设计方法也存在很大差异,该程序不能判断多个键同时按下,具体的程序详单如下:
[单片机]
用51<font color='red'>单片机</font>的4个I/O口实现16个键的键盘
24-基于51单片机的4乘4计算器设计
具体实现功能 系统由STC89C52单片机+4乘4按键模块+LCD1602液晶显示屏+电源构成。 具体功能: 利用输入采用4×4矩阵键盘,可以进行加、减、乘、除等几种数字运算,并在LCD1602上显示操作过程及结果。 设计背景 计算器的市场需求较大,应用范围广泛,任何一个办公地点不可缺少的都需要计算器,常见的计算器有:算术型计算器,可进行加、减、乘、除等简单的四则运算。科学型计算器,可进行乘方、开方、指数、对数等方面的运算。程序计算器,可以编程序,把较复杂的运算步骤贮存起来,进行多次重复的运算。简易计算器应用更为广泛,将其设计的更加具有市场竞争力是完全有必要的。我国计算器已经有了很成熟的技术,这里推广的是新观念,通过实
[单片机]
24-基于51<font color='red'>单片机</font>的4乘4计算器设计
学习单片机不可欠缺的八大步骤
学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序
[单片机]
STM32F103系列微控制器在应用编程技术研究
引言 STM32F103系列芯片下载程序主要通过JTAG以及ISP(In-System Programming)这两种方式。其中JTAG需要专门的下载器,这种方式主要用于软件调试。 ISP是在系统编程,指的是利用STM32F103中自带的Bootloader程序,通过通信接口擦除和下载用户代码。STM32F103系列芯片中引脚BOO T0和BOOT1置位为1和0时就会进入ISP模式,但下载程序完成后需要将BOOT0和BOOT1都置为0,才能进入正常工作模式。这就使得在下载程序完成后需要设置跳线帽等机械性的操作。而一个嵌入式产品的设计不得不考虑软件部分的更新,前面介绍的两种下载方式都不适合用来做软件更新,也就不适合用在嵌入式
[单片机]
STM32F103系列<font color='red'>微控制器</font>在应用编程技术研究
PIC16C54单片机在神经刺激器中的应用
一、概述 生命系统中的神经、肌肉都是可兴奋组织,对于外界一定的刺激会发生反应,这种反应表现为神经冲动、肌肉收缩、血管张弛等等。 外周神经刺激器就是用于外科手术麻醉过程中,通过刺激外周神经引起病人的肌肉颤搐来观察肌松药效的一种仪器。如果麻醉不深,用刺激器刺激前臂的尺神经,会引起姆指的内收动作;如果麻醉进入深度,则姆指的内收动作就会消失。 外周神经刺激器的刺激脉搏宽是200us,电流强度在10mA--60mA分六档可调,它具有四种不同的工作方式: (1)单刺激(TWH)。刺激周期为1秒, (2)四次成串刺激(TOF)。刺激周期为15秒, (3)双重强直刺激(DBS)。刺激周期为15秒,(4)强直刺激后计数(PTC)。频
[医疗电子]
PIC16C54<font color='red'>单片机</font>在神经刺激器中的应用
LM3S系列单片机,用BootLoader升级代码应用笔记
首先需要说明的是.xcl和.icf的区别: .xcl和.icf都是IAR环境下外部链接器文件,.xcl是IAR 4.--版本的,.icf是5.--版本的,两种文件格式有很大不同。 周立功官网上的资料《 LM3S系列单片机串行(UART)升级方案解决 》里面的bootloader源码以及相关的pdf都是针对IAR 4.--版本而言的,我用的是IAR V5.3,当资料里讲到 配置连接文件 一节时,我就感觉相当的迷茫,因为对于IAR V5.3,连接文件是不支持4.--版本的.xcl文件的。.xcl和.icf都是告诉编译器单片机内存怎么分配的,全局变量放在哪里,局部变量放在哪里等等。 对于使用了IAR 5.--版本连编写程序的用户
[单片机]
8位MCU TM56F1552在电陶炉的应用方案,集成低噪声OPA
随着人们生活水平的不断提高,消费者对厨房电器的要求越来越高,对电器的环保节能特性,安全性,灵活性等都有很高的需求,电陶炉由于其加热效率高且可以持续加热,无辐射,适用性高等特点很好的满足了目前消费者的需要。 为了满足市场上对于电陶炉产品的需求,本文介绍一种成熟的电陶炉产品整体解决方案,方案由AC-DC电源芯片与8位MCU主控两部分组成,MCU内置触摸模块,LED/LCD显示驱动模块,多路PWM输出,带基准电压源的ADC以及EEPROM存储器等模块。其中主控TM56F1552芯片内集成了低噪声OPA,CMP,LDO,CTK,可以减少产品零件数目及降低成本。 方案中TM56F1552是一款8位内置OPA,外围电路简单,可以节省B
[嵌入式]
8位<font color='red'>MCU</font> TM56F1552在电陶炉的应用方案,集成低噪声OPA
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved