当前位置: 首页 > news >正文

硬件: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.相关概念

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

2.ARM和ROM

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

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

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

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

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

类型全称功能掉电数据保存单片机场景应用
RAMRandom Access Memory随机访问存储器,存放临时数据 / 变量丢失存储程序运行中的中间结果(如计算过程中的数值)
ROMRead-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 个引脚),需定时器配合,适
http://www.xdnf.cn/news/1437967.html

相关文章:

  • 为什么需要锁——多线程的数据竞争是怎么引发错误的
  • 系统架构——过度设计
  • YOLOv8改进有效系列大全:从卷积到检测头的百种创新机制解析
  • 【C++上岸】C++常见面试题目--数据结构篇(第十七期)
  • 02-Media-2-ai_rtsp.py 人脸识别加网络画面RTSP推流演示
  • 51单片机(单片机基础,LED,数码管)
  • Spring Boot手写10万敏感词检查程序
  • UCIE Specification详解(十三)
  • C++ 条件变量,互斥锁
  • 【c++】多态+RTTI (运行时的类型识别信息)
  • 深度学习篇---DenseNet
  • 深入解析Linux进程概念与操作系统核心
  • 深度学习篇---SGD优化器
  • 「数据获取」《安徽建设统计年鉴》(2002-2007)(2004、2006缺失)(获取方式看绑定的资源)
  • spring boot驴友结伴游网站的设计与实现(代码+数据库+LW)
  • 使用Global Watersheds提取水文站控制区域(水文站上下游 流域水系等)
  • 【自记】Python 中 简化装饰器使用的便捷写法语法糖(Syntactic Sugar)示例
  • 复刻 Python 实现的小智语音客户端项目py-xiaozhi日记
  • 【算法笔记 day six】二分算法的第三部分
  • 手写Muduo网络库核心代码1-- noncopyable、Timestamp、InetAddress、Channel 最详细讲解
  • 测试覆盖率不够高?这些技巧让你的FastAPI测试无懈可击!
  • maven【maven】技术详解
  • ARM编译器生成的AXF文件解析
  • 平衡车-ADC采集电池电压
  • 综合诊断板CAN时间戳稳定性测试报告8.28
  • Linux内核进程管理子系统有什么第四十回 —— 进程主结构详解(36)
  • 安装部署k3s
  • Java试题-选择题(29)
  • 算法题打卡力扣第3题:无重复字符的最长子串(mid)
  • Suno AI 新功能上线:照片也能唱歌啦!