给51单片机初学者的建议

凡是diy爱好者都应该知道单片机,用直白的话说他就是单片微型计算机,能进行编程而后实现简单的自动化,智能化。

刚入门的时候,看到一些专业名词简直不知道说的是什么,比如寄存器、定时器、计数器、中断等等,还有高电平低电平以及c语言编程,一段很简单的程序怎么也看不懂,自己写一段程序又错误频频,在开发板上捣鼓半天还是实现不了该有的功能,一次这样,两次还是这样,于是就失去了信心,便放弃了。

万事开头难,过程中也难,最后却是美好的。我也是进入我们学校的创新班才知道有个叫单片机的东西,入门的时候,我也遇到过这些困惑,什么都不懂,只好请教大二的学长,当然也不能啥都问别人,先在网上找答案,还没解决的话再问,这样也能提高自己单独解决问题的能力,因为学单片机更多的要靠自己。要学单片机不能只学理论,在学懂理论的基础上更多的要投入实践,在实际操作中才能发现其中的乐趣,还能获取经验,动手能力只有靠多动手才能提高。既然是初学者,我建议你买一个开发板,有流水灯,蜂鸣器,点阵,数码管,1602液晶,独立按键,矩阵按键就可以了,在网上买也不贵,60块左右,还送的有视频,例程资料,我在推荐一本书,郭天祥的《51单片机c语言教程》。在学单片机之前你更应该好好学习c语言,起码你要熟悉那些基本语句,边学单片机边学c语言你会很乏力。当你会keil建立一个工程后,恭喜你,你已经成功地迈上了第一个台阶;当你会烧录程序的时候,恭喜你,你离单片机世界的大门又更近了一步。我不建议先看书、看视频,然后在开发板上操作,学单片机的确有难度,为了能坚持学下去,兴趣是最重要的。所以我建议先在开发板上演示(开发板资料里应该有操作视频),看这个功能现象是什么,然后在回到课本,认真读,结合你看到的实验现象边读边思考,把不懂标的出来,便于看视频的时候找到重点,接下来看资料里的例程,仔细分析每一句代码的意思,当然只看也不行,需要自己尝试着写,结合实验现象把写下来的程序烧录到单片机里,观看实验现象,我相信你此时看到的现象和之前看到的现象会有不同,那么此时你就要看你写的程序和例程有哪些不同,相信此时你也知道出错的原因了。当你这些东西都明白了,那你就要举一反三了,就拿流水灯来说,让灯换种方式亮,我该怎么写程序。当然你已经能自由变换流水灯的流动方式了,那恭喜你,你基本上已经入门了。

学单片机一定要多动手,尝试着自己焊一些板子,前期做的不好没关系,坚持做下去,到有一天你会突然顿悟,发现单片机原来是这样的,此时你就具备了较强的逻辑思维能力,能做一些有意思的东西。单片机学会了,你就有能力学其他的东西了,比如stm32,树莓派等等。

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

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

相关文章

ai推理_人工智能推理能力问答

ai推理1) Which of the following statements correctly define the concept of Inference in AI? It is the way in which facts and information are stored in the storage system of the agentWhen we conclude the facts and figures to reach a particular decision, th…

Java 中 10 大坑爹功能!

今天我们就来聊一下 Java 中的 10 大坑爹功能,它们分别是:1.switch必须加上break才结束2.逻辑运算符的“短路”现象3.数组下标从零开始4.ArrayList遍历删除时报错5.字符转成数字的坑6.while循环体的“障眼法”7.Integer类有缓存8.空方法体导致死循环9.神…

WinXP下变量方式表达对应路径说明

在一些批处理或者系统技巧操作教程文章中,我们常常会看到一些形如 %windir% 或者 %systemdrive% 的变量。这些变量都代表着什么含义呢?下面西部e网的icech为大家整理了在Windows XP下系统变量方式表达相对应的路径,大家可以看得更加清楚明白了…

js 添加事件 attachEvent 和 addEventListener 的区别

1、addEventListener 适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->method3 //element.addEventListener(type,listener,useCapture);btn1Obj.addEventListener("cli…

三种循环及break、continue的区别及用法

循环,就是指某些语句重复多次执行,循环语句就是循环指令,能进入循环就能跳出循环,C语言中用到的循环有while、do…while和for三种,跳出循环语句有break和continue两种,这些语句各有特点。 While&#xff1…

PHP | 检查字符串中是否存在特定的单词/子字符串

Given a string and a word/substring, and we have to check whether a given word/substring exists in the string. 给定一个字符串和一个单词/子字符串,我们必须检查字符串中是否存在给定的单词/子字符串。 PHP code to check substring in the string PHP代码…

ORA-00304: requested INSTANCE_NUMBER is busy

为什么80%的码农都做不了架构师?>>> 昨天在项目现场弄oracle rac环境的时候,遇到了这个问题, 由于是rac环境,单独启动一个实例之后,在启动另外一个实例的时候报错了这个错误ORA-00304: requested INSTANCE…

多图证明,Java到底是值传递还是引用传递?

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)开篇先来曝答案,在 Java 语言中,本质只有值传递,而无引用传递,解释和证明详见…

vb中filecopy拷贝文件

FileCopy("源文件名","目标文件名")两个参数都是必选的,且都包含路径。在VB中filecopy函数可以直接调用。而CopyFile函数则不能要先定义filesystemobject变量,然后才能用。有过copyFile比fileCopy的功能有所不同。FileCopy是单个文件的copy,目标…

scala提取字符串中数字_如何在Scala中以字符串或数字的形式获取日期,月份和年份?...

scala提取字符串中数字The "calendar" class handles working with date and time in Scala, the class generates the current time in the following format, “ calendar”类处理Scala中的日期和时间 ,该类以以下格式生成当前时间, Thu Ap…

图解面试题:找出数组中重复的数字?

今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字。题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/一、题目描述 找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0&#xf…

vb中picturebox透明时看到下面的picturebox中图片

在加载窗体时,把PictureBox1的背景指定为透明,再把PictureBox1指定为PictureBox2的父容器就可以实现PictureBox2透明于PictureBox1且都透明与窗体背景了。VB2010环境下的。代码如下: Private Sub Form1_Load(ByVal sender As System.Object, …

Java ObjectStreamClass getSerialVersionUID()方法(带示例)

ObjectStreamClass类getSerialVersionUID()方法 (ObjectStreamClass Class getSerialVersionUID() method) getSerialVersionUID() method is available in java.io package. getSerialVersionUID()方法在java.io包中可用。 getSerialVersionUID() method is used to get the s…

知方可补不足~数据库名称和数据库别名不同了怎么办

回到目录 当你的数据库安装成功后,你修改了计算机名称,这时,你的sqlserver名称与别名可能就不相同了,当这两个名称不相同时,你再使用sql的发布与订阅功能时,将会被提示出错,“请使用服务名称&am…

调研了100+开源博客,发现这5个最好用!

最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下:star 数量技术选型社区生态当然啦!好东西不能独享,下面简单分享一下我所做的笔记(文末有提供所有项目的…

批处理编程详解

批处理编程详解小引:最近好多猜测弱口令的病毒在网上流行,比如前段时间闹得很厉害的Worm.Dvldr 蠕虫就是一个典型。这些病毒有个共同点就是利用批处理来进行ipc$连接,从而来猜测管理员的口令达到控制服务器的目的。病毒由几个文件和几个复杂的…

Java Object Class boolean equals(Object o)方法与示例

对象类布尔值等于(对象o) (Object Class boolean equals(Object o)) This method is available in package java.lang.Object.equals(Object o). 软件包java.lang.Object.equals(Object o)中提供了此方法。 This method is used to check the object with the specified object…

3种时间格式化的方法,SpringBoot篇!

时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理。SimpleDateFormat dateFormat new SimpleDateFormat("yyyy-MM-dd"…

linux系统怎么改为中文版(转)

linux系统安装好后怎么改为中文版呢?今天就跟大家介绍下linux系统改为中文版的方法,希望能帮助到大家! 以下是linux系统改为中文版的四种方法,一起来看看: 方法1:写入环境变量 echo "export LANG"…

写一个头文件

#ifndef _(文件名)_H #define _(文件名)_H #include<标准库头文件> ……&#xff08;所有函数声明&#xff09; #endif 头文件是对函数的声明&#xff0c;在对其引用时用“……”和<……>两种&#xff0c;如果这个头文件是自己写的就用“”&#xff0c;例如#i…