单片机(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驱动常用
相关推荐
HQB202613 小时前
EG1198|屹晶微电子 120V 内置 MOS 异步降压 DC‑DC(高性价比)
嵌入式硬件·硬件工程
果壳science15 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
南山电子nscn15 小时前
中科芯CETC汽车电池管理系统BMS进口芯片国产型号替代指南
单片机·汽车·bms
桀人15 小时前
认识AT24C02
stm32·单片机·嵌入式硬件
国科安芯17 小时前
星间激光通信终端CANFD控制网络的时延确定性与辐射可靠性
网络·嵌入式硬件·信息与通信·canfd·低轨卫星·商业航天·抗辐射
一直C17 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
传感器与混合集成电路17 小时前
150MHz主频、8路DAC与6路PWM:JLH221360伺服控制SIP解析
嵌入式硬件
comyccccc17 小时前
STM32PID控制板设计全解析学习笔记
单片机·嵌入式硬件
碧海银沙音频科技研究院18 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
恒锐丰科技林技术员19 小时前
EG1160 高压半桥驱动芯片:高压功率变换的实用驱动方案
经验分享·嵌入式硬件·硬件工程