单片机学习笔记(一)

本文记录了一名新手在备赛蓝桥杯单片机竞赛过程中的学习心得,主要涉及单片机理论知识和实战技巧。文章详细解析了IAP15F2K61S2单片机的使用,特别是针对蓝桥杯开发板的外设问题,如LED和蜂鸣器的控制,并介绍了HC138译码器和M74HC573锁存器的工作原理。此外,还分享了如何通过代码控制LED的亮灭以及封装技巧,为后续的模块测试打下基础。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

关于竞赛这块,我也是新手小白一枚,21年刚学了单片机的课程,觉得自己还是挺感兴趣的,因而走上了备赛之路。这篇文章将详细记录我自己的学习心得和做题过程,算是整理一个自己的学习笔记,也希望能够帮助到其他人。


提示:以下是本篇文章正文内容,下面案例可供参考

一、单片机理论知识

这部分推荐一个我自己在跟的课程,就是B站上面的小蜜蜂。但需要注意的是蓝桥杯使用的板子与普中和亚博的不同,备赛还是建议使用比赛的国信板子。同时因为IAP15F2K61S2是比赛指定的单片机芯片,我个人偏好于使用STC15头文件,训练时如果从未接触过单片机的,可以从51单片机的代码学起,进而转向STC15。

二、备赛内容

1.单片机基础知识

01开发板外设问题

由于蓝桥杯使用的开发板于普中和亚博的不同,所以在正常编程过程中需要关注外设问题,即LED和蜂鸣器的问题。根据大赛所给到LED的电路图可以得知:

电路采用M74HC573M1R锁存器对P0口的输出信号进行缓冲,所以针对LED我们要关注的就是Y4,而Y4又是根据HC138译码器得出的。
CSDN图标
因而可以得出

P2=(P2&0x1f)|0x80 //Y4
P2=(P2&0x1f)|0xa0 //Y5
P2=(P2&0x1f)|0xc0 //Y6
P2=(P2&0x1f)|0xe0 //Y7

所以外设关闭代码为

P2=(P2&0x1f)|0x80;
P0=0xff;
//LED
P2=(P2&0x1f)|0xa0 ;
P0=0x00;
//蜂鸣器

之所以用到(P2&0x1f)|0x80的赋值方式,是因为直接P2&0x1f,就是保留P2的低5位,将其他高位置0,然后与0x80进行或运算。
简单提一下HC138译码器的工作原理,就是三个输入控制八路互斥的低有效输出,学过数字逻辑的同学可以绘制真值表加深理解,没有学过的同学记住下表就可以
|C |B |A | 输出
|1 |0 |0 | Y4
|1 |0 |1 | Y5
|1 |1 |0 | Y6
|1 |1 |1 | Y7
通过38译码器的输出,结合HC573锁存器来控制各个模块的电路。新手小白如果有其他不懂的问题,可以跟一下B站的数字逻辑课程。

  当然在正式比赛过程中的代码肯定是需要有一些封装来灵活使用的,大家可以根据具体题目要求再去打开外设LED或者蜂鸣器。
  比如LED就是使能端Y4C输入高电平1,从P0端口输入低电平0,LED灯亮,为1,灯熄灭。也可以通过sbit一个变量来具体解决
如:sbit L1=P0^0; L1=1;(或者L1=0;)来控制等的亮灭
或者可以用:L8=P0^7;L8=~L8;等方式来增加闪烁效果等。

02各个模块测试

关于各个模块的测试代码,由于篇幅问题会写在后面的文章当中,会根据个人的备赛情况,写出经验和不足之处,希望能够帮助到大家
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄九Coral

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值