电子说
当你有了学习单片机的愿望,接下来的问题就是从何学起,如何学? 对于在校学生有老师指导,开始时的迷茫会少的多,而靠自学的朋友麻烦就多一些。
例如从哪种单片机学起?
需要哪些器材?
买什么书籍有用?
做些什么实验?。.. 。..等等。
这里就自学单片机过程中的方法和问题向初学者做一些引导和提示:
学单片机之初,你必须懂一些数字电路,若对数字电路中的一般概念都很模糊,最好还是再补习一下再来学单片机。接下来你最好先选一种单片机机种进行学习,因为目前单片机种类较多,其结构和指令均不相同,若这种学两天,那种学两天往往会贪多嚼不烂。这里建议你最好先学8051单片机,因为8051方面的书籍、资料、器材都较多。PIC和AVR以及其它类型的单片机虽有其长处,但现在的书籍、资料以及器件供应并不理想,不太适合初学者选择。若你对这些并不在意的话那选择后者进行学习也未尚不可。
我们建议你选择8051单片机开始学习的原因还在于8051家族的派生品很多,例如ATMEL公司的AT89C51系列单片机就是完全兼容MSC-51 8051系列的(也就是说,AT89C51的指令、管脚、内部主要结构,以及用法与MSC-51相同),他不但兼容,而且还有不少创新,比如他的程序存储器可以电擦、写,一片IC就拥有了过去单片机的最小系统,不需要以前所谓的373和EPROM元件;所以,实验时的电路连接、电路板自制都比较容易,加上目前其价格较底,你学习的片子也可以做产品,做产品的片子也可以做实验,当然AVR系列也有这些特点;而PIC及其它系列在这一点上则显得不太理想。
购买单片机的书籍最好是书的前面你能看懂,而书的后面你不懂,若前后都看不懂的书最好先别买,因为这本书短时间内不会对你起多大作用。当然若不是把书当资料查也不必买前后你都懂的书,因为它对你来说有点浅。应以原理书籍为主。其次可以购买一些应用方面的书籍以便参考。
电子技术本身与实验离不开,若光靠看书是很难理解其原理和学会单片机开发的。你应该购置相关单片机的芯片、编程器、实验板,以及开发他的相关软件。并以边看书边实验的方式进行学习其效果将明显好的多!
由于初学,不可能购置很多昂贵的设备,建议学习用的单片机芯片其程序储存器是可以反复可擦写的,如AT89C系列或AVR系列。这样,在学习烧写时是无后顾之忧的。
好啦,现在来谈谈单片机开发的步骤。想让单片机按你的意思(想法)完成一项任务,必须先编写供其使用的程序,编写单片机的程序应使用该单片机可以识别的“语言”,否则你将是对“石”弹琴。目前较流行的有汇编和C语言;汇编语言可以精确的控制单片机工作的每一步,而C语言则注重结果,不必关心单片机具体的每一步。习惯上宜先学汇编语言后学C语言,这样可以对单片机有一个更深的了解,再说,就是用C语言编程,在需要精确控制时还需要嵌入汇编语句。当然,也有一开始就用C语言的,后来再学汇编;若你学过计算机的 Turbo C ,开始就学单片机的C也许会更快一些。 单片机程序是用文本编辑器编写的纯文本文件,象我们平常在windows计事本中用汉语写计划一样,先这件事后那件事的去写,以所使用单片机语言的语法,按我们的想法把单片机要做的事“一件一件”的依次写下来,遇到“有些事”是重复的,就指明在什么什么地方已有说明(跳转),在正常安排中若有其它突发事件出现,必须写一段突发事件处理计划(中断)。.. 。..。
最后保存文件的扩展名应与所使用的语言要求的名字一致;我们汉语的文章一般保存为*.txt扩展名,而汇编语言的文件扩展名一般应为*.asm;有的开发系统则有自己的规定,如用 Keil C51开发系统,编写的汇编程序扩展名为*.a51;当然Keil C51开发系统也有自己的编辑器,不必用Windows中的计事本。
无论我们使用汇编语言,还是C语言编写的程序,只是给我们看的,这个程序还必须经过与该语言对应的软件将我们能看懂的汇编或C“翻译”(编译)成所用单片机可以识别的代码。将单片机可以识别的代码烧写(编程)到单片机程序存储器中,单片机装的实际电路中才能依你的“计划”去工作。
对于8051系列单片机来说,Keil C开发系统具有编辑、编译、模拟单片机C语言程序的功能,也能编辑、编译、模拟汇编语言程序;对于初学者,开始编写的程序难免出现语法错误或其它不规范的语句,由于Keil C编译时对错误语句提示的是英文,不太好理解,若用汇编的话,可使用DOS下的宏汇编编译器ASM51;他可以对出错语句进行中文提示;你源程序的注释部分还可以使用中文,这更便于你今后对程序的维护。编译出的代码一般扩展名为*.hex或*.bin;这个代码文件必须送到单片机中单片机在电路中才能按你的“计划”去工作。将这个代码文件送到单片机中的工具就是编程器,与电脑连接的编程器一般都通过并口或者串口与编程器的硬件连接,也有相应的服务程序;在连接好电脑与编程后运行其服务程序,在服务程序中先选择所要编程的单片机型号,再调入前面所得到的代码文件,接下来就用编程器将这个代码文件烧写到单片机中。
到此,单片机开发的一个过程就大致完啦。 当然,你不可能一次就把你的“计划”用单片机的语言完美正确的将源程序写好(就是我们平常制订的计划在实际中也有修改的),这就需要反复修改源程序,反复编译、烧写到单片机中、反复将单片机装到电路中去实验。由于单片机执行每一条语句所用的时间很短,有时你无法得到其中间的结果,也无法判断程序出错的位置,这时你可以使用软件模拟的方法,让程序一步一步的执行,每执行一步,通过查看单片机中各关键数据的变化情况,来找到错误或没按你“计划”执行的语句,从而达到排错的目的。若你资金不成问题的话,也可以购买单片机仿真器,他可以取代实际电路中的单片机,在电脑的控制下一步一步的去排错。实际上无论软件模拟(仿真)还是硬件仿真,其功能远不止这里讲的这一点点。
单片机是一门实践性很强的课程(是半软半硬的东西),所以必须是理论联系实践,我试过很多种教学法,还是觉得平凡老师创立的“任务教学法”的效果最好。同时我也接触了德国最先进的教学法:行动导向教学法。因此本人的课程将按行动导向教学法、项目教学法“任务教学法”这个教学思路来编写。
个人认为平凡单片机教程有些不足的地方,所以我也是改革的写教程了,完全按照人的认知规律来写,和平凡老师的教程在很大程度上不同,更注重对学者的能力的培养。也是我提到的“学习的知识不如学习知识的能力重要”。
好,下面我们开始学习了!请大家认真看!
一、什么是单片机呢?
1、和我们的计算机(电脑)差不多,大家都知道,我们的计算机(电脑)里面有
(1)CPU
(2)硬盘
(3)内存
(4)主板
(5)等等。
这些东西是装在一个叫主机的里面的。好大!一个CPU大概要400块,硬盘也要500左右,内存200左右,主板500左右,这些东西加在一起大概要1600块左右。如果配上其他的,一台电脑要3000到4000左右吧。
2、但是把这些东西(CPU,硬盘,内存,主板等等)用集成块做好后,如下图所视:
就成了我们要学习的“单片机”了。
3、请大家想想看这个集成块值多少钱?它可是具备了计算机的功能啊。是不是很贵啊?
不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。
4、当然,在单片机机内部,CPU,硬盘,内存,主板等等东西要改个名字了。
(1)CPU,它的名字没有改,还是叫CPU(Central Processing Unit)。它是单片机的核心部件,包括运算器和控制器。运算器既是算术逻辑单元ALU(Arithmetic logic Unit),其功能是进行算术运算和逻辑运算。控制器一般由指令寄存器、指令译码器、时序电路和控制电路组成。起作用是完成取指令、将指令译码形成各种微操作并执行指令,同时控制计算机的各个部件有条不紊地工作。
(2)“硬盘”,改了名字,叫程序存储器,也叫只读存储器。用ROM(Read only memery)表示。其作用和硬盘差不多,用来存放用户程序。特点是:掉电后不会丢失数据。
(3)“内存”,也改了名字,在单片机里叫数据存储器,也叫随机存储器。用RAM(Random Access Memery)表示。其作用是用于存放运算的中间结果,数据暂村和缓冲,标志位等。特点是:掉电后会丢失数据。
(4)“主板”,也改了名字,叫做I/O(输入输出设备)当然也包含了串行口,并行口,定时器,记时器等等。
5、以上谈到的这些东西都在哪个集成块里面。我们把集成了这些东西的集成块叫做单片机。有些外国人叫微控制单元MCU(Micro Controller Unit),也有人叫嵌入式控制器(Embedded Controller)。现在明白了什么是单片机吗?
6、我总结一下:将CPU、程序存储器、数据存储器、I/O接口电路、定时器/计数器等计算机部件集成在一块芯片上,具有独特功能的单片微型计算机称着单片机。现在总明白了什么是单片机吧!
请大家用自己的话阐述一遍什么是单片机??
二、当我们明白了什么是单片机后,再来猜猜一般的单片机的价格吧?
(1)Intel公司1980年推出的标准MCS-51内核8051现在要7到10块钱。
(2)Atmel公司的AT89c51,AT89s51,AT89c52,AT89s52一般在7块钱左右。
三、我想大家会想一个“电脑”竟然是10块钱以内?功能怎么样?有什么用啊?
我可以告诉大家,它的功能很强大,是以后电子产品的发展方向。只要具有了智能的电子产品,就少不了弹片机技术。非常有用,就业前景非常之好。那么大家一定很想学了,于是去买了本书看。
哈哈,看不懂吧,感觉好难吧?那是因为你没有掌握好学习单片机的方法。学单片机光看书是不够的,也是学不会的。学单片机是需要一些条件的了!
下面是学习单片机需要的条件。
随着社会的发展,电子行业出现了新的技术之一单片机技术,单片机技术在各行各业都得到了广泛的应用,如果说学电子的人不学单片机技术就像我们读书不读外语一样,被人认为是老土啊。
所以我们学电子的一定要学单片机技术。那么如何学习这门技术呢?到底是难还是容易呢?这就要看你的学习方法了。
如果你闭门造车试的学习方法,肯定很难学好的。我根据我这几年的教学经验,我总结出了学单片机的相关教学方法,现在我将把我的教学过程写出来。 学单片机第一步是:建立自己的学习条件。
四、学习单片机需要什么条件?
(1)一台电脑——用于编程和学习。(3000到4000块钱)
(2)编程器——用于把编写好的程序写到芯片中。(100到1000快钱)
(3)仿真器——主要是为了调试程序的正确性。(1000到2000块钱)
(4)如果没有编程器和仿真器,也可以买个便宜的单片机实验板。如电子之城(www.pp51.com)的AZ系统。也就300块钱左右。
或者是电子之城的AS系统,大概是400块钱。它集合了编程器和仿真器的所有功能。推荐买单片机实验板!
(5)还要多买几块单片机芯片,如:AT89C51,AT89S51,AT89S52等等。
五、有了这些东西,如果你已经学了一点单片机知识的话,就可以做搞开发了。
下面我来谈谈单片机开发的过程,以做流水灯为例进行讲解。
(1)设计好硬件电路图
按下图把单片机的各个脚和元器件连接起来:
(2)在电脑上用软件(如keil c51)编写程序。
ORG 0000H
LJMP START
ORG 0030H
START:MOV A,#0FEH
LOOP:MOV P1,A
LCALL DELAY
RL A
LJMP LOOP
DELAY:MOV R7,#0FFH
D1:MOV R6,#0FFH
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END
注意:现在你还没有必要把这个程序看懂,只要知道上面的是计算机程序,而不是英文就可以了。以后我们会一步一步的学这个程序的每个字的意义,直到你自己会编写为止!
(3)用编程器或者单片机实验板把程序从电脑中输入到单片机芯片中(详细步骤以后学)
(4)接上电源,流水灯工作。
六、好,如何快速入门单片机就写到这里,相信大家对单片机有了一定的了解。
全部0条评论
快来发表一下你的评论吧 !