单片机的基本概念总结

发布时间:2022-09-20 10:59
作者:Ameya360
来源:网络
阅读量:3009

    单片机执行指令

    我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令。

单片机的基本概念总结

    那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?

    这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。

    为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们使用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。

    单片机数学运算的本质和物理现象

    我们知道,计算机可以进行数学运算,这令我们非常难以理解,它们只是一些电子元器件,怎么可以进行数学运算呢?

    我们人类做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算最后写出结果,运算的原材料是37和45,结果是82都是写在纸上的,计算机中又是放在什么地方呢?

    为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用‘0’和‘1’来代替这两种状态:规定亮为‘1’、不亮为‘0’。

    现在放上三盏灯,一共有几种状态呢?我们列表来看一下:000 / 001 / 010 / 011 / 100 / 101 / 110 / 111。我们来看,这个000 / 001 / 101 不就是我们学过的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一定的顺序排好后,灯的亮和灭就代表了数字了。

    让我们再抽象一步,灯为什么会亮呢?是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。

    单片机数位的含义

    通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1,实际上这就是一个二进制位。

    因此我们就把一根线称之为一“位”,用BIT表示。

    单片机字节的含义

    一根线可以表示0和1,两根线可以表达00 / 01 / 10 / 11四种状态,也就是可以表达0~3,而三根线可以表达0~7,

    计算机中通常用8根线放在一起,同时计数,就可以表示0~255一共256种状态。

    这8根线或者8位就称之为一个字节(BYTE)。

    单片机存储器的构造

    存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了。

    一个存储器就像一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉。

    至于电荷在小格子里是怎样存储的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就像是水,那就好理解了。

    存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。

    有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其他小格子里的电荷给放掉就行了。

    可是问题出来了,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉。

    这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的。因此,要在结构上稍作变化。

    需要在每个单元上有个控制线,想要把数据放进哪个单元,就把一个信号给这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了。

    而其他单元控制线上没有信号,所以开关不打开,不会受到影响。

    这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了。同样,如果要从某个单元中取数据,也只要打开相应的控制开关就行了。

    单片机存储器的译码

    那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?

    事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想办法减少线的数量。

    有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表8种,256种状态又需要几根线代表?

    8根线,所以65536种状态我们只需要16根线就可以代表了。

    单片机存储器的选片概念

    至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?

    它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。

    这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就有问题出现了:

    比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?怎样分辨?

    办法很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。

    平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。

    这组开关由三根引线选择:读控制端、写控制端和片选端。

    要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。

    如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。

    读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。

    那么,不同时选中两片芯片呢?

    只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。

    单片机的总线概念

    从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的。

    所以我们称之为数据总线,总线英文名为BUS,即公交车道,谁也可以走。而十六根地址线也是连在一起的,称之为地址总线。

(备注:文章来源于网络,信息仅供参考,不代表本网站观点,如有侵权请联系删除!)

在线留言询价

相关阅读
单片机常用的伪指令有哪几条
  在单片机编程过程中,除了基本的机器指令外,还有一种重要的辅助指令——伪指令。伪指令并不是CPU直接执行的指令,而是为汇编程序员提供便捷的编程辅助指令,它们在汇编阶段起作用,帮助定义数据、分配存储空间、控制程序结构等。下述是一些单片机中常用的几条伪指令及其作用。  一、什么是伪指令?  伪指令是汇编语言中的一种特殊指令,由汇编器识别和处理,但不会生成对应的机器码。它们主要用于组织代码、定义数据、管理存储空间等,简化程序设计,提高代码可读性和维护性。  二、单片机常用的伪指令列表  以下是单片机编程中常见的一些伪指令:  1. ORG(起始汇编伪指令)  功能:指定程序或数据块在程序存储器中的起始地址。例如ORG 2000H表示后续代码从2000H地址开始存放。  2. END(结束汇编伪指令)  功能:标记源程序结束,后续内容不再被汇编处理。  3. EQU(赋值伪指令)  功能:将常数、地址或表达式赋给符号名,需先定义后使用。例如HOUR EQU 30H将30H地址定义为符号HOUR。  4. DATA(数据地址赋值伪指令)  功能:与EQU类似,但允许后定义先使用,且不支持汇编符号赋值。例如RESULT DATA 60H。  5. DB(定义字节伪指令)  功能:在程序存储器中定义字节数据(8位),如DB 12H, 'A'。  6. DW(定义字伪指令)  功能:定义16位字数据,高字节在前低字节在后。例如DW 1234H。  7. DS(保留存储空间伪指令)  功能:预留指定数量的字节单元。如DS 4H保留4字节空间。  8. BIT(位地址赋值伪指令)  功能:将位地址赋给符号名,如LED BIT P1.0。  三、伪指令的作用总结  代码组织:通过ORG调整程序和数据起始地址。  数据定义:DB、DW定义数据和常量。  符号管理:EQU为常量命名,提升代码易懂性。  内存分配:DS分配未初始化变量空间。  程序标识:END明确定义汇编结束位置。  伪指令在单片机汇编过程中起着不可替代的辅助作用,虽然它们并不直接生成机器码,却为代码结构清晰、调试和维护提供了极大便利。
2025-09-29 17:08 阅读量:299
分析一个经典的单片机供电电路
单片机的烧写方式
  单片机的烧写,指的是将编译好的程序或固件文件加载到单片机的内部存储器(如Flash存储器)中的过程。这个过程通常通过专门的编程器、调试器或开发工具完成。烧写的目的是将用户编写的程序转换成可执行的二进制数据,然后将这些数据写入到单片机的存储器中,以便单片机在运行时能够按照程序逻辑执行相应的任务。  1.单片机的烧写方式有多种  1.1 ISP烧写(In-System Programming):ISP烧写是一种在单片机系统中直接进行烧写的方式。通常,单片机具有专门的引脚用于连接编程器,如SPI、I2C或JTAG接口。通过连接编程器和单片机,可以使用相应的烧写软件将程序下载到单片机中。这种方式适用于已经集成到电路板中的单片机。  1.2 ICSP烧写(In-Circuit Serial Programming):ICSP烧写也是一种在单片机系统中进行烧写的方式。它使用编程器通过单片机的ICSP接口进行连接。ICSP接口通常由6个引脚组成,包括电源、地、数据线和时钟线。通过连接编程器和单片机的ICSP接口,可以使用相应的烧写软件将程序下载到单片机中。这种方式适用于已经集成到电路板中的单片机。  1.3 并行烧写:并行烧写是一种通过并行接口进行烧写的方式。这种方式需要使用专门的并行编程器,通过并行接口将程序下载到单片机中。并行烧写速度较快,但由于现代单片机很少具备并行接口,因此这种方式的应用范围较窄。  1.4 Bootloader烧写:一些单片机具有内置的Bootloader,它是一段特殊的程序,可以通过串口或其他通信接口进行烧写。通过连接电脑和单片机的串口,使用相应的烧写软件将程序下载到单片机中。这种方式适用于没有集成编程接口的单片机,但需要在初始阶段加载Bootloader。  需要注意的是,每个单片机的烧写方式可能会有所不同,具体的烧写方法和工具取决于单片机型号和制造商。在进行烧写之前,应仔细阅读单片机的数据手册和相关文档,以了解正确的烧写流程和所需的硬件和软件工具。  2.确保烧写的稳定性和准确性,建议在烧写过程中遵循以下几点建议  确保电源稳定,并使用合适的电源电压。  正确连接编程器和单片机的引脚,避免接触不良或接错。  使用可靠的烧写软件,并确保软件与单片机兼容。  避免在烧写过程中断电或干扰。  在进行任何烧写操作之前,请备份重要的程序和数据,以防止意外丢失。
2024-05-13 14:19 阅读量:959
嵌入式与单片机的关系和区别
  嵌入式系统和单片机技术广泛应用于各类电子设备、工业控制、汽车行业以及智能家居等领域。本文将探讨嵌入式系统与单片机之间的关系和区别。  1.嵌入式系统  特点  特定功能:设计用于执行特定任务或功能。  稳定性:通常运行实时操作系统,保证系统稳定性。  紧凑性:通常集成处理器、存储器、输入输出设备等在一起。  低功耗:优化功耗以适应长时间运行。  应用  消费电子:智能手机、数码相机等。  汽车电子:引擎控制、车载娱乐系统等。  工业控制:自动化生产线、PLC等。  2.单片机  特点  集成度高:整合CPU、存储器和外围设备在一块芯片上。  低成本:相对于传统计算机系统较为廉价。  实时性:可用于需要即时响应的应用。  易编程:采用汇编语言或高级语言进行程序开发。  3.嵌入式系统与单片机的关系  嵌入式系统包含单片机:许多嵌入式系统使用单片机作为核心处理器。  单片机是嵌入式系统的一部分:单片机作为嵌入式系统的核心,负责控制和管理外围设备。  4.嵌入式系统与单片机的区别  硬件复杂度:  嵌入式系统:通常由多个硬件组件组成,如处理器、存储器、IO设备等。  单片机:将所有这些组件集成在一个单独的芯片中。  软件复杂度:  嵌入式系统:通常有更大的软件系统,运行操作系统并支持多种应用。  单片机:主要专注于单一应用,软件较为简单。  灵活性:  嵌入式系统:更灵活,可根据需求扩展硬件和软件功能。  单片机:功能相对固定,改变功能需要重新设计硬件。  5.嵌入式系统与单片机应用选择  选择嵌入式系统:需要多样化功能、互联网连接和复杂算法的场景。  选择单片机:针对特定任务、资源有限、成本敏感的项目。
2024-03-07 11:07 阅读量:2180
  • 一周热料
  • 紧缺物料秒杀
型号 品牌 询价
TL431ACLPR Texas Instruments
RB751G-40T2R ROHM Semiconductor
MC33074DR2G onsemi
BD71847AMWV-E2 ROHM Semiconductor
CDZVT2R20B ROHM Semiconductor
型号 品牌 抢购
ESR03EZPJ151 ROHM Semiconductor
BU33JA2MNVX-CTL ROHM Semiconductor
BP3621 ROHM Semiconductor
TPS63050YFFR Texas Instruments
STM32F429IGT6 STMicroelectronics
IPZ40N04S5L4R8ATMA1 Infineon Technologies
热门标签
ROHM
Aavid
Averlogic
开发板
SUSUMU
NXP
PCB
传感器
半导体
相关百科
关于我们
AMEYA360微信服务号 AMEYA360微信服务号
AMEYA360商城(www.ameya360.com)上线于2011年,现 有超过3500家优质供应商,收录600万种产品型号数据,100 多万种元器件库存可供选购,产品覆盖MCU+存储器+电源芯 片+IGBT+MOS管+运放+射频蓝牙+传感器+电阻电容电感+ 连接器等多个领域,平台主营业务涵盖电子元器件现货销售、 BOM配单及提供产品配套资料等,为广大客户提供一站式购 销服务。

请输入下方图片中的验证码:

验证码