90%的单片机初学者,都会遇到的10个问题

发布者:blazings最新更新时间:2022-12-14 来源: zhihu关键字:单片机  初学者  10个问题 手机看文章 扫描二维码
随时随地手机看文章

01、C语言和汇编语言在开发单片机时各有哪些优缺点?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少的单片机开发中,还是建议采用汇编语言比较好。



02、C或汇编语言可以用于单片机,C++能吗?

在单片机开发中,主要是汇编和C,没有用C++的。

03、搞单片机开发,一定要会C吗?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。

综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。

04、当开发一个较复杂而又开发时间短的项目时,用C还是用汇编开发好?

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

05、8088和196芯片单片机教材,请问哪里可以找到?

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

06、初学者到底是应该先学C还是汇编?

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

07、大三生,学了电子线路、数字逻辑、汇编和接口、C语言,但总是感觉很迷茫,觉好像什么都不会,怎么办?

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

08、作为学生,如何学好单片机?

学习好单片机,最主要的是实践,在实践中增长经验。在校学生的话,实践机会的确会比较少,但是有机会的话,可以毕业实习选择相关的课题,这样就可以接触到实际的项目。而且如果单片机微机原理是一门主课的话,相信学校会安排比较多的实践上机机会。有能力的话,可以找一些相关兼职工作做做,会更有帮助。而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完美,平时也要注意硬件知识的积累,多上上电子论坛网站,买一些相关杂志。

09、如何才能才为单片机的高手?

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

10、8位机还能延续多久?

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


关键字:单片机  初学者  10个问题 引用地址:90%的单片机初学者,都会遇到的10个问题

上一篇:单片机学习笔记,三个步骤教你学
下一篇:童鞋们一起说说单片机编程技术学习方法吧攻略篇

推荐阅读最新更新时间:2024-11-21 16:44

听技术达人细说51 单片机系列
MCS 51 单片机系列 按工艺划分: ◆ HMOS 工艺产品:如 8031 、 8051 、 8751 等; ◆ HCMOS 工艺产品:如 80C31 、 80C51 、 87C51 等;按 ROM 的类型划分: ◆ ROM 型产品、 ◆ PROM 型产品、 8051 ◆ EPROM 型产品、 87C51 、 87C52 ◆ Flash 型产品: AT89C51 、 AT89C52 (二) MCS 51 单片机的内部结构 一、 8051 微处理器 CPU ◆ 1 、运算器 :由算术逻辑单元 ALU、累加器ACC、B寄存器、两个暂存寄存器、程序状态寄存器组成 PSW ; 8 位,可以进行算术云算(加,减,乘,除,
[单片机]
STM32单片机一个定时器输出不同频率PWM波
  在使用STM32单片机输出PWM波形的时候,通常可以直接使用定时器提供的PWM模式。可以通过自动重装载寄存器(TIMx_ARR)来设置定时器的输出频率,然后通过捕获/ 比较寄存器 1(TIMx_CCRx)来设置占空比。一个定时器只有一个自动重装载寄存器(TIMx_ARR),但是有4个通道的捕获/ 比较寄存器 1(TIMx_CCR1、TIMx_CCR2、TIMx_CCR3、TIMx_CCR4)。所以使用一个定时器输出PWM波形的时候,频率是统一调整的,4个通道的频率是相同的,但是占空比每个通道可以独立设置。比较寄存器TIMx_CCR1、TIMx_CCR2、TIMx_CCR3、TIMx_CCR4分别设置4个通道的占空比。   
[单片机]
STM32<font color='red'>单片机</font>一个定时器输出不同频率PWM波
智能家居照明控制无线开关系统设计与实现
  1 系统设计方案   随着电子技术的不断发展, 无线技术在智能化中扮演着越来越重要的角色。本设计是一种能实现远距离照明控制的无线遥控开关系统, 由发射系统和接收系统两部分组成。系统使用无线收发模块构成 射频 发射和接收电路, 发射部分主要由按键编址电路、编码电路和发射模块组成; 接收部分主要由接收模块、单片机控制电路和负载电路组成。   发射系统采用1 节12 V 干电池供电, 接收系统采用3 节1.5 V 干电池供电, 单片机采用5 V 直流 电源 供电,电源系统节能、简便。   2 系统实现   2.1 元件 选取及系统框图   考虑到系统的兼容性、实用性、低成本和节能性, 选用AT89S5
[电源管理]
智能家居照明控制无线开关系统设计与实现
单片机-多分支实验
ORG 0000H //汇编起始地址 NUMB EQU 30H FONT EQU 31H INT: MOV NUMB,#00H; 需要显示数字送到NUMB单元 MOV R2,#04H START: MOV A,NUMB MOV DPTR,#TABADDR RL A // 累加器循环左移 JMP @A+DPTR TABADDR: SJMP DISP0 SJMP DISP1 SJMP DISP2 SJMP DISP3 DISP0: MOV FONT,#0C0H LJMP MJUP
[单片机]
<font color='red'>单片机</font>-多分支实验
MSP430 单片机内指针或结构体赋值为NULL,却有默认值的解决办法
在几天前的一个项目里我用单片机做了一个小的音游系统(暂时还没发出来),在里面遇到了很诡异的事情,首先这是我的音符结构体(就是音游里面能击打的那种音符): typedef struct note note; struct note { int notetype;//1为单键,0为长键 unsigned long create_time;//创建时间,单位为毫秒 unsigned int length;//音符长度,每次判定 unsigned int n_length;//现在音符剩余长度 }; 然后我去网上毛(?)了一个c语言的队列文件,这里也附上链接:https://blog.csdn.net/qq_
[单片机]
MSP430 <font color='red'>单片机</font>内指针或结构体赋值为NULL,却有默认值的解决办法
ST系列STM8S003F3P6单片机芯片介绍
众所周知,意法半导体的stm8s系列主流8位微控制器适于工业、消费类和计算机市场的多种应用,特别是要实现大批量的情况。 基于STM8专有内核,STM8S系列采用ST的130纳米工艺技术和先进内核架构,主频达到24 MHz,处理能力高达20MIPS。嵌入式EEPROM、RC振荡器和全套标准外设为设计者提供了稳定且可靠的解决方案。相关工具链,从经济型探索套件到更复杂的评估套件和第三方工具,为利用STM8S微控制器进行开发提供了极大方便。STM8S系列包括四个产品线,具有不同特性,但是保持了全面兼容性和可升级性,从而减少了未来产品设计变更。 •STM8S003/005/007超值型是入门级产品,具有基本功能。 •STM8S103/10
[单片机]
ST系列STM8S003F3P6<font color='red'>单片机</font>芯片介绍
学习MCS-51单片机需要哪些软件工具
要想学51单片机,先要进行器件选型! 小白:什么?51单片机不是就一种么,还需要选型? MCU起航:呵呵,自从intel在上世纪八十年代将51单片机的内核转让给各个厂家以后,每个厂家都生产了带有自己特色的51单片机。每种厂家的单片机下载软件都是不太一样的。 小白:那么,我们应该如何选择呢? MCU起航:像winbond厂家生产的89C52单片机,下载的时候需要昂贵的下载器,同时配套他们厂家的软件。美国ATMEL公司和STC公司的芯片下载起来非常简单,对于入门的同学来说,是不错的选择。 小白:少废话,具体有哪些? MCU起航:ATMEL厂家的AT89S52,还有STC公司的STC89C52RC系列
[单片机]
瑞萨最新32位MCU基础讲座在电子科技大学开讲
-为中国广大西部地区培养最先进的嵌入式工程师- 2007年4月底,株式会社瑞萨科技开始在位于成都的电子科技大学举办“嵌入式系统及应用”讲座。以前,由瑞萨主办的讲座中所涉及内容大多是基于16位计算的MCU,而在本次讲座中,将使用更高端的以瑞萨32位计算MCU为基础的C语言程序及嵌入式软件进行基础知识学习。具体讲座内容包括:OS知识、SH的体系结构介绍和SH实验板实习。该讲座预计将授课约40个小时,全部课程将于7月结束。本学期参加该讲座的学生共计约 650名,其中包括 400名本科生和 250名研究生。据瑞萨介绍,该讲座在08年以后也按此日程安排每年定期举办。预计今后每年将有近千名学生参加该课程的学习。 电子科技大学是全国重点大学
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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