单片机运行原理

目录

一、单片机代码运行的过程实际上就是单片机内部电路的运行。

1.单片机内部的电路是这样组成的:

2.单片机代码运行的流程如下:

二、单片机代码运行过程中内存的分配

1.单片机内存分配,代码运行过程的内存分配、数据存储,栈,堆。


一、单片机代码运行的过程实际上就是单片机内部电路的运行。
1.单片机内部的电路是这样组成的:

单片机的内部电路构成是由晶体管逐步组成的,晶体管会组成以下核心电路.

逻辑门(logic gate)。由晶体管组成的逻辑电路,用于执行基本的逻辑运算,常见的逻辑门包括与门、或门、非门等。通过使用逻辑门,可以实现布尔逻辑运算,如与、或、非等。

多路选择器。多路选择器可以根据控制信号选择多个输入信号的一个输出,它由逻辑门电路组成,并使用控制信号对不同的输入进行选择,多路选择器常用于将不同的输入连接到同一个输出,以实现多路复用。

触发器。触发器是存储元件,用于存储一个比特(1或0),它由门电路和反馈电路组成。触发器可以是RS触发器、D触发器、JK触发器等。不同类型的触发器具有不同的输入和输出特性。

时钟电路。它通常由晶体振荡器和多级放大器(晶体管组成)组成。晶体振荡器中使用了压电晶体和有源器件(如晶体管)形成了一个反馈环路,产生固定频率的振荡信号,而多级放大器则将振荡器的信号放大到单片机工作电压范围内,用于CPU和其他模块的时钟信号。它的作用是为单片机提供稳定的时钟信号,以控制CPU和其他模块的运行。

解码器。作为一个功能强大的逻辑元件,可以将二进制输入信息(如地址码或控制码)转换成相应的输出信号(如特定的控制信号)。解码器也可以使用晶体管作为它的基本电子元件。例如,在3-8解码器中,每个输出端口都与一个反向器组成,其输入端口分别与一个三输入与门的输出端口相连,而该与门的三个输入端口则根据解码器的工作原理连接到输入端口的地址线上,这样当输入信号对应的地址线上出现特定的二进制编码时,就可以在相应的输出端口上获得1的输出。这些与门和反向器都可以由晶体管实现。

寄存器。寄存器是由触发器组成的,每个触发器存储一个比特(1或0),触发器通过串联并联可以构成多位得寄存器,寄存器用于存储和传输数据。为了方便代码操作和存储,寄存器会被分配相应的地址。

逻辑门(如与门、或门、非门)、触发器(如D触发器、JK触发器)、多路复用器、解码器、时钟电路等组成单片机了处理器核心、内存、输入/输出接口和时钟等功能模块的集成电路芯片,代码运行的过程实际上就是通过地址去操作个功能模块电路的过程

2.单片机代码运行的流程如下:

1)编写代码:首先,程序员使用编程语言(如C、C++或汇编语言)编写单片机的代码。代码包括初始化设置、处理逻辑和控制流程等。

2)编译代码:将编写好的代码经过编译器进行编译,生成可执行文件。编译器会将源代码翻译成机器语言指令,以便单片机能够理解和执行

3)烧录程序:将生成的可执行文件通过编程器烧录到单片机的闪存(Flash)或者EEPROM中。烧录是将代码加载到单片机内部存储器中的过程。

4)复位与初始化:当单片机上电或复位时,单片机会执行一段预定义的启动代码。这段代码负责初始化处理器和外设,确保系统处于良好的初始状态。

5)执行代码:单片机按照程序的顺序执行指令。处理器从存储器中读取一条指令,解码并执行它。这些指令可以包括算术和逻辑操作、跳转、输入/输出等。

6)中断处理:单片机可以通过外部信号触发中断。当发生中断时,单片机会停止当前的任务,保存上下文,并跳转到特定的中断处理程序执行相应的操作,执行结束再返回继续运行原来的代码。

7)循环执行:单片机通常会在一个无限循环(主循环)中执行代码,以保持系统的持续运行。在循环中,单片机可以接收输入、执行计算、控制输出等操作

二、单片机代码运行过程中内存的分配
1.单片机内存分配,代码运行过程的内存分配、数据存储,栈,堆。

栈:可以理解成公共区域管理机制,可自动申请和释放内存,里面的变量通常是局部变量

堆:亦可理解为公共区域管理机制,需手动申请和释放内存,如果不手动释放,内存就会一直被占,通常存放的是全局变量,静态变量。

堆栈溢出原因:

①内存没有及时释放

②函数层数太深

③一直回调函数,这个本质上和层数太深差不多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值