硬件开发1-51单片机1

一、嵌入式

1、概念:

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

以应用为中心:
  • 系统设计的起点是 "具体应用场景",按照应用需求出发
以计算机技术为基础:
  • 硬件技术:嵌入式处理器(如 ARM 芯片)、存储器、传感器、执行器
    • 相当于 "系统的身体",负责数据计算、存储、与物理世界交互
  • 软件技术:嵌入式操作系统(如 Linux 嵌入式版、RTOS)、驱动程序、应用程序
    • 相当于 "系统的大脑",管理硬件资源、执行核心逻辑
  • 软硬件协同技术 硬件驱动适配、资源调度优化 确保软硬件高效配合,避免资源浪费
软硬件可裁剪的专用计算机系统:
  • "可裁剪" 是该系统实现 "高效、低成本、低功耗" 的核心手段,指硬件模块和软件功能可根据应用需求 "增删",不保留冗余组件
    • 降低成本、降低功耗、缩小体积、提高稳定性
  • 专用计算机系统:该系统是为某一类或某一个特定应用场景设计的 "定制化计算机",不具备通用计算机的 "多场景兼容能力"

以具体应用需求为出发点,依托计算机软硬件技术,通过裁剪冗余组件,为特定场景(如智能设备、工业控制、汽车电子)打造的'专机专用、高效精简'的定制化计算机系统",其本质是 "用最小的资源(成本、功耗、体积)满足特定应用的核心需求",这也是嵌入式系统区别于通用计算机的核心特征

二、51单片机

1、起源与发展

基于冯・诺依曼架构,通过执行存储在内部程序存储器中的指令,实现对数据的处理和外部设备的控制

1980年,由Intel公司MCS-51系列:8051型号单片机(工业控制领域),由MCU转型到CPU

Atmel(AT89C51)、Philip(P89V51系列单片机,增强型单片机 ISP在线编程)、STC 宏晶半导体(STC89C51 STC89C52 STC89C52RC)

2、相关概念

CPU:Central Processing Unit(中央处理器)数据运算、指令处理,CPU性能越高,完成指令处理和数据运算的速度越快

MCU:Micro Ctronller Unit(微控制器),集成度比较高,将所有功能集成到芯片中(CPU、RAM、ROM、定时器、UART、IO),简单控制, 成本低

MPU:Micro Processing Unit(微处理器),集成度低,只有一块单独的CPU,需外接外设、存储模块,复杂应用领域,跑Linux操作系统,成本高

GPU:Graphics Processing Unit(图形处理器),图形处理、图形渲染(GPU性能越好,图形显示的质量越好)

NPU:Neural Processing Unit(神经网络处理器),AI推理、硬件加速,神经网络处理(卷积运算)-> 华为Mate60 达芬奇NPU AI自动优化照片

FPU:Floating Point Unit(浮点数运算单元),完成浮点数的运算和处理(完全遵循IEEE 754),大部分集成在CPU内部

SOC:System On Chip(片上系统),集成度比较高,将多个芯片集成到一块芯片上(存储芯片、外设芯片)

3、RAM和ROM

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

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

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

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

4、单片机芯片内部结构:

CPU、RAM、ROM、Timer、PWM、IO、中断、UART

CPU(中央处理器)

单片机的核心运算和控制单元,负责指令的读取、译码和执行,处理算术运算(加、减、乘、除等)和逻辑运算(与、或、非等),并协调内部各模块的工作。51 单片机的 CPU 为 8 位,一次可处理 8 位二进制数据。

RAM(随机存取存储器)

用于临时存储程序运行过程中的变量、中间结果和堆栈数据,特点是读写速度快,但断电后数据会丢失。

ROM(只读存储器)

用于存储用户编写的程序代码和固定数据,断电后数据不会丢失。

Timer(定时器 / 计数器)

兼具定时和计数功能:

定时模式:通过内部时钟脉冲计数,实现精确延时(如毫秒级、秒级定时),用于控制 LED 闪烁频率、周期性采样等。

计数模式 :对外部输入引脚的脉冲信号计数,可用于测量频率、统计脉冲个数等。

51 单片机通常包含 2 个 16 位定时器 / 计数器(T0、T1),增强型可能增加更多。

PWM(脉冲宽度调制)

部分单片机集成 PWM 模块(或可通过定时器模拟),通过输出占空比可调的方波信号,实现对外部设备的无级调速或调压(如控制电机转速、LED 亮度)。占空比越大,输出平均电压越高。

IO(输入 / 输出端口)

单片机与外部设备交互的接口,通常为并行端口(如 51 单片机的 P0~P3 口),可配置为输入或输出模式:

输出:通过控制引脚电平(高电平 / 低电平)驱动 LED、继电器等。

输入 :读取外部信号(如按键状态、传感器数据)。

部分 IO 口还可复用为其他功能(如串口、定时器引脚)。

中断系统

用于响应外部或内部紧急事件的机制,可暂停当前程序,优先执行中断服务程序,处理完毕后返回原程序。常见中断源包括:外部引脚触发(如按键中断)、定时器溢出、串口数据收发等。51 单片机支持 5 个中断源(基础型号),增强型可扩展更多。

UART(通用异步收发传输器)

用于串行通信的接口,通过一根发送线(TXD)和一根接收线(RXD)实现单片机与其他设备(如电脑、传感器、另一块单片机)的异步数据传输,无需时钟线同步,广泛应用于数据监控、指令交互等场景

5、原理图

HC6800-MS原理图

MCU单片机芯片:

STC89C52RC、DIP40 封装:双列直插式,40个引脚,划分成4组(端口 寄存器 unsigned char P2;)

网络编号:在实际电路中的一个编号,避免物理连线,相同网络的编号的引脚在实际电路中是彼此互通

LED模块:

发光二极管:具有单向导通性,分为共阳极和共阴极二极管

共阳极发光二极管的特性:

将所有发光二极管的阳极接到电源正极(VCC),阴极接到单片机的引脚。此时发光二级管阳极会输出高电平(VCC 5V),如果发光二级阴极输出一个低电平(0V), 阳极和阴极之间会形成一个正向的电压差,满足发光二极管的单向导通性,所以电流就会从阳极流向阴极,发光二级就被点亮

6、位运算

1、| :将二进制中的对应位的bit进行比较,如果有一个bit为1,结果为1;如果都为0,结果为0;

应用场景:指定位置1

unsigned char t = 0x64;

将bit0和bit7置1:

t |= (1 << 0) | (1 << 7);

2、& :将二进制中的对应位的bit进行比较,如果全为1,结果为1;如果有一个0,结果为0;

应用场景:指定位清0

unsigned char t = 0xFF;

将bit 0 和 bit7 清0:

t &= ~(1 << 0);

t &= ~ (1 << 7);

7、单片机程序创建、编写、编译、下载流程:

(1)安装Keil4软件

(2)点击"Project" -> "New Project" -> 选择路径 (为工程起一个名字)

(3)选择单片机芯片型号:Atmel->AT89C51,点击"否",不拷贝启动代码

(4)向Group中添加C语言文件: 点击左上方text按钮,ctrl + S将文件保存到工程对应的目录(为文件起一个名字,如 main.c),双击左侧Grpup,点击Add 将文件加入到对应的Group下

(5)编写单片机程序:

#include <reg51.h>, 加入51单片机头文件

需要加入while(1)避免程序跑飞

(6)编译单片机程序:

点击"Target Options"按钮,点击"Output"选项中的"Create HEX FILE"选项,生成hex文件

点击左上方"Build"编译单片机工程

会在对应目录下生成xxx.hex十六进制文件

(7)下载单片机程序:

打开ISP软件,连接串口线

选择单片机芯片型号:STC89C52/C51/C52RC

8、发光二极管分类及其特点

按发光颜色:单色(红 / 绿 / 蓝等,波长单一、成本低,作指示灯)、白光(混光或荧光粉实现,可调色,用于照明)、全彩(RGB 组成,可变色,供舞台 / 屏显);

按结构:直插(引脚外露、简单,作设备指示灯)、贴片(小体积、散热好,主流用)、功率型(高亮度、带散热,作强光照明)、COB(发光匀,供面板灯);

共性:节能、长寿、环保,高温易衰减需散热。

二、练习

1、点灯

2、呼吸灯

main.c

led.c

led.h

delay.c

delay.h

3、数码管显示

实现从0---9999的刷新显示

计算数字分别亮起来的对应的16进制的值

eg:显示数字 0

亮起来的分别是:a、b、c、d、e、f、

对应的二进制是:0011 1111

对应的十六进制:0x3F

其他数字依次如此

main.c

digital.c

digital.h

相关推荐
Zhao1368245539122 分钟前
DP4330A 与DP4363 测试对比
嵌入式硬件
辛迪聊物业数字化27 分钟前
智慧社区小程序落地避坑指南:3类物业方案选型+成本测算,线上服务零翻车
大数据·嵌入式硬件·百度·系统架构
电子科技圈1 小时前
Arm电机控制开发工具哪家强?
arm开发·单片机·嵌入式硬件·设计模式·软件构建
JasmineX-11 小时前
下位机直接控制57步进电机匀速转动
stm32·单片机·嵌入式硬件
聆思科技AI芯片2 小时前
【AI硬件开发上手教程】怎么使用AI编程实现小聆AI语音控制舵机
人工智能·嵌入式硬件·开源·ai编程·智能硬件
abc light2 小时前
ARM 裸机开发(6)——时钟树与定时器
arm开发·单片机·fpga开发
吠品12 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
Chery114013 小时前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
小李不想当小白16 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米16 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip