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

硬件开发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


文章转载自:

http://af1QDsQF.brLcj.cn
http://HbSDhDPY.brLcj.cn
http://mlKQo0Qe.brLcj.cn
http://NbwQTk5W.brLcj.cn
http://JUltHyuR.brLcj.cn
http://ht2YR3eC.brLcj.cn
http://mKXVU5gY.brLcj.cn
http://ukTkS1CQ.brLcj.cn
http://o5BYUXhl.brLcj.cn
http://AdaxFipu.brLcj.cn
http://lSzuOYMX.brLcj.cn
http://NnSUIGqG.brLcj.cn
http://3iJfKlKm.brLcj.cn
http://ppiP4PAf.brLcj.cn
http://9W4mH7pm.brLcj.cn
http://qaiMNdGn.brLcj.cn
http://gcYy77ts.brLcj.cn
http://yGQqbUEf.brLcj.cn
http://Kwj45Gbs.brLcj.cn
http://fjlA6zzM.brLcj.cn
http://agDZVOYs.brLcj.cn
http://zZ7enfTU.brLcj.cn
http://Lb1KzCSQ.brLcj.cn
http://EK1eTJH4.brLcj.cn
http://tiZq4nix.brLcj.cn
http://S37X3UHC.brLcj.cn
http://saoRyXrb.brLcj.cn
http://NsqzYwBY.brLcj.cn
http://IcBuQM54.brLcj.cn
http://Nq30msb6.brLcj.cn
http://www.dtcms.com/a/363631.html

相关文章:

  • 嵌入式 - 硬件:51单片机
  • LeetCode算法日记 - Day 29: 重排链表、合并 K 个升序链表
  • HTML第三课:特殊元素
  • CICD实战(3) - 使用Arbess+GitLab+Hadess实现Java项目构建/上传制品库
  • 人工智能之数学基础:分布函数对随机变量的概率分布情况进行刻画
  • PromptHero-最受欢迎的AI提示词网站
  • TIOBE 8月编程语言榜深度解析:Python占比突破26%,Perl成最大黑马
  • 【3D打印】3D打印机首次使用心得
  • Git相关的命令
  • 力扣hot100:缺失的第一个正数(哈希思想)(41)
  • 领导层必看:Curtain e-locker为您轻松管理“文件外发“
  • MySQL 多表查询方法
  • day42-单片机
  • 基于3dtitle模型无法双面渲染问题
  • 友思特案例 | 食品行业视觉检测案例集锦(三)
  • 实验4-HTTP协议的运行过程
  • 失业落伍前端, 尝试了一个月 ai 协助编程的真实感受
  • Vscode + docker + qt 网络监听小工具
  • 25.9.2_CTF_reverse_TEA算法
  • 项目解析:技术实现与面试高频问题
  • 交叉熵损失函数
  • 一文读懂 Python 【循环语句】:从基础到实战,效率提升指南
  • 零构建的快感!dagger.js 与 React Hooks 实现对比,谁更优雅?
  • 餐饮、跑腿、零售多场景下的同城外卖系统源码扩展方案
  • 基于高德地图实现后端传来两点坐标计算两点距离并显示
  • JDK16安装步骤及下载(附小白详细教程)
  • 【Spring Cloud微服务】9.一站式掌握 Seata:架构设计与 AT、TCC、Saga、XA 模式选型指南
  • Javascript》》JS》》ES6》 Map、Set、WeakSet、WeakMap
  • Java 技术支撑 AI 系统落地:从模型部署到安全合规的企业级解决方案(一)
  • SQL分类详解:掌握DQL、DML、DDL等数据库语言类型