答:汇编语言是一种符号语言,使用字面助记符来表示机器指令。 它是最接近机器代码的语言。 其主要优点是占用资源少、程序执行效率高。 但不同CPU的汇编语言可能不同,所以移植起来并不容易。
C语言是一种结构化的高级语言。 其优点是可读性好、易于移植。 它是一种常用的计算机语言。 缺点是占用资源较多,执行效率不如汇编。
对于目前常用的RISC架构8位MCU来说,其内部ROM、RAM、STACK等资源是有限的。 如果用C语言编写,一条C语言指令编译后就会变成很多机器代码,很容易就会出现ROM。 空间不足、堆栈溢出等问题。 而且,一些微控制器制造商可能无法提供C编译器。 在汇编语言中,一条指令对应一段机器码。 每一步执行了什么动作一目了然,程序大小和堆栈调用情况易于控制,调试更加方便。 因此,在单片机的开发中,我们还是建议最好使用汇编语言。
如果您对单片机的C语言感兴趣,HOLTEK提供了单片机的C编译器,可以从HOLTEK网站()免费下载使用。
2.微控制器可以使用C或汇编语言,但是C++可以吗?
答:在单片机的开发中,主要使用汇编和C,没有使用C++。
3、从事单片机开发,必须会C语言吗?
答:汇编语言是一种符号语言,使用字面助记符来表示机器指令。 它是最接近机器代码的语言。 其主要优点是占用资源少、程序执行效率高。 但不同CPU的汇编语言可能不同,所以移植起来并不容易。
对于目前常用的RISC架构8位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. 我是武汉大学电子科学与技术专业三年级学生。 我学过电子电路、数字逻辑、汇编与接口、C语言,但总是感到一头雾水,感觉自己什么都不懂。 该怎么办?
答:大学过程是一个理论过程,实践机会相对较少,这往往导致理论与实践脱节。 这是国内大学教育体系的通病,但同学们切不可好高骛远。 一般来说,从大三开始你就会接触到一些专业课程。 电子相关专业将开设相关的单片机应用课程和简单的实验项目。 那你就要充分抓住实验班的机会,多练习一些实际的机器操作。 平时可以看看相关的电子技术杂志网站,看看别人的开发经验、硬件设计方案以及别人的软件设计经验。 如果可能的话,还可以参加一些电子设计竞赛。 借此机会让2-3人一起合作构建一个完整的系统会更有帮助。 在大四的毕业设计阶段,还可以选择相关课题做一些实际案例来积累经验。 无论做什么,都有一个积累经验的过程,一步一步来。
8.作为学生,如何学好单片机?
答:要学好单片机,最重要的是要实践,在实践中积累经验。 对于在校学生来说,实践机会确实会少一些,但是如果有机会的话,可以选择相关课题进行毕业实习,这样可以接触到实际的项目。 而如果把单片机和微型计算机原理作为主课的话,相信学校会安排更多的计算机实际使用的机会。 如果有能力的话,可以找一些相关的兼职工作,会更有帮助。 而且,单片机的开发和应用需要软件和硬件的结合,所以不能仅仅满足于完美的编程技巧。 还要注意硬件知识的积累,多访问电子论坛网站,购买一些相关杂志。 如果可能的话,你可以去电子市场买一些小零件,自己搭建一个小系统,让它发挥作用。
HOTLEK的微控制器是一款RISC结构的8位微控制器。 可广泛应用于家用电器、安防系统、掌上游戏机等。粗略地讲可分为I/O型单片机、LCD型单片机、A/D型单片机、A/D带LCD型单片机等我们已经在HOLTEK网站上发布了这些单片机的中文信息。
HOLTEK各单片机用户手册下载地址:
HOLTEK单片机软/硬件应用实例下载地址:
HOLTEK单片机支持工具下载地址:
9. 如何成为单片机高手?
答:要成为单片机高手,要多练习,时刻关注单片机的发展动态; 您应该经常访问相关网站,在那里您可以找到很多有用的信息。
10、女性适合微控制器软件编程行业吗?
答:这取决于你自己的兴趣和你对软件编程的耐心。 男性和女性都适合这个行业。
11.哪里可以下载盛群的datasheet?
答:如果您对盛群的IC感兴趣,可以从网站下载相应的数据手册。
12.8位电脑能用多久?
答:目前,MCU产品的主要焦点仍然在8位领域,主要应用于六大市场:汽车应用、消费电子、计算机和PC外设、电信和通信、办公自动化和工业控制。 其中,汽车市场多在欧洲、美国地区,而亚太地区则以消费电子为主,数量大、单价低为主流产品。 目前,16位MCU与8位产品存在相当大的价格差异,新的应用领域仍在开发中。 业界预计,至少在2005年,首批8位MCU仍将是MCU产品的主流。
13.学习ARM和嵌入式系统比学习其他通用微控制器更有前途吗? 初学者应该具备哪些相关知识?
答:一般来说,8位单片机和ARM嵌入式系统之间存在级别上的差异。 ARM适用于系统复杂性较高的高级产品,如PDA、手机等应用。 8位单片机结构简单,硬件资源相对较少,因此适合一般工业控制、消费类电器等。对于单片机软件编程的初学者来说,8位单片机如HOLTEK系列或8051应该用作入门练习。 初学者应该具备软件编程的相关知识。 一般来说,微控制器的软件编程主要基于汇编语言。 每个公司都有自己的语法,但大多数都是基于RISC MCU架构。 RISC(精简指令集计算机)代表MCU。 所有指示。 它们都是由一些简单的指令组成的。 简单的指令意味着可以尽可能地优化MCU的电路,以提高执行速度。 另外,初学者必须具备单片机I/O接口的应用知识。 这意味着外围应用电路和各种元件的使用必须与所学的电子和电路相配合。
14.80系列8位单片机中符合44PIN的MCU有哪些?
答:符合44PIN的80系列8位单片机有Z8674312FSC、Z86E2112FSC、Z86E2116FSC。
15、请介绍一下MCU的测试方法。
答:MCU从生产到包装出货的每个不同阶段都会有不同的测试方法。 主要有两种类型:中期测试和最终测试。
所谓中期测试就是WAFER测试,包括产品功能验证和交直流测试。 有相当多的项目。 以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(数字信号处理器)。
嵌入式微处理器是相当于通用计算机的微处理器的CPU。 在应用中,微处理器一般组装在专门设计的电路板上,主板上只保留嵌入式相关的功能。 这样可以满足嵌入式系统小尺寸、低功耗的要求。 目前的嵌入式处理器主要有:PowerPC、Motorola 68000、ARM系列等。
嵌入式微控制器又称微控制器,将CPU、存储器(少量RAM、ROM或两者)和其他接口I/O封装在同一块集成电路中。 常见的有HOLTEK系列MCU、Microchip系列MCU、8051等。
嵌入式DSP专为处理离散时间信号的极快处理和计算而设计,以提高编译效率和执行速度。 在数字滤波、FFT(快速傅里叶变换)、频谱分析、图像处理分析等领域,DSP正在大量进入嵌入式市场。
18、MCU射频控制时,MCU的时钟(晶振)和数据线会辐射基频或基频的倍数,经过低噪声放大器LNA放大后进入混频频率。 带内杂散将会出现并且无法被滤除。 除了采用布局、选择低辐射MCU可以减少一些之外,还有其他方法吗?
答:高频电路,特别是GHz级别的高频电路设计电路板时需要注意的事项有很多。 还需要注意每个电子元件焊盘和印刷图案的长度对电路特性的影响。 近年来,高频电路和数字电路共用同一电路板,形成所谓的混合电路系统。 似乎还有增加的趋势。 这样的设计往往会导致数字电路工作时高频电路工作不稳定。 原因之一是数字电路产生的噪声影响高频电路的正常工作。 为了避免上述问题,除了尽量划分两个电路块之外,根本的方法应该是在设计电路板之前充分审视设计理念。 基本上,高频电路设计电路板时必须掌握以下三个原则:
高品质。
没有任何技巧。
不要急于抢时间。
以下是设计高频电路板的一些建议:
(1)印刷图案的长度会影响电路特性。 特别是对于传输速度为GHz的高速数字电路的传输线,通常采用带状线,通过调整布线长度来校正传输延迟时间。 事实上,这也意味着电子元件的放置位置对电路特性有着绝对的影响。
(2)接地较好。 铜箔表面整体设有接地层,过孔更好的接地是高频电路板和高速数字电路板的共同特点。 另外,高频电路板最忌讳使用窄幅印刷图案来描述地线。
(2)电子元件的接地端子以最短的长度与电路板的地相连。 具体方法是在电子元件的接地端子焊盘附近设置过孔,使电子元件能够以最短的长度与电路板的地相连。
(3) 信号线设计短布线。 不要随意增加接线长度,尽可能缩短接线长度。
(4)减少电路之间的组合。 特别是滤波器和放大器输入输出之间的电路划分非常重要。 相当于音频电路的串扰策略。
(5)MCU电路布局注意事项:振荡电路只能靠近IC振荡引脚; 振荡电路与VDD、VSS之间保持足够的距离; 当振荡频率大于1MHz时,无需添加osc1&osc2电容; 电源与地的距离必须尽量短,尽量画等宽、等距的线,并在节点位置加104/103/102等瓷片电容。
19.Intel系列96单片机80c196KB系统开发时应注意哪些事项?
答:实时系统的软件由实时操作系统和应用程序组成。 应用程序与操作系统之间的接口是通过系统调用来实现的。 使用80C196KB操作系统的MCU只能使用内部RAM作为TCB和所有系统存储器(包括各种控制表)以及每个任务的工作和数据单元。 因此,您必须注意以下几点:
(1) 每个任务都分配有自己的堆栈区,该堆栈区既作为任务的工作单元,又作为任务控制块的保护单元。
(2)系统的任务控制块只存储每个任务的堆栈指示符,任务的状态存储在任务堆栈中。 当任务退出运行时,通过中断将其状态压入堆栈,然后将其堆栈索引保存在系统的TCB中; 然后根据优先级取出优先级最高的就绪任务的堆栈索引SP镜像值,发送至Enter SP; 最后执行中断返回指令,执行新的任务。
(3) 每个任务的数据和工作单元应尽可能堆叠,这允许每个任务使用相同的子程序。 可重入子程序可以通过使用堆栈来实现参数传递并作为工作单元来实现,而不是使用绝对地址 RAM。 该子程序可以被每个任务调用,也可以递归调用。
20. 对演示板上的电压进行采样时,不稳定,采样结果波动。 如何消除呢?
答:一般来说,仿真器工作在稳定的电压环境下(一般为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的限制内最大化存储时间进行了开发研究。
23、如何编程减少程序bug?
答:这里有一些建议,因为系统中的实际运行参数是有一个范围的。 系统运行过程中需要考虑的超范围管理参数有:
物理参数。 这些参数主要是系统的输入参数,包括激励参数、采集处理过程中的运行参数和处理结束时的结果参数。 合理设置这些边界,将超出边界的参数视为异常激励或异常响应进行错误处理。
资源参数。 这些参数主要是系统中电路、器件和功能单元的资源,如存储器容量、存储单元长度、堆叠深度等。 在编程中,资源参数的使用不允许超出范围。
应用参数。 这些应用参数往往用一些微控制器和功能单元的应用情况来表示。 如E2PROM擦写次数和数据存储时间等应用参数限制。
工艺参数。 指系统运行过程中有序变化的参数。
对于以上参数组,程序员必须养成良好的习惯。 在程序的一开始,按照顺序替换掉他喜欢的文本参数对应的列表,然后使用自己定义的文本参数来编写程序。 这样,在修改和维护程序时,只需要在程序的开头进行修改,而不需要修改程序段,比较容易,而且不会出错。
24、有人认为微控制器将会被ARM等系列结构的嵌入式系统所取代。 微控制器的寿命有多长?
答:由于8位单片机和ARM嵌入式系统在功能结构和单价上的差异,应用层面有很大差异。 ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。 8位微控制器架构简单,硬件资源相对较少,因此适用于一般工业控制、消费类电器等。要评估微控制器在不久的将来是否会被ARM取代,必须观察两个因素:
芯片成本
由于ARM工作频率较高,电路较大,所需芯片制造工艺要求0.25U以上,成本较高。 8位单片机工作频率较低,电路较小,所需芯片制造工艺为0.5U,成本较低。
功能定位
ARM的功能比单片机强,但定位不同。 就像现阶段,没有人会用ARM来做一个简单的工业定时交换机。 当然,如果两者的单价相同的话还好,但现实是单价差距巨大。
而未来,随着芯片制造成本不断下降,上述成本差异的影响将会越来越小! 但我估计未来五年,单片机仍然有价格优势,仍然可以生存! 但ARM会精简架构、降低成本、抢占市场吗? 较低的市场? 我觉得不太可能,ARM应该向上发展。 同样,单片机也只能向上发展,比如16位、高功能……等等。 原因是芯片制造工艺进步太快。 压力芯片设计向高集成度发展。
25、用C语言编译单片机时,怎样才能使生成的代码具有与汇编相同的效率?
答:如果你用C语言编程,生成的代码不可能有与汇编1:1相同的效率。
C语言命令要被硬件识别并执行,必须经过编译器的编译。 编译器分为前端、中端、后端。 前端处理用各种计算机语言编写的程序,后端连接处理器的基本指令集。 因此,如果你想在用C语言编程时达到最高的效率,最好对所使用的C编译器有很好的了解。 首先测试一下每个C语言编译器对应的汇编语言语句行数,这样就可以清楚的知道效率。 以后编程时,尽量使用编译效率最高的语句。 这样可以保证用C语言对单片机进行编程时,功能相同但功能不同的C程序编译效率最高。不过,各个C编译器都会有一定的差异。 用于嵌入式系统的优秀C编译器的代码长度和执行时间仅比用汇编语言编写的相同函数长5-20%。