51单片机基础

目录

1.如何学习单片机

[2.当前常用的 80C51 系列单片机](#2.当前常用的 80C51 系列单片机)

3.嵌入式与核心概念辨析

[4. 51 单片机硬件基础认知](#4. 51 单片机硬件基础认知)

原理图:

实物图:

特点:

资源:

5.开发工具

逻辑分析仪使用技巧

6.必要的数字电路与C语言基础

6.1二进制、八进制、十进制、十六进制数之间的任意转换:

6.2位运算

[6.3 C51 扩充数据类型](#6.3 C51 扩充数据类型)

6.4类型转换


1.如何学习单片机

1.1 学习哪种类型的单片机

  • 是不是每种单片机都要学习一遍呢?肯定不是。我选择的第一款单片机是51单片机。通过学习 51 单片机后,再往高级的 STM32、DSP 等学习会更快。
  • 单片机型号那么多,挨个下来完估计头发白了也学不完。所以学习 51 单片机,必须得学会举一反三、融会贯通的能力。
  • 不能仅仅当做51 来学习,要当做"单片机"来学,要把单片机的内部资源都搞清楚、弄明白,每个内部资源模块的用法理解透彻,这样当遇到一个从没有用过的单片机,也能快速知道如何下手去使用它。

1.2 学习单片机的最佳方法

单片机是一门实用技术,学习它已经不是为了应付考试,不需要死机硬背。

学习要领:在实践中成长,不断的去练习!(遇到问题查书比直接看书的效果要好过百倍。)

1.3单片机的应用

应用非常广泛,电子、电气、自动化、通信、工业测控系统(如 ATMEL公司的 AT89 系列)等领域都有大量的应用。

生活中常见的电子产品如:智能小车、LED 点阵屏、四轴飞行器、电子密码锁、门铃、超市储物柜、智能电饭煲、智能台灯、智能风扇等。

工业领域的应用主要体现在单片机的控制、通信方面。

串口:可以和 WFIF/GPS/蓝牙等模块实现无线控制

AD 接口:可以采集光敏/烟雾传感器/可燃气体传感器等模拟信号,还可以使用 AD 设计简易示波器。

驱动各种设备:控制直流电机、交流电机、步进电机、伺服电机、变频电机、电磁铁、电磁阀、LED、LCD 等等

日常生活中可采用 51 单片机设计的电子产品:智能手环,微型四轴飞行器,平衡车、扫地机、移动 POST 机,智能电饭锅,3D 打印机、机器人等。

1.4 相关工作

主要可以从事智能电子产品、通信技术、运动控制技术等相关工作,当然单片机本身仅是一个工具,一个产品开发往往还会涉及到周边的一些技术,所以确定好应用方向后,还需要熟悉它的外围技术。(如工业通信方面的产品,使用的是 51 单片机,但要和工业产品 PLC 通信不仅要掌握 51 单片机,还要掌握 Modbus 通信协议的相关知识,所以在确定自己
应用方向后,还需要了解这个方向涉及到的外围技术。)

2.当前常用的 80C51 系列单片机

主要产品有:

  • Intel(英特尔)的:i80C31、i80C51、i87C51,i80C32、i80C52、i87C52 等;
  • ATMEL(艾德梅尔)的:AT89C51、AT89C52、AT89C2051,AT89S51(RC),AT89S52(RC)等;
  • Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)等公司的许多产品;
  • STC(国产宏晶)单片机:STC89C51、STC89C52、STC89C516、STC90C516 等众
    多品牌。

3.嵌入式与核心概念辨析

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

核心概念:

术语 全称 核心特性 应用场景
MCU Micro Controller Unit(微控制器) 集成度高,单芯片包含 CPU、RAM、ROM、IO 控制器等所有功能 简单控制场景,如 51 单片机
CPU Central Processing Unit(中央处理器) 核心功能为数据运算和指令处理,性能决定运算速度 所有计算设备的核心单元
MPU Micro Processing Unit(微处理器) 仅含 CPU 模块,需外接存储、外设等 复杂应用,可运行 Linux 系统
GPU Graphics Processing Unit(图像处理单元) 专注图形数据处理和渲染 图像显示、游戏等场景
NPU Neural Processing Unit(神经网络处理单元) 负责 AI 推理、硬件加速 智能设备的 AI 功能(如华为达芬奇 NPU,AI自动实现照片优化)
FPU Float Point Unit(浮点数单元) 处理浮点数运算(遵循 IEE754 标准) 需高精度运算的场景
SOC System On Chip(片上系统) 集成多个功能芯片于一体 高端嵌入式设备(如手机芯片)
ROM Read-Only Memory(只读存储器) 存放程序和指令,掉电数据不丢失 用于程序存储,大小为4kbytes (52 为 8K)(Flash可反复擦写 1000 次的 )
RAM Random Access Memory(随机访问存储器) 存放程序运行时的变量,掉电数据丢失 128bytes 的数据存储器(RAM) (52 有 256bytes 的 RAM)

4. 51 单片机硬件基础认知

原理图:

实物图:

特点:

  • 具有自编程能力,即支持 ISP(In System Programming,在系统可编程)/IAP(In-Application Programming,在应用可编程)

普通单片机:

  • 你要用下载器、仿真器插上去,才能烧程序
  • 芯片自己不能改自己内部的程序

自编程能力 = 芯片自己能改写自己的 Flash / 程序存储器

  • 不用外部烧录器
  • 芯片跑着程序的时候,自己给自己更新固件
  • 可以通过串口、WiFi、蓝牙、4G、CAN 等,远程升级程序

实际用途

  • 远程升级固件产品卖出去了,不用拆机器、不用寄回,发个新版本程序,WiFi / 蓝牙直接更。
  • 参数保存把配置、校准值存在 Flash,掉电不丢。
  • 多套程序切换一个芯片里放多个功能,自己切换运行。
  • OTA、Bootloader(启动引导程序) 必备。

哪些单片机有这功能?

几乎你现在学的都有:

  • STM32(全系列都支持 IAP)
  • 51 单片机(部分型号支持 IAP)
  • ESP32、ESP8266(自带 WiFi 远程升级)
  • PIC、AVR 等主流 MCU 基本都有

资源:

  • 通用 I/O 口 (35/39 个): 复位后为------P1/P2/P3/P4 是准双向口/弱上拉(普通 8051 传统 I/O 口); P0 口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

P0 口(P0_0~P0_7):8 位双向 I/O 口

P1 口(P1_0~P1_7):8 位准双向 I/O 口(内部自带上拉电阻,这种接口输出没有高阻态,输入也不能锁存,故不是真正的双向 I/O 口。 之所以称它为"准双向"是因为该口在作为输入使用前,要先向该口进行写 1操作,然后单片机内部才可正确读出外部信号,也就是要使其先有个"准"备的过程,所以才称为准双向口。)

P2 口(P2_0~P2_7):8 位准双向 I/O 口

P3 口(P3_0~P3_7):8 位准双向 I/O 口(部分引脚含第二功能,如串口、中断),需要要通过相应的寄存器设置即可配置对应的附加功能,同一时刻,每个引脚只能使用该引脚的一个功能。

  • 外部中断: 4 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒
  • 有 16 位定时器/ 计数器:2个/3个,其中定时器 0 还可以当成 2 个 8 位定时器使用。
  • 通用异步串行口(UART) :还可用定时器软件实现多个 UART------可以和 WFIF/GPS/蓝牙等模块实现无线控制
  • ROM: 4K / 8K / 13K / 16K / 32K / 64K 字节(STC89C516)
  • RAM:片上集成 128 字节/ 256 字节/ 512 字节或1280 字节 RAM
  • ISP(在系统可编程) / IAP(在应用可编程): 无需专用编程器, 无需专用仿真器,可通过串口( RxD/P3.0, TxD/P3.1)直接下载用户程序,数秒即可完成一片。
  • 内部集成 MAX810 专用复位电路(HD 版本和 90C 版本才有):外部晶体20M 以下时,可省外部复位电路,复位脚可直接接地。
  • 看门狗

5.开发工具

  • 编程软件:Keil4(C51V901 版本)

注:①main.c头文件

cpp 复制代码
#include "reg52.h"
void main()
{

    while (1)
    {
    
    }
}

②编译按钮:

第一个:它是编译当前界面所在的一个C文件。

第二个:联合编译整个工程,发生修改的文件重新编译,并生成可执行文件。

第三个:联合编译整个工程,所有文件都重新编译,并生成可执行文件。

一般情况下,不使用第三个编译按钮,第二个最常用。因为第三个每次都把所有的文件都重新编译,需要消耗大量的时间。 当工程比较小的时候,感觉不到,但是工程较大的时候就不行了。

  • 下载软件:STC-ISP 软件(比普中的软件好,该软件内有串口助手、定时器初值计算、波特率计算、延时函数生成等好用功能)
  • 硬件:51 开发板(如 STC89C52RC)、串口线(USB-SERIAL CH340)、杜邦线
  • 硬件调试工具:逻辑分析仪(8CH 24MHz)(使用logic软件

逻辑分析仪使用技巧

逻辑分析仪的核心作用是可视化引脚电平变化,快速定位程序问题:

  • 通道连接:CH0-CH7 对应 8 个检测通道,需通过杜邦线与目标引脚连接
  • 接地关键:必须将逻辑分析仪 GND 与单片机 GND 连接,否则信号不稳定
  • 操作流程:新建调试窗口→设置通道速率→启动抓取→分析方波波形

点击「Device Setting」设置通道和速率(如 8 MS/s)

点击「开始」按钮,抓取引脚电平波形(方波形式展示电平变化)

  • 异常排查:若波形无变化,检查引脚连接是否正确、电源是否供电

6.必要的数字电路与C语言基础

6.1二进制、八进制、十进制、十六进制数之间的任意转换:

用 Windows 系统自带的计算器,选择程序员模式可方便进行计算

注:十六进制的字母不区分大小写

6.2位运算

位运算 名称 核心特性 应用场景 代码示例
& 按位与 对应位全 1 则为 1,有 0 则为 0 指定位清 0(其余位不变) 将 t 的 bit2 清 0: t &= ~(1 << 2)
| 按位或 对应位有 1 则为 1,全 0 则为 0 指定位置 1(其余位不变) 将 t 的 bit0 置 1: t |= (1 << 0)
~ 按位取反 对应位 bit 翻转(0 变 1,1 变 0) 批量位翻转 翻转 t 的所有位: t = ~t
^ 按位异或 对应位相同为 0,不同为 1 电平翻转 翻转 t 的 bit0 电平: t ^= (1 << 0)

注:①很多硬件开发都用 C 语言编程,如各种单片机、DSP、ARM 等。

②单片机的 C编程与汇编 ASM编程相比,有如下优点:

  • 对单片机的指令系统不要求有任何的了解,就可以用 C 语言直接编程操作单片机。
  • 库中包含许多标准子程序,具有较强的数据处理能力,使用方便
  • 具有方便的模块化编程技术,大大提供程序的可移植性。

③1 个字节等于 8 位(即 1B=8b 或 1Byte=8bit)

6.3 C51 扩充数据类型

例如:sfr P0=0x80;(语句的意义是,把单片机内部地址 0x80 处的这个寄存器重新起名叫 P0,以后我们在程序中可直接操作 P0,就相当于直接对单片机内部的 0x80 地址处的寄存器进行作。)

例如:sbit CY=PSW^7;"语句的意思是,将SCON 这个寄存器的次低位重新命名为 CY,以后我们要单独操作 PSW 寄存器的最高位时,便可直接操作 CY,其他雷同。(在串口等寄存器配置过程中很实用)

6.4类型转换

隐式转换:bit→char→int→long→float→signed→unsigned

显示转换(强制类型转换):()

相关推荐
’长谷深风‘2 小时前
51单片机入门(3:串口通信)
单片机·嵌入式硬件·51单片机·串口·串口通信
9稳2 小时前
基于智能巡检机器人与PLC系统联动控制设计
开发语言·网络·数据库·嵌入式硬件·plc
BackCatK Chen2 小时前
STM32U3B5/3C5深度解析:HSP加速器赋能边缘AI与DSP,超低功耗新标杆
人工智能·stm32·嵌入式硬件
_Ningye11 小时前
STM32 — 2.2 新建工程
stm32·单片机·嵌入式硬件
森利威尔电子-11 小时前
森利威尔SL3062替代 LM3485 60V降压恒压芯片
单片机·嵌入式硬件·集成电路·芯片·电源芯片
_Ningye11 小时前
STM32 — 3.1 GPIO输出
stm32·单片机·嵌入式硬件
学嵌入式的小杨同学12 小时前
STM32 进阶封神之路(十九):ADC 深度解析 —— 从模拟信号到数字转换(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
青桔柠薯片12 小时前
51单片机(STC89C52RC)学习总结:从裸机编程到外设驱动
嵌入式硬件·学习·51单片机
weiyvyy12 小时前
从开发视角看硬件接口:接口开发的本质与全景图
驱动开发·单片机·嵌入式硬件·硬件工程