单片机(1)

一、嵌入式学习层级

  1. 应用层:业务代码,不碰硬件
  2. 操作系统层:管理硬件资源,应用访问硬件必须走驱动
  3. 硬件层:芯片、外设电路
    裸机特点:无操作系统,代码直接读写寄存器控制硬件
    BSP:板级底层驱动,led.c/h就是最简BSP
    硬件:STC89C52RC,普中51开发板

二、单片机最小系统

最小系统:芯片上电运行必需电路,缺一则无法启动

  1. 电源:5V供电
  2. 复位:上电清零寄存器,PC归零,程序从Flash 0地址开始跑
  3. 晶振:单片机时钟节拍;常用11.0592MHz(串口)、12MHz(延时学习)

片内外设:芯片内置,GPIO、定时器、中断、串口

片外外设:板载外部器件,LED、按键、CH340

GPIO

51有P0/P1/P2/P3四组IO,每组8位Px.0~Px.7

Px本质是1字节特殊寄存器,写寄存器即修改引脚电平

普中LED:高电平熄灭,低电平点亮

P2 = 0xFF 全灭; P2 = 0x00 全亮

三、位运算(寄存器操作核心)

用途:单独修改某一位,不影响其余引脚,嵌入式通用模板

  • & 按位与:清零指定位 P2 &= ~(1 << n);
  • | 按位或:置1指定位 P2 |= (1 << n);
  • ^ 按位异或:翻转指定位 P2 ^= (1 << n);
  • ~ 按位取反:比特翻转
  • << 左移:生成掩码,流水灯常用 1 << i
  • 右移:提取比特

四、冯诺依曼架构、哈佛架构

冯诺依曼(PC电脑)

指令与数据共用内存、同一套总线;存在总线抢占瓶颈

哈佛架构(51单片机)

Flash(存程序,断电保存)、RAM(临时变量,断电丢失)分开,双总线,可并行取指令读数据。STC89C52:Flash 64K,RAM仅128B。

核心部件

  1. PC程序计数器:标记下一条指令地址,复位PC=0;程序跑飞=PC跳到非法地址
  2. SFR特殊功能寄存器:硬件映射到固定地址,读写地址就是操作硬件
    sfr P2 = 0xA0;
    #define P2 (*(unsigned char *)(0xA0))

ISP:STC内置引导程序,串口烧录hex,无需专用烧录器

五、CPU寻址方式

寻址:CPU寻找操作数的方式

  1. 立即寻址:数据直接写进指令 num=100
  2. 直接寻址:直接给出内存地址 P2=0x01
  3. 间接寻址:指针保存目标地址,C语言指针底层
  4. 寄存器寻址:数据放在CPU内部寄存器,速度最快
  5. 寄存器间接寻址:寄存器存放内存地址
  6. 基址变址寻址:基地址+偏移,数组、ARM驱动常用
相关推荐
云泽8082 小时前
STM32 USART 详解(四):数据帧及标志位的收发机制与寄存器深度剖析
stm32·单片机·嵌入式硬件
linx2952 小时前
单元四 · 对称认知·上:内存与指针
c语言·开发语言·数据结构·嵌入式硬件·算法
国科安芯2 小时前
ASM9048S(4 路高速 LVDS 接收器)在商业航天等场景中的应用研究
嵌入式硬件·电源模块·卫星通信·抗干扰·抗辐射
HUI-4743 小时前
EG11752|ESOP‑8 内置 200V‑2A 异步降压 DC‑DC,10‑200V 超宽压小功率辅助电源优选
嵌入式硬件·硬件工程
HRTOS3 小时前
HRTOS 4.0 驱动库实例:LCD1602显示屏使用示例
c语言·单片机·嵌入式硬件·51单片机
EleganceJiaBao3 小时前
【嵌入式】STM32 状态机设计:枚举、位掩码、结构体、变量与宏定义的合理选择
stm32·单片机·嵌入式硬件·枚举·状态机·位掩码
一条破秋裤3 小时前
STM32F103 UART 第一层复习:USART1 收发、回显与默写测试
stm32·单片机·嵌入式硬件
保安大队王队长3 小时前
单片机知识
单片机·嵌入式硬件
linx2954 小时前
单元五 · 对称认知·下:编译与链接
linux·c语言·开发语言·c++·嵌入式硬件