资讯详情

单片机是怎样执行程序的?

单片机(Micro Control Unit):全称微控单元,简称单片机(MCU),从字面上看,我们可以理解它是一个微型计算机系统。然后我们通过比较来了解为什么它是一个微型计算机系统。

ce895359410c5cf735878d60ddd4f978.png

电脑主板

首先,让我们来看看我们熟悉的电脑主板。有人可能会问,我是来学单片机的。你为什么向我介绍主板?我们在这里用主板做一个类比。我们看了很多东西。据估计,很多人花了很长时间才知道单片机和代码是怎么回事。

计算机主板包括CPU,北桥、南桥;南桥下主要负责这些低速设备USB,PCI,SATA,BIOS等外设。

手机"CPU"

这里CPU之所以加引号,是因为加引号是因为CPU指的是中央处理单元,而我们手机的处理器不仅仅是中央处理功能。有CPU,GPU,5G和WIFI模块,还有人工智能APU;比较主板是否发现了什么共同点。是的,手机处理器将所有这些外设集成到芯片中,事实上,就像最新的一样CPU也朝着这个方向做,现在有很多CPU集成显卡。

有时候我们不能用电脑CPU我只需要控制像手机处理器这样强大的性能和许多功能I/O、串口通信等。将不需要的东西剪掉,加上简单的计算单元,然后提高其可靠性。这就形成了单片机。

单片机内部组成

51单片机也包含CPU(8051内核),SRAM(内存)可怜的1K,闪存(硬盘)存(硬盘)K,然后下载代码基本上使用外围模块ISP,EEPROM,看门狗、复位模块、串口模块、中断模块、基本输入输出I/O模块。

由于单片机主要用于一些对价格敏感的领域,这种单片机有很多种。例如,51是我们常用的单片机。主要应用场合有数码家电(洗衣机、电饭煲、电磁炉、微波炉)、工业现场数据采集传输等,但随着价格优势的下降和易用性,市场逐渐被32台单片机所取代,STM32-51单片机的内部结构要复杂得多,它拥有一些东西,比51更强大;它还拥有51单片机没有的模块,调试功能模块,RTC模块,USB模块,CAN总线模块,ADC,SPI,I2C等等。

单片机是怎么工作的?

让我们举一个例子:我们想住在酒店里。我们通过什么找到你想住的地方,那就是房间号,因为房间号是酒店提前编的。然后我们可以通过唯一的房间号找到房间。

单片机也是一样的,我们所有的外设都是挂在单片机的可以访问的地址上,我们要对单片机进行预先定义地址,不然我们就找不到哪个设备对应那个地址,也就没办法操作。其实单片机地址是我们虚构出来的,为了便于实际使用中的方便而已。

CPU程序是如何执行的?

让我们来看看两个全加器

A = 01B = 1H

B = 11B = 3H

A B = 1 3 = 4 = 100B

2.数字电路是如何加减乘除的?

注:我们在这里不考虑一些特殊情况。我们8位数最多可以表示255,所以我们只考虑值小于255。我们可以找到更专业的资源来学习。

加法运算:

假设我们要做8 13运算:

十进制运算:8 13= 21;

二进制操作:0000 1000 0000 1101 = 00010101;

减法运算:

加法是进位,减法需要考虑借位。小学加减法的经验是这样的,但是计算机不是这样处理的。计算机只有加法,没有减法。 int a = b - c你是怎么得到结果的?首先了解一个概念——补码。

在计算机中,符号数以最高位为符号位,0代表 1代表负号-;其他数字用作数值位,代表数值。 Byte类型的值范围为 -128 ~ 127。其中,表示数值的只有 第一个表示正负。

补码规定,正数和 0的补码是它的原码(这里就不赘述原码和反码的定义了),负数补码是它的正数原码取反再加 1。

例如,求负 -十进制补码:十进制 10的原码(按 8位举例)为 0000 1010,其反码为 1111 0101,取反后再加 1即为其补码1111 0110。因此,负10的补码是 1111 0110。

我不知道你是否发现了任何线索。让我们回到减法计算,a = b - c实际上等同于a = b ( -c )。

情形1,减数>被减数

12 - 5= 0000 1100 1111 1011= (1)0000 0111= 7乘法流程。

·5 * 3 = 0000 0101 * 0000 0011

·第一步:5 5 = 10

·00000 0101 0000 0101 = 0000 1010

·第二步:10 5 = 15

·0000 0101 0000 1010 = 0000 1111

虽然CPU有乘法器,但我们发现实际的最终操作过程是加法和位移操作计算的乘法操作。我们不确定我们编写的代码中的乘法是用乘法器还是转换成加法。有些编译器会优化代码,选择最好的算法来计算结果。

除法运算:

减法可以实现除法,如10 / 等价为10,直到减少小于3 3,减了 3次,那么10 / 结果是3,余数为剩余值1。

事实上,已经提到了乘法器,除法的原理也差不多(这里不说浮点数除法,只说整数除法),但是有点复杂。

晶振在单片机中起什么作用?

以上操作,我们都是手动操作的,我们知道数字电路本身不工作,它不能工作,否则电路会混乱,它必须依靠其他电路产生的高低电平驱动它工作,我们高低电平作为脉冲,单片机也是数字电路,它是如何工作的?我们必须有一个能量不断产生脉冲的电路,才能继续工作,这就是为什么晶体振动在单片机电路中被称为心脏,我们去除心脏,整个单片机系统也会罢工。

为什么有些单片机没有晶体振动?我们知道,只要单片机工作有连续的脉冲输入,我们在某些情况下对单片机没有准确的时间要求,所以一般使用内部振荡器为单片机提升时钟脉冲也可以确保单片机的正常工作,所以我们在某些地方看不到晶体振动。那是因为它有自己的内部RC振荡电路。

复位:CPU执行程序需要一个初始状态,可以通过复位进入初始状态。这样,单片机就可以以既定的方式知道自己的起始位置。

本期首先在这里分享。想加入小组学习单片机编程的同学可以给我发私信,回复我回复我想开始,和我们一起成长可以表扬关注我们!

标签: 单片机的usb集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台