单片机(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驱动常用
相关推荐
无敌最俊朗-6 小时前
【电感专题2:电感的感抗、电路的阻抗、电流的滞后】
单片机·嵌入式硬件·元器件·电感
wuyk55510 小时前
嵌入式故障诊断-Bug002-局部大数组压栈高温必死机
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·嵌入式实时数据库
Zwawa14 小时前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式
Dev_XH14 小时前
【成品设计】基于沁恒单片机的电动汽车充电站智慧调度系统
stm32·单片机·嵌入式硬件·物联网
shimly12345615 小时前
(done) 嵌入式硬件电路图 (5) 重要的元器件特性之二极管三极管
嵌入式硬件
minglie117 小时前
esp32c3+atshell测试ov7670
单片机·嵌入式硬件
橘为己有44117 小时前
51单片机:流水灯
单片机·51单片机
不脱发的程序猿17 小时前
STM32和VS1053制作电子琴
stm32·单片机·嵌入式硬件·midi·vs1053
Zwawa1 天前
C语言函数指针与宏实战:从回调、表驱动菜单到X-Macro,讲透嵌入式代码解耦
c语言·单片机·嵌入式
shimly1234561 天前
(done) 嵌入式硬件电路图 (2) 熟悉常用元器件
嵌入式硬件