单片机工作原理篇

单片机的基本概念

单片机(Microcontroller)是一种集成了处理器(CPU)、内存、输入/输出端口等在一个芯片上的微型计算机。它通常用于控制其他设备或执行特定的任务,如家用电器、汽车电子、传感器等。


单片机的工作流程

1 . 编写代码(使用C语言):

程序员使用C语言编写代码,因为它既具有高级语言的可读性和易用性,又能提供对硬件的直接控制。
在这一阶段,程序员定义了单片机的行为,比如如何读取传感器数据、如何控制LED灯的亮灭等。

2 . 编译C语言代码:

编写的C代码不能直接被单片机理解,需要通过编译器转换成单片机可以理解的指令。
编译器将C代码转换成汇编语言。这是因为汇编语言提供了与单片机的CPU指令一一对应的指令集。

3 . 汇编语言转机器码:

接下来,汇编语言代码被进一步转换为机器码,即0和1的序列。这个过程是由汇编器完成的。
机器码是单片机CPU能直接理解和执行的唯一形式。

4. 烧录到单片机:

将这些机器码烧录到单片机的内存中。烧录就是将编写的程序传输到单片机的过程


5. 单片机执行程序:

程序烧录完成后,单片机就会根据烧录的程序开始工作。

5.1 启动和初始化:

当单片机通电后,它首先执行一些初始化操作,这通常包括设置时钟系统、配置内存、初始化硬件接口等。
单片机的CPU会从一个预定义的内存地址开始执行程序,这个地址通常包含了启动代码。

5.2 程序计数器(PC):

程序计数器(PC)是CPU内部的一个寄存器,它指示了当前执行指令的内存地址。
在程序开始执行时,PC设置为程序的起始地址。

5.3 读取指令:

CPU从PC指向的地址读取指令。这些指令以机器码的形式存在,即由0和1组成的二进制序列。

5.4 解码指令:

读取的机器码指令被送入指令解码器。解码器解释这些指令的含义,并确定接下来的操作。
例如,一条指令可能表示要从一个特定的内存地址读取数据,另一条指令可能表示执行加法运算等。

5.5 执行指令:

解码后的指令被送往相应的硬件单元执行。这可能包括算术逻辑单元(ALU)、内存管理单元(MMU)或其他专用硬件。
比如,如果指令是进行加法运算,它将由ALU执行;如果是数据传输指令,它可能涉及内存和寄存器之间的数据移动。

5.6 操作硬件:

如果指令涉及外部硬件(如GPIO控制、ADC读取等),CPU将执行相应操作,如发送信号、读取传感器值等。

5.7 更新程序计数器:

指令执行完毕后,PC更新为下一条指令的地址。这通常是当前指令地址加上指令长度。
如果遇到跳转指令,PC将更新为指定的新地址。
重复执行:

CPU不断重复这个过程,从内存中读取指令,解码,执行,直到遇到程序结束的指令。

5.8 中断处理

在执行过程中,如果发生中断(如外部事件触发、定时器溢出等),CPU将暂停当前的任务,保存当前状态,转而执行中断服务程序。中断处理完成后,CPU会恢复之前的任务。


6 . 循环执行:

一旦开始运行,单片机就会持续执行这些指令,直到它被重新编程或关闭。


总结

单片机的运行原理涉及从用C语言编写程序开始,经过编译、汇编,最终转换成机器码,再由单片机的CPU执行这些指令。整个过程就像是将人类的指令翻译成单片机能理解的语言,然后由单片机去执行这些指令,以此来完成特定的任务。这是一种从高级抽象到底层具体的过程,体现了现代计算机编程和硬件控制的核心原理。

参考文章

单片机内存及运行原理

单片机是如何执行指令过程?MCU内存又是如何分配的?

单片机的内存分配(变量的存储位置)详解

编译器的工作流程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值