关于如何学习单片机学习进阶Word文件下载.docx
《关于如何学习单片机学习进阶Word文件下载.docx》由会员分享,可在线阅读,更多相关《关于如何学习单片机学习进阶Word文件下载.docx(64页珍藏版)》请在冰点文库上搜索。
2.必修单片机,PCB电路板设计
3.选修CPLD,DSP,高频电路,外壳设计等.
4.能力强的学多一些,能力小的,学少一些.
5.注重实践,多动手,理论要联系实际.
这就是我的看法,希望批评指正.
如何学习单片机
很多想学单片机的人问我的第一句话就是怎样才能学好单片机?
对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。
先说说单片机,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大,我们平时说的C51,C52,S51,S52都是51内核的,只是内存容量有差别,或是烧写程序的方法不同。
只要你学会了51,那什么凌阳,AVR,什么样原理都是一样。
触类旁通。
先说说就我个人的体会怎么样才能更快的学会单片机这门课。
单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管角的电平什么时候输出高,什么时候输出低。
而由这些高低电平的变化来控制由单片机为核心的系统板。
从而实现我们需要的各个功能。
对于看书,我们只需大概看看了解一个单片机各个管角都是干什么的?
都有什么样的功能,能实现什么样的功能?
其实第一次,第二次你可能都看不明白,但这不要紧,因为你没有和实际的物体建立起来这样一种互通的观念,所以我总是说,学单片机看书看两三天的时间就够了,看小说你一天能看五六本,看单片机你两三天看两三边就够了,而且可以不用很仔细的看。
推荐一本书,就这一本就足够,书名忘了,是哈尔滨工业大学出版社出的的,作者是张毅刚。
大概三四百页吧。
大概了解一下书上的内容后,就开始做实践,这是非常关键的,如果说学单片机你不做实践那是不可能学会的,关于做实践有两种方法你可以选择,一种方法:
你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯,数码管,独立键盘,矩阵键盘,有AD或DA(原理一样),有个简单的液晶,有蜂鸣器,这就差不多了,如果上面我提到的这些东西你能让它都熟练工作了,那可以说对于单片机方面的硬件你已经入门了,再剩下的就是自己练习设计其它电路,这需要你练习,不断的积累经验,只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。
方法二:
你身边如果有单片机方面的高手,向他求助,让你帮你搭个简单的最最小系统板,其实对于高手来说,做个单片机的小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有你对硬件了解了才会对它熟悉。
而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还剩事。
(买的时候找我)
有了单片机学习板之后你就是不停的练习了,我在后面会讲到我的大学生活,如果你感兴趣你可以看看,如果不感兴趣呢,看完这段你就可以继续你的快乐生活了。
前面我提到单片机是一项非常注重实践的学科,你最好是自己有台电脑,一天少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。
做电子类的人真的会上瘾。
然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。
就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于实际才能发挥出它的作用,否则你自己好好想想,你上了这么多年大学,天天上课,你在课堂上学到了什么?
你不是为了每学期的期末考试忙碌吗?
考完试一看得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干二净,是不是?
你学到什么了?
但是我告诉你单片机你一旦学会,永远不会忘了。
另外我再说说用汇编和C语言编程的问题。
很多同学大一二就开设了C语言的课,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。
学完了有什么用?
让你用C语言编单片机的程序你是不是就悄悄了?
所以书上的东西我们必须要实践。
单片机编程你想用C语言和汇编语言都可以,但是我建议你用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。
汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。
总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志。
那学个单片机来说就是件非常容易的事。
步骤:
1。
找本书大概了解一下单片机结构,大概了解就行。
不用都看懂,又不让你出书的。
(三天)
2。
找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书找。
(二十天)
3。
自己网上找些小电路类的资料练习设计外围电路。
焊好后自己调试,熟悉过程。
(十天)
4。
自己完全设计具有个人风格的电路,产品,。
。
你已经是高手了。
。
看到了吗?
下功夫一个多月你就能成为高手,我就讲这么多了,学不学得会,下不下得了功夫就看你的了
从51初学者到电子工程师1
很多电子工程师在某个方面精深钻研,成为某一个特殊领域的专家,从一开始的养家糊口、慢慢小有收益、最后宝马豪宅,也是有的;
这些电子工程师可能没有全面掌握这些知识,因为这些行业用不上,例如,液晶显示器,很多行业就不需要;
但是,对于一个初学者,我认为,这个提纲是切合实际的,对于面向控制而言,已经基本够用了;
对于初学者,全面地掌握这些知识是很有必要的,因为你不知道今后需要使用什么哪些知识,而这些知识,80%以上你会在今后的工作中使用上,因为这是都是最基本的。
熟练掌握这些知识和应用,根据不同的地区、行业和老板,月薪应该可以在3000元~5000元之间,甚至更高。
其实,可能有些你用不上,但是知道了也没有坏处;
所谓书到用时方很少,又有谓艺不压身。
知识=月薪=年薪=金钱=香车宝马=……..,呵呵。
为什么要掌握这些知识?
实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分离时无法完成的功能,做成一个成品。
所需要的技能越高、功能越复杂、成本越低、市场上对相应的东东的需求越大,就越成功。
这就是电子工程师的自身的价值。
从成本到产品售出,之间的差价就是企业的追求。
作为企业的老板,是在市场上去寻找这样的应用;
对电子工程师而言,是将老板提出的需求或者应用按照一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大等)在最短的时间内完成。
最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有关。
这就是电子工程师的价值。
将电子产品抽象成一个硬件的模型,大约有以下组成:
1)输入
2)处理核心
3)输出
输入基本上有以下的可能:
1)键盘
2)串行接口(RS232/485/canbus/以太网/USB)
3)开关量(TTL,电流环路,干接点)
4)模拟量(4~20ma、0~10ma、0~5V(平衡和非平衡信号))
输出基本上有以下组成:
1)串行接口(RS232/485/canbus/以太网/USB)
2)开关量(TTL、电流环路、干接点、功率驱动)
3)模拟量(4~20ma,0~10ma,0~5V(平衡和非平衡信号))
4)LED显示:
发光管、八字
5)液晶显示器
6)蜂鸣器
处理核心主要有:
1)8位单片机,主要就是51系列
2)32位arm单片机,主要有atmel和三星系列
51系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一的一件事情,做多了,不如使用arm来做;
还可以在arm上加一个操作系统,程序既可靠又容易编写。
最近三星的arm受到追捧,价格便宜,以太网和USB的接口也有,周立功的开发系统也便宜,作为学习ARM的产品来说,应该是最好的;
作为工业级的控制,是不是合适,在网友中有不同的看法和争议。
本公司使用atmelARM91系列开发的1个室外使用的产品,在北京室外使用,没有任何的通风和加热的措施,从去年的5月份到现在,运行情况良好。
已经有个成功应用的案例。
但对于初学者来说,应该从51着手,一方面,51还是入门级的芯片,作为初学者练手还是比较好的,可以将以上的概念走一遍;
很多特殊的单片机也是在51的核的基础上增加了一些I/O和A/D、D/A;
也为今后学习更高一级的单片机和ARM打下基础。
再说了,哪个老板会将ARM级别的开发放在连51也没有学过的新手手中?
在51上面去做复杂的并行扩展是没有必要的,比如,扩展I/O口和A/D、D/A等等,可以直接买带有A/D、D/A的单片机;
或者直接使用ARM,它的I/O口线口多。
可以使用I2C接口的芯片,扩展I/O口和A/D、D/A,以及SPI接口扩展LED显示,例如:
MAX7219等芯片。
市面上一些比较古老的书籍中还有一些并行扩展的例子,如:
RAM、EPROM、A/D、D/A等,我觉得已经没有必要去看了,知道历史上有这些一回事就行了;
这些知识,是所有产品都具备的要素。
所以要学,再具体应用。
说一个小的故事:
野人献曝。
从前,有一个农民,冬天干了活后,休息晒太阳。
好舒服呀。
他想,这么舒服的享受,我要献给国王,让他也能得到享受。
于是他兴冲冲地到了王宫,将他的宝贵经验献给了国王。
我现在就象这个农民,把自己认为很宝贵的经验献给大家。
希望大家多提宝贵意见;
拍板砖也可以,骂我也无所谓,呵呵,随便。
第一课:
51单片机最小系统
实际上,51单片机核心外围电路是很简单的,一个单片机+一个看门狗+一个晶振+2个磁片电容;
1.单片机:
atmel的89C51系列、winbond的78E52系列,还有philips的系列,都差不多;
现在有一些有ISP(在线下载的),就更好用了;
2.看门狗:
种类很多,我常用的有max691/ca1161和DS1832等,具体看个人习惯、芯片工作电压、封装等。
Max系列和DS系列,还有IMP公司的,种类很多,一般只需要有最基本的功能就可以了;
原来我使用max691,但是max691比较贵,因为它有电池切换功能,后来新设计电路板,就都采用ca1161了。
很早以前的电路设计中,现在可能还有人使用,使用一个电阻和一个电容达成的上电复位电路;
但是,这样的复位电路一个是不可靠,为什么不可靠,网络上能找得到专门论述复位电路的文章;
更重要的是,51系列的单片机比较容易受到干扰;
没有看门狗电路是不行的,当程序跑飞时,回不来了,死在那里。
常规的做法是买一个专门的看门狗电路,完成复位电路和看门狗电路的功能。
这些芯片的资料很容易在网络上找到,通常使用XX搜索就可以了;
看见有PDF的字样,就点击下载;
使用网际快车flashget下载也是最好的;
这些资料通常是pdf格式的文件,所以,还需要一个pdf的阅读器。
XX网址:
网际快车下载网址:
PDF阅读器下载网址:
实际上,有了XX和其它的搜索引擎,很方便下载到这些芯片的资料,比光盘还方便,不需要去到处找。
单片机和单片机抗干扰能力是不一样的。
如果你的产品是工作在干扰比较大的环境,可以试试选用不同品牌的单片机;
原来我在一个光电所,做YAG激光治疗机的控制部分,脉冲激光机的电源放电的时候,能量是很大的,在采取了所有能够想到的光电隔离等措施之后,还是不行;
后来,选用了intel的8031,就可以了。
小声的说:
当时的philips的单片机抗干扰性能是最差的,可能跟Philips主要是用在民用领域有关。
现在不知道怎么样了,有人知道的话告诉我。
单片机的输入输出口线是最容易引进干扰的地方;
在严重干扰的情况下,需要将所有的口线光电隔离。
3.晶振:
一般选用11.0592M,因为可以准确地得到9600波特率和19200波特率;
也可以使用36.864M,这个频率是1.8432M的20倍,看别人的电路板上用过,我也没有用到。
这2种晶振很容易买到,价钱跟12M的一样。
书上说,12M的晶振也能得到9600的波特率,但是,实际用的时候,会每隔一段时间就出错一次,好像累积误差一样,比较奇怪。
即使你的单片机系统不使用RS232接口,也可以做一个Rs232,留着做测试,或者预留等等,没有坏处。
除非你的单片机系统的口线不够用了。
4.磁片电容:
22pf~30pf,可以在有些书上找到什么晶振频率对应什么容量的磁片电容,但是,我都是随便拿来使用,反正在11.0592M下,都没有问题;
如果你用到了更高的频率,最好还是找找资料看看。
参见以下电路图:
如果你的单片机系统没有工作,检查步骤如下:
1.查看门狗的复位输出,可能的话在电路板上加一个LED,下拉,这样看起来就更方便;
要是看门狗复位信号有,往下;
2.查单片机,看看管脚有没有问题;
一般编程器能够将程序写入,说明单片机是好的;
最好手头上准备一个验证过的单片机,内部有一个简单的程序,比如,在某个口线上输出1个1秒占空比的方波等,可以使用万用表测量。
加一句:
设计产品时,要在关键的地方:
电源、串口、看门狗的输出和输入、I/O口等加不同颜色的LED指示,便于调试;
作为批量大的产品,可以去掉部分LED,一方面是降低成本、一方面是流程保密;
3.再查磁片电容,有些瓷片电容质量不行,干脆换了;
顺便说一下,换器件最好使用吸锡带,将焊盘内的锡吸干净,再将器件拔出,这样不会损伤焊盘内的过孔;
再将新的瓷片电容焊接上去的时候,用万用表量量是好的再焊;
4.最后只有换晶振了;
切记要买好的晶振,有些品牌质量比较好。
5.以上按照以上步骤检测时,将无关的外围芯片去掉;
因为有一些是外围器件的故障导致单片机最小系统没有工作。
我准备写的有以下几课:
第二课基本的芯片和分立器件
2.1简述
2.274系列
2.3CD4000系列
2.4光耦与光电管
2.5三极管
2.6电容电阻
2.7固态继电器
2.8继电器
2.9变压器和三端稳压器
2.10开关电源芯片
2.11封装知识、芯片批号等
2.12接插件
2.13器件选购的知识
第三课数字量的输入输出
第四课单片机的通讯接口
第五课单片机系统设计的硬件构思
第六课单片机程序的框架(汇编版本)
第七课模拟量的输入输出
……
各位多提宝贵意见。
保证实用。
如果程序里面有一些例程,也是已经经过测试可以拿来就用的;
实际上是我早年的一些产品的程序的一部分;
不好意思,都是汇编的。
写的时间只有周末会多一些,可以保证做到一周一课;
尽量能够提前,但是这要看看工作忙不忙了。
坊间有一些参考书,准备今天上午到北京中发市场转了一圈,我记得以下参考书目较好:
1.周航慈:
《单片机程序设计》
2.徐涵芳:
《MCS-51单片机结构与设计》
3.何立民:
《……》
有了这些就基本够用了;
其它的很多都是资料的翻译;
如果英文不好,可以看看;
英文好的话,可以不必了,省电钱买开发系统和编程器、开发板什么的,需要什么资料直接下载PDF文件好了。
要想成为电子工程师,需要宽带,在家里安装包月的adsl或者长宽,绝对值得。
实际上,网络上什么都有了,就是