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

【单片机day01】

什么是嵌入式?

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

  • 以应用为中心:消费电子(手机、蓝牙耳机、智能音响)、医疗电子(心率脉搏、呯吸机),无人机(大疆DI),机器人(人形四足机器人)
  • 计算机技术:
    • 计算机五大组成:运算器(数据运算)、控制器(指令控制)、存储器(内存 外存)、输入设备(鼠标、键盘、摄像头)、输出设备(显示器)
      • 软件:编程语言(C/C++)、操作系统(Linux 文件、多任务、网络)、数据结构、数据库
      • 硬件:
        • 51单片机:硬件概念(定时器、PWM、中断)、原理图、寄存器、外设操作(LED、按键、数码管、蜂鸣器、传感器)
        • STM32:库开发(标准库、HAL库)
        • ARM:英国公司 设计处理器芯片方案,SAMSUNG、ATMEL、NXP->ARM芯片方案->开发板(ARM)
    • CortexA:应用高端领域,处理复杂任务,用来跑操作系统(Linux 文件系统 多任务调度 网络)
    • CortexR:应用实时控制领域,实时性要求高(汽车电子)
    • CortexM:应用微控制器领域,MCU单片机(IOT物联网智能家居控制领域)
  • 软硬件可裁剪:加入需要的硬件/软件功能,将不需要的硬件/软件裁剪掉(低功耗、低成本)
  • 计算机:
    • 通用型计算机:PC、平板、手机
    • 专用型计算机:无人机,完成某项特定功能而设计计算机

51单片机

1980年,由Intel公司MCS-51系列:8051型号单片机(工业控制领域),由MCU转型到CPU
Atmel(AT89C51)、Philip(P89V51系列单片机,增强型单片机 ISP在线编程)、STC 宏晶半导体(STC89C51   STC89C52  STC89C52RC)

相关概念

  • CPU:Central Processing Unit(中央处理器)数据运算、指令处理,CPU性能越高,完成指令处理和数据运算的速度越快
  • MCU:Micro Ctronler unit(微控制器),集成度比较高,将所有功能集成到芯片中(CPU、RAM、ROM、定时器、UART、O),简单控制,成本低
  • MPU: Micro Processing Unit(微处理器),集成度低,只有一块单独的CPU,需外接外设、存储模块,复杂应用领域,跑Linux操作系统,成本高
  • GPU:Graphics Processing Unit(图形处理器),图形处理、图形渲染(GPU性能越好,图形显示的质量越好)
  • NPU:NeuralProcessing Unit(神经网络处理器),A|推理、硬件加速,神经网络处理(卷积运算)->华为Mate60 达芬奇NPU AI自动优化照片
  • FPU:Floating Point Unit(浮点数运算单元),完成浮点数的运算和处理(完全遵循IEEE 754),大部分集成在CPU内部
  • SOC:System On Chip(片上系统),集成度比较高,将多个芯片集成到一块芯片上(存储芯片、外设芯片)

RAM和ROM

  • 外存:主要存放程序、代码、指令,掉电数据不丢失,读写速度慢,价格便宜(移动硬盘 1T 300)
  • 内存:主要存放程序运行过程中的临时变量、掉电数据丢失,读写速度快,价格易贵(内存条 16G 300)
  • ROM:Read-Only Memory,只读存储器,存放单片机程序,指令,掉电数据不丢失
  • RAM:Random Access Memory,随机访问存储器,存放临时变量、临时数据,掉电数据丢失

单片机内部结构

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

三大总线:

  • 地址总线:用来寻找RAM中的地址,寻址的最大范围是2^8,256byte, 是单向的。用于指定存储单元或IO端口的地址
  • 数据总线:通过地址总线去获取数据,数据交互是双向的,用于CPU与内存/外设之间的数据交换
  • 控制总线:时序控制、IO控制。传输控制信号,如读写信号、终端请求、时钟等。

单片机RAM大小:一般只有几百字节到几十kb。8051单片机只有128B/256B RAM,而现代ARM Cortex-M系列MCU有几KB到击败KB RAM。

原理图

  • MCU单片机芯片:STC89C52RC、DIP40 封装:双列直插式,40个引脚,划分成4组(端口 寄存器 unsigned char P2;)
  • 网络编号:在实际电路中的一个编号,避免物理连线,相同网络的编号的引脚在实际电路中是彼此互通

LED模块:

  • 发光二极管:具有单向导通性,分为共阳极和共阴极二极管
  • 单向导通性:阳极接高电平,阴极接低电平。电流从阳极到阴极流动,LED灯就会被点亮
  • 共阳极发光二极管特性:
    • 所有阳极接电源正极VCC,阴极接单片机的引脚,点亮方式:给阴极输入低电平,低电平点亮。
  • 共阴极发光二极管特性:
    • 所有阴极接地GND,阳极接单片机的引脚,点亮方式:给阳极输入高电平,高电平点亮。常用于共阴数码管

位运算

  • |   :将二进制中的对应位的bit进行比较,有1则1,全为0才是0

应用场景:指定位置1

  • &  :将二进制中的对应位的Bit进行比较,全为1则为1,有0则0

应用场景:指定位清0

  • ^  :将对应的Bit进行比较,相同为0,相异为1。

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

  • 安装Keil4软件
    • 点击"Project"  -> "New Project"  -> 选择路径 (为工程起一个名字)
    • 选择单片机芯片型号:Atmel->AT89C51,点击"否",不拷贝启动代码
    • 向Group中添加C语言文件:  点击左上方text按钮,ctrl + S将文件保存到工程对应的目录(为文件起一个名字,如 main.c),双击左侧Grpup,点击Add 将文件加入到对应的Group下
  • 编写单片机程序:
    •  #include <reg51.h>, 加入51单片机头文件
    • 需要加入while(1)避免程序跑飞
  • 编译单片机程序:
    • 点击"Target Options"按钮,点击"Output"选项中的"Create HEX FILE"选项,生成hex文件
    • 点击左上方"Build"编译单片机工程
    • 会在对应目录下生成xxx.hex十六进制文件
  • 下载单片机程序
    • 打开ISP软件,连接串口线
    • 选择单片机芯片型号:STC89C52/C51/C52RC
    • 根据串口识别的端口号,选择对应的端口  COM4
    • 选择"打开程序文件" -> 对应目录下的hex文件
    • 点击"下载/编程"按钮,将单片机复位后程序即可下载到单片机ROM中

数码管

  • 数码管:51单片机搭载一个4位共阴极数码管,每一位数码管可以显示一些独立数值,数码管同一时刻只能显示一位

  • 分类:共阴极(高电平点亮)、共阳极(低电平点亮)

  • 位选:选中某一位数码管(将P1寄存器对应bit位置1)

  • 段选:显示具体数字

  • 静态显示:单片机控制一个数码管,直接输出段码。

  • 动态显示:多位数码管共享段线,通过 段选 + 位选,快速轮流点亮不同位。


文章转载自:

http://VLTWwXjT.ktcfL.cn
http://Jmb8nQm5.ktcfL.cn
http://bqdLOb8w.ktcfL.cn
http://uyO63uFF.ktcfL.cn
http://DEoxKFbs.ktcfL.cn
http://t673xA8q.ktcfL.cn
http://Dh3tmUTp.ktcfL.cn
http://QrMB4rxC.ktcfL.cn
http://1i5kvXjY.ktcfL.cn
http://Zsk0zwWW.ktcfL.cn
http://VqWVKXI2.ktcfL.cn
http://KsWuAUwF.ktcfL.cn
http://Gw6BZbTC.ktcfL.cn
http://gTfYJbuA.ktcfL.cn
http://gSfXjT5t.ktcfL.cn
http://VkXZY26o.ktcfL.cn
http://jgfEPzpM.ktcfL.cn
http://isQ80syo.ktcfL.cn
http://1xsEOnLg.ktcfL.cn
http://f5jiafg0.ktcfL.cn
http://UR7duV65.ktcfL.cn
http://dxIRN3RV.ktcfL.cn
http://LZTkK3yJ.ktcfL.cn
http://Fe4o2rXa.ktcfL.cn
http://qKcS2KDj.ktcfL.cn
http://tzSb2Y9e.ktcfL.cn
http://oQBQY0o4.ktcfL.cn
http://rxJKPi1R.ktcfL.cn
http://005ljnA3.ktcfL.cn
http://UK23x9LG.ktcfL.cn
http://www.dtcms.com/a/364105.html

相关文章:

  • 第二章:技术基石:写出“活”的代码(1)
  • 什么时候需要使用虚继承,什么是菱形继承
  • HI3519DRFCV500/HI3519DV500海思核心板IPC算力2.5T图像ISP超高清智能视觉应用提供SDK软件开发包
  • 平衡车-ADC采集电池电压
  • 从 Arm Compiler 5 迁移到 Arm Compiler 6
  • HandyControl 解决不全局引入控件部分内容不显示问题
  • 论文学习30:LViT: Language Meets Vision Transformerin Medical Image Segmentation
  • 给大模型开卷考试的机会——写给开发者的 RAG 技术入门
  • 2025年女性最实用的IT行业证书推荐:赋能职业发展的8大选择
  • Shell编程从入门到实践:基础语法与正则表达式文本处理指南
  • RPM 构建错误: /var/tmp/rpm-tmp.gAmM5N (%prep) 退出状态不好,怎么办
  • HBuilder X 4.76 开发微信小程序集成 uview-plus
  • 关于IDE的相关知识之一【使用技巧】
  • GFSK信号生成算法原理详解
  • 避免侵权!这6个可免费下载字体网站能放心商用
  • 「数据获取」《安徽建设统计年鉴》(2002-2007)(2004、2006缺失)(获取方式看绑定的资源)
  • 【世纪龙科技】汽车专业数字化课程资源包-虚拟仿真实训资源建设
  • MYSQL配置复制拓扑知识点
  • 告别集成烦恼!H-ZERO iframe 支持第三方系统 / AI 助手轻松接入
  • 【机器学习入门】5.3 线性回归原理——从模型定义到参数求解,手把手带练
  • 模型常见训练超参数介绍(1)
  • Vue.js 中深度选择器的区别与应用指南
  • Corrosion: 1靶场渗透
  • 新手也能轻松选!秒出PPT和豆包AI PPT优缺点解析
  • 自学嵌入式第三十三天:网络编程-UDP
  • SpringMVC的RequestMapping注解与请求参数绑定
  • 六、结构化开发方法
  • 《2025年AI产业发展十大趋势报告》三十五
  • MySQL数据库——概述及最基本的使用
  • Netty从0到1系列之NIO