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

51单片机基础知识

一. 基础知识

1.1 主频与时间

主频:CPU工作频率
频率单位:
HZ
KHZ :1KHZ = 10^3HZ
MHZ :1MHZ = 10 ^3KHZ = 10^6HZ
GHZ :1GHZ = 10 ^3MHZ = 10^9HZ
THZ :1THZ = 10^3GHZ = 10^12HZ
小频率 -> 大频率: 除
大频率 -> 小频率:乘
主频:2.1GHZ -> HZ: 2.1GHZ * 10^9 = 2,100,000,000HZ
时间(时间和频率呈倒数关系):

1 / 2,100,000,000HZ = 0.5ns
时间单位:
s
ms
us
ns

1.2 晶振

晶振分为12 MHZ11.0592MHZ

1.3 芯片的封装形式

双列直插式40引脚封装

引脚:划分成4组:P0、P1、P2、P3,每组有8个引脚

1.4 其他

电阻:数字标注法

102 :数字标注法,前面两位/三位作为有效数字,最后一位数表示10的几次方
10 * 10^2 = 1KΩ
103:10 * 10^3 = 10k

外设寄存器:能够操作硬件,具有固定地址的空间

二. 51单片机

2.1 基础

51单片机是一个8位单片机

1980,Intel公司MCS-51系列:8051处理器架构

Atmel(AT89C51)、Philip(P89V51 增强型单片机 在线编程)、STC宏晶半导体

(STC89C51 STC89C52 STC89C52RC)
处理器架构:x86(32位)、x64(64位)、8051(8位)、ARM(32位)

CPU:Central Processing Unit,中央处理器,完成指令处理和数据运算

MCU:Micro Controller Unit,微控制器,集成度高,把所有功能集成到一块芯片中(CPU、

RAM、ROM、Timer、GPIO、中断、UART),成本低,应用简单控制领域

MPU:Micro Processing Unit,微处理器,集成度低,只有一块单独的CPU芯片,需要单独

外接存储模块、外设模块,成本高,复杂应用领域,跑Linux操作系统

GPU:Graphics Processing Unit,图形处理器,图形处理、图像渲染

NPU:Neural Processing Unit,神经网络处理器,AI推理、AI加速,神经网络处理,卷积算


FPU:Float Point Unit,浮点数运算单元,大部分集成在CPU内部

SOC:System On Chip(片上系统),将很多个芯片集成到一起

2.2 单片机最小系统

单片机最小系统:电源电路+晶振电路+复位电路

2.3 内存与外存

内存:读写速度快,掉电数据丢失,价格昂贵(内存条),存放程序中的变量
外存:读写速度慢,掉电数据不丢失,价格便宜(硬盘、SD卡),存放程序、代码、指令

ROM:Read - Only Memory,只读存储器,存放单片机程序、代码、指令
RAM: Random Aceess Memory,随机访问存储器,存放程序运行过程中的变量

2.4 CPU与RAM之间的三大总线

1. 地址总线:CPU通过地址总线寻找RAM中的地址,最大寻址范围2^8(256byte) 单向

2. 数据总线:CPU与RAM之间进行数据传输双向

3. 控制总线:CPU通过控制总线发送控制指令 双向

三. 位运算

在操作硬件时,位运算很常用,这里简单介绍

3.1 按位或

用途:将指定一位置位,其余位不变
常见用法:

undigned char t = 0xFF t |= (1<<n);/将t的第n位置1,其余位不变 t |= (1<<2) | (1<<3);/将t的第2与3位置1,其余位不变

3.2 按位与

用途:指定位清零

常见用法:

unsigned char t = 0xFF; t &= ~(1 << n);将第n位清零

3.3 异或

将对应位的bit进行比较,相同为0,相异为1
用途:不断的与0xFF异或,就可以实现翻转LED

四. LED发光二极管

4.1 自定义接口

//LED初始化 void led_init() { P2 = 0xFF; } //LED全亮 void led_on_all() { P2 = 0; } //LED全灭 void led_off_all() { P2 = 0xFF; } //LED指定某位亮 void led_on(unsigned int i) { P2 = ~i; }

4.2 流水灯

//流水灯 int i = 0; led_init(); while(1) { for(i = 0; i <= 6; i++) { led_on(1 << i); delay(500); led_off_all(); } for(i = 7; i > 0; i--) { led_on(1 << i); delay(500); led_off_all(); } }

五. 数码管

5.1 数码管

51单片机搭载4位共阴极数码管

原理图:

5.2 操作方法

先位选(NPN三级管)P10-P13
给高电平选中
再段选,给对应引脚高电平即可
共阴极,给高电平点亮

动态显示:

人眼的视觉暂留效应
1、选择第一位数码管显示第一个数值,快速刷新
2、选择第二位数码管显示第二个数值,快速刷新

5.3 示例代码

//共阴极段码表 unsigned char seg[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; //位选 void select_bit(unsigned int n) { P1 &= ~(0x0F << 0);//将低四位清零 P1 |= (1 << n); } //段选 void select_seg(unsigned int n) { P0 = seg[n]; } //数码管动态显示 void digiter_show(unsigned int n) { int t = 0; int m; while(n != 0) { m = n % 10; P0 = 0;//消隐 select_bit(t++); select_seg(m); delay(1); n /= 10; } }
http://www.cnnetsun.cn/news/3254361.html

相关文章:

  • Vim插件管理终极指南:用VAM告别插件混乱时代
  • SpaceXAI与Cursor合作:AI编程助手的技术架构与实战指南
  • RAG 落地实战——从文档解析到向量检索到重排序的代码示例
  • 你的微博记忆正在悄悄消失?这款免费工具帮你永久保存珍贵瞬间
  • 中兴光猫工厂模式深度解析与专业解锁技术指南
  • 精选美图-电脑壁纸
  • STM32与TS2007FC构建高性能嵌入式音频系统
  • macOS安装机制深度解析:签名、公证与权限模型
  • 怎么选中式庭院火锅店不踩坑?内行5条选购标准+实测推荐
  • 汽车零部件制造企业网络升级实践:从冲压到总装,一条产线就是一个数字生命体
  • 为什么 Claude Code 聊着聊着就又贵又笨了?一文讲透 AI 编程助手的上下文与 Token 经济学
  • 从零到上线!我做了一个赛博朋克风的个人网址导航站(开源 + Netlify 部署指南)
  • 2026 大模型备案最全指南:流程、材料、测试与安全能力
  • Jason Liu:AI实践派的工程化方法与项目落地指南
  • YARN UI 监控 5 大核心指标:从集群概览到节点健康度排查
  • SAP MIRO 文本传输机制解析:3种路径对比与1个增强点详解
  • 3DS游戏格式转换终极指南:5分钟快速将.3ds文件转为CIA格式
  • GPTs多模态协同实战(图像+文档+实时API联动),仅剩最后237个测试名额的私密工作坊复盘
  • 电气图绘制实战:5种连接线表示法的适用场景与AutoCAD/Eplan实现
  • 新手吉他选购避坑:从声学参数到质检指标(技术向)
  • Claude Max定价背后的AI编程工具功能分级逻辑
  • 技术直觉退化了?不,是换了一种用法
  • Spring Data JPA Repository 详解:从基础到高级用法
  • 【Claude Code PR描述生成实战指南】:20年DevOps专家亲授5大自动化工厂级模板,告别低效人工撰写
  • Python Paramiko 2.12.0 巡检脚本优化:5台设备并发执行,效率提升300%
  • 多模态大模型融合策略解析:从ChatGPT-4o到Qwen2.5-VL部署实战
  • nRF Connect GATT 服务配置对比:标准心率服务 vs 自定义服务(XML 文件解析)
  • NAND Flash 接口时序与FPGA控制器设计:基于Verilog实现4级流水线操作
  • SpringBoot/Vue 毕设模板 5 大技术雷区:从通用字段到二次开发的实战解析
  • Unity WebGL部署IIS全攻略:MIME配置、压缩优化与CDN加速