找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10905|回复: 7
打印 上一主题 下一主题
收起左侧

谈谈学习单片机究竟该学习一些什么?

  [复制链接]
跳转到指定楼层
#
谈谈学习单片机究竟该学习一些什么?

几年前,我得依靠着自己的直觉找到程序中的问题所在;现在,我可以凭着我的语法基础以及程序设计的思维解决程序中的问题。

经常看见那些学了几个月单片机的学生,突然间不知道该学习些什么了,会进入迷茫时段。感觉这么什么都会,可一做东西什么也不会。我比较反感“玩”、“精通”来形容单片机,说这些话的往往都是些初生牛犊,还不知道老虎长什么样子,会吃人。

单片机学习是很难的,不能速成,你必须承认这一点,有些号称能帮你从入门到精通,那些大多都是牛皮膏药,基本上讲的都是些入门的东西,市面上的讲单片机的书本内容基本上八九成是一样的。学习单片机的视频,八九成一样,不同的人讲的,主讲人的水平高低不同。

而正真高深的单片机程序处理,你在网上基本上找不到,偶尔能有那么一两个高手把自己的一点点心得分享出来,也许你半天都不能领悟其真谛。

正真的高手是这么炼成的?唯有自己日积月累,不断坚持、思考读成熟的程序,加上自己对程序的悟性,等到2到3年方可有所造诣。

1、首先我们来谈谈C基础,单片机程序开发,基本上用的是C语言,你的 语言学的怎么样了,对于关键词的使用是否已经融会贯通了,对于语法规则是否已经掌握。这是一门实践行的知识,没有实践你的C语言等于0,他的功能可不是书上那些例子,输个数做个加减乘除把结果输出。利用他的关键字及语法规则,勾画出无限的生产力。对于C语言的基础知识你要达到那种水平了,当你的想法出现的时候,功能要求已有,你能立刻用C语言描绘出来。C语言只是工具,实现我们的想法的工具,对于工具的使用要信手拈来,例如:把一个字节数据高底位一一兑换、把脉冲数转换为时间及检测出按键的连续两次按下等等,看到问题的时候具体的实现代码在老海呈现了没。

2、工具用熟了以后,我们该学习什么了了?对语法熟练以后就应该重点学习程序设计的方法,请大家分清两个概念,C语言只是工具,会C语言并代表你会设计程序,程序设计能力可分为,首先是能将复杂的功能要求拆分为若干个细小功能,用C语言描述实现,再将这些小功能用你的C语言工具串起来组成我们所需要的复杂功能。整个过程下来C语言都只是实现你想法的工具。看到这里你是否还敢用“玩”、“精通”来形容单片机吗,当真正进入单片机殿堂的时候你会感觉这是一个浩瀚无边的宇宙,你会越发感觉自己的渺小,只有更好,没有最好。

总结几点个人的学习的经验:

C语言与程序设计的学习是相辅相成的,他们共同进步,就如同你的两只脚,谁都不能超过谁很远。学习单片机之前请先学习C语言,请不要相信什么零基础也能学好,至少20天,要把基础知识掌握,在进入单片机学习,视频网上一大把,学会操作基础模块,在这个阶段你可以在网上寻找知识学习,将你开发板的模块程序都练一遍。

当你开发板学完了, 这个时候该这么办了,这就是我今天重点要的。

如果你就是浅尝辄止,那么你可以说自己入门了,如果你想有所造诣那么你还远着了,对于走过了这个阶段以后,我对我的学生的要求就是“背程序”,就如同别人学习英语背文章增强语感。我说所的“背程序”,并非死记硬背,属于一种重复强化训练,围绕几个主题,①、按键读取;②、数码管显示(重复计算显示代码) ;③、LCD1602液晶显示;④、AT24C02读写;⑤、DS1302读写;⑥、DS18B20读写。每个项目从建工程到下载成功在20分钟以内,最好练到在10分钟左右。对于代码需要精简而又有内涵,当你做好以后能增强你的语感及常规程序设计能力。最后以同样的方式训练一个综合项目——多功能数字钟,这个项目可能需要一个上午才能做好。这个过程的目的很简单,增强C语言工具的使用能力,在单片机编程这块,对于基础模块的程序设计能力,完成从感觉自己什么都懂,可要写点什么东西时又不知如何下手到实现一些简单功能程序能迅速写出来的转变。这个方式枯燥乏味但是效果还可以,可以借鉴借鉴。

完成了上述工作,紧接着多练习综合项目,这个时候这能靠自己,学程序没有别的,只能多练,多想。用你的开发板编写:计算器、电子日历、电子密码等各类能把你开发板上的资源综合起来用的程序。假想就是在做项目,要对自己提出苛刻的功能要求,切记不多说差不多了,要做到完美。

再往下走,完美要回过头学习单片机原理,去学习汇编,学习单片机的运行原理对你编程有极大的帮助,再把你的C语言书拿出来,细细的看前几章节,是时候该去看看指针了。在程序中简单的使用指针。 就这样往下练吧,估计至少得年吧时间。

再往下走,你应该去研究指针了,将指针应用到你的程序当中,它可以给你解决以往你所遇到的很棘手的问题。

讲到指针,该想到结构体了,我们应该去学习链表了,我们要将简单数据结构应用到单片机了。这个期间你如果能去学习在操作系统上的编程是很有必要的。如在VC上做简单功能界面,Linux系统编程。这可以让你看看别人优秀代码,从中吸取经验,就算看不到源代码,也可以从别人的函数所具备的功能上思考的自己的函数设计,改善自己的函数,我的很多函数功能设计方式就是这么来的。

差不多又是一年时间过去了。真心希望你坚持下来了,到这个时候你基本上已经能独立解决很多问题了。

这个时候我们该去学习什么了了,该去学习“易经经”——C语言描述数据结构与算法分析。在程序的世界里,它就是最高的内功心法,能在里面学的一招半式,就可以行走江湖了。这本书目前我也只是研究过几个章节,在这里面你会看到操作系统的具体实现,文件系统的设计思想等等,各类大型程序设计设计思想。

时间不早了, 今天就到这里了

关于单片机学习,内容远不止这些,上述只讲了单片机的程序设计方面,依据单片机的特片还硬件这一块极为重要,不理解硬件也设计不好程序,下次再谈谈如何学习硬件。对于8位单片机你是否想过, 给它装上一个操作系统,这是我最近一直在思考的问题.

完整的pdf格式文档51黑下载地址:
谈谈学习单片机究竟该学习一些什么.pdf (678.6 KB, 下载次数: 38)



评分

参与人数 1黑币 +1 收起 理由
坐在分头调戏鬼 + 1

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

7#
ID:780846 发表于 2020-6-16 11:38 | 只看该作者
刚学习,受教了
回复

使用道具 举报

6#
ID:196954 发表于 2019-6-14 17:39 | 只看该作者
汇编真的是必须要学的吗?这汇编程序一长,我就懵逼了
回复

使用道具 举报

5#
ID:472369 发表于 2019-1-24 17:36 | 只看该作者
感谢!
让我有了继续学习下去的勇气。
回复

使用道具 举报

地板
ID:51975 发表于 2018-9-13 21:26 | 只看该作者
patricklyu 发表于 2018-8-4 10:23
楼主,你好,能把这个PDF《单片机该学习一些什么?》发到我邮箱吗?我邮箱是

PDF里的内容跟上述写的一样。
回复

使用道具 举报

板凳
ID:367460 发表于 2018-8-31 08:41 | 只看该作者
好深啊
回复

使用道具 举报

沙发
ID:382785 发表于 2018-8-4 10:23 | 只看该作者
楼主,你好,能把这个PDF《单片机该学习一些什么?》发到我邮箱吗?我邮箱是hhujxlp@126.com
回复

使用道具 举报

楼主
ID:285271 发表于 2018-2-24 22:17 来自手机 | 只看该作者
刚学习,感觉编程思路及方法非常重要。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表