嵌入式软件--51单片机 DAY 1

news2024/9/20 6:18:56

一、单片机

1.单片机概念

51单片机(或称8051单片机)原是指1980年由Intel公司推出的一种8位微控制器系列,现在更多的指实现了8051指令集(单片机的“语言”)的一系列单片机。8位指的是寄存器的位数和数据总线的位数,内部的ALU也是8位的,一次操作能处理8位的数据。32位指的是寄存器是32位的,也是同样的道理。

2.命名规范

比如:STC89C52RC-40I-LOFP44

STC   89  C  52  R  C  -  40       I-LOFP  44

STC:生产公司的简写

89:内核单片机的具体型号

C:工作电压 高电压 5.5V-3.3V     L:低电压3.6V-2.0V

52:程序空间大小,可以理解为电脑的硬盘,存放用户数据,断电不丢失。

RC  RAM大小,RC是512字节,RD+是1280字节

40 工作频率  25 40 50个标准,单位是兆赫兹。

I 工作温度 工业级 -40到-85度   C:商业级,0°C到70°C

LOFP:封装类型

44:管脚数

3.引脚

电源引脚:VCC、Gnd,用于为单片机供电

复位引脚:RST ,重启

时钟引脚:XTAL1,XTAL2 用于连接时钟源,为单片机提供时钟信号

通用输入输出引脚:GPIO  P0--P4。即可读取外部数据,也可输出。

4.开发环境

嵌入式的开发环境需要两个部分,软件和硬件。

我们所学的51单片机所需的开发板分为核心板和扩展板。

核心板3D渲染图:

核心板与扩展板焊接相连,保证合格。

软件开发环境

Keil是一个运行在Windows系统中的单片机集成开发环境(Integrated Development Environment),其提供了代码编辑、代码编译、仿真和调试等功能。

官网的下载地址为:Keil Embedded Development Tools for Arm, Cortex-M, Cortex-R4, 8051, C166, and 251 processor families.

STC-ISP是STC专门为STC芯片设计的烧录工具。

官方下载地址为:http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.92A.zip

5.使用

VScode也可以安装拓展EIDE来编译51单片机程序。

编译成功的程序。可以在硬盘中找到hex文件。用STC(用typeC线连接电脑与单片机芯片),打开程序烧录进单片机芯片,便可以使用了。

二、案例

1.闪烁LED

LED1每秒钟闪烁一次!

思路:我们通过原理图知道,与LED灯相连的芯片引脚为P00。想让LED1闪烁,只需让P00的值不断地在0和1之间循环变化即可。

#include <STC89C5xRC.H>
#include "Com_Util.h"
#define LED1 P00
void main()
{
    while (1)
    {
       LED1=~LED1;
       Com_Util_Delay1ms(100);//循环闪烁,延迟100毫秒
    }

}

2.流水灯

p00=0亮,=1灭,其他引脚亦是如此。

我们先定义一个中间值,temp,让temp=0x01(0000 0001)。让p0=~temp=0xFE(1111 1110),p0最低位为0,如此LED1亮,其他不亮。之后让temp继续左移(0000 0010),P0=1111 1101,LED2亮。如此循环往复。等到temp=1000 0000,p0=0111 1111,最后一个灯亮起,最后再让temp=0x01,继续循环。再一次让temp=0x01时,p0=0x7F

#include <STC89C5xRC.H>
#include "Com_Util.h"
void main()
{
       u8 temp=0x01;//0000 0001
       while(1)
       {
       P0=~temp;//1111 1110
       temp<<=1;//0000 0010
       Com_Util_Delay1ms(100);
       if(P0==0X7F)
       {
        temp=0x01;
       }
       }
      while (1){

      }
      
      
}

3.正反来回灯

让LED灯来回流走。

我们已经知道,temp=10000 0000,p0=1111 1111灯光闪烁已经到了尽头。如果要实现来回走。就要在p0=1111 1111时,变为p0=0111 1111,这就需要temp=1000 0000.如果想要跳出循环,可以设置变量,利用两个死循环的分别让正反两种走法实现。

#include <STC89C5xRC.H>
#include "Com_Util.h"
void main()
{
       u8 temp=0x01;//0000 0001
       u8 tamp=0x80;//1000 0000
       u8 a=1,b=1;
       while(a)
       {
       P0=~temp;//1111 1110
       temp<<=1;//0000 0010
       Com_Util_Delay1ms(100);
      if(P0==0x7F)
      {
        temp=0x01;
        a=0;
      }
       }
      while (b){
      P0=~tamp;
      tamp>>=1;
       Com_Util_Delay1ms(100);
       if(P0==0xFE)
       {
        tamp=0x80;
        b=0;
       }
      }
      
      
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098668.html

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

相关文章

分贝通助力云天励飞“甩掉”每月报销烦恼

技术创新和应用落地两手抓,已经是每一家人工智能企业突破瓶颈、快速发展的共同选择。可在组织的日常运营中,如何提升创新效率,保证项目建设又快又好完成,人效是关键。作为国内领先的人工智能企业,云天励飞率先选择从费用支出的角度寻找人效升级突破。 企业介绍 云天励飞成立于…

confluent-kafka

confluent-kafka pip3 install confluent-kafkaProducer.py from confluent_kafka import Producer# Kafka 配置 config {bootstrap.servers: 10.10.x.x:3082,security.protocol: SASL_PLAINTEXT,sasl.mechanism: SCRAM-SHA-512,sasl.username: kafka-974a3a34-bpxuser1,sas…

SAP物料帐结账操作

1. CKMLCP 实际物料帐运行 备注&#xff1a;执行最后一步过帐结帐时&#xff0c;MMPV允许记帐结帐期间和结帐的下一期间&#xff0c;同时OB52会计期间要允许记帐到这两个期间。 2. FAGLB03 查询材料成本差异余额 物料分类帐运行前总帐余额 物料分类帐运行后总帐余额 备注&…

模具配件加工精度的重要性及如何实现高精度加工?

在现代工业生产的舞台上&#xff0c;模具配件加工如同一位技艺精湛的工匠&#xff0c;以精度至上为准则&#xff0c;为各类模具赋予了优越的品质保障。时利和将详细阐述模具配件加工精度的重要性以及如何实现高精度加工! 一、精度&#xff1a;模具配件的灵魂 模具配件的精度是其…

语音测试(一)视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav

92. UE5 GAS RPG 使用C++创建GE实现灼烧的负面效果

在正常游戏里&#xff0c;有些伤害技能会携带一些负面效果&#xff0c;比如火焰伤害的技能会携带燃烧效果&#xff0c;敌人在受到伤害后&#xff0c;会接受一个燃烧的效果&#xff0c;燃烧效果会在敌人身上持续一段时间&#xff0c;并且持续受到火焰灼烧。 我们将在这一篇文章里…

【最新华为OD机试E卷】猜字迷(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

计算机网络 数据链路层1

数据链路层&#xff1a; 服务&#xff1a;将来自网络层的数据传输到相邻节点的网络层 作用&#xff1a;加强物理层传输原始比特流的功能 封装成帧---组帧&#xff1a;将来自网络层的数据在首尾添加特定信息(帧定界&#xff1a;帧的起始&#xff0c;结束) 差错控制 CRC循环冗余…

Springboot快速创建的两种方法(简单易学)

方式一&#xff1a;使用网站https://start.spring.io/快速创建 直接在浏览器中输入以上网址&#xff0c;进入创建Springboot项目页面&#xff0c;根据需要勾选一些选项&#xff0c;然后下载到本地即可。 方式二&#xff1a;在IDEA中创建 步骤 创建Maven项目 导入spring-bo…

Spring boot整合接入Redis

Spring boot简单接入Redis 1.pom文件中引入redis <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.yml文件redis属性配置 spring:redis:host: 120.4…

小北使用Python和pyecharts对我校通信学院2024大数据专业就业情况进行中国地图可视化

引言 在数据分析领域&#xff0c;地图可视化是一种直观展示数据分布和趋势的有效方式。然而&#xff0c;当我们面对如“2020-2024届近5年通信就业数据”这样的数据集时&#xff0c;挑战也随之而来。这些数据通常包含就业单位名称和对应的学生信息&#xff0c;但缺乏直接的地理位…

MyBatis-SQL-语句执行流程

已查询为例 首先我们可以看到&#xff0c;在查询的时候Mapper对象已经是被代理过后的&#xff1a; 所以会执行invoke方法&#xff0c;其底层实现就是JDK的动态代理&#xff1a; 如下图所示&#xff0c;如果MethodCache里面存在方法&#xff0c;则判断这个方法是否为default方…

STM32:TIM中断配置应用(1)呼吸灯:库函数讲解笔记+代码讲解笔记

声明&#xff1a;本博客为哔哩哔哩up主江协科技 “STM32入门教程”的听课笔记&#xff0c;仅供学习、参考使用&#xff0c;不得用作其他用途&#xff0c;违者必究。如有版权问题&#xff0c;请联系作者修改。 目录 一、综述 二、TIM库&#xff08;有关输出比较的函数&#x…

【如何下载Landsat数据】

下载Landsat数据可以通过多种途径实现&#xff0c;主要包括使用官方网站、第三方平台和专门的软件库等。以下是一些常用的方法&#xff1a; 1. 使用USGS官方网站 EarthExplorer&#xff08;earthexplorer.usgs.gov&#xff09; 注册账号&#xff1a;首先&#xff0c;需要在…

10-python格式化字符串的四种方法(%,format,f-string,string template)

3 f-string (格式化字符串) in Python 自 Python 3.6 引入以来,f-string 提供了一种更加简洁和直观的方式来进行字符串格式化。其语法简单明了:只需在字符串前加上字母 f 或 F,并在字符串中使用 {} 来包裹需要插入的内容。 它相比于之前的%格式化和字符串format方法写起来更…

【R语言】基于Biomod2集成平台探究物种分布区的构建流程(SDMs)(持续更新中。。。。。。)

Species Distribution Models 1.写在前面2.物种分布模型介绍3.输入数据准备及预处理3.1.如何从GBIF网站上获取分布点数据&#xff08;基于rgbif包&#xff09;3.2.分布点稀疏处理&#xff08;基于spThin函数&#xff09;3.3.如何获取环境变量数据&#xff08;基于getData函数&a…

兴业月报|八月法拍房市场套均成交折扣降至6.9折

导读 8月北京法拍房成交房源233套&#xff0c;成交总金额18.2891亿元&#xff0c;套均成交价784.94万元&#xff0c;总参拍人数890人&#xff0c;套均参拍人数3.81人&#xff0c;套均成交折扣6.9折。 ——兴业数据中心 2024年八月北京法拍房市场详细数据报告 2024.03-2024.0…

计算机网络 第1章 概述

文章目录 计算机网络概念计算机网络的组成计算机网络的功能三种数据交换技术电路交换&#xff08;Circuit Switching&#xff09;报文交换&#xff08;message&#xff09;分组交换 三种交换方式性能对比计算机网络的分类计算机网络的性能指标性能指标1&#xff1a;速率性能指标…

【mysql】mysql查询机制 调优不止是索引调优

前言&#xff1a;说到mysql调优 我们第一反应都是想到索引调优 应该这是最基本的 也是至关重要的&#xff1b;一般工作个两年 索引调优都可以掌握的八九不离十&#xff0c;相关数据结构特点也都能说个一二出来&#xff0c;所以本文重点是讲述其它机制 整体架构 连接器&#xff…

【C++】手动实现String类的封装(分文件编译)

实现了String类的大部分封装&#xff0c;采用分文件编译 //mystring.h #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> #include <cstring> using namespace std;class myString { private:char *str; //定义一个字符串int size; //记录字符串…