嵌入式知识总结--c51、stm32

目录

C51单片机总结

CPU内部结构

存储器

引脚图:

中断

定时器 ​编辑

串口通信

STM32单片机总结

First,嵌入式系统是什么?

定义:用于控制、监视或辅助操作机器和设备的装置,是一种专用计算机系统。

组成:1、硬件:处理器、存储器、外围电路

        2、软件:底层驱动、操作系统、应用程序

当中嵌入式处理器是嵌入式的核心,有较高集成度,包括:

1、嵌入式微处理器(MPU):其基础是通用计算机中的cpu

2、嵌入式微控制器(MCU):又称单片机,将整个计算机系统集成到一块芯片中

3、嵌入式DSP处理器(DSP):用数值计算方式对数字信号进行加工处理

4、嵌入式片上系统(SOC)

所以,单片机是嵌入式微控制器,是一种集成了处理器核心、存储器、输入输出接口等部件的微型计算机,可以说是嵌入式系统的一个分支。

(ps:通用电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑。而单片机只是将这所有的集中在了一个芯片上而已。)

51单片机和STM32单片机都是单片机的类型:

  1. 架构:51单片机是基于Intel 8051架构的8位单片机,而STM32是基于ARM Cortex-M内核的32位单片机。

  2. 编址方式:

    C51单片机采用的是哈佛架构,是独立编址方式,使得程序存储器(ROM)和数据存储器(RAM)是分开的,程序存储器用于存放程序代码,而数据存储器用于存储运行时的数据。C51单片机通常具有较小的内部RAM(通常为128或256字节),并且有专门的指令(如MOVC和MOVX)来分别访问内部和外部存储器。这种独立编址的方式使得C51单片机在处理存储器访问时需要区分不同的存储器类型和访问方法。

    STM32单片机通常采用的是冯·诺依曼架构,它的存储器是统一编址的,这意味着程序代码、数据和外设寄存器都映射到一个连续的地址空间中。STM32单片机基于ARM Cortex-M内核,拥有较大的内部Flash存储器用于程序存储和内部SRAM用于数据存储。在STM32中,可以通过统一的内存映射来访问所有的存储器和外设,这简化了编程模型,因为所有的存储器和外设都可以通过相同的地址总线来访问。

C51单片机总结

 可以用汇编语言也可以用c语言,我是用的c语言,无他,简单,用到的c也很基础。

会看引脚图,知道低电平有效,有数制转换基础,个人认为写出c51代码是没什么问题的。例如,要让灯亮灭交替,那么让P2=01010101=0x55。是不是很简单,其他外设的原理也大致如此,毕竟外设就是单片机的I/O引脚相连的外部组件:按键、蜂鸣器(就P3_6)、数码管(稍复杂些,分共阳极和共阴极,然后需要驱动电路,有静态驱动和动态驱动)。

较难点在于:

  1. 中断系统:中断的触发、优先级管理、中断服务程序等

  2. 定时器:用于实现定时和计数功能

  3. 串口通信:实现单片机之间的通信或单片机与计算机之间的通信

我们首先来看下c51的硬件结构: 

CPU内部结构

运算器
算术/逻辑运算单元ALU:进行算术逻辑运算,加减乘除、与或非等等。
累加器ACC(8位):助记符A。
寄存器B(8位):配合ACC完成乘除运算,没有乘除运算时,可当做RAM的一个单元。
程序状态字寄存器PSW(8位):存放ALU运算状态
控制器
堆栈指针SP(8位):存取数据,先进后出。数据入栈出栈时,SP自动加1减1。复位时SP=07H。
程序计数器PC(16位):存放下条要执行的指令的地址,PC指针指向哪,CPU就执行哪条指令。复位时PC=0000H
数据指针DPTR(16位):与PC功能一样,区别是DPTR是外部存储器的指针。

存储器


存储器结构图

单片机存储器在物理结构上分为4部分,片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。但在逻辑上分为3部分,片内外统一编制的程序存储器、片内数据存储器、片外数据存储器,访问这3个存储空间时,采用不同形式的指令。

引脚图:

  1. 电源及时钟引脚

    • VCC(一般为Pin 40):正电源端,接+5V电压。
    • GND(一般为Pin 20):接地端。
    • XTAL1(一般为Pin 19):时钟XTAL1脚,片内振荡电路的输入端。
    • XTAL2(一般为Pin 18):时钟XTAL2脚,片内振荡电路的输出端。
  2. 控制引脚

    • RST(一般为Pin 9):复位信号输入端,高电平有效。
    • EA/VPP(一般为Pin 31):外部程序存储器访问允许控制端/编程电压输入端。EA=1时,访问内部程序存储器;EA=0时,访问外部程序存储器。
    • ALE/PROG(一般为Pin 30):地址锁存允许信号/编程脉冲输入端。用于锁存低8位地址,也可用于外部时钟或定时信号。
    • PSEN(一般为Pin 29):程序存储器读选通信号,用于访问外部程序存储器。
  3. I/O口引脚

    • P0口(一般为Pin 39-Pin 32):8位准双向I/O口,作为数据总线或地址总线使用时需外接上拉电阻。
    • P1口(一般为Pin 1-Pin 8):8位准双向I/O口,内部已带上拉电阻。
    • P2口(一般为Pin 21-Pin 28):8位准双向I/O口,内部已带上拉电阻,通常用作地址线的高8位。
    • P3口(一般为Pin 10-Pin 17):8位准双向I/O口,内部已带上拉电阻,具有第二功能,如串行通信、外部中断、定时器/计数器输入等。
  4. 特殊功能引脚

    • P3.0(一般为Pin 10)和P3.1(一般为Pin 11):串行数据的接收和发送端口,用于串行数据传输。
    • P3.2(一般为Pin 12)和P3.3(一般为Pin 13):外部中断请求,分别用于INT0和INT1的中断输入。
    • P3.4(一般为Pin 14)和P3.5(一般为Pin 15):定时器/计数器T0和T1的外部计数输入端。
    • P3.6(一般为Pin 16)和P3.7(一般为Pin 17):外部数据存储器的写选通信号和读选通信号。

中断

 

 

定时器 

串口通信

 

STM32单片机总结

这个博主整理得很详细了:

【【STM32】入门教程(完整版汇总非常详细) -  CSDN App】https://blog.csdn.net/w123456789ABCDEF/article/details/141201519?type=blog&rId=141201519&refer=APP&source=m0_72791092

1. GPIO (General Purpose Input/Output):GPIO是微控制器上的通用输入输出引脚,可以被编程设置为输入或输出模式。它们用于简单的数字信号控制,如读取按钮状态或控制LED灯。

2. USART (Universal Synchronous and Asynchronous Serial Receiver and Transmitter):USART是一种串行通信协议,支持同步和异步通信。它用于实现两个设备之间的数据传输,如微控制器与计算机或其他微控制器之间的通信。

3. I2C (Inter-Integrated Circuit):I2C是一种同步的多主机通信协议,用于连接微控制器和其他设备。它只需要两根线(数据线SDA和时钟线SCL)就可以连接多个设备,适合于设备数量多且距离较短的应用。

4. SPI (Serial Peripheral Interface):SPI是一种同步串行数据通信协议,用于短距离的高速通信。它通常需要四根线(主输出从输入线MOSI、主输入从输出线MISO、时钟线SCLK和片选线CS),是主从模式的通信。

5. TIM (Timer):定时器是微控制器中的一个功能模块,用于生成定时事件或精确的时间延迟。定时器可以配置为不同的模式,如计数器模式、PWM生成、输入捕获等。

6. 中断:中断是一种事件响应机制,当某个特定的事件发生时,会中断正在执行的程序,转而执行与该事件相关的中断服务程序,然后在中断服务程序执行完毕后恢复原来的程序执行。在STM32中,中断可以由多种事件触发,包括定时器溢出、外部引脚状态变化等。

USART、I2C和SPI通常用于与外部设备进行数据通信,而GPIO可以用于控制通信的开始和结束,或者用于指示通信状态。GPIO可以用于简单的数字信号控制,而USART、I2C和SPI则用于更复杂的数据传输任务。USART适合长距离和高速通信,I2C适合多设备连接且只需要两根线,SPI适合高速短距离通信。

定时器(TIM)可以用于生成精确的时间控制,比如在通信协议中生成开始信号或控制数据传输速率。中断则可以用于提高系统的响应性,比如在接收到数据或定时器溢出时立即处理,而不需要在主循环中不断检查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值