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

【蓝桥杯单片机记录】IO基础与LED控制

目录

一、IO基础

1.1 IAP15F2K61S2芯片原理图

1.2不同工作模式

二、新建工程的一些补充

2.1 keil中没有IAP15F2K61S2的头文件

解决:在isp软件中找到如下​编辑

2.2keil中的芯片选择

2.3推荐字体

三、sbit关键字

四、LED控制

4.1原理图

4.2不能直接通过IO口对LED进行控制

4.3找到“钥匙”->打开通往LED的“门”

4.3.1 74HC138译码器

4.4部分代码解读

4.5例子


一、IO基础

1.1 IAP15F2K61S2芯片原理图

  • 封装:LQFP44
  • IO数量:42 6组(P00-P07,P10-P17......),其余两个IO口 VCC供电,GND接地;
  • P10/RXD2/CCP1/ADC0 意味着单片机每个引脚有多个功能;串口2的引脚/ADC模拟信号采集/CCP的输出/普通的IO接口
  • 由于封装的限制(只有44个IO口),所以一个IO口具有多个功能;
  • P17 XTAL == 外接的晶振引脚
  • 外接晶振的需求:用外接晶振作为时钟源,比较稳定
  • 工作模式:准双向口/弱上拉(标准51模式/默认),推挽输出/强上拉,高阻输入,开漏输出

1.2不同工作模式

  • 准双向口读取外部数据,需要先锁存一个1

二、新建工程的一些补充

新建工程

2.1 keil中没有IAP15F2K61S2的头文件

解决:在isp软件中找到如下

2.2keil中的芯片选择

2.3推荐字体

三、sbit关键字

sbit L1 = P0^0; //P0可位寻址 L1=1;//P0不可位寻址 P0 = 0x01;
//sbit -> 特殊功能寄存器某一位(可位寻址)

四、LED控制

4.1原理图

4.2不能直接通过IO口对LED进行控制

控制LED,不能直接对IO口进行操作,因为P0口可以同时驱动多个外设

4.3找到“钥匙”->打开通往LED的“门”

4.3.1 74HC138译码器

  • 如果想要控制LED,那么需要给Y4置低电平,如果想要给Y4置低电平,那么就需要了解译码器的“密码”:
  • 再经过或非门,Y4C就可以置高电平“1”
  • 或非门:具有多端输入和单端输出的门电路。当任一输入端(或多端)为高电平(逻辑“1”)时,输出就是低电平(逻辑“0”);只有当所有输入端都是低电平(逻辑“0”)时,输出才是高电平(逻辑“1”)

4.4部分代码解读

  • 打开锁存器: P2 = ((P2 & 0x1f) | 0x80); //P2 ->100XXXX X //开
  • 0x1f:0001 1111
  • 0x80 1000 0000
  • &:用来清零
  • |:用来置1
  • 关闭锁存器: P2 &= 0x1f; //P2 ->000XXXX X //关

4.5例子

(LED间隔交替闪烁)

//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>
//函数定义区域
//蜂鸣器关闭
void cls_buzz(void)
{P2 = (P2 & 0x1F | 0xA0);P0 = 0x00;P2 &= 0x1F;
}//延时函数
void Delay100ms()		//@12.000MHz
{unsigned char i, j, k;_nop_();_nop_();i = 5;j = 144;k = 71;do{do{while (--k);} while (--j);} while (--i);
}//LED
void LED(unsigned int x)
{P2 = ((P2 & 0x1f) | 0x80);P0 = x;P2 &= 0x1f;}//程序主体
void main()
{cls_buzz();while(1){LED(0x55);Delay100ms();LED(~0x55);Delay100ms();			}
}

相关文章:

【蓝桥杯单片机记录】IO基础与LED控制

目录 一、IO基础 1.1 IAP15F2K61S2芯片原理图 1.2不同工作模式 二、新建工程的一些补充 2.1 keil中没有IAP15F2K61S2的头文件 解决&#xff1a;在isp软件中找到如下​编辑 2.2keil中的芯片选择 2.3推荐字体 三、sbit关键字 四、LED控制 4.1原理图 4.2不能直接通过IO…...

java 回答问题

1. How do you create a variable with the numeric value 5? int x 5; 2. The value of a string variable can be surrounded by single quotes. False 3. Which method can be used to return a string in upper case letters? toUpperCase()...

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归&#xff1a; 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量&#xff1a; 影响目标变量的因素&#xff1a; X 1 , X 2 . . . X_1, X_2... X1​,X2​... &#xff0c;连续值或离散值。 目标变量&#xff1a; …...

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历&#xff0c;丝我即可 前言 初次接触FPGA是在2022年3月左右&#xff0c;正处在研二下学期&#xff0c;面临着暑假找工作&#xff0c;周围的同学大多选择了互联网&#xff0c;出于对互联网的裁员形势下&#xff0c;我选择了FPGA&#xff0c;对于硬件基础知识我几乎是…...

阿里云游戏服务器多少钱一个月?

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…...

Win32 SDK Gui编程系列之--ListView自绘OwnerDraw(续)

通过所有者绘制的列表视图(2) 所有者绘制列表视图的基础已在前一页中说明。本页将展示如何在所有者绘制列表视图中显示数据库表数据。 1、访问日志 正如在另一个页面中所述,本网站的访问日志目前是通过SQLite3数据库管理的。 以下是上述程序执行的结果。为…...

Android 应用添加系统签名权限的几种方式实现介绍

Android 应用添加系统签名权限的几种方式实现介绍 文章目录 Android 应用添加系统签名权限的几种方式实现介绍一、前言二、Android 应用添加系统签名权限的几种方式介绍1、在Android Studio添加系统签名文件2、源码编译apk添加系统签名Android.mkAndroid.bp 3、源码编译app代码…...

麒麟V10+飞腾处理器源码编译qt

1.下载qt源码 2.百度解压命令,进行解压 3.cd进文件目录 4.使用./configure命令进行配置(重点:记得看说明) Usage: configure [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>][-docdir <dir>] [-headerdir <dir&g…...

MacOS 查AirPods 电量技巧:可实现低电量提醒、自动弹窗

要怎么透过macOS 来查询AirPods 电量呢&#xff1f;当AirPods 和Mac 配对后&#xff0c;有的朋友想通过Mac来查询AirPods有多少电量&#xff0c;这个里有几个技巧&#xff0c;下面我们来介绍一下。 透过Mac 查AirPods 电量技巧 技巧1. 利用状态列上音量功能查询 如要使用此功能…...

python介绍,安装Cpython解释器,IDE工具pycharm的使用

python介绍 官方的Python解释器本质是基于C语言开发的一个软件&#xff0c;该软件的功能就是读取以py.结尾的文件内容&#xff0c;然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种C实现的解释器被称为Cpython。 python解释器的种类&#xff1a;Jython IPyth…...

服务器安装Docker (centOS)

1. 卸载旧版本的Docker&#xff08;如果有&#xff09; 首先&#xff0c;如果您的系统上安装了旧版本的Docker&#xff0c;需要将其卸载。Docker的旧版本称为docker或docker-engine。使用以下命令来卸载旧版本&#xff1a; sudo yum remove docker \ docker-client \ docker-…...

解析spritf和sscanf与模拟常用字符串函数strchr,strtok(二)

今天又来继续我们的字符串函数的文章&#xff0c;这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf strchr strchr 是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现 strchr 函数的示例&…...

备战蓝桥杯---搜索(进阶4)

话不多说&#xff0c;直接看题&#xff1a; 下面是分析&#xff1a; (ab)%c(a%cb%c)%c; (a*b)%c(a%c*b%c)%c; 因此&#xff0c;如果两个长度不一样的值%m为相同值&#xff0c;那就舍弃长的&#xff08;因为再加1位只不过是原来值*10那位值&#xff0c;因此他们得出的%m还是同…...

51单片机基础(C语言):定时器时钟

1.使用定时器 1 和LCD1602设计一个简易数字时钟。 main.c #include <REGX52.H> #include "Delay.h" #include "LCD1602.h" #include "Timer0.h"unsigned char Sec55,Min59,Hour23;void main() {LCD_Init();Timer0Init();LCD_ShowString(…...

单片机无线发射的原理剖析

目录 一、EV1527编码格式 二、OOK&ASK的简单了解 三、433MHZ 四、单片机的地址ID 五、基于STC15W104单片机实现无线通信 无线发射主要运用到了三个知识点&#xff1a;EV1527格式&#xff1b;OOk&#xff1b;433MHZ。下面我们来分别阐述&#xff1a; EV1527是数据的编…...

Redis的过期键的删除策略

我们都知道&#xff0c;Redis是key-value数据库&#xff0c;我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了&#xff0c;Redis如何处理。 过期策略通常有以下三种&#xff1a; 定时过期&#xff1a;每个设置过期时间的key都需要创建…...

放假--寒假自学版 day1(补2.5)

fread 函数&#xff1a; 今日练习 C语言面试题5道~ 1. static 有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始…...

LLM(5) | Encoder 和 Decoder 架构

LLM(5) | Encoder 和 Decoder 架构 文章目录 LLM(5) | Encoder 和 Decoder 架构0. 目的1. 概要2. encoder 和 decoder 风格的 transformer (Encoder- And Decoder-Style Transformers)原始的 transformer (The original transformer)编码器 (Encoders)解码器 (Decoders)编码器和…...

CV | Medical-SAM-Adapter论文详解及项目实现

******************************* &#x1f469;‍⚕️ 医学影像相关直达&#x1f468;‍⚕️******************************* CV | SAM在医学影像上的模型调研【20240207更新版】-CSDN博客 CV | Segment Anything论文详解及代码实现 本文主要讲解Medical-SAM-Adapter论文及项…...

C++初阶:容器(Containers)vector常用接口详解

介绍完了string类的相关内容后&#xff1a;C初阶&#xff1a;适合新手的手撕string类&#xff08;模拟实现string类&#xff09; 接下来进入新的篇章&#xff0c;容器vector介绍&#xff1a; 文章目录 1.vector的初步介绍2.vector的定义&#xff08;constructor&#xff09;3.v…...

Pixel Mind Decoder 多模型协作:与Ollama本地模型联合作业

Pixel Mind Decoder 多模型协作&#xff1a;与Ollama本地模型联合作业 1. 引言&#xff1a;当AI模型开始团队合作 想象一下这样的场景&#xff1a;你手头有一份长达50页的市场调研报告&#xff0c;需要快速提炼核心观点并分析其中的情绪倾向。传统做法可能需要先人工阅读总结…...

基于Python的流浪动物救助平台毕业设计

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的流浪动物救助平台&#xff0c;以实现流浪动物的有效救助与管理工作。具体研究目的如下&#xff1a; 首先&#xff0c;通过构建流…...

零售店长必看:如何用iBeacon+微信小程序打造低成本智能导购(2024最新方案)

零售店长必看&#xff1a;如何用iBeacon微信小程序打造低成本智能导购&#xff08;2024最新方案&#xff09; 走进任何一家现代零售门店&#xff0c;你可能会注意到顾客们不再茫然地寻找商品&#xff0c;而是自然地掏出手机&#xff0c;接收个性化的商品推荐和促销信息。这种无…...

别再只会while(1)了!聊聊MCU裸机开发的6种实用架构,从51到STM32都能用

从超级循环到事件驱动&#xff1a;MCU裸机开发的6种架构实战指南 当你第一次点亮LED时&#xff0c;while(1)循环就像魔法一样简单有效。但随着项目复杂度增加——需要同时处理按键消抖、屏幕刷新、数据通信和状态管理时&#xff0c;那个曾经可靠的超级循环突然变成了意大利面条…...

Mi-Create终极指南:三步快速创建专属小米手表表盘

Mi-Create终极指南&#xff1a;三步快速创建专属小米手表表盘 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 想要为你的小米手表打造独一无二的个性化表盘吗&…...

PECVD vs 磁控溅射:氮化硅薄膜制备工艺全解析(附击穿场强测试数据)

PECVD与磁控溅射&#xff1a;氮化硅薄膜工艺的深度博弈与性能优化 在半导体器件制造和MEMS传感器领域&#xff0c;氮化硅薄膜作为关键功能材料&#xff0c;其介电性能和结构特性直接影响器件可靠性。当前工业界主要采用等离子体增强化学气相沉积&#xff08;PECVD&#xff09;和…...

OpenClaw远程控制方案:通过nanobot实现安全外网访问

OpenClaw远程控制方案&#xff1a;通过nanobot实现安全外网访问 1. 为什么需要远程控制OpenClaw&#xff1f; 上周我需要出差三天&#xff0c;但电脑上运行的OpenClaw自动化任务突然报错。当时我面临两个选择&#xff1a;要么让任务中断三天&#xff0c;要么冒险把本地网关直…...

软件外包公司的“末路”:印度同行都慌了?——软件测试从业者的专业视角

在当今数字化浪潮中&#xff0c;软件外包行业曾是全球经济的重要引擎&#xff0c;尤其以印度为代表的外包巨头&#xff0c;凭借低成本人力优势主导了全球市场。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;这一模式正面临前所未有的挑战…...

OpenClaw 的 Skill免费开源的

OpenClaw 的 Skill 生态非常丰富&#xff0c;其中绝大部分都是免费开源的。以下为您推荐几类实用的免费插件&#xff0c;您可以根据需求选择安装。&#x1f6e1;️ 一、安全与权限控制 (强烈建议优先安装)skill-vetter / clawsec功能&#xff1a;安装插件前自动扫描代码&#x…...

Nacos集群启动时,那个神秘的cluster.conf文件到底是怎么被找到和监控的?

Nacos集群启动时cluster.conf文件的寻址与监控机制深度解析 从一次集群配置失效事件说起 上周深夜&#xff0c;我们的分布式系统监控平台突然发出警报——Nacos集群中的三个节点相继失联。紧急排查时发现&#xff0c;明明已经更新了cluster.conf文件新增了两个节点&#xff0c;…...