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

嵌入式学习的第四十天-51单片机

一、基本框架

第一阶段:1980年、Intel英特尔MCS-51系列:8051型号单片机、工业控制领域、由MCU市场->CPU市场。

1、CPU(Central Processing Unit,中央处理单元)‌是计算机的核心部件,负责执行计算机指令和处理数据。

2、MCU(Micro Controller Unit,微控制单元)‌是一种将中央处理器、内存、输入输出接口等多种功能模块集成在单一芯片上的微型计算机系统。(特殊的CPU重视对外摄的控制而非数据的处理)微控制器->单片机,集成化高、集成到一块芯片(CPU、RAM、ROM) 外设(GPIO、UART、ADC)。

3、MPU(Microprocessor Unit,微处理器单元)‌是一种集成了CPU、外接内存、外设控制器和总线接口等功能的芯片,处理复杂任务(跑操作系统)。

4、GPU(Graphics Processing Unit,图形处理单元)‌是一种专门设计用于快速处理图像和视频数据的处理器。

5、SOC(System on Chip,系统级芯片,片上系统)‌是将微处理器、模拟IP核、数字IP核、存储器以及必要的接口电路等多种电子系统功能模块集成在一个单一的芯片上。特殊的CPU(先进)

6.NPU(Neural network Processing Unit), 即神经网络处理器。用电路模拟人类的神经,主要是一些算法,是基于神经网络算法与加速的新型处理器总称,

7.FPU (Floating Processing Unit) 浮点计算单元,通用处理器中的浮点运算模块。 

 第二阶段:Atmel AT89C51

                  Philips 飞利浦公司 P89V51(增强型51单片机 ISP在线编程)

                  SCT89C51 STC宏晶半导体(USB 下载、串口下载)

二、51单片机

HC6800-MS原理图

1. 存储器

(1)ROM(非易失性存储器)又称只读存储器

非易失性存储器(Non-Volatile Memory, NVM)‌是指当电流关闭后,所存储的数据不会消失的存储器。这类存储器在断电后仍能保持数据,因此常用于需要长期保存数据的场合。非易失性存储器的典型代表包括ROM(只读存储器)、Flash(闪存,包括NAND和NOR类型)、EEPROM(电可擦可编程只读存储器)等‌。

(2)RAM(易失性存储器)又称随机访问存储器

易失性存储器(Volatile Memory)‌是指断电后存储的数据会立即消失的存储器。这类存储器通常具有较快的存取速度,但无法长期保存数据。易失性存储器的典型代表有DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)‌。 

(3)特点对比
  • ‌非易失性存储器‌:
    • ‌数据保留‌:断电后数据不丢失,适合长期数据存储。
    • ‌写入次数有限‌:如Flash存储器有一定的擦写次数限制。
    • ‌容量和速度‌:EEPROM支持字节级擦写,但容量较小;Flash存储器速度较慢,适合大容量数据存储‌。
  • ‌易失性存储器‌:
    • ‌数据不保留‌:断电后数据立即消失。
    • ‌速度快‌:如SRAM和DRAM具有较高的存取速度,适合临时数据存储和高频访问‌。
    • ‌依赖供电‌:需要持续供电以保持数据,断电后数据丢失‌。

2.位运算

 (1)按位或

        其他位不变,指定位置1

        reg |= (1<<n)   //reg寄存器第n位置1

        reg |= (1<<n) | (1<<m)  //reg寄存器第m位和n位置1

        eg:  P2 |= (7<<2)//连续3个比特位置1

(2)按位与

        其他位不变,指定位置0

        reg &= ~(1<<n)    //reg寄存器第n位清零

        reg &= ~((1<<n) | (1<<m))   //reg寄存器第m位和n位清零       

        P2 &= ~(3<<2)  //连续2个比特位清零偏移2位

        P2 &= ~(7<<2)  //连续3个比特位清零

        P2 &= ~(0x0F<<2)  //连续4个比特位清零

        P2 &= ~(0x1F<<2)  //连续5个比特位清零

 (3) <<  左移

 <<:双目运算符,优先级为5级,结合方向自左至右;

写法:a<<n  (表示将a这个数据左移n位 )(C语言中为逻辑左移)

最高位无论是1还是0全丢掉,后面补0;

作用:指定位清零( ~(1 << n));

示例:

0000 0001 
0000 0010
左移1位  相当于乘 2  

3.数码管 

共阳极数码管:所有发光二极管的阳极接到一起形成公共阳极(COM),需要将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段点亮。公共端是接高电平;引脚给谁置0,谁就亮

共阴极数码管:所有发光二极管的阴极接到一起形成公共阴极(COM),需要将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段点亮 。公共端是接地;引脚给谁置1,谁就亮;

原理:数码管通过点亮内部的发光二极管来显示数字。每个数码管由8个LED组成,分别表示a, b, c, d, e, f, g和dp(小数点)。通过控制这些LED的亮灭,可以显示不同的数字

段选:选择数码管中某段的亮灭状况(P0来控制)

位选:选择哪个数码管显示(LEDS1、LEDS2、LEDS3、LEDS4来控制)

4. 51单片机芯片的内部结构

5.寄存器 

(1)寄存器的定义:寄存器是CPU、主存储器和其他数字设备内部用于存放数据的一些小型存储区域。

(2)寄存器的组成:一般由多个触发器构成。可以分为内部寄存器和外部接口寄存器。

(3)寄存器的特点:读写速度高、寄存器间传输速率快。

(4)P2寄存器本质:地址强转为指针间接访问

(5)寄存器可假定为系统提前定义好的全局变量(unsigned char P2;//一个字节8个比特)

6.寄存器的分类

(1)数据寄存器:用于存储整数数字。累加器是特别的数据寄存器。

(2)地址寄存器:持有存储器地址,用来访问存储器。

(3)通用目的寄存器:可以保存数据或地址,类似数据寄存器与地址寄存器的结合。

(4)特殊目的寄存器:用于存储CPU内部数据,如程序计数器、堆栈寄存器以及状态寄存器等。

(5)索引寄存器:程序运行时用于更改运算对象地址。

http://www.dtcms.com/a/309720.html

相关文章:

  • Vue模板语法详解:从基础到进阶的响应式绑定指南2
  • 【AI论文】大语言模型量化的几何原理:将GPTQ视为Babai最近平面算法
  • 开发者体验如何度量?
  • springboot在线法律服务平台-计算机毕业设计源码45635
  • Context API
  • Class29ResNet
  • 机器学习——逻辑回归(LogisticRegression)的核心参数:以约会数据集为例
  • 数智管理学(四十三)
  • Python LRU缓存应用与示例
  • C++拷贝构造函数
  • rhcsa笔记大全
  • 【2025/08/01】GitHub 今日热门项目
  • PendingIntent的flag和原理解析
  • 【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?
  • Linux系统编程Day3-- Linux常用操作(续)
  • 【BUUCTF系列】[GXYCTF2019]Ping Ping Ping 1
  • 【Linux我做主】细说环境变量
  • 鸿蒙智能居家养老系统构思(续二)—— 适老化烹饪中心详细构思
  • 前端渲染三国杀:SSR、SPA、SSG
  • SpringBoot3.x入门到精通系列:1.4 项目结构与核心注解
  • 三十九、【扩展工具篇】Allpairspy 组合用例生成器:智能设计高效测试集
  • spring中自带的执行定时任务的注解是什么?
  • 铁皮矫平机是什么?
  • 掌握长尾关键词提升SEO
  • 4-verilog简单状态机
  • 使用mybatis生成器生成实体类mapper和查询参数文件,简单spring mvc 项目。使用log4j输出日志到控制台和文件中。使用配置文件注册Bean
  • 【U8+】删除部门的时候提示已经在总账(辅助总账)中使用,不可删除。
  • 从0到1学PHP(十三):PHP 安全编程:构建稳固的应用防线
  • (一)LoRA微调BERT:为何在单分类任务中表现优异,而在多分类任务中效果不佳?
  • 自动化测试准备工作:概念篇