初学者如何学习单片机

2019-04-15 17:34发布

初学者如何学习单片机(转载讲述老百姓自己的故事) 今天跟大家讲述一下我是如何学习单片机技术的,以及对于初学者应该怎样学习,谈谈自己的看法! 我是电子系的03届学生,当时进入我们创新院的时候,也是什么都不懂,但是看到有的学长在用单片机做实验,比如数字钟、智能车、LED显示屏等等,觉得这个东西很神奇,爱好这个嘛,所以就问,这个东西怎么学,需要那些基础知识。学长有好心的就告诉我,到图书馆借书,看看,如果一点都不懂的话,给你讲也不明白。大一的第一个寒假,我记得当时回家,带了3本书,2本英语,一本单片机,结果看了一个假期,还是迷迷糊糊。   大一下学期,开始学习C语言,由于这门课结课早,大概五一的时候就结束了,当时就爱上编程了,到网上开始找资料,编写C程序,调试。但是还不知道单片机怎样学,既然感兴趣就总要动手的,问学长这个东西怎么动手开始学,他们说要编程器什么之类的(当时S系列单片机刚刚出来)我大概在046月的时候,从伟纳电子上购买了一个编程器,挺好用的,现在偶尔用C51的话,还用它烧写程序,当时花了135元,也是第一次网购。回来之后就开始制作电路板,编程。到期末的时候也没有什么大的进展,也就是编编流水灯之类的。真正有进展的时候,是大一的暑假,一个假期就在创新院度过了,只回家待了7天。通过这一个假期,把单片机内部资源,常用的外设弄得差不多了,做了一个数字钟,有按键可以调试。从大二开始,就一发不可收拾,有时候逃课也要来编程,9月份的时候,参加立项,更加锻炼了单片机的设计和电路的设计能力。05年的4月份,帮着2个大四的学长做毕业设计,其实软件硬件都是我一个人做的,是一个鱼缸的温度控制系统那两个学长去了华为,但是不懂硬件,一个去的是销售,一个是市场。所以就是我帮着做的全部,当时采用的是DS1302DS18B20LCD1602液晶,还有3路继电器,控制加热和喂食等等。到4月底的时候参加校内的电子设计比赛,参赛的题目是:基于Ds1307的多功能时钟系统,含DS1307DS18B20LCD1602,获得了一等奖。这个后来被我整理出来发到电子制作了,好像是去年10月份发表的。   http://www.ednchina.com/blog/zl0801/15060/message.aspx   5月份参加学校组织的电子设计比赛,题目是波形存储与回放系统,用的时max197 AD采集、hd7279键盘控制、LCD1602液晶显示、max525DA还原信号、AD637峰值有效值转换模块等等,系统实现采集外部信号并存储,外部可以通过按键调出存储的波形数据,包括频率、幅度,并可以通过DA还原,这个也获得了校一等奖。   http://www.ednchina.com/blog/zl0801/1095/photo.aspx   在以后就是9月份的全国电子设计大赛了,同样的选题还是信号之类的,第一题:正弦信号发生器   采用的也是51单片机,用了2片,一个的功能不够用了,采用AD9851DDS信号源,最高输出10M信号,并实现了题名要求的调频、调幅等发挥要求,只是在最后的信号输出负载的地方没有达到指标,最终获得了国家二等奖,有点遗憾,但是我们三个参赛的队员都是03届的,当时刚刚上到大三,能拿到这样的成绩也算不错了,现在我们3个人,2个都保送了研究生,另外一个保送本校,他给拒绝了,自己考外校了,但是考的有点不理想,分数有点低,分数线还没有出来,只能住他好运了,我相信,只要能进复试,就没有问题的!   以上就是我自己学习单片机的一个过程,以及在学习的过程中做过的一些实际的比赛和项目之类的。其间也接触过其他种类的单片机,但是还是习惯于用51系列的,呵呵,有点恋旧吧,但是也打算换avr的了,性价比比较好,msp430系列的也不错,但是都是贴片封装的,开发起来有点不方便。适合做工业级产品。   下面简单的说一下,初学者如何学习单片机技术,从我自身的角度来讲,我觉得学习单片机的最好的办法就是实践,至于说基础,比如模拟电路和数字电路当然懂得越多越好,如果不是很懂得话,也没有关系,可以慢慢补充,其实单片机不外乎硬件和软件,硬件上呢,了解了最小系统之后就可以设计了,时钟电路复位电路电源等等就可以了。都有典型的电路,不用费时间,至于软件呢,现在网上也有,比较流行的都是keil,开发方便,我也写了一篇keil的入门教程,比较详细了。   教程:  http://www.ednchina.com/blog/zl0801/16744/message.aspx   软件:http://www.ednchina.com/blog/zl0801/3375/message.aspx   接下来的话,就是编程,说一下编程的学习过程,一个最好的办法就是模仿,你先找到一个别人的现成的程序,能够编译生成代码,下载进去,看到现象,之后再自己写,如果有错误,对照正确的,比较一下,成功了之后,再往下学习。   最烦的就是一种人,把别人的程序拿过来,直接编译,下载了之后,以为自己就会了,但是要让自己动手写的时候,又写不出来了,哪怕是抄写,也要熟悉一下的。这是一个必须的过程,最后需要达到一个什么程度呢,那就是单片机最基本的定时器、中断、I/O口可以直接拿过来就写,不需要再翻书或者找别人的代码了。   至于编程语言,我还是建议C语言,怎么说呢,开发方便吧,有的人说汇编的直接易于理解,但是你要是写100行的汇编可以,1000行以上呢? 做一个乘除法,汇编就不行了,C语言通用,移植方便,你学汇编,51单片机一套,avr单片机又是一套,msp430还不一样,但是C语言都是一样的,算法拿过来就可以了,改一下I/O口就可以用了,开发方便。   最后,给大家算一下,现在学习单片机的成本,以前我学习的时候,需要购买编程器等等,现在不用了。入门来讲,51单片机最好了,资料多,通用,简单。市场上现在比较好的有S系列的,C51系列的,STC系列的,当然了还有各个公司的增强型的。从学习的角度讲,推S系列和STC系列,可以ISP下载,我现在用的STC系列,最小开发系统:   单片机一个        6 Max232一个      3 串口线一根        5元(可以自制,就是3根线) 阻容元件            2 晶振                    1 发光二极管        1 万能板                2   加起来一共20元,当然了这些只是最基本的,如果自己开发的话,还需要有电烙铁、电源、焊锡等等。其他的资源,比如数码管、蜂鸣器、液晶等等可以慢慢在扩充,软件呢,就更方便了,keil可以直接在网上下载,我的网站就有,下载软件,网上也有。   总之,现在资源已经很丰富了,学习单片机已经不是什么难事了,只要用心学,我相信一个月的时间应该可以差不多的了。