8051单片机工作原理_第1页
8051单片机工作原理_第2页
8051单片机工作原理_第3页
8051单片机工作原理_第4页
8051单片机工作原理_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一课初识单片机记得在我们网站的论坛里,曾经有一位网友问了一个问题,什么是单片机单片机是怎样的一个东东单片机可以实现些什么功能它主要应用在哪些领域在我们单片机自学网的网上课堂的第一节课,我们就上面的这些问题与大家先做一个初步的探讨。在进入课程的讲解之前,大家先一起来看看单片机吧。下图是一片40脚的89C51及一片20脚的89C2051的单片机。单片机的外形从上图中我们已初步认识了,那么什么叫单片机呢所谓单片机,通俗的来讲,就是把中央处理器CPU(CENTRALPROCESSINGUNIT)存储,器(MEMORY),定时器,I/O(INPUT/OUTPUT)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。单片机又称为“微控制器MCU”。中文“单片机”的称呼是由英文名称“SINGLECHIPMICROCOMPUTER”直接翻译而来的。单片机的主要分类1、按应用领域可分为家电类,工控类,通信类,个人信息终端类等等;2、按通用性可分为通用型和专用型。通用型单片机的主要特点是内部资源比较丰富,性能全面,而且通用性强,可履盖多种应用要求。所谓资源丰富就是指功能强。性能全面通用性强就是指可以应用在非常广泛的领域。通用型单片机的用途很广泛,使用不同的接口电路及编制不同的应用程序就可完成不同的功能。小到家用电器仪器仪表,大到机器设备和整套生产线都可用单片机来实现自动化控制。专用型单片机的主要特点是针对某一种产品或某一种控制应用而专门设计的,设计时已使结构最简,软硬件应用最优,可靠性及应用成本最佳。专用型单片机用途比较专一,出厂时程序已经一次性固化好,不能再修该的单片机。例如电子表里的单片机就是其中的一种。其生产成本很低。在我们的这个网上课堂中,介绍的是MCS51系列单片机,MCS51单片机也是一种通用单片机,其结构及原理对所有的单片机都适用。3、按总线结构可分为总线型和非总线型。如我们常常见到的89C51单片机就是总线结构,在后面讲解单片机的内部结构时,我们就可以看到,89C51单片机内部有数据总线,地址总线,还有控制总线(WR,RD,EA,ALE等)从上图中看到的20引脚的89C2051单片机,就是。一种非总线型的。其外部的引脚很少,可使成本降低。单片机特点(1)受集成度限制,片内存储器容量较小,一般内ROM8KB以下;(2)内RAM256KB以内。(3)可靠性高(4)易扩展(5)控制功能强(6)易于开发单片机的发展过程1971年INTEL公司研制出世界上第一个4位的微处理器;1973年INTEL公司研制出8位的微处理器8080;1976年INTEL公司研制出MCS48系列8位的单片机,这也是单片机的问世。80年代初,INTEL公司在MCS48单片机基础上,推出了MCS51单片机。也就是说,51单片机最早的出现是在80年代初微处理器与单片机微处理器计算机系统核心部件(CPU)并不是一台完整的计算机单片机将CPU和其它接口电路集成在一个芯片之中,使其具有计算机的基本功能。从上面的描述可知,微处理器只是一个CPU,而单片机则是由CPU与其它的接口电路组合而成的,所以CPU不等于单片计算机。也可以这样说,CPU只是计算机其中的一个部件而已。主要的单片机厂商我国目前最常用的单片机有如下几家INTELMCS51系列,MCS96系列ATMELAT89系列,MCS51内核MICROCHIPPIC系列MOTOROLA68HCXX系列ZILOGZ86系列PHILIPS87,80系列,MCS51内核SIEMENSSAB80系列,MCS51内核NEC78系列EPSON系列在我们网站的论坛,同时在其它网站我看到很多朋友都在讨论一个问题学8位的51单片机有前途吗是的,在现今的单片机领域中,单片机的种类层出不穷,功能也越来越强,从表层看来好象学8位的51单片机已不符合现在的发展需求。让人感觉到“没有前途”。做过单片机开发的朋友都知道,其实在大部份的工控或测控设备中,8位的51单片机还能足够满足大部份的控制要求,加之51单片机的价格优势。这就使8位的51单片机在以后很长的一段时间内还有存在的空间,也就是说还是单片机应用的一个主流。试想一下,在战场上,原本可以用高炮实现打击的目标我们可能会用导弹去打吗再者,如果把51单片机学好了,以后转行去学习或应用其它的单片机,也就是一个了解及熟悉的过程了。因为MCS51单片机是一个通用的单片机,其内部的结构及工作原理与其它的单片机都是相通的。第二课MCS51单片机简述MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用89C51、89S51来完成一系列的实验。MCS51系列单片机MCS51系列单片机分为两大系列,即51子系列与52子系列。51子系列基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、895152子系列增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952这两大系列单片机的主要硬件特性如下表从上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。8051与80C51的区别80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致完全兼容)也就是说在8051下开发的软件完全可以在80C51上应用,过来,89C51(,反在下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。既然这两种单片机外形及内部结构都一样,那它们之间的主要差别在哪里呢8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。8051系列单片机采用的是HMOS工艺高速度、高密度;80C51系列单片机采用的是CHMOS工艺高速度、高密度、低功耗;也就是说80C51单片机是一种低功耗单片机。经常有网友问我们,我想学单片机,但单片机的类型很多,我该学哪种型号的单片机呢这里我提点我自已的想法,个人认为,初学单片机最好从8051开始,因为51单片机是一种通用型的单片机,性价比较高,虽然是8位的单片机,但现在应用的量及范围还很大。同时,因51单片机发展的历史长,学习的资料相对较多而且较完善。致于用哪个具体型号的单片机你可以用89C51来做实验,也可以用89S51或者2051来做实验,这个就不太重要了,前面说了,51单片机是一种通用型单片机,即然是通用,那么它的指令系统都是一样的,不同的是它的制造工艺及内部资源有点差别,这个是结合实际需要选型的问题了。所以,学习单片机,你可以只选择一种型号,例如AT89S51或者AT89C2051。思考题1、MCS51系列单片机各种芯片的配置有何不同2、MCS51单片机内部程序存储器ROM和内部数据存储器RAM的空量分别是多少3、8051与80C51的差别在哪里第三课单片机相关常用名词解释总线指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。地址总线(AB)地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0A7)P2,口直接提供高8位地址(A8A15)。数据总线(DB)一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)数据总线宽度为8位,由P0口提供。控制总线(CB)是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。存储器用来存放计算机中的所有信息包括程序、原始数据、运算的中间结果及最终结果等。只读存储器(ROM)只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种1、掩膜ROM掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改内部程序,其特点是价格便宜。2、可编程的只读存储器(PROM)它的内容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTP(ONLYTIMEPROGRAMMABLE)。3、可改写的只读存储器EPROM前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。4、可电改写只读存储器(EEPROM)EEPROM可用电的方法写入和清除其内容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最为广泛。随机存储器(RAM)这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原来的数据就丢失了。断电后RAM中的信息全部丢失。因些,RAM常用于存放经常要改变的程序或中间计算结果等信息。RAM按照存储信息的方式,又可分为静态和动态两种。1、静态SRAM其特点是只要有电源加于存储器,数据就能长期保存。2、动态DRAM写入的信息只能保存若干MS时间,因此,每隔一定时间必须重新写入一次,以保持原来的信息不变。可现场改写的非易失性存储器这种存储器的特点是从原理上看,它们属于ROM型存储器,从功能上看,它们又可以随时改写信息,作用又相当于RAM。所以,ROM、RAM的定义和划分已逐渐的失去意义。1、快擦写存储器(FLASH)这种存储器是在EPROM和EEPROM的制造基础上产生的一种非易失性存储器。其集成度高,制造成本低于DRAM,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以发展迅速。2、铁电存储器FRAM它是利用铁电材料极化方向来存储数据的。它的特点是集成度高,读写速度快,成本低,读写周期短。时钟周期计算机在时钟信号的作用下,以节拍方式工作。因此必须有一个时钟发生电路,输入微处理器的时钟信号的周期称为时钟周期。机器周期机器完成一个动作所需的时间称为机器周期,一般由一个或一个以上的时钟周期组成。在我们讲述的MCS51系列单片机中,一个机器周期由12个时钟周期组成。指令周期执行一条指令(如“MOVA,34H”,该指令的含义是将立即数34H传送到微处理器内的累加器A中)所需时间称为指令周期,它由一个到数个机器周期组成。指令周期的长短取决于指令的类型,即指令将要进行的操作步聚及复杂程度。汇编是能完成一定任务的机器指令的集合。二进制数只有0和1两个数码,基数为二。16进制数采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16个数码,其中AF相应的十进数为1015,基数是16。指令是计算机所能执行的一种基本操作的描述,是计算机软件的基本单元。字节8位二进制数组成一个字节,在存储器中以字节为单位存储信息。字2个字节组成一个字。双字2个字组成一个双字。补码机器数可用不同的码制来表示,补码表示法是最常用的一种,正数采用符号绝对值表示,即数的最高有效位为0,数的其余部分则表示数的绝对值;负数的表示要麻烦一些,先写出与该负数相对应的正数的补码表示,然后将其按位求反,最后在末位加1,就可以得到该负数的补码表示了。段地址8086CPU将1MB的存储器空间分成许多逻辑段,每个段最大限制为64KB,段地址就是逻辑段在主存中的起始位置。为了能用16位寄存器表示段地址,8086规定段地址必须是模16地址,即为XXXX0H形式,省略低4位0,段地址就可以用16位数据表示,它通常被保存在16位的段寄存器中。偏移地址存单元距离段起始位置的偏移量简称偏移地址,由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示。物理地址在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址,把段地址左移4位再加上偏移地址就形成物理地址。代码段程序员在编制程序时要把存储器划分成段,代码段用来存放程序的指令序列,代码段的段地址存放在CS中,指令指针寄存器IP指示代码段中指令的偏移地址,处理器利用CSIP取得下一条要执行的指令。数据段数据段存放当前运行程序所用的数据,数据段的段地址存放在DS中。附加段附加段是附加的数据段,也用于数据的保存,另外,串操作指令将附加段作为其目的操作数的存放区域。附加段的段地址存放在ES中。堆栈段堆栈段是堆栈所在的主存区域,堆栈段的段地址存放在SS中,堆栈指针寄存器SP指示堆栈栈顶的偏移地址,处理器利用SSSP操作堆栈中的数据。堆栈堆栈是一个“后进先出“的主存区域,位于堆栈段中,使用SS段寄存器记录其段地址。它只有一个出入口,即当前栈顶,栈顶是地址较小的一端(低端)它用堆栈指针寄存器SP,指定。堆栈有两种以字为单位的基本操作,对应两条基本指令进栈指令PUSH和出栈指令POP。伪指令汇编语言程序的语句除指令外还包括伪指令和宏指令,伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,是在汇编程序对源程序汇编期间由它汇编程序处理的操作,完成诸如数据定义、分配存储区、指示程序结束等功能。宏指令宏是源程序中一段有独立功能的程序代码,它只需要在源程序中定义一次,就可以多次调用,调用时只需要用一个宏指令语句就可以了。宏指令是用户自定义的指令,在编程时将多次使用的功能用一条宏指令来代替。子程序子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,些程序段的功能和结构形式都相同,是某些变量的赋值不同,这只此时就可以把这些程序段写成子程序形式,以便需要时可以调用它;某些常用的特定功能的程序段也可编制成子程序的形式供用户使用。中断中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作,这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它内部原因。中断处理程序当中断发生时,处理器中止当前正在运行的程序,而转到处理特殊事件的程序段中去执行,这种处理中断的子程序就是中断处理程序,又称为中断服务程序。中断处理程序的入口地址被安排在中断向量表中。BIOS中断存储器系统中,地址0FE000H开始的8KROM中装有BIOS(在从BASICINPUT/OUTPUTSYSTEM)例行程序。驻留在ROM中的基本输入输出程序BIOS提供了系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。BIOS中断给程序员编程带来很大方便,序员不必了解硬件I/O接口的特性,直接用指令设置参数,程可然后中断调用BIOS中的程序。暂存器用来暂存由数据总线或通用寄存器送来的操作数,并把它作为另一个操作数。中断中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。掉电保护指在正常供电电源掉电时,迅速用备用直流电源供电,以保证在一段时间内信息不会丢失,当主电源恢复供电时,又自动切换为主电源供电。寄存器寻址操作数在寄存器中,由指令操作码中的RRR三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。波特率即每秒钟传送二进制数的位数,波特率越高,数据传输的速度越快。D/A转换即将二进制数量转换成与其量值成正比的电流信号或电压信号。A/D转换即将模拟量转换成相应的数字量,然而送计算机处理。串行方式指数据的各位分时传送,只需一条数据线,外加一条公共信号地线和若干条控制信号线。并行方式指数据的各位同时传送,每一条数据都需要一条传输线。伪指令用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。SLEEPMODI睡觉模式保证程序内部运行,与外部的传输等动作已停止的一种运行模式。但LINKING连接把编译后生成的OBJ文件与其它OBJ文件合并成机器能识别的机器文件。IC输入与输出共用一条传输线,而时钟由另一条线控制的一种串行传输方式。SFR特殊功能寄存器区8051把CPU中的专用寄存器、并行端口锁存器、串行口与定时器/计数器内的控制寄存器集中安排到一个区域,离散地分布在地址从80H到FFH范围内,这个区域称为特殊功能寄存器区SFR。这一节的目的是让大家对单片机相关的概念做一个感性的了解,具体的内容我们将在后面的相关章节做详细的讲解。第四课计算机中数的表示及运算数字谈到数字,有很多同学可能会觉的很可笑,数字不就是1234这些吗是的,在日常的生活当中,我们用的一般都是十进制,但在计算机中,它只能识别二进制数,所以在这里我还得跟大家共同分析一下1、十进制十进制就是基数为“十”,所使用的数码为09共10个数字。逢十进一。是我们每天都会运用到的,在这里就不多谈了。2、二进制二进制的基数为“二”,其使用的数码只有0和1两个。在计算机中容易实现,在常用的的实现方式中如可以用电路的高电平表示1,低电平表示0;或者三极管截止时集电极的输出表示1,导通时集电极输出表示0。3、十六进制由于二进制位数太长,不易记忆和收写,所以人们又提出了十六进制的书写形式。我们在汇编语言中多数用十六进制。计算机只识别和处理数字信息,数字是以二进制数表示的;它易于物理实现,同时,资料存储、传送和处理简单可靠;运算规则简单,使逻辑电路的设计、分析、综合、方便,使计算器具有逻辑性。一、用数制及转换1、各种进位计数及其表示方法数字符号0、1、2、9数码。数码的个数基数。进位规则逢十进一例如,十进制数,10个数码;采用“逢十进一”3068131040103610281011100例如,二进制数,2个数码,采用“逢二进一”(11010100)2127126025124023122021020总之,N进制数,N个数码,“逢N进一”2、数制之间的转换任意进制之间相互转换,整数部分和小数部分必须分别进行,十进制转换成二进制短除取余法十进制小数转换成二进制小数乘2取整法。二进制转换成十进制展开求和法。(101101)2125024123122021120320840145二进制转换成八进制、十六进制与此类似。二、机器数及其编码1、机器数与真值机器只认识二进制数0、1。这是因为,电路状态常有两个,如通、断;高电平、低电平;可用0、1表示。这种0、1、0、11在机器中的表现形式机器数。一般为8位。2、机器数的编码及运算对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。1)原码将数“数码化”,原数前“”用0表示,原数前“”用1表示,数值部分为该数本身,这样的机器数叫原码。设X原数;则X原X(X0)X原2N1X(X0)N为字长的位数。,如,3原00000011B3原27(3)10000011B0有两种表示方法000000000100000000原码最大、最小的表示127、1282)反码规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。X反X(X0)X反(2N1)X(X0)如,4反4原00000100B4反2815111111110000010111111010B反码范围128127两个0;000000000B011111111B3)补码补码的概念现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说9的操作可用3来实现,在12点里3、9互为补码。运用补码可使减法变成加法。规定正数的补码等于原码。负数的补码求法1)反码12)公式X补2NX(X0)如,设X0101110B,则X原10101110B则X补X反1110100010000000111010010B如,6补6原00000110B6补28(6)100000000000011011111010B8位补码的范围128127。0的个数只一个,即00000000而10000000B是128的补码。原码、反码、补码对照表表12P104)补码的运算当X0时,X补X反X原X补补X原X补Y补XY补XY补X(Y)补例已知X52Y38求XY计算机在做算术运算时,必需检查溢出,以防止发生错误5)运算的溢出问题资料字长(位数)有一定限制,所以资料的表示应有一个范围。如字长8位时;补码范围128127若运算结果超出这个范围,便溢出。例错两个负数相加和为正数。可见结果正确(无溢出)时,CS1CS结果错误(溢出)时,CS1CS溢出判断溢出CS1CS(即结果是0为无溢出;1为有溢出)1、十进制数的编码对机器二进制数方便,对人二进制数不直观,习惯于十进制数。在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。怎么办可以将十进制的字符用二进制数进行编码这叫做二进制数对十进制编码BCD码。上述每4位二进制数表示一个十进制字符,这4位中各位的权依次是8、4、2、18421BCD码。BCD码的运算(1)BCD码加法规则两个BCD数相加时,“某位”的和小于10则保持不变;两个BCD数相加时,“某位”的和大于9,则和数应加6修正。(2)BCD码减法规则两个BCD数相减时,“某位”的差未发生借位,则差数保持不变;两个BCD数相减时,“某位”发生了借位,其差应减6修正。这里“某位”指BCD数中的“个位”、“十位”、“百位”、三、字符信息的表示计算机能识别0、1、0、1、;这些0、1、0、1、有的代表数值,有的仅代表要处理的信息(如字母、标点符号、数字符号等文字符号)所以,计算,机不仅要认识各种数字,还要能识别各种文字符号。人们事先已对各种文字符号进行二进制数编码如,美国信息交换标准码ASCII码,用一个字节表示一个字符。低7位是字符的ASCII码值;最高位是通信时的校验位。思考题真值与码值有何区别原码、反码、补码三者之间如何换算第五课常用逻辑电路常用逻辑电路在逻辑电路中,入和输出只有两种状态,高电平和低电平。常以逻辑“1”和“0”输即通表示电平高低。1、与门是一个能够实现逻辑乘运算的、多端输入、单端输出的逻辑电路。逻辑解释即如右边图所示,当开关A与B当中只有全部闭合(即为高电平1)时,才会有输出(即灯泡才会亮)所以在与门电路中,只有输入的全部条件为高电平“1”时输会有输出。语言表达为“有0出0,全1出1”2、或门是一个能够实现逻辑加运算的、多端输入、单端输出的逻辑电路。逻辑解释即如右边图所示,当开关A与B当中只要有一个开关闭合(即为高电平1)时,就会有输出(即灯泡才会亮)所以在或门电路中,只要输入的为高电平“1”就会有输出。语言表达为“有1出1,全0出0”。3、非门是一个能够实现逻辑非运算的、单端输入、单端输出的逻辑电路。非就是反,就是否定,也就是输入与输出的状态总是相反。逻辑解释如右边图所示,当开关K断开时灯亮,开关闭合时灯灭。如以开关断开为灯亮,开关接通为灭为结果,则开关K与灯泡的因果关系为非逻辑关系。语言表达为“有0出1,有1出0”。复合逻辑门电路4与非门将一个与门与一个非门联接起来就构成了一个与非门。根据与门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是“当输入全为1,输出为0;只要输入有0,输出就为1”。5或非门将一个或门与一个非门联接起来就构成了一个或非门。根据或门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是“当输入全为0,输出为1;只要输入有1,输出就为0”。6异或门异或门只有两个输入端和一个输出端,。其逻辑功能的特点是“当两个输入端一个为0,另一个为1时输出为1,当两个输入端均为1或均为0时,输出为0”。真值表如下异或门的作用是把两路信号进行比较,判断是否相同。当两路输入信号不同,即一个为高电平,一个为低电平时,输出为高电平。反之当两个输出端信号相同时,即为高电平或低电平时,输出为低电平”。触发器触发器是计算机记忆装置的基本单元,它具有把以前的输入记忆下来的功能,一个触发器能储存一位二进制代码。下面我们简单的来介绍计算机中常用的几中触发器。1RS触发器RS触发器的逻辑符号如下图所示,它有两个输入端,两个输出端。其中,S为置位信号输入端,R为复位信号输入端;Q和Q非为输出端。规定Q为高、Q非为低时,该触发器为1状态;反之为0状态。其真值表如下。2D触发器D触发器又称数据触发器,它的逻辑符号如下图所示,R、S分别为强制置0、置1端,触发器的状态是由时钟脉冲CLK上升沿到来时D端的状态决字。当D1时,触发器为1状态;反之为0状态。其真值表如下3JK触发器JK触发器的逻辑符号如下,R、S分别为强制置0、置1端。K为同步置0输入端。触发器的状态是由时钟脉冲CLK下降沿到来时J、K端的状态决定,其真值表如下JK触发器的逻辑功能比较全面,因此在各种寄存器、计算器、逻辑控制等方面应用最为广泛。但在某些情况,如二进制计数、移位元、累加等,多用D触发器。由于D触发器线路简章,所以大量应用于移位寄存器等方面。寄存器寄存器是由触发器组成的,一个触发器是一个一位寄存器。多个触发器就可以组成一个多位的寄存器。由于寄存器在计算机中的作用不同,从而被命名不同,常用的有缓冲寄存器、移位寄存器、数器等。下面我们就简单的来介绍下这些寄存器的电路结构及工作原理。计1缓冲寄存器它是用来暂存某个数据,以便在适当的时间节拍和给定的计算步骤将数据输入或输出到其它记忆单元中去,下图是一个并行输入、并行输出的4位缓冲器的电路原理图,它由4个D触发器组成。启动时,先在清零端加清零脉冲,把各触发器置0,即Q端为0。然后,把数据加到触发器的D输入端,在CLK时钟信号作用下,输入端的信息就保存在各触发器中(D0D3)。2移位寄存器移位寄存器能将所储存的数据逐位向左或向右移动,以达到计算机运行过程中所需的功能,请看下图启动时,先在清零端加清零脉冲,使触发器输出置0。然后,第一个数据D0加到触发器1的串行输入端,在第一个CLK脉冲的上升沿Q0Q0,Q1Q2。Q3Q0。其后,第二个数据D1加到串行输入端,在第二个CLK脉冲到达时,Q0Q1,Q1Q0,Q2Q30。以此类推,当第四个CLK来到之后,各输出端分别是Q0Q3,Q1Q2,Q2Q1,Q3Q0。输出数据可用串行的形式取出,也可用并行开式取出。3计数器计数器也是由若干个触发器组成的寄存器,它的特点是能够把存款在其中的数据加1或减1。计数器的种类也很多,有行波计数器、同步计数器等,下面我们就以行波计数器向大家作个介绍。下图就是一个由JK触发器组成的行波计数器的工作原理图。这种计数器的特点是第一个时钟脉冲促使其最低有效位加1,使其由0变1;第二个时钟脉冲促使最低有效位由1变0。同时推动第二位,使其由0变1;同理,第二位由1变0时又去推动第三位,使其由0变1,这样有如水波前进一样逐位进位下去。上图中的这个计数器是4位的,因此可以计015的数。如果要计更多的数,需要增加位数,如8位计数器可计0255的数,16位则可计065535的数。4三态门(三态缓冲器)为减少信息传输线的数目,大多数计算机中的信息传输线均采用总线形式,即凡要传输的同类信息都走同一组传输线,且信息是分时传送的。在计算机中一般有三组总线,即数据总线、地址总线和控制总线。防止信息相互干扰,求凡挂在总线上的寄存器或内存等,为要它的传输端不仅能呈现0、1两个信息状态,而且还应能呈现第三种状态高阻抗状态(又称高阻状态)即此时好像它们的输出被断开,对总线状态不起作用,此时总线可由其它器,件占用。三态门即可实现上述的功能,它除具有输入输出端之外,还有一控制端,请看下图。当控制端E1时,输出输入,此时总线由该器件驱动,总线上的数据由输入数据决定;当控制端E0时,输出端呈高阻抗状态,该器件对总线不起作用。当寄存器输出端接至三态门,再由三态门输出端与总线连接起来,就构成三态输出的级冲寄存器。如下图所示就是一个4位的三态输出缓冲寄存器。由于这里采用的是单向三态门,所以数据只能从寄存器输出到数据总线。如果要实现双向传送,则要用双向三态门。在这里有个问题问下大家,前面我们已把触发器,寄存器的概念跟大家讲解了一下,那么触发器、寄存器、内存,这三者之间是一个什么样的关系呢答通过前面的学习,我们知道触发器是计算机记忆装置的基本单元,一个触发器能储存一位二进制代码。寄存器是由触发器组成的。一个触发器就职一个一位的寄存器,多个触发器就可以组成一个多位的寄存器。内存是由大量寄存器组成的,其中每一个寄存器就称为一个存储单元。它可以存放一个有独立意义的二进制代码。第六课51单片机的结构及其组成在前面的五节课当中,我们讲述的都是一些基础概念的知识,从这节开始,我们就正式的切入到我们所在学习的对象51单片机。学习单片机的内部结构之前,我们先了解下我们现在正在使用的计算机的几大组成部份计算机的五个组成部份运算器用于实现算术和逻辑运算。计算机的运算和处理都在这里进行;控制器是计算机的控制指挥部件,使计算机各部份能自动协调的工作;存储器用于存放程序和数据;又分为内存储器和外存储器,内存储器就如我们电脑的硬(盘,外存储器就如我们的U盘)输入设备用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪);输出设备输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。注1、通常把运算器和控制器合在一起称为中央处理器(CENTRALPROCESSINGUNIT),简称CPU。2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。上面讲的是我们的个人办公计算机,那么51单片机的内部又有些什么部件组成呢1、中央处理单元(8位)数据处理、测试位,置位,复位位操作2、只读存储器(4KB或8KB)永久性存储应用程序,掩模ROM、EPROM、EEPROM3、随机存取内存(128B、128BSFR)在程序运行时存储工作变量和资料4、并行输入/输出口(I/O)32条)(作系统总线、扩展外存、I/O接口芯片5、串行输入/输出口(2条)串行通信、扩展I/O接口芯片6、定时/计数器(16位、加1计数)计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作7、时钟电路内振、外振。8、中断系统五源中断、2级优先。结构特点MCS51系列单片机为哈佛结构(而非普林斯顿结构)1)内ROM4KB2)内RAM128B3)外ROM64KB4)外RAM64KB5)I/O线32根(4埠,每埠8根)6)定时/计数器2个16位可编程定时/计数器7)串行口全双工,2根8)寄存器区工作寄存器区、在内128BRAM中,分4个区,9)中断源5源中断,2级优先10)堆栈最深128B11)布尔处理机位处理机,某位单独处理12)指令系统五大类,111条上图就是我们要研究学习的对象,51单片机摧部结构图了。大家看看上图,中间的一条双横线就是51单片机的内部总线了。其它的部件都是通过内部的总线与CPU相联接的,在第一节课时我们已跟大家讲述过,8051单片机是总线结构的。下面我们就51单片机内部的单个部件与大家进行讲解。中央处理器(CPU)刚跟大家讲过,需要提醒的是MCS51的CPU能处理8位二进制数或代码。CPU是单片机的主要核心部件,在CPU里面包含了运算器、控制器以及若干寄存器等部件给成。内部数据存储器(RAM)MCS51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)是一个。多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。内部程序存储器(ROM)在前面也已讲过,MCS51内部有4KB/8KB字节的ROM(51系列为4KB,51系列为8KB),用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000HFFFFH(64KB)。定时器/计数器51系列共有2个16位的定时器/计数器(52系列共有3个16位的定时器/计数器)以实,现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P34(T0)或P35(T1)端口的低电平脉冲计数。并行I/O口MCS51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。串行口MCS51有一个可编程的全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD(P30)脚为接收端口,TXD(P31)脚为发送端口。中断控制系统MCS51单片机的中断功能较强,以满足不同控制应用的需要。51系列有5个中断源(52系列有6个中断源)即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级,共二个优先级别,优先级别的设置我们也将在后面进行详细的讲解。定时与控制部件MCS51单片机内部有一个高增益的反相放大器,基输入端为XTAL1输出端为XTAL2。MCS51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。思考题1、MCS51单片机的片内总体结构9个部件分别是什么名起什么作用这9大部件之间有什么联系2、怎样通过MCS51单片机片内总体结构图来区分8051、8751、8031芯片第七课51单片机的引脚当我们拿到一块单片机芯片时,看到这么多的“大腿”,他们都有干什么用的在这节课我们就针对这个问题进行讲解。引脚功能MCS51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照单片机引脚图LP00P07P0口8位双向口线(在引脚的3932号端子)。LP10P17P1口8位双向口线(在引脚的18号端子)。LP20P27P2口8位双向口线(在引脚的2128号端子)。LP30P37P2口8位双向口线(在引脚的1017号端子)。这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达方式来写的,相信你也能够理解。P0口有三个功能1、外部扩展存储器时,当做数据总线(如图1中的D0D7为数据总线接口)2、外部扩展存储器时,当作地址总线(如图1中的A0A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用其内部有上拉电阻。P2口有两个功能1、扩展外部存储器时,当作地址总线使用2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即编程脉冲30脚(ALE/PROG)编程电压(25V)31脚(EA/VPP)接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。(注这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到。)在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢他起什么作用呢都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。ALE/PROG地址锁存控制信号在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。在后面关于扩展的课程中我们就会看到8051扩展EEPROM电路,在图(中ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的内容和锁存器输出一致。关于锁存器的内容,我们稍后也会介绍。在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频)当访问外部存储器,以1/12振荡周期输出(12分频)。从这里我们可以看到,当系统没有进行扩展时ALE会以1/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。PORG为编程脉冲的输入端在第五课单片机的内部结构及其组成中,我们已知道,在8051单片机内部有一个4KB或8KB的程序存储器(ROM)ROM的作用就是用来存放用户需要执行,的程序的,么我们是怎样把编写好的程序存入进这个ROM中的呢实际上是通过编程脉冲那输入才能写进去的,这个脉冲的输入端口就是PROG。PSEN外部程序存储器读选通信号在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。1、内部2、外部3、外部4、外接ROMROMRAMROM读取时,PSEN不动作;读取时,在每个机器周期会动作两次;读取时,两个PSEN脉冲被跳过不会输出;时,与ROM的OE脚相接。参见图2(8051扩展2KBEEPROM电路,在图中PSEN与扩展ROM的OE脚相接)EA/VPP访问和序存储器控制信号1、接高电平时CPU读取内部程序存储器(ROM)扩展外部ROM当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。2、接低电平时CPU读取外部程序存储器(ROM)在前面的学习中我们已知道,8031。单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压。RST复位信号当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。XTAL1和XTAL2外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC电源5V输入VSSGND接地。思考题1、I/O是什么I/O口是什么2、MCS51单片机各引脚的功能是什么第八课8051单片机I/O引脚工作原理一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0X引脚的图标,也就是说P0X引脚可以是P00到P07的任何一位,即在P0口有8个与上图相同的电路组成。下面,我们先就组成P0口的每个单元部份跟大家介绍一下先看输入缓冲器在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态)大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输,出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为读锁存器端)有效。下面一个是读引脚的缓冲器,要读取P0X引脚上的数据,也要使标号为读引脚的这个三态缓冲器的控制端有效,脚上的数据才会传输到我们单片机的内部数据总线引上。D锁存器构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能)在51单片机的32根I/O,口线中都是用一个D触发器来构成锁存器的。家看上图中的D锁存器,端是数据输入端,大DCP是控制端(也就是时序控制信号输入端)Q是输出端,Q非是反向输出端。,对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来)这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果,时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)如果下一个时序控制脉冲信号来了,这时D端的数据。才再次传送到Q端,从而改变Q端的状态。多路开关在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为地址/数据总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为数据/地址总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为地址/数据总线使用的。输出驱动部份从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。与门、非门两个单元电路的逻辑原理我们在第四课数字及常用逻辑电路时已做过介绍,与这不明白的同学请回到第四节去看看。前面我们已将P0口的各单元部件进行了一个详细的讲解,下面我们就来研究一下P0口做为I/O口及地址/数据总线使用时的具体工作过程。1、作为I/O端口使用时的工作原理P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),看上图中的线线部份,多路开关的控制信号同时与与门的一个输入端是相接的,我们知道与门的逻辑特点是“全1出1,有0出0”那么控制信号是0的话,这时与门输出的也是一个0(低电平),与让的输出是0,V1管就截止,在多路控制开关的控制信号是0(低电平)时,多路开关是与锁存器的Q非端相接的(即P0口作为I/O口线使用)。P0口用作I/O口线,其由数据总线向引脚输出(即输出状态OUTPUT)的工作过程当写锁存器信号CP有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论