前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五步搞定MCU外围器件

五步搞定MCU外围器件

作者头像
单片机技术宅
发布2020-03-17 11:22:06
7930
发布2020-03-17 11:22:06
举报
文章被收录于专栏:初学单片机初学单片机

一、基础知识 技术性的东西学习起来都是一层一层的,如果前面的基础知识如果没有学好,到了后面的学习会让你懵懵懂懂,最后会走很多弯路。 对外设的学习,可以从两方面来看,一个是单片机与外设的电路图连接,这是硬件方面;另一个是软件方面,如何用软件控制这个外设。例如:

这是一个LED流水灯模块,你至少要从电路图上知道以下信息: 1、LED灯D1到D8分别连接到了单片机的P1.0到P1.7引脚; 2、当你把其中一个引脚置零,相应的LED灯就会亮。 这是读电路图的能力,是最基础的也是最重要的。

然后是例程,点亮一个LED灯。

代码语言:javascript
复制
#include<reg52.h>

sbit LED=P1^0;

void main (void)
{
    LED=0;
    while (1);
}

1、为什么要包含reg52.h?里面有什么内容? 2、sbit是什么意思?是标准C里的关键字还是keil C里的关键字?为什么要写这一条语句? 3、为什么最后要加while死循环? ……

初学的时候一般是不会问自己这些问题的,我自己学的时候都没有问过自己这些问题。但是这些知识点恰恰却是基础,或者说学习时的盲点。

关于基础我就不多写了,点到即止。

二、分模块 不多说了,我直接上我的学习资料的图片吧。

可以说,这些都是外设。把每一个模块的电路图分析一遍,再把代码分析一遍,也够玩一段时间的了,再把代码自己写一遍,单看不写那等于没看。再自己写的过程中去体会这句话把,你会发现照着别人的程序代码写都能写错,都会写了编译过不了,各种问题,等把这些问题自己解决了,那对你的提升肯定不小。

熟悉完几个模块后,可以尝试把这几个模块组合起来,给自己一个小项目做。比如从一块时钟开始(DS1302+LCD1602)。

三、总结 一定要总结! 再强调一遍!一定要总结! 把你用到的技术,对电路图的分析,对代码的分析用文字描述出来。总结不需要逐字逐字的打,可以拷贝资料里的文字以及代码等等,但一定要先理解透彻,如果没有理解透,请不要把那些文字拷贝到你的总结里,又不是为别人写什么文章,只是为自己而学。(像点亮LED这种简单的项目就不用总结了...)

如果不知道总结要写什么,可以参考大学里的单片机实验指导书或者实验报告。我一直觉得,写那些实验报告和课程设计报告真是最好的学习方法啊!可能以后出来工作再也不用写实验报告或者课程设计论文了。 我们的实验报告是这样的: 1、实验目的 2、实验内容 3、仪器、设备和材料 4、实验原理(用到了什么芯片,什么外设) 5、实验步骤 6、实验结果(代码) 7、注意事项

如果是自己写的总结,最重要的就是4,其他什么的都可以不写。把用到的芯片、外设、电路图和代码整理总结一下,对这些技术的理解就会非常深刻的。其次是注意事项,可以写一些做实验中为什么卡住的技术难题,或者很多资料都没写,自己发现的技术细节。

比如红外NEC协议:

这是NEC协议的典型脉冲链,一开头有一个9ms的高电平,和4.5ms的低电平,接下来是用户码和数据码等等。但是,在红外接收头那一端,这些信号是相反的。也就是说,红外接收头输出信号的那个引脚,在没有信号的时候输出高电平,当接收到信号后会输出一个9ms的低电平和4.5ms的高电平,接下来是取反的数据码等等。

一开始学习的时候不一定会注意到这些细节,以为只要例程跑起来了,看懂了例程代码和电路图就算学会了。不是这样的!最后项目结束后一总结起来,发现了很多很多以前没有注意到的知识点。(我怎么感觉我在强调参与项目的重要性呢?)

总之一定要总结,不要偷懒。有些技术知识一总结了之后,我就会发现了好多调试程序的时候学不到的知识点。另外,不一定要做完项目后才总结,查资料的时候就可以开始总结了。再说一遍,我说的总结写起来很简单,就是把你分析过的,理解透的相关技术资料用新的word文档组织起来。

四、一通百通 我认为,只要你精通了一种单片机,再学习其他单片机是非常快的,学习外设同理,学习其他东西也是一样的。

学会了51,再到32,原理都一样,相通的。学会了LCD1602,再到LCD12864那就简单了。

五、学会移植 上面刚刚也引出了第五点,学会移植程序。51单片机真的是在行业内玩烂了的单片机,几乎每一个电类专业都会学,所以如果你想用51控制任何外设,在网上基本能找到很多资料和程序,很多程序不需要自己重头写的,这就是一个很好的机会去理解外设的工作原理和程序。当你不用51作为主控芯片的时候,或者使用了类似的外设时,直接移植之前的程序就可以了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机技术宅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档