单片机从入门到入土(1):基础认知
我目前本科自动化大三在读,参加过互联网+、挑战杯、智能车、PLC、三创、服务外包等一系列的创新创业大赛,也取得了一些成绩,懂得了一些知识,但是仍然觉得对以单片机为代表的嵌入式知之甚少,关于你提出的问题,下面就我以个人的学习经验浅谈一下单片机的学习。
C51智能小车
一、基础知识
基础知识主要包括C语言、电路基础(数字电路与模拟电路) 。
在C语言这部分前期只需要会一些基本的语法即可,譬如说if、while、for、switch,虽说指针是C的精髓,但是前期的小项目用不到太多,包括堆栈、变量的存储在前期都不太会遇到。
我做了一个简单的思维导图,以下的内容差不多就是前期C语言要学习到的基础知识
c语言基础
其实我个人认为看书对于学习单片机没有太大帮助,单片机的掌握是要在一个个项目中提升的。
此外要想更快入门单片机,也可以私信我,网盘内有一整套的单片机学习资料
c语言入门
51单片机入门
至于模电与数电的学习确实有点门槛,但在前期这二者只需要了解基本的概念就行,譬如说电容、电阻、二极管、三极管。其中较为重要也是最根本的知识在于数电中的二进制 ,即01,换句话说,数字电路中有两种电平,高电平(1)和低电平(0),两个电平特性也决定了二进制——非 0 即 1。
二进制
我在入门的时候C语言和单片机是同步学的,否则单纯去学枯燥无味的代码,兴趣很容易被磨灭,学习代码、技术最重要的就是乐在其中。另外当你有了这些基础之后,去学习单片机才能乐在其中,否则就是从入门到放弃了。
二、学习路径
在对C语言等相关基础知识了解以后,我们接下来就要去制定我们单片机的学习路径。
现在市面上常见的是C51、STM32、Arduino、ESP8266/32系列
对于这几类单片机的详细区别与性能的优劣,我在此不做赘述,下期再详细叙述。
我当时的学习路径跟随学校的安排,首先接触了在keil5上开发AT89C51,之后因为参加项目,对各类单片机都有了了解以后,在Arduino上开发arduino uno开发板,接着又接触了stm32,最后由于个人的兴趣和用途,转行开发国产芯片ESP系列,这差不多就是我的单片机开发之路,当然我也在不断学习,以单片机为代表的嵌入式学习是无穷无尽的,也难怪有内行人会调侃
“嵌入式门槛低,一学就是一辈子,从入门到入土”
keil5
arduino uno开发板
三、学习思路
要知道,单片机是一种软硬结合的技术,所以学习单片机必须将理论与实践相结合,这样能达到事半功倍的效果。
一方面需要学习编程语言 ,即软件部分,掌握程序的结构,知道常用的函数,一开始可以对着例程抄写代码,烧录到开发板上运行,这是能否入门的关键重要步骤。首先对照例程,完全照搬人家的思路,一定要亲自动手抄写这个程序,慢慢领会其中每一条语句的作用和原理;接下来就仿照例程尝试着构思自己的编程思路,可以对着教程里的代码,研究其他人的编程思路,对有疑问或不明白的地方,试着按照自己的思路修改程序,比较程序运行效果。
另一方面需要学习构建电路 ,即硬件部分,对着代码搭建电路,只有真正自己经历这一步才算是真正入门。这一步可谓是单片机知识系统化的重要关键。而构建电路包括电路原理设计和PCB板设计。电路原理设计包括各芯片的连接与应用、芯片外围电路的设计和应用电路的设计,而这些在芯片数据手册都可以找到,不过有的手册可是全英文的,比较头疼。
而PCB板设计需要懂得使用Protel软件或 AltimDesigner软件,尤其想向大家推荐国产的立创EDA软件,非常好入门,功能也一直在完善。但要想做的PCB板布局美观、布线合理还得费一番功夫了。
立创EDA
所以说,学习硬件要比学习软件的成本更高,周期更长。学习单片机的最终目的是做产品开发,软件和硬件相结合形成完整的控制系统。
以上则是单片机入门的一些经验及知识,希望能对屏幕前的你有所帮助。
介绍一个非常好用的单片机仿真软件PROTEUS(带下载链接)
首先把proteus软件链接发给需要的朋友
百度网盘链接:https://pan.baidu.com/s/1gaWBwyVgbQGEDL-29Zkqhg
提取码:ddgd
想自学低端单片机的小伙伴们,可以延续我以下的思路自学。
从事单片机教学多年,虽说不够精通,但带领学生入门单片机足够了。说实话,一个从没有接触过计算机语言的初学者,因为没有程序的概念,学习单片机是有一定难度的。但如果方法得当,则能再最短时间内入门,也会为之后的深入学习打好一个良好的基础。以下我将从几方面来总结入门单片机需要做的几步。
首先,选好设备。一台电脑是必备,计算机可用来写程序,也可用来做仿真。最好能买一块单片机的开发板,最简单的那种,包含流水灯,数码管,按键,显示屏即可,淘宝网价钱不等,100不到就能买到好的。这样能接触到实物,直接用实物进行调试,更易于单片机的学习和开发。
其次,学会安装并使用软件,包括程序软件和仿真软件。程序软件现在已经发展到Keil 4版本了,仿真软件proteus的使用也非常方便,布置流水灯,电子表,点阵,1602,12864等都可以练习。其实我觉得用仿真软件入门单片机足够了。
在设计产品之前,有必要做一些理论上的充电。需要预备的理论基础包括进制、数字电平、发光二极管、keil软件和proteus软件的使用。
以下简单介绍以下proteus软件的实用。
仿真软件proteus的使用方法和步骤
1、打开软件
2、保存,选路径,取名字。
3、从元件库中选择元器件。
点击元件库,点击P,填写元器件型号或者关键字,双击或者单击ok。
选中某个元器件,在图面上双击鼠标左键,该元件便放在图面上了。
上图中红色单片机框形是单击鼠标时的情形,再单击就放下了。
4、连线
将鼠标放在你想要连线的起始端(会出现一个红色小方框),单击,移动鼠标至你想要连接的终端(出现红色小方框),单击,这样便完成一条连接线了。
5、将keil软件生成的*.hex文件下载至单片机中。
双击单片机,在program file右边路径中选取找到*.hex文件并添加,ok。
6、点击运行图标,运行程序看仿真效果。
相关问答
什么网站可以免费下载技术类的电子书,比如51 单片机 和电子元器件和电路板维修书籍?电子方面的学习资料网上比较多,如果在线阅读学习的话还是比较方便的,但是如果想要下载就比较麻烦了,因为现在大多数网站提供的学习资料都是收费的,比如百度文...
单片机 的按键开启和复位电路图-ZOL问答单片机的复位有上电复位和按钮手动复位两种。如图(a)所示为上电复位电路,图(b)所示为上电按键复位电路。上电复位是利用电容充电来实现的,即上电瞬间RST端的电...
求 单片机 编程软件教程?而每种单片机都有自己的编程软件,这些编程软件虽然编译原理近似,但是编译环境、编程配置的差别还是很大的,所...这个问题有点大,因为目前市面上单片机有很多种,...
我用电脑键盘控制 单片机 灯为何不亮呢,请各位帮帮忙!-ZOL问答使用51单片机内部定时器和EEPROM即可实现有用(0)回复展开查看全部8条讨论...要无敌破坏王的网盘下载国语的哦!!9849浏览3回答批量复制文件到同名文件...
同一个Wi-Fi有些app可以连上有些不能连上?-ZOL问答所以单片机想访问局域网中的电脑需要在其内运行LWIP或Uip配置为客户端,去主动连接服务器。服务器为IP加端口方式。有用(0)回复肯定在手机里面禁用了把手机...
你的编程道路是什么样的?根据HackerRank今天发布的2018年StudentDeveloperReport,有趣的发现65%的学生都是自学成才的。在对超过1万名学生的教育和编程语言趋势进行调查后,27.39%的.....
5g,互联网会有哪些改变,又会带来哪些商机?网络快速传播,更大程度上推动了人机交换、万物互通和数据智能等对人们生活方式的改变。在5G时代来临定会推动智慧社交商业,智慧城市服务、无人驾驶、AR/VR等产...
小米误删了系统文件,开机只有M1的标志,不能开启,怎么备份手机...QQ同步助手豌豆荚百度网盘PP助手相关问题大一测控专业学生,想买一台m1版的macbookair来学c语言和单片机可以吗?1173浏览10回答是否有必要卖掉intel的M...
笔记本电脑硬盘数据恢复价格多少?-ZOL问答QQ同步助手豌豆荚百度网盘PP助手相关问题硬盘1.5万浏览601回答为什么...STC12C5204AD单片机4541浏览7回答电脑上所有的图标都变成了WPS图标了,怎么....
怎么用万用表测量电路的通断-ZOL问答同样是高级语言为什么C语言可以编写51单片机程序,JAVA却不能编写?1868浏览6回答JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?...