单片机原理:
单片机由运算器、控制器、存储器、输入输出设备构成。
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
应用:
单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。通用型:这是按单片机适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
作为一电子爱好者,如你不懂单片机的话,不管你是搞维修的,还是搞开发的,在现在以及将来最起码你不算一位合格的电子爱好者.我是99年6月开始学的单片机,算是还可以吧(自我感觉良好)!
要想学好单片机必须对它有兴趣,这是必然的!也是最重要的!在这基础上你从一个不知单片机是个什么东东到自己能做一些单片机的东东----三个月用你的业余时间搞定,要知道到那时你是个镀了金的"电子爱好者"(学校刚学完的本科生不过如此),那样的兴奋啊...!呵呵!
想学单片机从MCS-51开始,那是公认的,不必研究了.但单片机是一个很系统的学科,我们作为自学的,不可能象学校那样很系统的学,那样的话可能要倍上它三五年了.那么怎么才能在三个月而且是业余的时间学好它呢?我个人认为是---怎么样使自己尽快的入门是主要的,一旦入了门就什么都好说!虽说不必等系统的学了计算机系统再来学单片机,但有的一些你必须要了解的,那就必须要学,必须要懂.学单片机要对数字逻辑(数字电路),数制,汇编语言等等---必须懂!头开始大了吧!呵呵!谁叫你对它感兴趣呢!但话也得说回来,感兴趣归感兴趣,要是真的让你买来几本书,那感兴趣的也是每本书的前面几页,或许用来作睡前摧眠罢了!可是应该要懂的就必须得学,怎么办呢?办法是有的,因为我就是这么过来的!
首先:你对必须有电脑,我想你能上网电脑不是大问题,况且学单片机也是离不开电脑的,没电脑你还是别动那个脑筋了!视频教程应该听说过吧!对了,就是视频教程,这样我们就不必看那摧眠的书了,就象看电视一样的看教程,好的教师讲的课程比较通俗易懂,容易理解,也就不象书那样容易摧眠了.一旦你听得下去了,你的兴趣就更上来了,而且比在学校里听老师讲课还方便,听不懂的地方你可以倒到前面重新来过,看了一次不明白的地方还可以重看N次,没人会烦你!结合网上多得不能再多的有关内容做一些东东,你不想学会都难(真的不想学除外)!呵呵!不是吹牛!问题是怎么学?从那儿学起?什么教程好?怎么按排好教程课时?
单片机是计算机的一个分支,是计算机一个系统的.它的硬件是一系列逻辑时序电路的组合."逻辑 时序"那就是数字电路啊!那数字电路原理也就必须要了解的啰!况且单片机里的什么锁存器啊,寄存器啊,译码器啊,计数器啊,等等.都是数字电路里的东东,了解了数字电路你也就一只脚进了单片机的大门.我有幸看了刘润华老师的<数字电子电路基础>的视频教程,他可是一位很不错的教授!通俗易懂,容易理解!教程30 个课时,我想如果你有一点点的电子基础(那怕你一点不懂,你只要有兴趣就行),这里面的东东你只要理解便是了.它比模拟电子电路要好理解的多得多,我是三天看完的.给你一个星期吧!怎么样?呵呵!一个星期就能把前脚踏进单片机的大门,不错吧!
你的一只脚已经进了单片机的门,那么我们就来考虑你的另外一只脚吧!
我们假设你没有太多的空时间,刘润华老师的<数字电子电路基础>的视频教程,你用了15天,学这个东西最好是连着看,可不要断断续续的,三天打鱼二天晒网的后果你是知道的!三个月是90天,你用了15天,那就再有75天了,我们怎么按排这75天呢?总不能把入门的后一只脚用了75天再把它拖进来吧!!呵呵!那还算叫“搞定”啊!入门后还要学会怎么站起来走路,然后是怎么跑着走路,这样才是刚刚“搞定”!呵呵!晕了吧!不急,不是说过吗,只要入了门什么都好说,“跑”算什么,“飞”都没问题!我们走进门吧!
武庆生老师的《单片机原理及接口技术》视频教程是个很不错的选择,武庆生老师是很敬业的教师,他把单片机中的很多技术难点,技术细节讲得透透彻彻!明明白白!清清楚楚!尽管武庆生老师讲得这么好,可对我们从来没有听过什么是微机原理,什么是计算机接口技术,什么是计算机汇编语言等等的人来说,还是感到头大!没有刘润华老师的<数字电子电路基础>的视频教程来得轻松了,我的过程是:买一本笔记,每一课时先认真的看一遍,然后再认真的重新看一遍,并把重要的记下来.这样的话,有了<数字电子电路基础>已经打了底的基础,应该没多大问题了,我是说让后面的那只脚进得门来没多大问题了!呵呵!
<单片机原理及接口技术>整个课程33课时,我用了大概半个月吧!我是很认真很认真对待它的!整个课程我都做了笔记,而且我发现做笔记有很多好处,首先你会知道自己已经学到那儿了,学得怎么样了(最起码是你懂了你才会记下来吧)!其次是课程里有很多很多经典的汇编程序,你记下来后可作会日后写程序的范典.就算你不小心用了20天吧!这样说来大概是35天后,你也就不小心进了单片机的大门.呵呵!我用"不小心"是很有意思的,我就是不经意间看完的.在这过程中每天都有"原来是这样"和"缘来如此而已"!那种感受,你慢慢体会吧!
我再来说说细节问题,课程里一开始说得是单片机的内脏,你有了刘润华老师的<数字电子电路基础>的视频教程的过程,应该没有太大问题的!接下是汇编语言的指令部分,整个过程武庆生老师用了大量的实例,这部分你得十二份的认真对待,日后你要用这些语言写东东的!往下是"定时器/计数器","串行接口","中断系统"这三部分可谓是单片机的核心,有了"定时器/计数器"单片机才会自动控制,有了"中断系统"单片机才会有了"智慧",有了"串行接口"单片机才会知道外面的世界有多大!再往下是"系统扩展"和"接口技术",尽管我是很认真的看完的,这里边的"I/O口的扩展","键盘接口","A/D","D/A"等等,在<数字电子电路基础>里有的已有交待,比较轻松的!有的也只限于了解就可以了,因为将来的单片机里象"A/D","D/A"等等是芯片自带的,你可以有选择的应用便可!
好了!到了这里我们算是完全进得门来了!不错吧!只用了你大概一个月的时间.相当于学校一年多的本科生的时间.我不是说要三个月才能算是"搞定"吗?是的,我们只不过是刚刚入门.接下来是怎么"跑"的问题.
动手吧!花钱了!到网上多看看买一个带ISP下载线的单片机开发板,100元左右.注意的是你学的是MCS-51,你就得买MCS-51的开发板.须要注意的是:
1/ 自带程序的在线烧录(自下载)功能.这会让你省下了买编程器的费用!
2/ 带标准RS232接口.看看板子上有没有RS232芯片和24C**系列的EEPROM芯片,"串行接口","中断系统"这两部分的内容可以得到练习.
3/ 提供16*2字符显示液晶板接口了吗!以后用得着.
4/ 精确标准的时钟电路.找找有没有DS1302芯片,好东东!"定时器/计数器"可以得到练习.
其它的应该一般的开发板都会有的,就不必多说了!
KEIL 是美国Keil Software公司出品的51单片机软件开发系统.不管你是用汇编的还是C语言的,它都能帮你产生目标代码,生成的文件你再把它用ISP下载线写进芯片,呵呵!你的东东就出来了!算是"跑"起来了吧!这跟锻炼身体有点相似,跑得越多你的身体就越好,你的身体越好就跑得越快!到底能不能"跑"起来,或"跑"得快不快,那是你的事情了!至少你已经"走"起来了!
在这里我再说一些细节问题:学"跑"时,最好找一些简单的现存的小程序玩玩!然后想办法改程序,看看能不能再"跑"起来,我就是这样"跑"起来的!玩比较大一些程序时尽量找现存的子程序(就是一些大虾们说的"模块")作为你的子程序,这样就比较可靠了!我们假设你已经"跑"起来了("跑"不起来才怪)!就算你学"跑"用了30天左右的时间吧.入门用了你30天,看看学"跑"和入门的比例:占了一半啊!是的学单片机就是练出来的!必须练,练,练,再练!最好在入门的时候就练!这一点很重要哦!
到了这里你的单片机已经算是基本上"搞定"了!如果你只是搞维修的,那你毕业了!呵呵!如果你是想搞单片机开发,并且想用单片机养家糊口的,那你离"搞定"还有一点距离.一些大的工程一般不是一个人能完成得了的,可能要几个人甚至几十个程序员一起合作.这时候你还用汇编语言就有点说不过去了!汇编语言优点是很多,可是它也有致命的弱点:很难交流,很难移值等等!C语言是个不错的选择,与汇编语言相比,C语言在功能,结构性,可读性,可维护性上有明显的优势!生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑!C语言的优势还体现在你将来搞MCS-51以外的单片机的开发时,你只要对这种单片机的硬件结构有一个大概的了解就可以了!就是说C语言编程时对硬件结构的了解要求不是太高的!学C语言相比是比较容易的,我是网上找到的多媒体学习光盘!十天就能知道大概了!然后也是练,练,练!呵呵,没这么容易吧!就这么容易!有的东西我们只是被它的外表吓住了,就象漂亮的MM不是你想象的那么难搞定一样!自信很重要哦!!!!!!!
学了C语言就算把单片机"搞定"了吧!是的"搞定"了!但"搞定"是要你自己感觉的,这时候我建议你看看朱清新老师的<软件工程>,这里会跟你说说什么是编程!看过后你就有了一种更上一层楼的惊喜!什么是结构化编程,什么是面向对象编程!使你对程序结构和你的编程水平有了质的提升!罗克露老师的<计算机组成原理>,按照常规的教学是先学这里面的内容,然后才是《单片机》.因为我要在这里提出来,如你能再系统的看一遍罗克露老师的<计算机组成原理>,也是有质的升华的!到那时再加上你从网上积累的东西,和你的实操经验!呵呵!算是“搞定”了!算算吧!这样的话三个月没透支吧!
以上只是我的一家之言!有什么不当的地方,请多多包含!
中断向量地址是指各个中断响应后的入口地址,分别是:
1、外部中断0:0003H
2、外部中断1:0013H
3、定时器0中断:000BH
4、定时器1中断:001BH
5、串口中断:0023H
扩展
存在的必要性呢?
补充
有固定中断向量,这样才能及时响应中断,才符合“中断”之本意。
单片机原理及应用需要学习低级汇编语言和C语言。学习具有一定难度。但只要有恒心是一定能学好的。
1)编程语言:
a)汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
b)C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2)单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
3)由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言(近几年,C语言也开始广泛被应用),它是除了二进制机器码以外最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC也是承受不了的。
4)应用分类
a.通用型/专用型,这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
b.总线型/非总线型,这是按单片机是否提供并行总线来区分的。总线型单片机单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
c.控制型/家电型,这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
单片机原理及应用:(张毅刚2004年版图书)
本书详细地介绍了MCS-51单片机的硬件结构、指令系统,从应用的角度介绍了汇编语言程序设计与各种硬件接口设计、各种常用的数据运算和处理程序、接口驱动程序以及MCS-51单片机应用系统的设计,并对MCS-51单片机应用系统设计中的抗干扰技术以及各种新器件也作了详细的介绍。本书突出了选取内容的实用性、典型性。书中的应用实例,大多来自科研工作及教学实践,且经过检验,内容丰富、详实。
什么是单片机?
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机学习方法:
第一阶段:先浏览教科书里的硬件部分,大至了解单片机的硬件结构。如ROM、RAM、地址、I/O口等,以及看一些厂家的MCU资料(Data Sheet),来加强MCU所提供各项资源的印象。简单点的说单片机就是一块集成芯片,但是不同的地方就是可以通过编程来改变其引脚的电平高低。可以用计算机的原理来理解单片机。比如说 ROM 其实就像计算机的硬盘一样,是用来装东西的,装运行的程序。
第二阶段:就是了解二进位数字、十六进位数和软件方面的内容。尽管有很多高级语言可用于单片机的编程,但初学还是以汇编语言为好,更有利于和硬件结合,掌握硬件结构。知道汇编语言、机器语言、指令、 程序等概念后,从MOV指令开始,学习汇编语言和编程,在MCU汇编语言系统有11条指令,简单又好理解它们怎样和硬件联系,更有助于一般学习单片机的指令整合与运用.因此其方法可先了 解几条基本的MOV指令和它的机器语言,大致建立起单片机的硬件和软件概念,来知道单片机的硬件是由指令控制指挥的。
第三阶段按照编程环境的使用手册,熟悉使用编程环境。现在的编程环境一般都和电脑相连,只要具备基本电脑知识的人都可很快掌握步骤。
第四阶段是依靠实验板,学习掌握单片机的汇编语言指令系统和简单编程。同时和前面所学硬件知识结合组装,起到主学软件,巩固硬件的双重作用。
单片机原理:通用计算机是分模块的,比如内存条,CPU,显卡,这些设备是通过系统总线连接成一个计算机系统。所以可以看出,单片机是微计算机系统,因为小巧,价格也便宜,很适合应用于嵌入式系统。当然单片机的功能没有通用型计算机的功能那么强大。
单片机的应用:导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
微机原理及应用主要讲8086/8088CPU这些类型的一些东西,比较靠近计算机方向
单片机原理及应用主要讲工业现场用的一些带RAM/AD/DA等等一些工业控制方面的MCU芯片应用
只是现在的行业内对名称没有很规范,可能有的也把两者直接等同吧,毕竟他们相似度多