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

上传人:痛*** 文档编号:244868773 上传时间:2024-10-06 格式:PPT 页数:45 大小:1.21MB
返回 下载 相关 举报
单片机原理及基于单片机的_第1页
第1页 / 共45页
单片机原理及基于单片机的_第2页
第2页 / 共45页
单片机原理及基于单片机的_第3页
第3页 / 共45页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及基于单片机的嵌入式系统设计,蔡方凯 主 编,中国水利水电出版社,绪 论,在工业、农业、军事、保安、,金融、,仪器仪表、,航空航天、,医疗、通讯、办公设备、,娱乐,休闲、健身、体育竞赛、服务领域,大量单片机-嵌入式技术已经无处不在。正迅速改变着人们传统的生产和生活方式。,请稍微留心一下我们的周围,看看身边到底发生了什么变化?,单片机技术的应用遍布国民经济与人民生活的各个领域,1.1,微型计算机系统结构,微机的工作过程按照,“程序存储,程序控制”的方式工作。,程序存储,是指用户根据实际应用需要将程序编写完毕,并将程序的机器码存放在存储器中。用户编程的根本目的是要求计算机能够按照用户需求一步步的执行该段程序。那么计算机如何能够理解用户程序,并按要求去执行该段程序呢?这就是程序控制。,程序控制,是指,CPU,内的控制器按照用户程序中的指令顺序,从存储器中取出指令,并分析指令的功能,进而发出各种控制信号,指挥计算机中的各类部件来执行该指令。这种通过取指令、分析指令、执行指令的操作重复执行,直到完成程序中的全部指令操作为止,。,1.2,微型计算机工作过程,一、如何将程序的机器码存储到程序存储器中?,二、如何将程序的机器码从程序存储器中取出?,三、当,CPU,完成从程序存储器中读出程序的机器码后,如何执行该语句?,按照“程序存储,程序控制”的方式工作,微机必须解决以下几个问题,:,对,51,单片机而言,,,将程序存储到程序程序器中则相对复杂,必须利用,51,单片机芯片厂家提供的专用设备(烧写器)来完成,市场上有专门的单片机烧写器销售。烧写器实际上就是完成对程序存储器的写操作。利用烧写器可以将用户程序的机器码存储到单片机中。,1.2.1,如何将程序,机器码,烧写到程序存储器中,对于普通,PC,而言,,其程序存放在硬盘中,此时面临的问题就是将文件、程序内容写入硬盘,在,Windows,操作系统中提供了图形化的操作环境,读者不必了解对硬盘的写操作原理,仅需要按“保存”按钮或“保存”菜单就可以很方便的完成该操作。,1.2.2,如何将程序从程序存储器中取出,最基本的计算机组成,存储器,非常简单的,CPU,设计与实现,如何从程序存储器中取程序数据,一台简单的计算机通常包括三个主要的子系统,中央处理单元(,CPU,)、,存储系统(用来存储,CPU,正在执行的程序和数据)、输入,/,输出子系统(如键盘、显示等),1,最基本的计算机组成,计算机系统采用了三总线结构。从物理上说,总线是一组导线,计算机的部件都是连在总线上的,为了将信息从一个部件传到另一个部件,源部件先将数据输出到总线上,然后目标部件在从总线上接收这些数据。,地址总线:与其他总线不同,地址总线是单向的,地址总线的内容总是由,CPU,送到地址总线上,而,CPU,不读取地址总线上的数据。例如,当,CPU,从存储器读取数据或指令,或写数据到存储器时,必须指明要访问的存储器单元地址,,CPU,输出地址内容到地址总线上,而存储器从地址总线上读取地址,并且用它来访问正确的存储单元。对应,I/O,子系统,比如键盘、显示等,都有一个唯一的地址,当访问某个,I/O,子系统时,,CPU,将此设备的地址放到地址总线上,每一个设备均从总线上读取地址并且判断自己是不是,CPU,正要访问的设备。若不是则不作任何响应,若是则和,CPU,进行相应的数据传输。,数据总线:,数据是通过数据总线来传送的,当,CPU,从存储器中读取数据时,它首先把需要访问的存储器地址输出到地址总线上,发出读操作命令,然后存储器从地址总线上读取地址,并根据地址访问相应的存储单元,同时将该存储器单元中的数据输出到数据总线上,这样,CPU,就可以从数据总线上读取数据了。当,CPU,向存储器写入数据时,它首先输出地址到地址总线上,发出写操作命令,然后输出数据到数据总线上,这样存储器就可以从数据总线上读取数据并将它存储到正确的存储单元中。当访问某个,I/O,子系统时其数据总线功能类似于对存储器的访问。,控制总线:控制总线是控制信号的集合,这些信号用来控制数据要读入,CPU,还是要写入,CPU,,,CPU,要访问存储器还是访问,I/O,子系统等。,答:只有数据总线,没有地址和控制总线,则通信方式只能采用“广播通信方式”,,若只有数据和控制总线,没有地址总线,则每个外部设备都必须有控制总线,若外部设备多,则控制总线就必须增加,控制总线必然称为外部设备扩展的“瓶颈”。,若没有地址总线,对应存储器而言,在没法确定当前数据需要存放在存储器的那个地址单元中。,问,1,、为什么需要三总线,只有数据总线不可以?,问,2,、鼠标、键盘是外部,IO,设备,为什么不是三总线?,答:在计算机中硬件设计了三总线协议和,PS/2,或,USB,协议的接口转换电路,即将并行数据改为串行数据传输方式,存储器用于存储数据的一组电路,虽然在设计中它不是严格的组合电路,一个存储器元件有多个存储单元,每个单元存储固定长度的二进制值,不同的存储器芯片,其存储单元的数量和大小也不相同,存储器芯片存储容量大小由单元数乘以每个单元的位数确定。,存储器一般分为随机读写存储器(,RAM,),和只读存储器,(,ROM,),。,2,存储器,随机存取存储器(,RAM,Random Access Memory,):简称随机存储器或读写存储器。是一种既能写入又能读出数据的存储器。但当机器断电或关机时,存储器中存储的信息会立即消失。,只读存储器(,ROM,Read Only Memory,):是计算机内部一种只能读出数据信息而不能写入信息的存储器。但当机器断电或关机时,只读存储器中的信息不会丢失。,存储器可以形象的把它理解成装了很多元件盒的元件储存柜,元件储存柜放很多元件盒,每个元件盒中放不同的元件,当用户需要某一元件时,必须知道该元件放在那个元件盒中,即需要对元件盒进行编号,否则只能一个个元件盒查找。对应于存储器,编号即为存储器的地址,元件盒内的元件就是存储数据。,例如一个大小为,512,8,位的存储器芯片有,512,个存储单元,每个单元,8,位就可以理解成元件柜共,512,个元件盒,那么如果想找到对应的元件盒里的元件就必须对元件盒进行编号,若采用二进制编号,则,512,个单元共需要,9,位二进制,即对应存储器的地址。,对元件盒里元件个数可以采用,8,位计数,即一个,元件盒,最多可存放,255,个元件,即可以得到对应元件盒中的数据信息。,存储器芯片的地址输入选择它其中的一个单元,有个单元的存储器芯片需要,N,位的地址输入,通常标记,A,【,N,10,】,,,对于大小为,512,8,位的存储器芯片而言,其地址总线为,A,【,8.0,】,。,存储器芯片中的数据引脚常用于访问数据,数据总线的每一位都有一个引脚,对于,M,位的数据总线在,这些引脚通常标记为,D,【,M,10,】,,,对于大小为,512,8,位的存储器芯片而言,其数据总线为,D,【,7.0,】,。,问:为什么数据总线不是三根?,答:若数据总线是三根,则存储器中存储的数据最大只能为,8,,若,数据总线,8,根,则存储的数据最大为,256,这一节描述和设计一个非常简单的,CPU,,,这个,CPU,在现实中是没有任何应用价值的,因为它太简单了,但是目的是为了读者理解,CPU,的具体工作原理。,为了说明,CPU,的设计过程,考虑一个小型的有点不实用的,CPU,,,这款,CPU,的特点是:,CPU,仅能够访问,64,字节的存储空间(程序存储器和数据存储器共用),每个字节是,8,位,CPU,只包含一个程序员可以访问的寄存器,即一个标记为,ACC,的,8,位累加器,3,非常简单的,CPU,设计与实现,指令集通常由三大类指令组成,传送类指令、运算(包括逻辑运算)类指令、转移类指令三部分组成。在这款,CPU,中,仅设计,4,条指令,按照等长编码模块,利用高二位对指令类型进行编码,低,6,位,AAAAAA,表示地址线,如下表,1,1,所示。,MOV,指令代表“传送类”指令,,ADD,指令代表“运算类”指令,,AND,指令代表“逻辑运算类”指令,,LJMP,指令代表“转移类”指令。,该,CPU,的指令集,对上面这个,CPU,而言,可以说:麻雀虽小,五脏具全,从系统结构的指令集设计而言,这个系统包括运算类、传送类、转移类、逻辑运算类指令。,根据该款,CPU,的特点,可以看出该,CPU,可访问,64,字节的存储器空间,所以其地址总线是,A5.0,。,由于每个字节是,8,位,所以其数据总线为,D70,。,CPU,设计到这里,还缺什么?除了,ACC,累加器以外,,CPU,还需要一些其他的寄存器,以便完成取数据、译码和执行指令所必须的内部操作,这些寄存器为:,一个,6,位的程序计数器(,PC,),,它的内容为将被执行的指令在程序存储器中的存储地址。,一个,6,位的地址寄存器(,AR,),,CPU,不能直接将地址信息送往地址总线,,CPU,首先将地址信息送给地址寄存器,AR,,,AR,通过地址总线,A5.0,向存储器提供地址。,一个,8,位的数据寄存器(,DR,),,CPU,不能直接将数据信息送往数据总线,,CPU,首先将数据信息送给数据寄存器,DR,,,DR,通过数据总线,D70,从存储器读写指令数据。,一个,2,位的指令寄存器(,IR,),,它用来存放从存储器中取回指令的操作码。,至此,一个简单的,CPU,总算设计完成,一个,CPU,该有的都有了,能够完成一些简单的操作。,在,CPU,能够执行某条指令之前,它必须将这条指令从存储器中取出来,,CPU,从程序存储器中取程序数据的具体操作过程,将当前要执行指令的存储地址送到程序计数器中,由于地址总线,A【5.0】,的内容必须从地址寄存器送出,因此第一步就是要把程序计数器,PC,的内容拷贝到,AR,中,这样,取指令周期的第一步状态就是:,第一步:,ARPC,4,如何从程序存储器中取程序数据,CPU,从存储器中读取指令数据:,CPU,必须发一个,READ,信号,该信号从,CPU,控制总线输出到存储器控制总线上,,CPU,给存储器足够的时间按照,CPU,提供的地址访问相应的存储单元,M,,同时存储器将访问的数据(即指令的机器码)发送到数据总线,D【70】,上,,CPU,通过数据总线将这些数据读入并且存储到,DR,中。实际上另一个操作也将在这里完成,增加程序计数器,以便能访问下一条指令。所以第二步实际上是完成如下操作。其中(,M,)表示存储单元,M,中的内容。,第二步:,DR,(,M,),,PCPC,1,上述两步完成后,,CPU,已经得到程序的机器码,作为取指令的一部分,,CPU,还必须完成两件事情,首先,它必须将,DR,的高两位拷贝到,IR,,这两位表示那条指令将要执行,同时在取指令阶段,CPU,将,DR,的低,6,位拷贝到,AR,中,这样这两个操作可以表示如下。,第三步:,IRDR7.6,,,ARDR5.0,完成上面三步操作后,,CPU,将程序存储器内容取出,其高二位存放在指令寄存器,IR,中,为操作码信息,通过,IR,的值可以判断该指令为四条指令中的哪一条。低,6,存放在地址寄存器,AR,中,为执行指令操作的操作数的地址编码。例如进行,ADD,加法操作,则必须以,AR,单元的内容为地址去访问存储器,并取出该存储单元的内容和累加器,ACC,中的内容进行相加,那么如何以,AR,单元的内容为地址去访问存储器,该存储单元的内容又是如何得到呢?即,CPU,完成 对存储器的读操作。,CPU,以,AR,单元的内容为地址去访问存储器,从存储器中读取操作数。,CPU,发一个读信号,该信号从,CPU,控制总线输出到存储器控制总线上,,CPU,给存储器足够的时间按照,CPU,提供的,AR,单元的内容作为地址访问相应的存储单元,同时存储器将访问的数据(即指令的操作数)发送到,D【7.0】,上,,CPU,通过数据总线将这些数据读入并且存储到,DR,中。所以第四步
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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