首页 > 其他分享 >蓝桥杯单片机学习总结(Day1 实现LED闪烁)

蓝桥杯单片机学习总结(Day1 实现LED闪烁)

时间:2024-07-08 18:55:35浏览次数:12  
标签:P2 LED Day1 蓝桥 P27 寄存器 0x1f 译码器

标题一:通过SM74HC138译码器打开控制8个LED灯的寄存器

标题二:编程思路

标题三:总结

 

打开LED寄存器:

 由开发板的原理图可知其8个LED灯的寄存器开关为SM74HC138译码器(以下用38译码器称代)的Y4口,该38译码器的输入端P25~P27,其分别对应P25->SM74HC138_A、P26->SM74HC138_B、P27->SM74HC138_C,CBA构成三位的二进制来选择Y0~Y7口。

例如:P25=0  P26=0  P27=1 对应100 为十进制数字4 也就是打开Y4口

那么我们不禁冒出一个问题:我们为什么要打开其寄存器才可以对LED进行操作而不能直接进行呢? 那是因为开发板的引脚数量有限、同一时间只能进行一个操作等原因导致许多功能的引脚重叠,所以才需要译码器来选择功能

编程思路:

介绍完毕接下来就是如何对P25~P27操作进行说明:对P2口集体进行操作,P2口有P20~P27,P2默认为1111 1111 前三位为38译码器输入位第一位为P27依次递减 ,那么可知想要打开Y4为1001 1111 那么对P2操作为:P2=((P2&0x1f)|0x80)), 初始化:P2&0x1f -> 0001 1111,这步很重要, 然后操作的模板或(|)上一个0x?0得到想要的Y口 ,在P2=((P2&0x1f)|0x80))操作完Y4口就已经打开, 接下来就是对P0口的操作, 按照你想要的LED闪烁模式进行编程,在结束对LED的编程后记得把P2口初始化养成好习惯。

一下是我的代码

#include "STC15F2K60S2.H"
#include "intrins.h"

//关闭蜂鸣器
void cls_buzz(void)
{
    P2 = (P2 & 0x1F | 0xA0);
    P0 = 0x00;
    P2 &= 0x1F;
}

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	_nop_();
	i = 43;
	j = 6;
	k = 203;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void mian()
{
	cls_buzz();
	while(1)
	{
	P2=((P2&0x1f)|0x80); //打开LED寄存器
	P0=0xdf; //对LED P0口操作
	P2&=0x1f; //关闭LED寄存器
	Delay1000ms();
	
	P2=((P2&0x1f)|0x80);
	P0=0xff;
	P2&=0x1f;
	Delay1000ms();
	}
	
}

总结:想要实现的功能->一定的思路->看开发板原理图->编程纠错,为大致的思路,遇到不懂的多上网查,当期知识要实际运用起来 。

本人小白知识面不广有错之处望网友指出。

标签:P2,LED,Day1,蓝桥,P27,寄存器,0x1f,译码器
From: https://blog.csdn.net/2302_80724534/article/details/140247385

相关文章

  • 打卡信奥刷题(267)用Scratch图形化工具信奥P10415 [普及组][蓝桥杯 2023 国 A] 切割
    [蓝桥杯2023国A]切割题目描述给定一个W×HW\timesHW×H的长方形,两边长度均为整数。小蓝想把它切割为......
  • 400WLED防眩通路灯
    适用范围:适用于公路、铁路隧道、桥涵、广场、建筑物等作泛光照明使用。厂房、廊道、栈桥变电站、车站、港口、轮船、货场、工业建筑、城市广场等场所的大面积照明。产品特点采用LED光源,配合高效率恒流驱动电源,比气体放电灯节电达60%;LED组件全部密封,防水防尘,无需内部清洁和......
  • [CISCN2019 华北赛区 Day1 Web2]ikun
    进入题目发现找到lv6查看源码发现用lv标志点击下一页发现url参数page写脚本importrequestsforiinrange(500):url="http://248e4e18-a7a1-4bb1-adc1-e3a177974773.node4.buuoj.cn:81/shop?page={}".format(i)reponse=requests.get(url)if"lv6.png"inreponse.tex......
  • 天池大赛_工业蒸汽量预测_day1
    本文记录下我练习的过程,欢迎交流。参考书目《阿里云天池大赛赛题解析》数据导入 train_data=pd.read_csv('data_origin/zhengqi_train.txt',sep='\t',encoding='utf-8') test_data=pd.read_csv('data_origin/zhengqi_test.txt',sep='\t',e......
  • Day10-面向对象-继承和多态
    继承和多态Day10面向对象-继承2.继承2.1继承的好处2.2继承的语法2.3继承的特点一:成员变量2.3.1私有化(private)2.3.2成员变量不重名2.3.3成员变量重名(实际开发中不推荐这样做)2.4继承的特点二:成员方法2.4.1成员方法不重名2.4.2成员方法重名——重写(Override)......
  • [CISCN2019 华北赛区 Day1 Web1]Dropbox
    进入题目注册一个账号登录进去后上传一个文件发现只能上传图片下载删除时分别抓包发现在download.php里下载,在delete.php处删除发现filename参数,有任意文件下载漏洞下载download.php,delete.php目录遍历在delete.php里发现class.phpdb=$db;}publi......
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
    进入题目点击左下角发现不同文件查看index.php检查发现file参数猜测文件包含用php为协议读取源码require_once"config.php";if(!empty($_POST["user_name"])&&!empty($_POST["phone"])){$msg='';$pattern='/select|insert......
  • mORMot虚拟数据集--TOrmTableDataSet
    如何快速显示OrmTable--可以使用TOrmTableDataSet这是mormot.db.rad.ui.orm的主要功能type///只读虚拟TDataSet,能够访问TOrmTableTOrmTableDataSet=class(TVirtualDataSet)protectedfTable:TOrmTable;//关联的TOrmTable实例{$ifndefUNICODE}//如......
  • IAP 2023 Day1
    HTMLHTML是Hypertextmarkuplanguage(超文本标记语言),你可以理解为网页的结构。<!DOCTYPEhtml><html><head><title>ProfilePage</title><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta......
  • 如何完美解决 “error pulling image configuration: download failed after attempts
    如何完美解决"errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp59.188.250.54"......