单片机的基本概念总结

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

    单片机执行指令

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

单片机的基本概念总结

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

    这个地方就是单片机内部的只读存储器即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,即公交车道,谁也可以走。而十六根地址线也是连在一起的,称之为地址总线。

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

在线留言询价

相关阅读
分析一个经典的单片机供电电路
单片机的烧写方式
  单片机的烧写,指的是将编译好的程序或固件文件加载到单片机的内部存储器(如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 阅读量:492
嵌入式与单片机的关系和区别
  嵌入式系统和单片机技术广泛应用于各类电子设备、工业控制、汽车行业以及智能家居等领域。本文将探讨嵌入式系统与单片机之间的关系和区别。  1.嵌入式系统  特点  特定功能:设计用于执行特定任务或功能。  稳定性:通常运行实时操作系统,保证系统稳定性。  紧凑性:通常集成处理器、存储器、输入输出设备等在一起。  低功耗:优化功耗以适应长时间运行。  应用  消费电子:智能手机、数码相机等。  汽车电子:引擎控制、车载娱乐系统等。  工业控制:自动化生产线、PLC等。  2.单片机  特点  集成度高:整合CPU、存储器和外围设备在一块芯片上。  低成本:相对于传统计算机系统较为廉价。  实时性:可用于需要即时响应的应用。  易编程:采用汇编语言或高级语言进行程序开发。  3.嵌入式系统与单片机的关系  嵌入式系统包含单片机:许多嵌入式系统使用单片机作为核心处理器。  单片机是嵌入式系统的一部分:单片机作为嵌入式系统的核心,负责控制和管理外围设备。  4.嵌入式系统与单片机的区别  硬件复杂度:  嵌入式系统:通常由多个硬件组件组成,如处理器、存储器、IO设备等。  单片机:将所有这些组件集成在一个单独的芯片中。  软件复杂度:  嵌入式系统:通常有更大的软件系统,运行操作系统并支持多种应用。  单片机:主要专注于单一应用,软件较为简单。  灵活性:  嵌入式系统:更灵活,可根据需求扩展硬件和软件功能。  单片机:功能相对固定,改变功能需要重新设计硬件。  5.嵌入式系统与单片机应用选择  选择嵌入式系统:需要多样化功能、互联网连接和复杂算法的场景。  选择单片机:针对特定任务、资源有限、成本敏感的项目。
2024-03-07 11:07 阅读量:1498
什么是单片机的逻辑运算指令与移位指令
  在单片机的指令集中,逻辑运算指令和移位指令是两类常见而重要的指令类型。它们在单片机编程中扮演着关键角色,用于进行逻辑操作、数据处理和位移操作。本文AMEYA360将介绍单片机中的逻辑运算指令和移位指令,包括其定义、功能以及实际应用。  1.逻辑运算指令  1.1 定义和功能  逻辑运算指令是单片机指令集中用于执行逻辑运算(如与、或、非、异或等)的指令。这些指令可以对寄存器中的数据进行逻辑操作,从而实现数据的比较、筛选和控制流程。逻辑运算指令通常用于判断条件、设置标志位、进行位掩码操作等。  1.2 常见逻辑运算指令  AND指令:按位与操作,两个操作数对应位都为1时结果为1。  OR指令:按位或操作,两个操作数对应位有一个为1时结果为1。  XOR指令:按位异或操作,两个操作数对应位相同为0,不同为1。  NOT指令:取反操作,将操作数的每一位取反。  1.3 实际应用  逻辑运算指令在单片机程序设计中广泛应用,例如用于逻辑判断、状态转换、位操作等。通过合理使用逻辑运算指令,程序员能够高效地实现各种逻辑功能,简化程序结构,提高代码执行效率。  2.移位指令  2.1 定义和功能  移位指令是用于对数据进行位移操作的指令,包括逻辑移位和算术移位。逻辑移位不考虑符号位,直接移动数据位;而算术移位会保持符号位不变。移位指令可用于数据扩展、数据压缩、乘除法优化等操作。  2.2 常见移位指令  左移指令(SHL/LSL):将操作数向左移动指定位数,右侧填充0。  右移指令(SHR/LSR):将操作数向右移动指定位数,左侧填充0。  算术右移指令(ASHR):将操作数向右移动指定位数,保留符号位。  2.3 实际应用  移位指令在单片机编程中具有广泛的应用场景,如数据乘除法运算、图形显示、数据压缩等。通过巧妙地利用移位指令,程序员可以实现高效的数据处理算法,节省存储空间并提高计算速度。  逻辑运算指令和移位指令是单片机指令集中的重要组成部分,用于处理数据、控制流程和优化算法。正确理解和灵活运用这些指令,有助于程序员设计出高效、可靠的单片机应用程序。
2024-02-28 13:20 阅读量:2083
  • 一周热料
  • 紧缺物料秒杀
型号 品牌 询价
RB751G-40T2R ROHM Semiconductor
BD71847AMWV-E2 ROHM Semiconductor
MC33074DR2G onsemi
CDZVT2R20B ROHM Semiconductor
TL431ACLPR Texas Instruments
型号 品牌 抢购
ESR03EZPJ151 ROHM Semiconductor
STM32F429IGT6 STMicroelectronics
BU33JA2MNVX-CTL ROHM Semiconductor
IPZ40N04S5L4R8ATMA1 Infineon Technologies
BP3621 ROHM Semiconductor
TPS63050YFFR Texas Instruments
热门标签
ROHM
Aavid
Averlogic
开发板
SUSUMU
NXP
PCB
传感器
半导体
相关百科
关于我们
AMEYA360微信服务号 AMEYA360微信服务号
AMEYA360商城(www.ameya360.com)上线于2011年,现 有超过3500家优质供应商,收录600万种产品型号数据,100 多万种元器件库存可供选购,产品覆盖MCU+存储器+电源芯 片+IGBT+MOS管+运放+射频蓝牙+传感器+电阻电容电感+ 连接器等多个领域,平台主营业务涵盖电子元器件现货销售、 BOM配单及提供产品配套资料等,为广大客户提供一站式购 销服务。