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

嵌入式学习 51单片机基础

嵌入式系统定义

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


51单片机发展及厂商

时间厂商/型号特点
1980Intel MCS-51系列(8051)工业控制领域,MCU转型到CPU
-Atmel AT89C51兼容MCS-51架构
-Philip P89V51(增强型)支持ISP在线编程
-STC宏晶半导体(STC89C51等)广泛用于教学和低成本开发

核心概念对比

处理器类型
缩写全称功能特点应用场景
CPUCentral Processing Unit数据运算、指令处理通用计算
MCUMicro Controller Unit高度集成(CPU+RAM+ROM+外设),低成本简单控制(家电、传感器)
MPUMicro Processing Unit低集成度(需外接存储/外设),支持复杂系统Linux/高端嵌入式设备
GPUGraphics Processing Unit图形渲染加速游戏、图像处理
NPUNeural Processing UnitAI推理、神经网络加速(如华为达芬奇NPU)智能终端
FPUFloating Point Unit浮点数运算(遵循IEEE 754)科学计算
其他术语
  • SOC:System On Chip,片上系统(集成多芯片功能,如手机处理器)。

存储类型对比

类型特点典型用途示例
外存掉电不丢失,速度慢,成本低存储程序/代码硬盘(1T约300元)
内存掉电丢失,速度快,成本高运行时临时数据存储内存条(16G约300元)
ROM只读存储器,存程序指令固化程序(如单片机代码)Flash ROM
RAM随机存取存储器,存临时变量运行时数据缓存SRAM/DRAM

单片机内部结构

主要模块
  • 核心单元:CPU(运算/控制)
  • 存储单元:ROM(程序存储)、RAM(数据缓存)
  • 外设模块:Timer(定时)、PWM(脉宽调制)、IO(输入输出)、UART(串口通信)、中断系统。
三大总线
总线类型功能方向示例参数
地址总线寻址RAM空间(范围2^n)单向8位总线→256字节
数据总线传输数据双向8位并行传输
控制总线时序/中断/IO控制信号双向读写信号线

补充说明

  • 浮点运算:FPU通常集成于CPU内,提升科学计算效率。
  • SOC应用:如手机芯片集成CPU+GPU+NPU+基带,实现多功能一体化。

(注:表格和分级标题优化了信息呈现,关键参数和对比清晰标出。)

芯片信息表

属性描述
型号STC89C52RC
封装形式DIP40(双列直插式,40引脚)
端口分组4组(P0、P1、P2、P3),每组8位,对应寄存器为unsigned char P2

LED模块特性说明

类型连接方式电平要求导通条件
共阳极阳极接VCC,阴极接单片机引脚阴极输出低电平(0V)阳极(5V)与阴极(0V)形成压差
共阴极阴极接GND,阳极接单片机引脚阳极输出高电平(5V)阳极(5V)与阴极(0V)形成压差

关键概念补充

网络编号
在电路设计中,相同网络编号的引脚表示电气连通,无需物理连线直接连接。例如:

  • 若P2.0和LED阴极均为网络编号“NET1”,则两者实际已导通。

寄存器操作示例
通过直接赋值控制端口电平(以P2为例):

P2 = 0x00;  // P2所有引脚输出低电平(共阳极LED点亮)
P2 = 0xFF;  // P2所有引脚输出高电平(共阳极LED熄灭)

数码管基础概念

数码管是一种常见的显示设备,由多个LED发光二极管组成,通常分为共阴极和共阳极两种类型。共阴极数码管的阴极连接在一起,阳极独立控制;共阳极则相反。51单片机通过位选和段选信号控制数码管的显示内容。


4位共阴极数码管

  • 结构:包含4个独立的数码管单元,每个单元可显示0-9或部分字母。
  • 特点:同一时刻仅能显示一位数字,通过快速切换位选实现多位显示(动态扫描)。

位选与段选

  • 位选:选择当前操作的数码管位。

    • 51单片机通过P1寄存器控制,将对应位设置为1(共阴极)或0(共阳极)。
    • 示例代码(位选第二位):
      P1 = 0x02; // 0000 0010,选中第二位
      

  • 段选:控制当前选中位的显示内容。

    • 通过P0或其他端口发送段码(共阴极为例):
      // 显示数字0的段码(a~dp对应P0.0~P0.7)
      unsigned char segCode[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // 0~9
      P0 = segCode[0]; // 显示数字0
      


静态显示与动态显示

  • 静态显示

    • 每个数码管位独立连接驱动电路,所有位同时显示,无需扫描。
    • 优点:亮度高、无闪烁;缺点:占用I/O资源多。
  • 动态显示

    • 通过快速轮询位选和段选,利用视觉暂留效应实现多位显示。
    • 示例流程:
      while (1) {for (int i = 0; i < 4; i++) {P1 = 1 << i;         // 位选第i位P0 = segCode[data[i]]; // 段选数据delay_ms(5);         // 短暂延时}
      }
      

    • 优点:节省I/O;缺点:需精确控制延时,否则易闪烁。

共阴极数码管驱动注意事项

  • 限流电阻:每个段选信号需串联电阻(通常220Ω)。
  • 消隐处理:切换位选时关闭段选,避免残影。
  • 驱动能力:若电流不足,需使用三极管或专用驱动芯片(如74HC595)。

参考段码表(共阴极)

数字段码(a~dp)二进制
00x3F0011 1111
10x060000 0110
20x5B0101 1011
.........
90x6F0110 1111

通过合理配置位选、段选及显示模式,可实现稳定高效的多位数码管显示。

http://www.xdnf.cn/news/19877.html

相关文章:

  • 《微服务协作实战指南:构建全链路稳健性的防御体系》
  • AR技术赋能风电运维:精准、高效、智能
  • 算法模板(Java版)_非负整数的高精度运算
  • 【论文阅读】Jet-Nemotron: 高效语言模型与后神经网络架构搜索
  • 研发团队缺乏统一文档模板怎么办
  • 服务器的监控和管理手段有哪些?
  • 【LeetCode牛客数据结构】单链表的应用——环形链表及链表分割问题详解
  • 【Python3教程】Python3高级篇之多线程
  • Chrome浏览器调用ActiveX控件之allWebOffice在线编辑控件
  • 记录收入最高的一次私活 选号网,需要大量卖号的人可能需要,比如游戏脚本批量跑的号
  • 电脑配置不足怎么办,告别硬件束缚,川翔云电脑
  • 从Oracle到PostgreSQL的数据库迁移
  • MySQL中binlog、redolog与undolog的不同之处解析
  • 传统大数据 Hadoop 和 云原生湖仓 Databend 对比
  • Spring MVC + JSP 项目的配置流程,适合传统 Java Web 项目开发
  • LangGraph 重要注意事项和常见问题
  • 猫头虎AI分享:无需OCR,基于ColQwen2、Qwen2.5和Weaviate对PDF进行多模态RAG的解决方案
  • 基于STM32的居家养老健康安全检测系统
  • 中文分词器之结巴分词
  • GPT-Realtime 弹幕TTS API 低延迟集成教程
  • leetcode111. 二叉树的最小深度
  • 2025华为最值得入的耳机,真的赢麻了!
  • golang 依赖管理
  • 【C++详解】C++11(三) 可变参数模板、包扩展、empalce系列接⼝、新的类功能
  • 大数据开发环境搭建(Linux + Hadoop + Spark + Flink + Hive + Kafka)
  • ELK 统一日志分析系统部署与实践指南(下)
  • HDFS读写机制深度解析:分布式存储的核心奥秘
  • 下载ubuntu镜像下载
  • 试用Augment编写python脚本实现智能家居3D环境交互响应
  • Elasticsearch创建索引分片和副本大小建议