单片机应用编程技巧

单片机应用编程技巧,在车载DVD系统中,如何设计电子防震系统,如何进行编程可以减少程序的bug,在demo板上采样电压时,不稳定,采样结果有波动,如何消除,学习ARM及嵌入式系统是否比学习其它一般单片机更有使用前景?对于一个初学者应当具备哪些相关知识?C 语言和汇编语言在开发单片机时各有哪些优缺点

应用介绍

1.C 语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是接近机器码 的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的 CPU, 其汇编语言可能有所差异,所以不易移植。  C 语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使 用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。  对于目前普遍使用的 RISC 架构的 8bit MCU 来说,其内部 ROM、RAM、 STACK 等资源都有限,如果使用 C 语言编写,一条 C 语言指令编译后,会变成 很多条机器码,很容易出现 ROM 空间不够、堆栈溢出等问题。而且一些单片机 厂家也不一定能提供 C 编译器。而汇编语言,一条指令就对应一个机器码,每 一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起 来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。  如果对单片机 C 语言有兴趣,HOLTEK 的单片机就有提供 C 编译器

2.C 或汇编语言可以用于单片机,C++能吗? 答:在单片机开发中,主要是汇编和 C,没有用 C++的。 

 

3.搞单片机开发,一定要会 C 吗?  答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是接近机器码 的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的 CPU, 其汇编语言可能有所差异,所以不易移植。  对于目前普遍使用的 RISC 架构的 8bit MCU 来说,其内部 ROM、RAM、 STACK 等资源都有限,如果使用 C 语言编写,一条 C 语言指令编译后,会变成 很多条机器码,很容易出现 ROM 空间不够、堆栈溢出等问题。而且一些单片机 厂家也不一定能提供 C 编译器。而汇编语言,一条指令就对应一个机器码,每 一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起 来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较 好。  而 C 语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并 具备汇编语言的功能。C 语言有功能丰富的库函数、运算速度快、编译效率高、 有良好的可移植性,而且可以直接实现对系统硬件的控制。C 语言是一种结构化 程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技 术。此外,C 语言程序具有完善的模块程序结构,从而为软件开发中采用模块化 程序设计方法提供了有力的保障。因此,使用 C 语言进行程序设计已成为软件 开发的一个主流。用 C 语言来编写目标系统软件,会大大缩短开发周期,且明

显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的 系统。  综上所述,用 C 语言进行单片机程序设计是单片机开发与应用的必然趋势。 所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员好 能够掌握基本的 C 语言编程。 

 

4.当开发一个较复杂而又开发时间短的项目时,用 C 还是用汇编开发好? 答:对于复杂而开发时间紧的项目时,可以采用 C 语言,但前提是要求对该 MCU 系统的 C 语言和 C 编译器非常熟悉,特别要注意该 C 编译系统所能支持的数据 类型和算法。虽然 C 语言是普遍的一种高级语言,但不同的 MCU 厂家其 C 语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些 特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。 

 

5.在教学中要用到 8088 和 196 芯片单片机教材,请问那里可以找到关于这方面 的书或资料? 答:有关这方面的教材,大学里常用的一本是《IBM-PC 汇编语言程序设计》清 华大学出版社出版的,在网上以及书店都是可以找到的,另外网上还可以搜索到 很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬 等编著 )和 《16/32 位微机原理、汇编语言及接口技术》(作者: 钟晓捷 陈涛 ,机械工业 出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。 

 

6.初学者到底是应该先学 C 还是汇编? 答:对于单片机的初学者来说,应该从汇编学起。因为汇编语言是接近机器码 的一种语言,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基 础。 

 

7.我是一名武汉大学电子科技大 3 的学生,学了电子线路、数字逻辑、汇编和 接口、C 语言,但是总是感觉很迷茫,觉好象什幺都不会。怎幺办? 答:大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相脱 节,这是国内大学教育系统的通病,不过对于学生来说切不可好高骛远。一般从 大三会开始接触到一些专业课程,电子相关专业会开设相关的单片机应用课程并 且会有简单的实验项目,那么要充分把握实验课的机会,多多地实际上机操作练 习。平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计 方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借 此机会 2--3 个人合作做一个完整系统,会更有帮助。到了大四毕业设计阶段, 也可以选择相关的课题作些实际案例增长经验。做什么事情都有个经验的积累过 程,循序渐进。 

 

8.请问作为学生,如何学好单片机? 答:学习好单片机,主要的是实践,在实践中增长经验。在校学生的话,实践 机会的确会比较少,但是有机会的话,可以毕业实习选择相关的课题,这样就可 以接触到实际的项目。而且如果单片机微机原理是一门主课的话,相信学校会安 排比较多的实践上机机会。有能力的话,可以找一些相关兼职工作做做,会更有 帮助。而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完

美,平时也要注意硬件知识的积累,多上上电子论坛网站,买一些相关杂志。可 能的话,可以到电子市场去买一些小零件,自己搭一个小系统让它工作起来。 HOTLEK的单片机是RISC结构的8位单片机,它可以广泛应用在家用电器、 安全系统、掌上游戏等方面。大概来说可以分成 I/O 型单片机、LCD 型单片机、 A/D 型单片机、A/D with LCD 型单片机等等

9.如何才能才为单片机的高手啊?

答:要成为单片机高手,应该多实践,时常关注单片机的发展趋势;经常上一些相关网站,从那里可以找到许多有用的资料。

10. 女性是否适合单片机软件编程这个行业?

答:要根据自己的兴趣,配合自己对软件编程的耐性,男女皆适合这个行业。


12. 8位机还能延续多久!

答:以现在MCU产品主力还是在8位领域,主要应用于汽车应用、消费性电子、电脑及PC周边、电信与通讯、办公室自动化、工业控制等六大市场,其中车用市场多在欧、美地区,而亚太地区则以消费性电子为主, 并以量大低单价为产品主流,目前16位MCU与8位产品,还有相当幅度的价差,新的应用领域也仍在开发,业界预计,至少在2005年前8位的MCU仍是MCU产品的主流。

13. 学习ARM及嵌入式系统是否比学习其它一般单片机更有使用前景?对于一个初学者应当具备哪些相关知识?

答:一般在8位单片机与ARM方面的嵌入式系统是有层次上的差别,ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。而8位单片机因架构简单,硬件资源相对较少,适用于一般的工业控制、消费性家电等等。对于一个单片机方面的软件编程初学者,应以HOLTEK系列或8051等8位单片机来做入门练习。而初学者应当具备软件编程相关知识,单片机一般软件编程是以汇编语言为主,各家有各家的语法,但大都以RISC的MCU架构为主,其中 RISC (Reduced Instruction Set Computer) 代表MCU的所有指令。都是利用一些简单的指令组成的,简单的指令代表 MCU 的线路可以尽量做到最佳化,而提高执行速率。另外初学者要具备单片机I/O接口的应用知识,这在于周边应用电路及各种元器件的使用,须配合自己所学的电子学及电路学等。

14. 符合44PIN的80系列8位单片机的MCU有哪些?

答:符合44PIN的80系列8位单片机有Z8674312FSC、Z86E2112FSC、Z86E2116FSC。

15. 请介绍一下MCU的测试方法。

答:MCU从生产出来到封装出货的每个不同的阶段会有不同的测试方法,其中主要会有两种:中测和成测。

所谓中测即是WAFER的测试,它会包含产品的功能验证及AC、DC的测试。项目相当繁多,以HOLTEK产品为例最主要的几项如下:

① 接续性测试:检测每一根I/OPIN内接的保护用二极管是否功能无误。

② 功能测试:以产品设计者所提供测试资料(TEST PATTERN)灌入IC,检查其结果是否与当时SIMULATION时状态一样。

③ STANDBY电流测试:测量IC处于HALT模式时即每一个接点(PAD)在1态0态或Z态保持不变时的漏电流是否符合最低之规格。

④ 耗电测试:整颗IC的静态耗电与动态耗电。

⑤ 输入电压测试:测量每个输入接脚的输入电压反应特性。

⑥ 输出电压测试:测量每个输出接脚的输出电压位准。

⑦ 相关频率特性(AC)测试,也是通过外灌一定频率,从I/O口来看输出是否与之匹配。

⑧ 为了保证IC生产的长期且稳定品质,还会做产品的可靠性测试,这些测试包括ESD测试,LATCH UP测试,温度循环测试,高温贮存测试,湿度贮存测试等。

成测则是产品封装好后的测试,即PACKAGE测试。即是所有通过中测的产品封装后的测试,方法主要是机台自动测试,但测试项目仍与WAFER TEST相同。PACKAGE TEST的目的是在确定IC在封装过程中是否有任何损坏。

16. 能否利用单片来检测手机电池的充放电时间及充放电时的电压电流变化,并利用一个I/O端口使检测结果在电脑上显示出来?

答:目前市场上的各类智能充电器,大部分都采用MCU进行充电电流和电压的控制。至于要在电脑上显示,好象并不实用,可能只有在一些专门的电池检测仪器中才会用到;对于一般的手机用户来说,谁会在充电时还需要用一台电脑来做显示呢?要实现单片机与电脑的连接,最简单的方式就是采用串口通讯,但需要加一颗RS-232芯片。

17. 在ARM编程中又应当如何?

答:就以嵌入式系统观念为例,一般嵌入式处理器可以分为三类:嵌入式微处理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。

嵌入式微处理器就是和通用计算机的微处理器对应的CPU。在应用中,一般是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式相关的功能即可,这样可以满足嵌入式系统体积小和功耗低的要求。目前的嵌入式处理器主要包括:PowerPC、Motorola 68000、ARM系列等等。

嵌入式微控制器又称为单片机,它将CPU、存储器(少量的RAM、ROM或两者都有)和其它接口I/O封装在同一片集成电路里。常见的有HOLTEK MCU

系列、Microchip MCU系列及8051等。

嵌入式DSP专门用来处理对离散时间信号进行极快的处理计算,提高编译效率和执行速度。在数字滤波、FFT(Fast Fourier Transform)、频谱分析、图像处理的分析等领域,DSP正在大量进入嵌入式市场。

18. MCU在射频控制时,MCU的时钟(晶振)、数据线会辐射基频或基频的倍频,被低噪放LNA放大后进入混频,出现带内的Spur,无法滤除。除了用layout、选择低辐射MCU的方法可以减少一些以外,还有什幺别的方法?

答:在设计高频电路用电路板有许多注意事项,尤其是GHz等级的高频电路,更需要注意各电子组件pad与印刷pattern的长度对电路特性所造成的影响。最近几年高频电路与数位电路共享相同电路板,构成所谓的混载电路系统似乎有增加的趋势,类似如此的设计经常会造成数位电路动作时,高频电路却发生动作不稳定等现象,其中原因之一是数位电路产生的噪讯,影响高频电路正常动作所致。为了避免上述问题除了设法分割两电路block之外,设计电路板之前充分检讨设计构想,才是根本应有的手法,基本上设计高频电路用电路板必需掌握下列三大原则:

① 高质感。

② 不可取巧。

③ 不可仓促抢时间。

以下是设计高频电路板的一些建议:

① 印刷pattern的长度会影响电路特性。尤其是传输速度为GHz高速数位电路的传输线路,通常会使用strip line,同时藉由调整配线长度补正传输延迟时间,其实这也意味着电子组件的设置位置对电路特性具有绝对性的影响。

② Ground作大better。铜箔面整体设置ground层,而连接via的better ground则是高频电路板与高速数位电路板共同的特征,此外高频电路板最忌讳使用幅宽细窄的印刷pattern描绘ground。

③ 电子组件的ground端子,以最短的长度与电路板的ground连接。具体方法是在电子组件的ground端子pad附近设置via,使电子组件能以最短的长度与电路板的ground连接。

④ 信号线作短配线设计。不可任意加大配线长度,尽量缩短配线长度。

⑤ 减少电路之间的结合。尤其是filter与amplifier输出入之间作电路分割非常重要,它相当于audio电路的cross talk对策。

⑥ MCU回路Layout考量:震荡电路仅可能接近IC震荡脚位;震荡电路与VDD & VSS保持足够的距离;震荡频率大于1MHz时不需加 osc1 & osc2 电容;电源与地间要最短位置并尽量拉等宽与等距的线,于节点位置加上104/103/102等陶瓷电容。

19. Intel系列的96单片机80c196KB开发系统时,都有那些注意事项?

答:一个即时系统的软体由即时操作系统加上应用程序构成。应用程序与作业系统的接口通过系统调用来实现。用80C196KB作业系统的MCU,只能用内部RAM作为TCB和所有系统记忆体(含各种控制表)以及各个任务的工作和资料单元。因此一定要注意以下几点:(1)对各个任务分配各自的堆迭区,该堆迭区

既作为任务的工作单元,也作为任务控制块的保护单元。(2)系统的任务控制块只存放各任务的堆迭指标,而任务的状态均存放于任务椎栈中。在一个任务退出运行时,通过中断把它的状态进栈,然后把它的堆迭指标保存于系统的TCB中;再根据优先取出优先顺序最高的已就绪任务的堆迭指标SP映象值送入SP中;最后执行中断返回指令转去执行新任务。(3)各任务的资料和工作单元尽量用堆迭实现,这样可以允许各任务使用同一个子程序。使用堆迭实现参数传递并作为工作单元,而不使用绝对地址的RAM,可实现可重入子程序。该子程序既可为各个任务所调用,也可实现递回调用。

20. 在demo板上采样电压时,不稳定,采样结果有波动,如何消除?

答:①一般来说,仿真器都是工作在一个稳压的环境(通常为5V)。如果用仿真器的A/D时,要注意其A/D参考电压是由仿真器内部给出,还是需要外部提供。

②A/D转换需要一个连续的时钟周期,所以在仿真时不能用单步调试的方法,否则会造成A/D采样值不准。

③至于A/D采样不稳定,可以在A/D输入口加一电容,起到滤波作用;在软件处理时采用中值滤波的方法。

21. 在车载DVD系统中,如何设计电子防震系统?

答:在车载DVD系统,最好选择高档DVD机,因为高档DVD机都采用电子防震系统(ADVANCEDESP),当记忆缓冲区内的读数降低,先进的电子防震设计会以双速读数系统,做出比正常速度快两倍的读数速率,以减低噪声,即使连续震荡仍可避免跳线情况出现,现在就说说什幺叫电子防震。简单地说:电子防震就是一个信号的储存--释放过程,首先CD要先把信号进行提前读取,也就是我们见到机子的加速,再把信号储存在RAM中,而我们在开防震的时候所听到的就是经过RAM的声音,这样就是它的过程。当没有防震时是由于信号是1比1读取的,所以当受到冲击后,就会出现跳音。而当开了防震时,机子受到冲击后,由RAM释放出来的声音使音乐不停地播放,而与此同时,光头迅速进行复位检索,当检索到信号后立即补充,所以不会出现跳音。大概的情况就是这样。但是这样还没有满足用家的要求,由于这种的方法带来的时间短,通常只有3秒,所以跳音的机会还是蛮高,如果增大RAM又带来造价的增高因为RAM这东西价格较贵,尤其是质量好的。

22. 在电子防震技术中,有那些IC或器件可供选择?

答:在电子防震技术中,最重要的技术之一要数是RAM技术,而一直以来都是因为它的成本问题,所以防震时间都一直不能增加,也就是说RAM本身就有限制,RAM的容量越大,造价就越高。而许多厂家就如何在RAM的限制里得到最大限度的记忆时间展开了开发研究。

23. 如何进行编程可以减少程序的bug?

答:在此提供一些建议,因系统中实际运行的参数都是有范围的。系统运行中要考虑的超范围管理参数有:

物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。

文件列表(部分)

名称 大小 修改日期
单片机应用编程技巧100问 .pdf315.05 KB2019-09-03

立即下载

相关下载

[这样的嵌入式经验,没十年,你悟的出来吗?] 嵌入式行业需要什么样的技术人才?仔细观察各种招聘的岗位要求吧,无非是两方面。
[用单片机实现温度远程显示资料] 此文档是用单片机实现温度远程显示资料。 文档介绍了用AT89S8252单片机的串行接口与智能温度巡回检测仪(XJ-08S)通过RS—485总线相互通讯实现热水温度远程显示的一种低成本解决方案,内容涉及RS—485总线通讯、单片机驱动数码管显示、数据转换以及键盘处理软硬件设计等内容。
[基于GSM短信模块的家庭防盗报警系统论文资料] 此文档是基于GSM短信模块的家庭防盗报警系统论文资料。 文档的系统主要由单片机和GSM短信模块组成,借助最可靠、最成熟的GSM移动网络,以最直观的中文短消息或电话形式,直接把报警地点的情况反映到您的手机屏幕上。
[基于单片机的简易逻辑分析仪设计论文资料] 此文档基于单片机的简易逻辑分析仪设计论文资料。
[多功能出租车计价器设计论文资料] 此文档是多功能出租车计价器设计论文资料。 文档讲解了用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。
[单片机C语言程序设计实训100例——基于8051+Proteus仿真] 此文档是单片机C语言程序设计实训100例——基于8051+Proteus仿真。 文档中包括:基础部分、硬件应用、综合设计、程序、基于8051+PROTEUS仿真100实例。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部