硬件开发1-51单片机1

发布于:2025-09-03 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、嵌入式

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


网站公告

今日签到

点亮在社区的每一天
去签到