什么是单片机?单片机是如何构成的?

1.什么是单片机?简单地说,单片机就是一个小计算机系统。2.单片机是如何工作的?3.单片机程序的作用是什么?如何写入单片机?单片机编程器、仿真器、烧写器、下载线各是什么?6.自学单片机必备的硬件设备有哪些?其用途是将代码写入单片机芯片内部。9.单片机程序编写、仿真、调试常用的软件有哪些?

简单地说,微控制器是一个小型计算机系统。为了说明这个问题,我们必须从计算机开始。说到电脑,你可能会马上想到“显示器、鼠标、键盘”,但这不是电脑的核心和钥匙,电脑的核心部分在侧面的机箱里。当你打开机箱时,你可以看到机箱里有主板、硬盘、光驱等。如果你仔细观察主板,你可以看到有一个CPU,一个内存模块,一个BIOS芯片,通常还有一个25针的打印机连接器,所有这些都通过主板上的电缆相互连接。

无论计算机的复杂程度如何,它始终由五个部分组成:运算器、控制器、存储器、输入/输出接口和总线。通常,运算器和控制器被制成一个芯片,即CPU(中央处理器)。在电脑主板上,内存模块和BIOS芯片是内存,25针打印机接口是输出/输出设备,总线设计在主板上,即组件相互连接的线路。

在某些应用程序中,人们不需要计算机来执行非常复杂的计算,但他们希望计算机体积小、可靠且价格低廉。于是人们把计算机的五个部分全部集成到一个芯片里,说一个芯片可以组成一个独立的计算机,这在当时的技术条件下是一件了不起的事情,于是人们用这个特性给它起了个名字,叫做“单片机”。

如果

组成一台计算机所需的五个部件都集成到一个芯片中,芯片应该又大又贵吗?没有。如果要把图1所示主板上的所有元器件集成到一个芯片中,当然是很贵的,可能在技术上是行不通的,但是很多微控制器所需的功能完全没有那么强大,所以很多单片机体积小,价格非常便宜。例如,市面上常见的单片机有8、14、16、18、20、28、40、84等,有的甚至只有6个引脚,如图2所示,Microchip发布的一款6引脚单片机。价格从几元到几十元或几百元不等,有些品种大批量订购时甚至可以低至1元。

刚接触微控制器的人经常想知道:既然他们已经有能力制造功能强大的计算机,为什么还需要生产功能较弱的计算机?其实,功能的强弱并不是决定是否生产的决定性因素,而是市场需求才是关键。例如,用来控制一个电箱的电脑显然不需要使用“奔腾”芯片强大的计算能力,只要做一个非常简单的计算,做一个比较,看看温度是否在控制范围内,然后再做相应的控制。

单片机在人们的生活和工农业生产设备中无处不在,如各种计时装置、自动控制装置等。 学习单片机的爱好者要注意观察事物,找到周围可以使用单片机的地方,并将所学知识应用到实践中。例如,利用单片机技术改造传统机电设备,在特定场合使用单片机代替PLC具有广阔的应用前景;再比如用单片机来控制风扇、抽油烟机、空调等,从而制作出功能更强、用途更广的控制器,也可以尝试一下。

2. 单片机是如何工作的?单片机原理及应用].

单片机的工作过程是“接受指令、分析指令、执行指令”的连续过程。单片机的程序以一条指令的形式存储在程序存储器中,单片机开始工作后,开始从程序存储器的特定位置获取指令,然后单片机内部的控制器对指令进行分析,根据指令要求,进行“取号、 发送数字、算术运算、逻辑运算、跳转“等,这些运算都是在指定的周期内完成的,执行完毕后,将指令带到下一个存储单元,重复刚才的操作(当然,这些动作的具体内容可能与上一个不同),以此类推,直到停电。这里提到的“内存的具体位置”和“指定周期”与单片机的型号有关,下面以51系列单片机为例进行说明。

在51系列单片机中,有一个寄存器叫做PC(即用来存储编号的容器),单片机复位后,这个寄存器中的内容设置为0000H,

单片机内部的控制器总是根据PC寄存器中的值去相应的程序存储单元接受指令,因此,启动后,第一条指令会从0000H单元中取出,分析并执行,同时,PC值也会相应调整,指向下一个要执行的指令的位置, 下一个命令在哪里?对于51单片机来说,一条指令可能占用一个字节、两个字节或三个字节,如果第一条指令是单字节指令,在取完第一条指令后,PC的值就变为0001H,因此,在第一条指令执行后,第二条指令就会从0001H单元中取出执行, 等等。如果程序是按顺序执行的,PC的值总是会增加的,如果程序中有跳转指令,则该指令会影响PC中的值,使PC中的值指向下一个指令将要执行的地址单元。这种跳跃可以是向前的,例如从 0000H 到 0030H,也可以是反向的,即向后,从 200H 到 100H。正是因为指令可以影响PC中的值,程序才能实现“分支”和“循环”等各种功能。那么,执行订单的时间是什么时候呢?对于51单片机来说,指令执行时间有三种可能,单周期、双周期和四周期,无论一条指令需要做多少工作,都必须在规定的时间内完成。

3.MCU程序的作用是什么?怎么写?如何写入微控制器?

MCU的用途

程序就是让MCU“听话”,按照预定的设计完成一系列动作,最终实现特定的功能。例如,单片机用于控制流光,通电后,第一盏灯亮,然后延时一段时间,第二盏灯亮,

然后延时一段时间,第三盏灯亮

对于……,一段时间后第一盏灯亮起,依此类推。这里存在一些问题:第一次亮了多少盏灯,延迟了多少时间,一个周期设置了多少盏不同的灯,……,这决定了流灯的模式和流速,而这些,单片机显然没有自我判断能力,必须依靠人来“分配”任务给它, 并依次按照人们的设计进行。

为了制造”服从“,就要用单片机能理解的语言

发出命令,单片机能理解的语言称为”指令”。51单片机能接受的指令数量有限,51单片机的指令数为111条,而PIC单片机的指令数只有35条。每条指令都完成了一个最基本的动作,为了完成一个特定的功能,人们必须将这些指令排列和组合起来,形成一个指令序列,这就是程序。

指令有两种类型的表示形式:机器语言和汇编语言。以51为例,如果要把P1.0引脚设为低电平,用机器语言就是C2H 90H,把这两个数字放到单片机的程序存储器中,单片机执行后,就可以把P1.0引脚设低;为了使 P1.0 引脚高,它是机器语言中的 D2H 和 90H。至于为什么这两个数字,就不用追究了,这是设计这个芯片的设计工程师规定的,我们不能改变它,我们只能学习它。

C2H,90H是一种指令,显然这样的指令形式很难记住,编程也非常困难,所以人们使用“助记符”而不是这些数字。例如,C2H 和 90H 的助记符是 CLR P1.0,而 D2H 和 90H 的助记符是 SETB P1.0。使用助记符形式的指令编写程序称为“汇编语言源程序”。但是,没有办法将汇编语言源程序直接发送到单片机,以助记指令的形式编写的程序最终会变成:C2H、90H、D2H、90H,并且这种形式的指令可以发送到单片机的程序存储器中。将助记符形式的指令转换为数字形式的指令的过程称为“汇编”。编译方法有两种,一种是“人工编译”,即人们找到以查找表形式编写的编译指令的数字形式,并写下来;另一种是“机器汇编”,即在编写了汇编语言源程序之后,使用计算机软件对这些源程序进行处理,从而得到数字形式的指令序列,这种指令序列通常称为“机器代码”,即机器可以直接执行的代码。

机器组件获得的数字形式的指令序列以扩展名为HEX的文件的形式保存在磁盘上,通常称为HEX文件。获得十六进制文件后,可以将其写入程序内存。要把程序写到芯片上,通常需要一个叫做“编程器”的特殊设备,在电脑上运行随附的编程软件,然后打开这个软件中的HEX文件,把它写到芯片上。随着技术的发展,编程的方式越来越多,但一般的概念是这样的,具体细节将在另一个问题“什么是微控制器程序员”中回答。

4. 8 位、16 位和 32 位微控制器中的“XX 位”指的是什么?

8位、16位、32位是指单片机的“字长”,即一个操作中操作所涉及的数据的长度,这个位指的是二进制位。以 8 位为例,8 位二进制的表达范围为 0000、0000~1111,1111 在十进制系统中为 0~255,即每次操作参与的最大数据量不能超过 255。16位机的字长为16位,其数据表达范围为0~65535,即参与操作的最大数据不能超过65535;32位单片机的字长为32位,其数据表达范围为0~4294967295,即参与运算的最大数据不能超过4294967295。8位、16位、32位与

单片机的性能密切相关,通常32位计算机的性能高于16位计算机

,并且 16 位计算机的性能高于 8 位计算机。为什么会这样?这应该从两个方面来分析。首先,位数不同,计算效率不同。对于一台 8 位机器来说,因为一个运算中的每个数字都不能超过 8 位,即使 100 + 200 = 300 这样的运算不是一次完成的,因为 300 已经超过了可以用 8 位表示的最大范围 (255),因此,要运算这样的公式,就必须编写一个程序, 一步一步地完成操作,最后合成得到正确的结果。如果用一个16位的微控制器进行计算,那么一个操作就足够了,很明显,一步一步完成它所需的时间远大于一步完成它所需的时间。同理,当一个操作的结果或中值大于65535时,16位机不能一次计算,必须逐步实现,而32位机可以一次完成。第二,业务因素。通常算力越高,单片机的性能越强,当然价格越高是可以接受的,随着价格空间的扩大,厂家通常会在这些芯片中提供更多的其他功能,这样芯片的整体性能就有了很大的提高。

在典型的单片机中,80C51系列、PIC系列、AVR系列均为8位单片机;80C196 和 MSP430 系列是 16 位计算机;而目前非常流行的ARM系列,则是一款32位机器。

5. MCU编程器、仿真器、编程器、下载线是什么?有什么用?

微控制器

编程器是一种用于将程序代码写入存储芯片或微控制器内部的工具。另一种方法是使用下载电缆。随着技术的进步,越来越多的MCU芯片开始支持“ISP”功能,即In System Programmer在线可编程技术。通过这项技术,将空白(尚未编程)的芯片直接焊接到印刷电路板上,并且可以使用预先留下的几个引脚对芯片进行编程,而不必取下芯片并将其放在编程器上,因此这为小批量生产带来了极大的便利,也消除了购买昂贵适配器的需要。

6. 自学习MCU必备的硬件设备有哪些?

要学习微控制器,除了计算机之外,您还需要以下一些设备。

(1)实验板

如果您对微控制器一无所知,那么自己制作或购买实验板是更好的选择。通常一些开关、LED指示灯、数码管、各种接口芯片等常用器件都会在实验板上设计,通过这些器件的编程练习,逐步掌握单片机的编程技术。

(2) 模拟器仿真器

的目的是取代电路板上的单片机芯片,仿真器通过串口、USB接口等与PC在线通信,接收PC控制软件发送的指令,以单步、处理单步、

全速运转等,并以单步或进程单步方式执行程序,每次执行程序后,执行结果可反馈给PC的控制软件。因为在对单片机进行编程时,需要明确每条指令执行后会出现什么样的结果,并找出实际运行后的结果是否与设想的结果一致,所以仿真功能在单片机的学习和发展中可以起到非常重要的作用。

(3) 编程器或下载电缆

其目的是在微控制器芯片内编写代码。对于学习者来说,有了模拟器,暂时没有编程器或下载线,因为有了实验板,模拟器就可以做实验了。但是,建议配置一个,这样就可以对单片机开发的各个方面有所了解。

(4)万用表、烙铁等电子生产工具MCU

开发,并不是一个简单的编程,到目前为止,纯粹的“MCU编程员”很少,通常需要开发人员熟悉软件和硬件,因此,这些电子生产工作仍然需要配备。需要注意的是,这里提到的模拟器、实验板、下载线或编程

器都是笼统的概念,并不涉及特定的产品,市场上有一些产品在设计时将部分或全部实验板、仿真功能、下载或编程功能集成到一块板上,形成一套完整的实验系统。

7、我国常用的单片机有哪些?(1)80C51及其兼容系列

1)80C51系列,这是最基本的系列。包括80C31、80C51、87C51、80C32、80C52、87C52等芯片,这些芯片虽然基本不再使用,但它们是后续芯片发展的基础。其中,80C31微控制器芯片上没有ROM,80C51是一次性可写4K PROM,87C51是4K EEPROM,这些芯片的内部RAM为128字节。后三个芯片具有 8K 内部 RAM,后两个芯片具有 8K 字节的片上 ROM。

2) 80C51兼容系列

这些芯片通常在指令级别与 51 系列微控制器兼容,但它们通过许多新功能进行了扩展。主要如下。

STC89系列单片机,其主要特点是:单片机通过串口直接编程;可编程为双速运行;超低功耗;内置看门狗;内部闪存ROM可用作EEPROM,用于断电数据存储。

STC12系列单片机,其主要特点是:单时钟周期,工作频率0~35M,相当于普通80C510~420M;宽电压范围;低功耗;该芯片内置E2PROM功能;内置硬件看门狗;通用I/O端口可设置为四种工作模式,电流可在强上拉模式下“放电”。

菲利普LPC系列的主要特点是:内置RC振荡器,选择RC振荡器时无需外部振荡器;所有端口均具有 20mA LED 驱动能力;工作电压范围广。

C8051F系列的主要特点是:一个机器周期只有一个时钟周期;添加了中断源;有一个内部独立的时钟源或一个外部时钟,在程序运行时可以切换内部和外部时钟。每个 I/O 端口引脚都可以设置为推挽式或开漏输出,C8051F 系列微控制器 I/O 端口最独特的功能是增加了一个数字交叉开关,可用于将内部数字系统资源引导到 P0、P1 和 P2 端口的 I/O 引脚。该系列多款芯片具有ADC、DAC、PCA等功能。

(2) PIC系列PIC单片机的发展思路

不同于51单片机的发展思路,它不搞简单的功能积累,而是从实际出发,重视产品的性能和价格比,依靠多种型号的开发来满足不同层次的应用需求;简化指令使其执行效率大大提高。目前有PIC10、PIC12、PIC16、PIC18系列上百个品种。以PIC16F676芯片为例,该芯片内置1K字FLASH ROM、128字节EEPROM、64字节RAM、8通道10位AD转换器、内置振荡器,精度高达±1%,功耗极低,工作电压范围宽,这样的高性能14引脚芯片,价格不到7元, 而且性价比相当高。

(3) AVR系列

AVR系列单片机是一种增强RISC结构的单片机,其主要特点是:速度快,一机周期只需一个时钟周期;品种丰富,类似PIC系列,依靠开发多种型号,满足不同层次的应用需求;支持ISP、IAP功能,在线编程,方便远程维护;工作范围广,抗干扰能力强。以ATMEGA8芯片为例,该芯片内置8K Flash ROM、512字节EEPROM、1K字节RAM、8通道10位AD、内置RC振荡器。这样一款高性能的28引脚芯片,价格只有7元左右,性价比也相当高。

(4) 其他

其他常用的微控制器包括:ST、EMC、摩托罗拉、三星等。这些单片机有的市场使用量很大,但是我们并不关注它,因为我们介绍的内容主要是针对业余爱好者的,虽然有些芯片功能强大,性价比高,但并不是针对业余爱好者的,小批量的芯片很难买到,仿真器和C编译器等开发工具也非常昂贵, 所以这里就不介绍了,有兴趣的可以在网上搜索一下相关信息。

8、常用单片机的大致价格是多少?

单片机的价格差异很大,从不到1元到几十元,甚至几百元不等。下面就为大家介绍一下常用单片机的价格。

9、单片机程序编写、仿真、调试常用软件有哪些?

不同型号的微控制器需要不同的开发软件。我们以80C51系列、PIC系列和AVR系列为例。

单片机程序的编写不需要任何特殊的软件,只要是文字编辑软件,比如WINDOWS自带的记事本、WORD等,但是这些软件的编写并不方便,有一些比较好的文字编辑器可供选择,比如UltraEdit、PE2等。当然,人们最常使用的东西是使用开发软件自带的编辑器来编写。以80C51系列单片机为例,最流行的软件是Keil软件。Keil软件是一款综合开发工具,内置编辑器、ASM汇编器、C51编译器、调试器等部分。

10. 您能推荐学习MCU的书籍或其他形式的教程吗?

市面上有很多单片机书籍,作为初学者入门,一般建议选择80C51系列,如果你有明确的工作对象,那就另当别论了。

单片机

北京延庆区linux运维工程师单片机设计与开发入门培训

2024-2-8 2:02:35

单片机

深圳信盈达推出嵌入式实训(ARM+Linux)开发工程师班

2024-2-8 3:01:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索