硬件:51单片机

一、基本知识

1.相关概念

1.计算机

计算机:

通用型计算机:PC、平板、手机

专用型计算机:无人机,完成某项特定功能而设计计算机

计算机五大组成部分:

  • 运算器:负责数据运算。
  • 控制器:进行指令控制。
  • 存储器:包含内存与外存。
  • 输入设备:如鼠标、键盘、摄像头等。
  • 输出设备:例如显示器。
2.软件

涉及编程语言(C/C++)、操作系统(Linux,具备文件、多任务、网络等功能)、数据结构、数据库。

3.硬件
  • 51 单片机:包含硬件概念(定时器、PWM、中断)、原理图、寄存器,以及外设操作(LED、按键、数码管、蜂鸣器、传感器)。
  • STM32 单片机:主要进行库开发,有标准库、HAL 库。
  • ARM
    • 是英国公司,负责设计处理器芯片方案,三星(SAMSUNG)、爱特梅尔(ATMEL)、恩智浦(NXP)等采用 ARM 芯片方案,进而有 ARM 开发板。
    • 系列包括 ARM7、ARM9、ARM11。
    • 不同 Cortex 系列应用领域:
      • Cortex - A:应用于高端领域,处理复杂任务,可运行操作系统(如 Linux,支持文件系统、多任务调度、网络等)。
      • Cortex - R:应用于实时控制领域,实时性要求高,如汽车电子领域。
      • Cortex - M:应用于微控制器领域,即 MCU(微控制单元)领域(IOT物联网智能家居控制领域)。
4.嵌入式

以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统

  • 以应用为中心:涵盖消费电子(手机、蓝牙耳机、智能音响)、医疗电子(心率脉搏、呼吸机)、无人机(大疆 DJ)、机器人(人形四足机器人)等领域。
  • 软硬件可裁剪:加入需要的硬件/软件功能,将不需要的硬件/软件裁剪掉(低功耗、低成本)
5.51单片机

1980年,由Intel公司MCS-51系列:8051型号单片机(工业控制领域),由MCU转型到CPU

Atmel(AT89C51)、Philip(P89V51系列单片机,增强型单片机ISP在线编程)、STC宏晶半导体(STC89C51、STC89C52、STC89C52RC)

二、单片机

1.相关概念

名称 英文全称 主要功能 集成度 应用场景 成本 特点
CPU Central Processing Unit(中央处理器) 完成数据运算、指令处理 - 通用计算场景,如电脑、服务器等 - CPU 性能越高,完成指令处理和数据运算的速度越快
MCU Micro Controller Unit(微控制器) 用于简单控制 集成度比较高,将所有功能集成到芯片中(CPU、RAM、ROM、定时器、UART、IO) 对成本敏感、功能需求相对简单的控制场景,如家电控制、工业控制等 集成度比较高,将所有功能集成到芯片中(CPU、RAM、ROM、定时器、UART、IO),简单控制,成本低
MPU Micro Processing Unit(微处理器) 进行数据处理 集成度低,只有一块单独的 CPU,需外接外设、存储模块 复杂应用领域,跑 Linux 操作系统 集成度低,只有一块单独的 CPU,需外接外设、存储模块,复杂应用领域,跑 Linux 操作系统,成本高
GPU Graphics Processing Unit(图形处理器) 用作图形处理、图形渲染 - 对图形显示质量要求高的场景,如游戏、图形设计、视频编辑等 - GPU 性能越好,图形显示的质量越好
NPU Neural Processing Unit(神经网络处理器) 用于 AI 推理、硬件加速、神经网络处理(卷积计算) - 人工智能相关领域,如智能安防、智能家居等 - AI 推理、硬件加速、神经网络处理(卷积计算)-> 华为 Mate60 达芬奇 NPU AI 自动优化照片
FPU Floating Processing Unit(浮点数运算单元) 完成浮点数的运算和处理(完全遵循 IEEE 754) 大部分集成在 CPU 内部 对浮点数运算有需求的场景,如科学计算、工程计算等 - 完成浮点数的运算和处理(完全遵循 IEEE 754),大部分集成在 CPU 内部
SOC System On Chip(片上系统) 将多个芯片功能集成 集成度比较高,将多个芯片集成到一块芯片上(存储芯片、外设芯片) 各种对集成度要求高的场景,如智能手机、平板电脑等 - 集成度比较高,将多个芯片集成到一块芯片上(存储芯片、外设芯片)

2.ARM和ROM

外存:主要存放程序、代码、指令,掉电数据不丢失,读写速度慢,价格便宜(移动硬盘)

内存:主要存放程序运行过程中的临时变量,掉电数据不丢失,读写速度快,价格昂贵(内存条 16G 300)

类型 功能 掉电数据保存 读写速度 价格 示例
内存 存放程序运行中的临时变量 丢失 昂贵 电脑内存条(16G 约 300 元)
外存 存放程序、代码、指令 不丢失 便宜 移动硬盘(1T 约 300 元)

ROM:Read-Only Memory,只读存储器, 存放单片机程序、指令、掉电数据不丢失

RAM:Random Access Memory,随机访问存储器,存放临时变量、临时数据,掉电数据不丢失

类型 全称 功能 掉电数据保存 单片机场景应用
RAM Random Access Memory 随机访问存储器,存放临时数据 / 变量 丢失 存储程序运行中的中间结果(如计算过程中的数值)
ROM Read-Only Memory 只读存储器,存放程序、指令 不丢失 固化单片机的控制程序(如 LED 点亮逻辑代码)

3.单片机内部结构

CPU、RAM、ROM、Timer、PWM、IO、中断

三大总线:

地址总线:用来寻址ARM中的地址,所能寻址的最大范围为2^8 , 256byte , danxiang

数据总线:通过地址总线去获取数据, 数据交互双向

控制总线:时序控制、IO控制、中断

三.51单片机

1.原理图

2.51 单片机芯片封装与引脚

  • 主流封装 :STC89C52RC 常用DIP40 封装(双列直插式,共 40 个引脚)。
  • 引脚分组 :40 个引脚划分为 4 组 IO 端口(如 P0、P1、P2、P3),每组对应一个 8 位寄存器(如unsigned char P2;,通过操作寄存器控制引脚电平)。
  • 网络编号:原理图中相同编号的引脚表示 "物理互通",无需实际连线(如 P1.0 和 LED 阴极标注同一编号,即表示两者连接)。

3. LED 模块

  • 核心特性单向导通性(电流只能从阳极流向阴极,反向截止)。

  • 分类与点亮逻辑

    类型 阳极连接方式 阴极连接方式 点亮条件(核心逻辑)
    共阳极 LED 所有阳极接电源正极(VCC,5V) 阴极接单片机 IO 引脚 单片机 IO 引脚输出低电平(0V),形成正向电压差
    共阴极 LED 所有阳极接单片机 IO 引脚 阴极接电源负极(GND) 单片机 IO 引脚输出高电平(5V),形成正向电压差

四、位运算

位运算是通过操作二进制位(bit)控制 IO 引脚电平的关键,常用三种运算:

1. 按位或(|):指定位置 1

  • 规则 :二进制对应位中,有 1 则为 1,全 0 则为 0

  • 应用场景:将寄存器的某几位设置为高电平(1),不影响其他位。

  • 示例 :将变量t=0x64(二进制0110 0100)的 bit0 和 bit7 置 1:

    复制代码
    unsigned char t = 0x64;
    t |= (1 << 0) | (1 << 7);  // 1<<0=0x01(bit0为1),1<<7=0x80(bit7为1)
    // 结果:t=0xE5(二进制1110 0101)

2. 按位与(&):指定位清 0

  • 规则 :二进制对应位中,全 1 则为 1,有 0 则为 0

  • 应用场景:将寄存器的某几位设置为低电平(0),不影响其他位(需配合 "取反~")。

  • 示例 :将变量t=0xFF(二进制1111 1111)的 bit0 和 bit7 清 0:

    复制代码
    unsigned char t = 0xFF;
    t &= ~(1 << 0);  // ~(1<<0)=0xFE(bit0为0,其他为1)
    t &= ~(1 << 7);  // ~(1<<7)=0x7F(bit7为0,其他为1)
    // 结果:t=0x7E(二进制0111 1110)

3. 按位异或(^):指定位翻转

  • 规则 :二进制对应位中,相同为 0,相异为 1
  • 应用场景:翻转某几位的电平(1 变 0,0 变 1)。

五、51 单片机程序开发流程(创建→编译→下载)

1. 工具准备

  • 编译软件:Keil4(51 单片机专用编译工具,支持生成 HEX 文件)。
  • 下载工具:ISP 软件(通过串口将 HEX 文件烧录到单片机 ROM)。
  • 硬件连接:串口线(连接电脑与单片机,用于程序下载)。

2. 详细流程

(1)创建工程(Keil4)
  1. 点击菜单栏 Project → New Project,选择工程保存路径并命名(如 "LED_test")。
  2. 选择单片机型号:展开 "Atmel"→选择 "AT89C51",点击 "否"(不拷贝启动代码,51 单片机基础工程无需额外启动代码)。
  3. 添加 C 文件:点击工具栏 "Text" 新建空白文件,按Ctrl+S保存为 "main.c"(需与工程同目录);双击左侧 "Group 1",选择 "Add Files to Group 'Group 1'",将 "main.c" 添加到工程。
(2)编写程序(核心要点)
  • 必须包含 51 单片机头文件(提供寄存器定义):#include <reg51.h>

  • 必须添加while(1)循环:避免程序执行完后 "跑飞"(单片机程序需持续运行)。

  • 示例(LED 点亮程序框架):

    复制代码
    #include <reg51.h>
    
    void main() {
        while(1) {  // 死循环,确保程序持续运行
            P1 = 0xFE;  // P1.0引脚输出低电平(假设LED为共阳极,点亮LED)
        }
    }
(3)编译工程(生成 HEX 文件)
  1. 点击工具栏 "Target Options"(魔术棒图标),切换到 "Output" 选项卡,勾选 "Create HEX File"(生成可烧录的十六进制文件)。
  2. 点击工具栏 "Build"(编译图标),等待编译完成(无错误则显示 "0 Error (s)"),工程目录下会生成 "xxx.hex" 文件。
(4)下载程序(烧录到单片机)
  1. 打开 ISP 软件,连接串口线(电脑→单片机)。
  2. 配置 ISP 软件:
    • 选择芯片型号:"STC89C52/C51/C52RC"。
    • 选择串口:根据电脑设备管理器识别的串口(如 "COM4")。
    • 加载 HEX 文件:点击 "打开程序文件",选择工程目录下的 "xxx.hex"。
  3. 烧录:点击 "下载 / 编程" 按钮,手动复位单片机(断电再通电),程序即可烧录到单片机 ROM 中。

六、数码管显示(51 单片机常用外设)

1. 数码管基础

  • 结构 :51 单片机常用4 位共阴极数码管,每一位可独立显示 0~9、A~F 等字符;同一时刻只能显示 1 位(需通过 "动态扫描" 实现多位同时显示)。
  • 核心概念
    • 位选:选中某一位数码管(通过操作寄存器对应 bit 置 1,如 P1.0 置 1 选中第 1 位)。
    • 段选:控制选中的数码管显示特定字符(通过操作段引脚输出对应电平,如输出 "0x3F" 显示数字 "0")。

2. 显示方式

显示方式 原理 特点
静态显示 每一位数码管单独接控制引脚,持续通电显示 代码简单,占用 IO 口多(4 位需 32 个引脚),适合少位数显示
动态显示 利用人眼 "视觉暂留",快速切换位选和段选 占用 IO 口少(4 位仅需 12 个引脚),需定时器配合,适
相关推荐
逼子格8 小时前
【Protues仿真】基于AT89C52单片机的温湿度测量
单片机·嵌入式硬件·定时器·硬件工程师·dht11·温湿度传感器·at89c52
欢乐熊嵌入式编程9 小时前
WIFI协议全解析08:WiFi连接背后的握手过程,你的设备是如何“入网”的
网络·嵌入式硬件·智能路由器·wifi协议·wifi连接
cat_milk9 小时前
【STM32】STM32F103系列USB大坑 二
stm32·单片机·嵌入式硬件
范纹杉想快点毕业10 小时前
zynq 开发系列 新手入门:GPIO 连接 MIO 控制 LED 闪烁(SDK 端代码编写详解)
c语言·笔记·stm32·单片机·嵌入式硬件·mcu·物联网
Coision.11 小时前
硬件:51单片机的按键、中断、定时器、PWM及蜂鸣器
linux·嵌入式硬件·51单片机
世微 如初13 小时前
AP5414:高效灵活的LED驱动解决方案,点亮创意生活
单片机·嵌入式硬件
茯苓gao14 小时前
变频器实习DAY42 VF与IF电机启动方式
笔记·嵌入式硬件·学习
苏州向日葵14 小时前
freertos下printf(“hello\r\n“)和printf(“hello %d\r\n“,i)任务堆栈消耗有何区别
单片机
7yewh14 小时前
STM32 IIC SPI 驱动 LPS22HB LPS系列通用
stm32·单片机·嵌入式硬件