单片机原理及基于单片机的.ppt

上传人:s****8 文档编号:67284211 上传时间:2022-12-24 格式:PPT 页数:45 大小:1.21MB
返回 下载 相关 举报
单片机原理及基于单片机的.ppt_第1页
第1页 / 共45页
单片机原理及基于单片机的.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《单片机原理及基于单片机的.ppt》由会员分享,可在线阅读,更多相关《单片机原理及基于单片机的.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单片机原理及基于单片机的嵌入式系统设计蔡方凯 主 编中国水利水电出版社绪绪 论论 在工业、农业、军事、保安、在工业、农业、军事、保安、金融、金融、仪器仪器仪表、仪表、航空航天、航空航天、医疗、通讯、办公设备、医疗、通讯、办公设备、娱乐娱乐休闲、健身、体育竞赛、服务领域休闲、健身、体育竞赛、服务领域,大量单片机大量单片机-嵌入式技术已经无处不在。嵌入式技术已经无处不在。正迅速改变着人们传统的生产和生活方式。正迅速改变着人们传统的生产和生活方式。请稍微留心一下我们的周围,看看身边到请稍微留心一下我们的周围,看看身边到底发生了什么变化?底发生了什么变化?单片机技术的应用遍布国民经济与人民生活的各个领

2、域1.1 微型计算机系统结构微型计算机系统结构 微微机机的的工工作作过过程程按按照照“程序存储,程序控制”的方式工作。程序存储是指用户根据实际应用需要将程序编写完毕,并将程序的机器码存放在存储器中。用户编程的根本目的是要求计算机能够按照用户需求一步步的执行该段程序。那么计算机如何能够理解用户程序,并按要求去执行该段程序呢?这就是程序控制。程序控制是指CPU内的控制器按照用户程序中的指令顺序,从存储器中取出指令,并分析指令的功能,进而发出各种控制信号,指挥计算机中的各类部件来执行该指令。这种通过取指令、分析指令、执行指令的操作重复执行,直到完成程序中的全部指令操作为止。1.2 微型计算机工作过程

3、微型计算机工作过程一、如何将程序的机器码存储到程序存储器中?二、如何将程序的机器码从程序存储器中取出?三、当CPU完成从程序存储器中读出程序的机器码后,如何执行该语句?按照“程序存储,程序控制”的方式工作,微机必须解决以下几个问题:对对5151单单片片机机而而言言,将程序存储到程序程序器中则相对复杂,必须利用51单片机芯片厂家提供的专用设备(烧写器)来完成,市场上有专门的单片机烧写器销售。烧写器实际上就是完成对程序存储器的写操作。利用烧写器可以将用户程序的机器码存储到单片机中。1.2.1 如何将程序如何将程序机器码机器码烧写到程序存储器中烧写到程序存储器中对于普通对于普通PC而言,而言,其程序

4、存放在硬盘中,此时面临的问题就是将文件、程序内容写入硬盘,在Windows操作系统中提供了图形化的操作环境,读者不必了解对硬盘的写操作原理,仅需要按“保存”按钮或“保存”菜单就可以很方便的完成该操作。1.2.2 1.2.2 如何将程序从程序存储器中取出如何将程序从程序存储器中取出 1 1最基本的计算机组成最基本的计算机组成 2 2存储器存储器 3 3非常简单的非常简单的CPU设计与实现设计与实现4 4如何从程序存储器中取程序数据如何从程序存储器中取程序数据 一台简单的计算机通常包括三个主要的子系统,中央处理单元(CPU)、存储系统(用来存储CPU正在执行的程序和数据)、输入/输出子系统(如键盘

5、、显示等)1 1 最基本的计算机组成最基本的计算机组成计算机系统采用了三总线结构。从物理上说,总线是一组导线,计算机的部件都是连在总线上的,为了将信息从一个部件传到另一个部件,源部件先将数据输出到总线上,然后目标部件在从总线上接收这些数据。地址总线:与其他总线不同,地址总线是单向的,地址总线的内容总是由CPU送到地址总线上,而CPU不读取地址总线上的数据。例如,当CPU从存储器读取数据或指令,或写数据到存储器时,必须指明要访问的存储器单元地址,CPU输出地址内容到地址总线上,而存储器从地址总线上读取地址,并且用它来访问正确的存储单元。对应I/O子系统,比如键盘、显示等,都有一个唯一的地址,当访

6、问某个I/O子系统时,CPU将此设备的地址放到地址总线上,每一个设备均从总线上读取地址并且判断自己是不是CPU正要访问的设备。若不是则不作任何响应,若是则和CPU进行相应的数据传输。数据总线:数据是通过数据总线来传送的,当CPU从存储器中读取数据时,它首先把需要访问的存储器地址输出到地址总线上,发出读操作命令,然后存储器从地址总线上读取地址,并根据地址访问相应的存储单元,同时将该存储器单元中的数据输出到数据总线上,这样CPU就可以从数据总线上读取数据了。当CPU向存储器写入数据时,它首先输出地址到地址总线上,发出写操作命令,然后输出数据到数据总线上,这样存储器就可以从数据总线上读取数据并将它存

7、储到正确的存储单元中。当访问某个I/O子系统时其数据总线功能类似于对存储器的访问。控制总线:控制总线是控制信号的集合,这些信号用来控制数据要读入CPU还是要写入CPU,CPU要访问存储器还是访问I/O子系统等。答:只有数据总线,没有地址和控制总线,则通信方式只能采用“广播通信方式”,若只有数据和控制总线,没有地址总线,则每个外部设备都必须有控制总线,若外部设备多,则控制总线就必须增加,控制总线必然称为外部设备扩展的“瓶颈”。若没有地址总线,对应存储器而言,在没法确定当前数据需要存放在存储器的那个地址单元中。问1、为什么需要三总线,只有数据总线不可以?问2、鼠标、键盘是外部IO设备,为什么不是三

8、总线?答:在计算机中硬件设计了三总线协议和PS/2或USB协议的接口转换电路,即将并行数据改为串行数据传输方式存储器用于存储数据的一组电路,虽然在设计中它不是严格的组合电路,一个存储器元件有多个存储单元,每个单元存储固定长度的二进制值,不同的存储器芯片,其存储单元的数量和大小也不相同,存储器芯片存储容量大小由单元数乘以每个单元的位数确定。存储器一般分为随机读写存储器(RAM)和只读存储器(ROM)。2 存储器存储器随机存取存储器(RAMRandom Access Memory):简称随机存储器或读写存储器。是一种既能写入又能读出数据的存储器。但当机器断电或关机时,存储器中存储的信息会立即消失。

9、只读存储器(ROMRead Only Memory):是计算机内部一种只能读出数据信息而不能写入信息的存储器。但当机器断电或关机时,只读存储器中的信息不会丢失。存储器可以形象的把它理解成装了很多元件盒的元件储存柜,元件储存柜放很多元件盒,每个元件盒中放不同的元件,当用户需要某一元件时,必须知道该元件放在那个元件盒中,即需要对元件盒进行编号,否则只能一个个元件盒查找。对应于存储器,编号即为存储器的地址,元件盒内的元件就是存储数据。例如一个大小为5128位的存储器芯片有512个存储单元,每个单元8位就可以理解成元件柜共512个元件盒,那么如果想找到对应的元件盒里的元件就必须对元件盒进行编号,若采用

10、二进制编号,则512个单元共需要9位二进制,即对应存储器的地址。对元件盒里元件个数可以采用8位计数,即一个元件盒最多可存放255个元件,即可以得到对应元件盒中的数据信息。存储器芯片的地址输入选择它其中的一个单元,有个单元的存储器芯片需要N位的地址输入,通常标记A【N10】,对于大小为5128位的存储器芯片而言,其地址总线为A【8.0】。存储器芯片中的数据引脚常用于访问数据,数据总线的每一位都有一个引脚,对于M位的数据总线在,这些引脚通常标记为D【M10】,对于大小为5128位的存储器芯片而言,其数据总线为D【7.0】。问:为什么数据总线不是三根?答:若数据总线是三根,则存储器中存储的数据最大只

11、能为8,若数据总线8根,则存储的数据最大为256这一节描述和设计一个非常简单的CPU,这个CPU在现实中是没有任何应用价值的,因为它太简单了,但是目的是为了读者理解CPU的具体工作原理。为了说明CPU的设计过程,考虑一个小型的有点不实用的CPU,这款CPU的特点是:CPU仅能够访问64字节的存储空间(程序存储器和数据存储器共用)每个字节是8位 CPU只包含一个程序员可以访问的寄存器,即一个标记为ACC的8位累加器3 3 非常简单的非常简单的CPUCPU设计与实现设计与实现指令集通常由三大类指令组成,传送类指令、运算(包括逻辑运算)类指令、转移类指令三部分组成。在这款CPU中,仅设计4条指令,按

12、照等长编码模块,利用高二位对指令类型进行编码,低6位AAAAAA表示地址线,如下表11所示。MOV指令代表“传送类”指令,ADD指令代表“运算类”指令,AND指令代表“逻辑运算类”指令,LJMP指令代表“转移类”指令。该CPU的指令集对上面这个CPU而言,可以说:麻雀虽小,五脏具全,从系统结构的指令集设计而言,这个系统包括运算类、传送类、转移类、逻辑运算类指令。根据该款CPU的特点,可以看出该CPU可访问64字节的存储器空间,所以其地址总线是A5.0。由于每个字节是8位,所以其数据总线为D70。CPU设计到这里,还缺什么?除了ACC累加器以外,CPU还需要一些其他的寄存器,以便完成取数据、译码

13、和执行指令所必须的内部操作,这些寄存器为:一个6位的程序计数器(PC),它的内容为将被执行的指令在程序存储器中的存储地址。一个6位的地址寄存器(AR),CPU不能直接将地址信息送往地址总线,CPU首先将地址信息送给地址寄存器AR,AR通过地址总线A5.0向存储器提供地址。一个8位的数据寄存器(DR),CPU不能直接将数据信息送往数据总线,CPU首先将数据信息送给数据寄存器DR,DR通过数据总线D70从存储器读写指令数据。一个2位的指令寄存器(IR),它用来存放从存储器中取回指令的操作码。至此,一个简单的CPU总算设计完成,一个CPU该有的都有了,能够完成一些简单的操作。在CPU能够执行某条指令

14、之前,它必须将这条指令从存储器中取出来,CPU从程序存储器中取程序数据的具体操作过程 将当前要执行指令的存储地址送到程序计数器中,由于地址总线A【5.0】的内容必须从地址寄存器送出,因此第一步就是要把程序计数器PC的内容拷贝到AR中,这样,取指令周期的第一步状态就是:第一步:ARPC4 如何从程序存储器中取程序数据如何从程序存储器中取程序数据 CPU从存储器中读取指令数据:CPU必须发一个READ信号,该信号从CPU控制总线输出到存储器控制总线上,CPU给存储器足够的时间按照CPU提供的地址访问相应的存储单元M,同时存储器将访问的数据(即指令的机器码)发送到数据总线D【70】上,CPU通过数据

15、总线将这些数据读入并且存储到DR中。实际上另一个操作也将在这里完成,增加程序计数器,以便能访问下一条指令。所以第二步实际上是完成如下操作。其中(M)表示存储单元M中的内容。第二步:DR(M),PCPC1 上述两步完成后,CPU已经得到程序的机器码,作为取指令的一部分,CPU还必须完成两件事情,首先,它必须将DR的高两位拷贝到IR,这两位表示那条指令将要执行,同时在取指令阶段CPU将DR的低6位拷贝到AR中,这样这两个操作可以表示如下。第三步:IRDR7.6,ARDR5.0完成上面三步操作后,CPU将程序存储器内容取出,其高二位存放在指令寄存器IR中,为操作码信息,通过IR的值可以判断该指令为四

16、条指令中的哪一条。低6存放在地址寄存器AR中,为执行指令操作的操作数的地址编码。例如进行ADD加法操作,则必须以AR单元的内容为地址去访问存储器,并取出该存储单元的内容和累加器ACC中的内容进行相加,那么如何以AR单元的内容为地址去访问存储器,该存储单元的内容又是如何得到呢?即CPU完成 对存储器的读操作。CPU以AR单元的内容为地址去访问存储器,从存储器中读取操作数。CPU发一个读信号,该信号从CPU控制总线输出到存储器控制总线上,CPU给存储器足够的时间按照CPU提供的AR单元的内容作为地址访问相应的存储单元,同时存储器将访问的数据(即指令的操作数)发送到D【7.0】上,CPU通过数据总线

17、将这些数据读入并且存储到DR中。所以第四步实际上是完成如下操作。(AR)表示以AR单元的内容为地址所对应的存储单元的内容。第四步:DR(AR)1.2.3 CPU读出指令码和操作数后如何执行 当CPU把一条指令从存储器中取出来以后,它必须判断所取的是那条指令,对于这个最简单的CPU而言,有四条指令,根据等长编码原理,可以将四条指令依次编码为00,01,10,11。指令寄存器IR的值由当前指令类型决定,指令寄存器IR中的值将决定调用那个执行周期,为执行“传送类”指令,CPU必须完成两件事情。首先必须从存储器中取出一个操作数,然后将这个操作数送入累加器中。操作数的取值通过对存储器的读操作已经将操作数

18、取出。现在两个操作数分别放在ACC和DR中,因此对于ADD指令,主要进行下面的操作。第五步:MOV:ACCDR当前指令执行完毕后,开始取下一条指令。即将当前PC值送入AR中,重新开始下一条指令的执行。1 MOV指令执行周期为执行“加法”指令,CPU必须完成两件事情。首先必须从存储器中取出一个操作数,然后必须将这个操作数和累加器中当前的值相加,并把结果存回到累加器中。操作数的获取通过第四步对存储器的读操作已经完成。现在两个操作数分别放在ACC和DR中,因此对于ADD指令,主要完成下面的操作。第五步:ADD:ACCACCDR2 ADD指令执行周期与加法指令类似,为执行“与操作”指令,CPU必须完成

19、两件事情。首先必须从存储器器中取出一个操作数,然后必须将这个操作数和累加器中当前的值相“与”操作,并把结果存回到累加器中。现在两个操作数都在ACC和DR中,因此对于AND指令,主要进行下面的操作。第五步:AND:ACCACCDR 3 AND指令执行周期由于LJMP指令中不需要操作数,所以LJMP指令与上述三条指令执行略有不同,不需要第四步操作。CPU只需要完成将要跳转的目标地址送给程序计数器即可。因此与上述指令第四和第五步操作不同,LJMP指令执行周期相对简单,由于地址已经存储在AR,仅需要将AR的值送给PC指针,因此对于LJMP指令,仅需要如下操作即可。第四步:LJMP:PCAR 为了更形象

20、的说明上述过程,可以用图来说明所设计的CPU的状态图,包括了取指、译码和执行周期。4 LJMP指令执行周期1.3 单片机发展历史单片机发展历史1971年intel公司研制成功世界上第一台4位微处理器;1973年intel公司研制成功8080 8位微处理器;1976年intel公司推出MCS-48系列8位单片机;80年代初在MCS-48单片机基础上推出MCS-51系列单片机。计算机系统通常由多块印刷电路板制成:计算机系统通常由多块印刷电路板制成:多板机多板机 主板显卡显卡声卡声卡存储器接口存储器接口网卡网卡输入输出接口输入输出接口内存条内存条CPU芯片芯片内存条内存条存储器接口存储器接口存储器芯

21、片存储器芯片输入输出接口输入输出接口输入输出接口输入输出接口芯片芯片定时计数器定时计数器芯片芯片A/D、D/A芯片芯片单板机 印印 刷刷 电电 路路 板板 单单 硅硅 晶晶 片片 CPU存储器存储器控制电路控制电路定时器定时器时钟电路时钟电路I/O口口单片机1.4 单片机发展趋势单片机发展趋势1 低功耗CMOS化 2 微型单片化 3 主流与多品种共存 1 小巧灵活、成本低,易于产品化。它能方便的组小巧灵活、成本低,易于产品化。它能方便的组装成各种智能化的控制设备及各种智能仪器仪表。装成各种智能化的控制设备及各种智能仪器仪表。2 面向控制,能针对性地解决从简单到复杂的各类面向控制,能针对性地解决

22、从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。控制任务,因而能获得最佳的性能价格比。3 抗干扰能力强,适应温度范围宽,在各种恶劣的抗干扰能力强,适应温度范围宽,在各种恶劣的环境条件下都能可靠地工作,这是其他机种无法比环境条件下都能可靠地工作,这是其他机种无法比拟的。拟的。4 可以很方便地实现多机和分布控制。使整个控制可以很方便地实现多机和分布控制。使整个控制系统的效率和可靠性大为提高。系统的效率和可靠性大为提高。1.5 单片机特点单片机特点Intel公司:公司:8048、8051(8位);8096(16位);80960(32位)。Motorola公司:公司:MC-6801(8位);6

23、8H16(16位);68HC332(32位)。另外日本NEC公司;荷兰Philips公司等由于8位单片机基本能满足目前大多数应用系统的要求,所以目前8位单片机仍是应用主流应用主流。1.6 主要单片机厂商主要单片机厂商 MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了很多品种,如80318031,80518051,87518751,89518951,80328032,80528052,87528752,89528952等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51

24、系列单片机,而8031是早些年在我国最流行的单片机,所以很多场合会看到8031的名称。MCS-51系列 INTEL公司将MCS-51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。AT89系列 补充 单片机的开发过程1、任务分析2、设计并制作硬件3、编写软件。在编写软件之前,首先要确定一些常数、地址,然后用文本编缉器编写软件,编写好后,用编译器对源程序文件编译、查错,直到没有语法错误4、应用仿真机对软件进行调试,直到程序运行正确5、运行正

25、确后,就可以写片(将程序固化在EPROM中)仿真是单片机开发过程中非常重要的一个环节,除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真器,也能进行一些硬件排错。一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真器来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真分软件模拟仿真和利用仿真器仿真两类。仿真、仿真器软件模拟仿真 是指用仿真软件来模拟单片机运行情况,一般我们学习指令系统时常用这种方式,它不能进行硬件系统的调试和故障诊断。利用仿真器仿真 利用仿真器以及微机可以进行软硬件系统的调试和

26、故障诊断。在仿真调试过程中,可以以各种运行方式运行程序(断点、单步、跟踪),还可以观察到单片机内部存储器、寄存器等的状态。源程序源程序 ORG 0000H LJMP START ORG 040HSTART:NOP LOOP:NOP LJMP LOOP;循环循环 END;结束结束目标文件目标文件也就是最终写入也就是最终写入EPROMEPROM的文件:的文件:02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF 00 00 02 00 41 FF FF FF举例说明举例说明(完成一段空操作程序)完成一段空操作程序)问:如何学习单片机?1、了解单片机外部硬件接口以便设计硬件电路2、熟悉单片机指令系统和程序设计方法学习单片机的方法:1、预习、复习;2 2、多动手(硬件、软件实验);3 3、多看参考书(包括利用网上资料);4、其它(上课、作业、答疑)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com