《手把手教你学51单片机C语言》之一如何学习单片机

在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是第一重要的。一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇。但是,今天在这里我可以很负责任的告诉你,本章节讲到的学习单片机的方法,都是我们学习单片机的无数经验和教训总结出来的瑰宝。因为我们披荆斩棘,开辟了道路,所以可以告诉你路在何方;也因为我们摸过烧红的铁块,烫了手,所以也可以告诉你教训和代价是什么。希望各位都能站在我们的肩膀上,看得更远!

单片机的型号那么多,如何选取一款合适的进行学习?如果身边有比较现成的学习单片机的条件,有什么条件就学习什么型号。比如,你所在的公司刚好用到某个型号单片机,那么就方便多了。开发板不用购买,直接用公司现成的板子,指导老师到处是,公司的工程师,只要你耐心虚心的不耻上问,相信他们都愿意帮你解答问题。或者你跟着学习的导师,正在使用某个型号的单片机开发产品,那么同样的道理,你也会有得天独厚的优势,直接跟着学就行了。单片机型号虽然众多,看起来纷繁复杂,其实它们的基本原理、基本用法都是相通的,只要熟练掌握其中一种,其它的都可以触类旁通,快速上手了。

那么是不是每种单片机我们都要学一遍呢?答案当然是否定的。大家跟着我来学习51单片机,必须得跟着学会举一反三和融会贯通的能力。单片机型号那么多,挨个学下来估计头发白了也学不完,所以大家跟着我学51单片机,不能仅仅当做51来学习,更重要的是要当做“单片机”来学,要通过我们的这个教程,把所有的单片机的内部资源都搞清楚弄明白,每个内部模块的用法理解透彻,这样当你遇到一个从没有用过的单片机,也就知道如何下手去使用它进行开发了。

前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。

学习单片机的要领就是:在实践中成长,InDoingWeLearn!

学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机书看肯定不行,你也必须得亲自动手去练。

没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么那么多人学单片机的时候,总是只抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书,应付书面考试;第二,很多人想实践却不太清楚该怎么去实践。

遇到问题查下书比直接看书的效果要好过百倍。不是不让大家看书,而是看了一点以后,要马上去实践验证,然后再回头结合实践的结果,理解书上的内容。从这个地方,大家要得出一个结论来,就是在学实际技术的过程中,和应付考试不同,书上的内容不需要你去硬性记忆,书是用来查的,不是用来背的。

下面,就是我总结的跟着我学习单片机的四个步骤。

第一步:鹦鹉学舌。

刚出生的孩子叫“爸爸”“妈妈”的时候,他甚至不知道“爸爸”“妈妈”是什么意思,更不会理解这些声音是什么意思,但是我们带着孩子见到他爸爸就让他喊“爸爸”,见到妈妈就让他喊“妈妈”,见到爷爷就喊“爷爷”……慢慢的你会发现,次数多了,孩子就知道谁是爸爸,谁是妈妈,谁是爷爷,谁是奶奶了。

大家刚开始接触单片机的时候,也属于单片机行业的新生儿。单片机的样子,单片机外围的各种器件,单片机内部的各种结构,单片机使用C语言的编程方法,初学者可能都没有见过,脑子里全无概念。没关系,有些概念和方法你不理解也没有关系,甚至不需要你去理解,你只需要跟着我去鹦鹉学舌式的学习,第一遍学习某一节课的内容时,对于程序,大家就可以完全跟着抄下来,甚至抄两三遍,过一段你会发现,好多东西你也认识了,好多概念你也慢慢的理解清楚了,你也能大概看懂别人的小程序了,切忌觉得自己看会了,而简单复制粘贴。

第二步:照葫芦画瓢。

很多同学学习的时候喜欢看,看我做的视频,看我写的程序,甚至看别人的程序,都能看懂,觉得自己就会了,等到自己写程序的时候,感觉就是老鼠啃天,不知道从哪里下手了,这是初学者很容易犯的“眼高手低”的毛病,所以第二步的内容就非常重要了。

我的要求是,每一位同学,在学完了当前课的内容,把第一步顺利完成以后,然后关掉视频教程,关掉源代码,自己通过看电路图和查找非源代码的其他任何资料,把当节课我写的程序代码重新默写出来,边写边多少理解那么一点点,不是纯粹的背诵,应该说是背诵加理解的结合体。甚至学过几节课以后,可以回头把前边曾经这样实现过的课程,再按照这种方法做一遍。千万不要认为这一步没必要,这一步是你能否真正学会单片机的一个关键,在学完本教程之前,每一课内容都要这样做,如果每一个程序你都能够完美的完成,那么可以说,当节课的内容,百分之七八十你已经掌握了。

第三步:他山之石,可以攻玉。

单片机技术的最大特点就是可以通过修改程序来实现不同的功能,因此举一反三的能力就必不可少了。每一节课的例程后边,我一般都会布置几个作业,大家尽量去独立完成这个作业。在完成这个作业的过程中,都可以参考我的程序思路,在这个基础上通过动脑思考去构建你自己的程序框架,最终将程序完成。

在我们工程师实际产品研发的时候,很多种情况下也是如此。比如一个产品,我们如果从零起步的话,可能会走很多弯路,遭遇很多前人已曾遭遇过的挫折,所以我们通常的做法是寻找购买几款同类产品,然后先研究他们的各自优缺点,学习他们的长处,然后在同类产品基础上再来设计我们自己的产品,这就是“他山之石,可以攻玉”。

第四步:理论实践结合,温故知新。

第一:足够的信心、恒心和耐心。

有同学问过我,单片机这门技术难不难。我觉得这个问题得从两个方面去分析。

第二:教材和教程。

第三:电脑一台、单片机开发板一块。

电脑,是学习单片机必不可少的工具,因为编写程序,查阅资料都得用到,但是有句题外话说一下,不要把电脑当成游戏机或者影碟机,偶尔玩玩游戏看看电影是可以的,劳逸结合,但是不可沉溺其中,否则还不如没有电脑。

当然,即使不购买我们的开发板,你想学单片机,也还是要有一块开发板的,不能总是用软件仿真,软件仿真是学不会单片机的。经常有同学过来问我,老师我用软件模拟的好用,做了硬件不好用是什么原因。在这里我提一下,如果你上课用这个软件仿真,糊弄老师应付考试是可以的,但是实际开发和仿真软件却差别很大,如果真心想学好单片机这门技术,那我只能告诉你,拿起烙铁焊电路,动手写程序,远离仿真软件,靠软件仿真永远学不到真正的技术。

单片机开发,首要的两个软件一个是编程软件,一个是下载软件。编程软件我们用KeiluVision4的51版本,也叫做KeilC51,不做过多介绍,先直接讲如何安装。

1、首先准备KeiluVision4安装源文件,双击安装文件,弹出安装的欢迎界面,如图1-1所示。

图1-1Keil安装欢迎界面

2、点击“Next”按钮,弹出“LicenseAgreement”对话框,如图1-2所示。这里显示的是安装许可协议,需要在“IagreetoallthetermsoftheprecedingLicenseAgreement”打勾。

图1-2“LicenseAgreement”对话框

3、点击“Next”按钮,弹出“FolderSelection”对话框,如图1-3所示。这里可以设置安装路径,默认安装路径在“C:Keil”文件夹下。点击“Browse...”按钮,可以修改安装路径,这里建议大家用默认的安装路径,如果你要修改,也必须使用英文路径,不要使用包含有中文字符的路径。

图1-3“FolderSelection”对话框

4、点击“Next”按钮,弹出“CustomerInformation”对话框,如图1-4所示。大家输入用户名、公司名称以及E-mail地址即可。

图1-4用户信息

5、单击“Next”,就会自动安装软件,如图1-5所示

图1-5安装过程

图1-6安装完成

7、最后,点击“Finish”,Keil编程软件开发环境就这么装好了。

首先,我们用Keil先打开一个现成的工程,来认识一下Keil软件,如图1-7所示。

图1-7工程文件

从图1-7我们可以很轻松的分辨出菜单栏、工具栏、工程管理区、程序代码区和信息输出窗口。这个是Keil4的英文版,网上有一些汉化版本的,但不建议使用。即使你的英语不好,使用英文版本的软件也一点问题没有,刚开始大家先跟着我去使用,一共没几个单词,不需要你去翻译,用几次你就记住怎么用了。因为以后做实际开发的时候,大多数软件都是英文版的,如果现在学习的时候一直用中文软件,将来一旦换了其它的英文软件就会慌了,所以从现在开始,我们就慢慢的来熟悉英文软件,将来再用到其他英文软件的时候,就可以做到触类旁通、驾轻就熟了。

Keil软件菜单栏和工具栏的具体细化功能,都可以很方便的从网上查到,不需要记忆,随用随查即可。在这里我们只介绍一点,关于Keil软件里边的字体大小和颜色设置。在菜单Edit-->Configuration-->Colors&Fonts里边,可以进行字体类型、颜色、大小的设置,如图1-8所示。

图1-8字体设置(一)

因为我们用的是C语言编程,所以我们在Window栏中选择8051:EditorCFiles,然后在右侧Element栏目里可以选择要修改的内容,一般我们平时用到的,只是其中几项而已,比如:Text——普通文本、TextSelection——选中的文本、Number——数字、/*Comment*/——多行注释、//Comment——单行注释、Keyword——C语言关键字、String——字符串,Keil本身都是有默认设置的,可以直接使用默认设置,但如果你觉得不合你的口味,那就在这里更改一下,改完后直接点OK看效果就可以了。

图1-9字体设置(二)

很多同学经常问我一些问题,有一些很有现实或普遍意义,于是我把有代表性的直接写出来给大家参考,让大家了解这门技术,了解我们这个行业。

1、单片机学完了能做什么?

单片机的应用非常广泛,电子、电气、自动化、通信等领域都有大量应用,至于能做什么,得看你将来做什么工作。如同电脑一样,电脑可以用来编程、PS图片、看电影、打游戏等等,你用电脑做什么是不一定的。但是掌握好这门技术,起码可以让你学会一种工具,为将来从事电子、电气、通信、自动化等领域的工作做好准备。

2、学单片机的捷径是什么?

做技术必须得脚踏实地,没有任何捷径可走!如果非要说有的话,那我只能告诉你,拳不离手曲不离口,就是最好的捷径。我学习单片机的时候,每天早上8点半进入老师实验室,晚上9点半离开实验室,曾经创下连续3个月没有休息日的记录,如果你也能这样学的话,那很快就可以学好这门技术了。

3、学习单片机应该学习什么语言,有没有必要再学习汇编

相比较来说,汇编语言比较接近单片机的底层,使用汇编语言有助于理解单片机内部结构。简单的程序,用汇编语言,程序效率也可能比较高,但是当程序容量达到几千上万行以后(这时也仅能算个不太小的项目,还远没到大项目的级别),汇编语言在组织结构、修改维护等方面就会成为你的噩梦了,此时C语言就有不可替代的优势了。所以实际开发过程中,目前至少90%以上的工程师都在用C语言做单片机开发,只有在很低端的应用中或者是特殊要求的场合,才会用汇编语言开发,所以我建议大家还是用C语言开发比较好一些。

如果现在正好上学学到了汇编语言,我建议认真学一下,学好了肯定有益无害。但是现在如果说想直接快速学会单片机技术,那我就不建议去看汇编语言了,直接学C语言就可以了,那些单片机底层的结构什么的,也可以在日后的开发过程中慢慢理解。

4、学会单片机后能找什么样的工作

单片机是一个工具,和电脑有点类似但不完全一样,我们学会电脑,可以用来编程、可以用来画图、可以用来PS照片、可以用来看电影等等。学会单片机,可以用来做通信技术、做自动控制技术等等,但是单片机本身来说仅仅是一个工具,你在用单片机的时候,慢慢接触多了,会有一个应用方向,你不仅仅要会单片机,也得对这个应用方向熟悉,比如我个人从事过扩频通信技术的算法研究,那么我就要对扩频通信熟悉,然后把这个技术用单片机实现出来,也得会用单片机。当然大家也不用担心,找工作的时候公司对这个方向问题要求也不会很高,但多懂点的话,肯定也会提高自己的竞争力。

THE END
1.你还在为编程效率低下而烦恼吗?编程界的神级辅助!一键解锁高效在软件开发领域,编程工具的重要性不言而喻。它们不仅能够加速开发过程,还能提高代码质量,从而显著提升开发人员的工作效率。随着技术的不断进步,越来越多的编程工具涌现出来,为开发者提供了更多的选择。这些工具通过自动化、智能提示、错误检查等功能,极大地减轻了开发者的负担,使他们能够更专注于解决核心问题,而不是被https://www.ctyun.cn/zhishi/p-443743
2.小学生学编程的好处与坏处小学生学习编程的好处:训练逻辑思维能力、培养孩子的专注力和耐心、提高学习的主动性; 小学生学习编程的坏处:拔苗助长、耽误学业、容易玩游戏上瘾。 一、小学生学编程的好处 1.小学生学习编程可以強化孩子的逻辑思考力 小学生必须去思考如何把代码合理的安排在整个游戏程序中,才能让程序流畅的处理输入、演算、直到输出https://xue.baidu.com/okam/pages/strategy-tp/index?strategyId=128902748418686&source=natural
3.计算机系统概览:硬件软件与网络79、像TCP/IP这样的通信协议为编码和解码数据、引导数据到达其目的地和减弱噪声的影响设定了标准。 80、IP地址可由ISP或系统管理员分配,或是从(DHCP)服务器自动获得。 81、TCP/IP是用于因特网的主协议组。 06-计算机网络系统二 01、有线网络的优缺点:https://blog.csdn.net/weixin_46229691/article/details/120961276
4.abb机器人离线编程软件的优缺点分析工业机器人ABB机器人离线编程软件,特别是RobotStudio,是ABB公司为自家机器人产品线开发的强大的工具,广泛应用于工业自动化领域。以下是RobotStudio作为ABB机器人离线编程软件的优缺点分析: 优点 1.高精度仿真:RobotStudio提供了高度精确的3D仿真环境,能够准确模拟ABB机器人的运动轨迹和工作环境,有助于提前检测并解决潜在的碰撞问题。https://www.imrobotic.com/news/detail/34959
5.电气二次线CAD高度自动化软件编程的探讨青海电力1994年02期电气二次线CAD高度自动化软件编程的探讨,二次线,CAD,高度自动化,通过对现有二次线CAD软件包优缺点的分析,和在CAD的实际应用过程中的一些体会和经验,提出了一种高度自动化二次线软件包的https://wap.cnki.net/qikan-QHDL402.010.html
6.测试类笔试和面试训练题——软件测试工程师面试秘籍(35)试题16.等价类划分法的原则及优缺点是什么? 答案:在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。 在规定输入数据的一组值(假定有n个值)并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和1个无效等价类。 http://www.51testing.com/mobile/view.php?itemid=4480937
7.汇总一下几个常用线切割软件的优缺点今天坐下汇总,讲讲咱们几个常用线切割软件其各自的优缺点有哪些。 小编整理了5种线切割编程软件的特点以及优缺点,他们分别是CAXA线切割编控软件,HL线切割编控软件,YH线切割编控软件,HF线切编程软件,KS编程软件。 CAXA线切割编控软件功能特点: “CAXA线切割V2”可以完成绘图设计、加工代码生成、连机通讯等功能,集http://www.jnspeed.com/dongtai/537.htm
8.自动化系统编程标准化带来的好处!控制工程网自动化系统编程标准化带来的好处! 本文图片来源 :西门子 在当今高科技设备领域,工业设备和机器的功能比以往任何时候都多,这样就会造成从机器到机器、工厂到工厂的一致性问题,这对最终用户的运行体验至关重要,而编程软件可以在这方面提供帮助。如果无法做到一致,就很难掌握诸多复杂系统接口的细微差别,从而导致运行故障和http://article.cechina.cn/22/0224/12/20220224124939.htm
9.西藏西门子软件代理商二、优缺点 西门子S7-200 Smart系列PLC的优点包括: 高可靠性和稳定性,适用于恶劣环境。 强大的功能和数据处理能力,满足各种自动化需求。 易于编程和操作,降低使用门槛。 支持多种通信协议,方便与其他设备连接。 缺点可能在于某些特定应用场合下,性能可能略逊于其他高端PLC产品。 https://m.11467.com/blog/d6464816.htm
10.自动化课程设计心得6篇(全文)通常符合要求的总体方案不止一个,设计者应仔细分析每个方案的可行性和优缺点,并从设计的合理性、技术先进性、可靠性、经济性等方面反复比较,选出最佳方案。 还要设计单元电路设计单元电路前必须明确对各单元电路的要求,详细拟订出单元电路的性能指标,注意到各单元电路间的配合问题,尽量少用或不用电平转换之类的接口https://www.99xueshu.com/w/file6d5ns9k8.html
11.数据分析软件stata怎么读帆软数字化转型知识库Stata作为一款功能强大的数据分析软件,具有广泛的应用场景和强大的数据处理能力,其高效的命令行界面和灵活的脚本编写能力使其在学术研究和商业分析中都占有重要地位。通过了解Stata的历史与发展、基本功能、应用场景、命令行界面、图形界面、编程能力、扩展包、社区支持、优缺点和未来发展,用户可以更好地掌握和利用这款强大https://www.fanruan.com/blog/article/346748/
12.3月19日苏州园区人才市场机械模具电子通讯IT现场招聘会3、英语听说读写流利,熟悉办公软件 亚奇拉科技(苏州)有限公司 展位号:V28 CNC技工 5名 1、熟悉法兰克系统及兄弟系统及兄弟系统操机及简易编程、调试及操作。 2、能独立换刀,架模,可配合上夜班。 自动车床技师 5名 1、具2年以上自动车床加工经验。 2、能独立修机,改机,磨刀。 3、做过钛合金http://www.xszrcw.com/news/news-show-5921.htm
13.低代码开发和传统软件开发区别(优缺点对比)低代码是一种软件开发方法,它通过使用可视化界面和拖放功能而非复杂的编程语言来构建应用程序和流程用户可以在低代码开发平台上利用基本逻辑和拖放功能的可视化界面来构建各种软件。https://www.bnocode.com/article/ddmbk287.html
14.世界一流的CNC数控编程软件(UG),你觉得哪个好?随着科技技术,数控加工对零件的复杂度、精度、工艺等有了更高的要求,普通的人工编程难以胜任,于是CAM(计算机辅助制造)软件应运而生,它利用计算机来进行生产设备管理控制和操作的过程。它输入信息是零件的工艺路线和工序内容,输出信息是刀具加工时的运动轨迹(刀位文件)和数控程序。 https://cloud.tencent.com/developer/article/1525750
15.AI编程软件哪个好:10个开发者常用的AI编程工具推荐随着人工智能技术的迅猛发展,AI编程工具已经成为现代开发者不可或缺的助手。这些工具不仅能提高编程效率,还能减少错误,提升代码质量。本文ZHANID将介绍10个备受开发者青睐的AI编程工具,并分析它们各自的优缺点,帮助你选择最适合自己的编程助手。 1. ChatGPT https://www.zhanid.com/biancheng/1337.html
16.材料成型CADCAM基础材料成型CAD/CAM基础ppt大学课件预览自动化系统:上述过程基本上不需要人的干预。 按硬件角度分主机系统、工作站系统、微机系统 按软件的开放性分交钥匙系统( turn-key system)和可二次开发系统( programmable system) 2.CAD过程设计中的大多数活动都可以用 CAD技术来实现,但尚有一些活动难以用 CAD技术实现,如设计的需求分析、可行性研究等,下图说明了http://read.cucdc.com/cw/83328/75741.html
17.plc仿真软件有哪些plc是可编程控制器,主要用于工业自动控制领域,它的软件有很多中,有些小伙伴想了解它的仿真软件,所以下面小编给大家介绍plc仿真软件有哪些,一起来看看吧。 plc仿真软件 1、三菱plc: 编程软件GX-developer 仿真软件GX-simulator 2、omron plc: 编程软件cx-programmer https://m.766it.com/news/6781.html
18.派森编程软件python教程,派森编程软件python有什么用最近学习Python,网上学习资料挺多的,这篇写的不错,关于派森编程软件python教程和派森编程软件python有什么用,大家有需要也可以看看。 Python语言的概述 Python语言 Python语言的基本概念 Python是什么?Python 是一种极少数能兼具简单与功能强大的编程语言。你将惊异于发现你正在使用的这门编程语言是如此简单(简单吗,我不https://blog.51cto.com/u_15077560/3323265
19.软件kukasimproKUKA.Sim是一款由KUKA集团开发的离线编程软件,专门用于机器人路径规划和仿真。这款软件在工业自动化和机器人技术领域中有着广泛的应用,特别是在需要精准模拟机器人操作环境、路径规划以及验证机器人程序等场合。 制造商 KUKA 德国>奥格斯堡 主要功能机器人编程与仿真 https://www.ruanfujia.com/software/257055/
20.嵌入式软件自动化测试课后习题参考答案.docx嵌入式软件自动化测试 课后习题参考答案.docx,第1章 软件测试概述 课后习题 阅读本章内容,理解软件、软件测试、软件质量的概念。 答: 软件的概念:软件是计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件及数据,广义上软件包括程序、数据和文档,狭义的https://max.book118.com/html/2024/0107/5142131101011040.shtm