硬件开发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://www.pswp.cn/web/95411.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis核心数据类型解析——string篇

Redis的常见数据类型Redis 提供了 5 种数据结构&#xff0c;理解每种数据结构的特点对于 Redis 开发运维⾮常重要&#xff0c;同时掌握每 种数据结构的常⻅命令&#xff0c;会在使⽤ Redis 的时候做到游刃有余。预备在正式介绍 5 种数据结构之前&#xff0c;了解⼀下 Redis 的⼀…

爬虫逆向--Day20Day21--扣JS逆向练习【案例4:深证信服务平台】

一、案例【深证信数据服务平台】案例地址链接&#xff1a;https://webapi.cninfo.com.cn/#/marketDataDate案例爬取链接&#xff1a;https://webapi.cninfo.com.cn/api/sysapi/p_sysapi10071.1、入口定位当进行入口定位时&#xff0c;我们首先需要进行查看响应、载荷、请求头是…

ExcelJS实现导入转换HTML展示(附源码可直接使用)

目录 简介 开始实践 难点 文件示例 效果预览 具体实现 安装 完整代码 总结 简介 在日常工作中&#xff0c;我们可能会遇到需要上传并展示 Excel 文件的需求&#xff0c;实现文件内容的在线预览。 这里给大家接收一个组件库exceljs&#xff0c;这个组件库进过实践发现…

ECDH和数字签名

文章目录一、核心区别&#xff1a;目的完全不同二、协同工作关系&#xff1a;缺一不可的安全组合三、技术结合点&#xff1a;都基于ECC(椭圆曲线密码学)ECDH&#xff08;椭圆曲线迪菲-赫尔曼密钥交换&#xff09;和数字签名&#xff08;如ECDSA&#xff0c;椭圆曲线数字签名算法…

withCredentials(简单说:带不带凭证)

一、withCredentials是什么&#xff1f;withCredentials 是浏览器 XMLHttpRequest 或 Fetch API&#xff08;以及 axios 等基于它们的库&#xff09;中的一个配置项&#xff0c;作用是控制跨域请求时是否携带 Cookie、HTTP 认证信息等凭证。用更通俗的方式解释&#xff1a;二、…

window系统使用命令行来安装OpenSSH服务器或客户端

可以通过 PowerShell 命令行来安装&#xff0c;这种方式更直接可靠&#xff1a;以管理员身份打开 PowerShell&#xff1a; 按下 Win S 搜索 “PowerShell”右键点击 “Windows PowerShell”&#xff0c;选择"以管理员身份运行"安装 OpenSSH 客户端&#xff1a; Add-…

vim中常见操作及命令

在 Vim 中为所有行的行首添加相同字符&#xff0c;可以使用以下方法&#xff1a; 方法1&#xff1a;使用 :%s 替换命令&#xff08;推荐&#xff09; vim :%s/^/要添加的字符/ 例如要在所有行首添加 #&#xff1a;vim :%s/^/#/ 方法2&#xff1a;使用块选择模式&#xff08;可视…

开发使用mybatis是用混合模式还是全注解模式

在使用 MyBatis 开发项目时&#xff0c;Mapper 接口是为数据库操作提供最直观的方法&#xff0c;但在实现方式上&#xff0c;我们有两种选择&#xff1a;全注解模式和混合模式。那么&#xff0c;他们有什么区别&#xff0c;应该如何选择&#xff1f;我们一起来讨论一下。一、全…

WS2812灯带效果设计器上位机

软件使用方法介绍&#xff1a;bilibili地址 【免写单片机代码WS2812灯带效果设计软件-哔哩哔哩】 https://b23.tv/xFhxMGm

Docker 容器(二)

Docker四、Docker容器数据卷1.数据卷的主要特点2.卷的共享与继承&#xff08;1&#xff09;卷的共享&#xff08;Sharing&#xff09;(2) 卷的继承&#xff08;Inheritance&#xff09;3.数据卷运行实例五、Dockerfile1.Dockerfile2. 创建一个名为 myubuntu的自定义镜像第 1 步…

PCB基础细节--工艺篇

pcb基础细节&#xff08;工艺篇&#xff09; 1. 孔与焊盘2. PCB各层之间的作用3. 阻抗匹配 3.1. 什么是传输线&#xff1f;我们只看特性阻抗&#xff0c;时延以后再说。 在画原理图时&#xff0c;我们把电阻&#xff0c;电容&#xff0c;电感是抽象成一个点了。两边加一个电压&…

信创服务器总死机原因及解决办法

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01;最近有个项目使用信创的服务器&#xff0c;总是出现死机的情况&#xff0c;联系厂家检查了一下&#xff0c;说是沐创网卡固件较低造成的&#xff0c;让移除网卡或升级固件尝试一下。记得5月份按厂家的说法处理过一台&am…

03_网关ip和端口映射(路由器转发)操作和原理

网关ip和端口映射&#xff08;路由器转发&#xff09;操作和原理IP 与端口映射配置全指南&#xff1a;2 种方案搞定外网访问内网一、先搞懂&#xff1a;为什么需要 IP 与端口映射&#xff1f;二、方案一&#xff1a;路由器端口映射&#xff08;适合有公网 IP&#xff0c;长期稳…

「数据获取」《安徽建设统计年鉴》(2002-2007)(2004、2006缺失)(获取方式看绑定的资源)

01、数据简介《安徽建设统计年鉴》是一部全方位反映安徽省建设事业发展变迁的重要统计资料著作。该书系统收集并精心整理了 2006 年度安徽省城乡建设领域的核心统计数据&#xff0c;涵盖城乡建设固定资产投资、建筑业发展态势、城镇建设推进情况等多个关键方面&#xff0c;为政…

Python/JS/Go/Java同步学习(第一篇)格式化/隐藏参数一锅端 四语言输出流参数宇宙(附源码/截图/参数表/避坑指南/老板沉默术)

&#x1f91d; 免骂声明&#xff1a; 本文四语言输出流参数经本蜀黎实战整理&#xff0c;旨在提供快速参考指南&#x1f4dd;因各语言版本迭代及不同系统环境差异&#xff0c;偶尔可能出现整理不全面之处&#xff0c;实属正常✅欢迎理性交流补充&#xff0c;喷子勿喷——毕竟你…

人工智能助力流感疫苗选择:MIT 团队推出 VaxSeer 系统

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

使用 qmake 生成 Makefile,Makefile 转换为 Qt 的 .pro 文件

使用 qmake 生成 Makefile 的完整指南 qmake 是 Qt 提供的构建工具&#xff0c;用于从 .pro 项目文件生成 Makefile。以下是详细的使用方法&#xff1a; 基本使用方法 1. 从 .pro 文件生成 Makefile bash qmake -o Makefile your_project.pro2. 直接运行 qmake&#xff08;自动…

利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序

让他分别用100*10000个单元格有100、1000、10000个不同的1-200字符长的大写英文字母字符串测试. 一开始DeepSeek没有找到启用sharedStrings.xml的写xlsx模块&#xff0c;我自己找了pyxlsbwriter的例子告诉他才改好的。 import os import time import random import string impo…

【C++框架#2】gflags 和 gtest 安装使用

spdlog 安装和使用 1. 概述 介绍&#xff1a;spdlog 是一个高性能、超快速、零配置的 C 日志库&#xff0c;它旨在提供简洁的 API 和丰富的功能&#xff0c;同时保持高性能的日志记录。它支持多种输出目标、格式化选项、线程安全以及异步日志记录。 github 链接&#xff1a;htt…

平衡掌控者-游戏数值战斗设计

一、有效生命值1、计算公式有效生命生命值/&#xff08;1-伤害减免率&#xff09;/&#xff08;1-闪避率&#xff09;2、前摇和后摇对数值来说&#xff0c;战斗由两大模块组成&#xff0c;一个是战斗公式生效前的战斗攻击流程&#xff0c;一个是战斗公式与自身流程。比如说&…