




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、YCF正版可修改PPT(中职)单片机原理及应用第二章教学课件第二章 单片机系统设计模块概述由于单片机面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应控制领域应用的要求而诞生的。随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如ADC,DAC、高速I/O口、PWM, WDT等。这些对外电路及外设接口已经突破了微型计算机(microcomputer)传统的体系结构,单片机电路是由单片机、单片机复位电路、时钟电路等构成的电路单元。本书以51系列单片机为基础,通过典型实例分析,指导读者学习单片机的基本知识,培养读者设计单片机系统的基本技能,下面将就AT89S51单片
2、机的结构做具体分析。下一页第二章 单片机系统设计教学目标1.理解和掌握单片机的工作原理和内部结构。2.掌握汇编语言程序设计的基本方法。3.理解人机接口的硬件结构与软件编程原理和设计方法。4.掌握单片机系统扩展技术。5.掌握单片机A/D,D/A接口技术。6.基本掌握51串行通信技术。7.初步掌握51应用系统的开发技术。下一页第二章 单片机系统设计2.1单片机的基本结构2.2单片机汇编语言指令2.3练习2.1单片机的基本结构2.1.1 单片机的内部总体结构总的来说,单片机是由8个大的部分组成的。这8个部分分别是中央处理器(CPU)、数据存储器(RAM ) ,程序存储器(ROM/EPROM),输入/
3、输出接口(I/O,又分为P0口、P1口、P2口和P3口)、可编程串行口、定时/计数器、中断系统以及特殊功能寄存器。下一页返回2.1单片机的基本结构2.1.2单片机的引脚功能 要使用一款单片机,除了知道其内部结构之外,还必须了解单片机的引脚功能。目前的单片机所采用的外形封装形式多为40Pin封装的双列直接DIP结构,图2-1是AT89S51单片机引脚配置图。40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。引脚说明如下:(1) Pinto接地脚。( 2) Pin40正电源脚。正常工作或对片内EPROM烧写程序时,AT89S51可以接 4
4、. 5-5. 5 V范围内的直流正电源。一般取+5V作为电源标称值来使用。下一页上一页返回2.1单片机的基本结构 (3) Pin19时钟XTALl脚,片内振荡电路的输入端。 (4) Pinl 8时钟XTAL2脚,片内振荡电路的输出端。 和其他51类单片机一样,AT89 S51的时钟也有两种方式:一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(0一33 MHz)和振荡电容,振荡电容的值一般取10一30 pF;另外一种是外部时钟方式,即将XTALl接地,外部时钟信号从XTAL2脚输入,如图2-2所示。下一页上一页返回2.1单片机的基本结构(5)输入/输出(I/O)引脚Pin39一Pin32
5、为P0. 0-P0. 7输入/输出脚,Pin1-Pin8为P1. 0-P1. 7输入/输出脚,Pin21-Pin28为P2. 0-P2. 7输入/输出脚,Pin10-Pin17为P3. 0-P3. 7输入/输出脚。这些输入/输出脚的功能说明将在以后的内容中予以阐述。(6) Pin9 RST复位信号复用脚。当单片机通电后,时钟电路开始工作,在RST引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H, P0-P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清“0”。RST由高电平变为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不
6、改变RAM(包括工作寄存器R0-R7)的状态,单片机特殊功能寄存器的初始态如表2-1所列。下一页上一页返回2.1单片机的基本结构 单片机的复位方式可以是自动复位,也可以是手动复位,见图2 -3。此外,RST引脚还是一个复用脚,VcC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。(7) Pin30 ALE/PROG,当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节;而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否在工作,也可以当作一个时钟向外输出;还有一个特点,当访问外部程序存储器时,ALE会跳过一个脉冲
7、。如果单片机是EPROM,在编程期间PROG将用于输入编程脉冲。( 8) Pin29 PESN,当访问外部程序存储器时,此引脚输出负脉冲选通信号,PC的16位地址数据将出现在PO和P2口上,外部程序存储器则把指令数据放到PO口上,由CPU读入并执行。下一页上一页返回2.1单片机的基本结构 (9) Pin31 EA/VPP ,程序存储器的内外部选通线。AT89 S51单片机内置有4 KB的程序存储器。当EA为高电平并且程序地址范围小于4 KB时,读取内部程序存储器指令数据;而超过4 KB地址,则读取外部指令数据。如为低电平,则不管地址大小,一律读取外部程序存储器指令。在编程时,EA/V。脚还需加
8、上21 V的编程电压。2.1.3 AT9 S51单片机的内部构成 AT89S51单片机和其他普通单片机一样,其内部结构主要由中央处理器(CPU)、存储器、输入/输出I/O端口、定时/计数器和中断系统5大部分构成。各部分又分别由多个单元模块构成。单片机内部各部分之间的联系如图2 -4所示。下一页上一页返回2.1单片机的基本结构1.中央处理器(CPU)中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码。CPU负责控制、指挥和调度整个单片机系统协调地工作,完成运算和控制输入/输出功能等操作。CPU主要由运算器和控制器等构成。 (1)运算器运算器主要包括算术
9、与逻辑运算部件ALU、累加器ACC、寄存器B,暂存器TMP1和TMP2,程序状态字寄存器PSW、布尔处理器和十进制调整电路等。 算术与逻辑运算部件ALU可以对4位、8位和16位的数据进行操作。这些操作包括算术运算操作和逻辑运算操作。算术运算操作又包括加、减、乘、除、加1、减1,BCD数十进制调整与比较等;逻辑运算操作又包括与、或、异或、求补、循环移位等操作。下一页上一页返回2.1单片机的基本结构 累加器ACC ( Accumulator)是运算过程中数据传送的中转站。它是8位寄存器,也是常用的专用寄存器。在指令中,ACC一般可用A来表示。它既可以用于存放操作数,也可以用于存放运算的中间结果。单
10、片机中大部分单操作数指令的操作数要从ACC中获取,许多双操作数指令中的一个操作数也是取自ACC. 寄存器B ( General Purpose Register)是一个专门为乘法和除法运算设置的8位寄存器。在乘法与除法运算中,它可用于存放运算的操作数(即乘数或除数),并在乘法和除法运算完成后,用来存放乘积的高8位或者是除法中的余数。另外,B寄存器还可以作为一般的数据寄存器来使用。下一页上一页返回2.1单片机的基本结构程序状态字寄存器PSW (Program Status Word)也是一个8位的寄存器。它用于存放指令执行后累加器ACC的状态信息。PSW中的状态位有Cy, Ac, Ov, P,
11、F0, RSl, RSO等。其中,Cy,Ac,Ov,P状态位的数据是根据指令的执行结果由硬件自动形成的,而FO,RSI,RSO状态位的数据则是由用户根据实际的需要用程序软件指令来设定的。PSW的各状态位定义如表2-2所列。进位标志位cy( caTTy)主要有两个方面的功能:一方面是存放算术指令运算的进位标志;另一方面是在位操作中,作为累加器c来使用。其中,在算术指令运算中,进行加、减等运算时,如果运算的结果使累加器A中的最高位D7有进位输出或是借位输入,那么此时Cy就被置为1;如果没有上述情况,Cy就为O。下一页上一页返回2.1单片机的基本结构辅助进位位Ac ( Auxiliary Carry
12、)在加减运算中,当累加器A中的D3位向D4位有进位或借位时,A。就被置为1;如果没有上述情况,A。就为0。这个标志位的状态信息,通常是在二进制到十进制调整时使用。用户标志位F0( Flag zero)是一个供用户定义的标志位,用户根据需要用程序软件对该标志位进行置位与复位的操作,以便控制用户程序的转移方向。下一页上一页返回2.1单片机的基本结构工作寄存器区选择控制位RS1,RS0这两个标志位是合在一起来使用的,用于设定4个区的工作寄存器中,哪一组为当前工作的工作寄存器组。也就是说,对相同名称的RO一R7改变其物理地址,并由用户通过程序软件来加以选择。单片机在开机或复位后,RS1和RS0被设置为
13、低电平“0”的状态,因此R0-R7的物理地址就是00H-07H。相应的,若改变RS1 , RS0为01B,那么1区为当前工作寄存器组,且R0-R7的物理地址就变为08H一OFH。通过这种方法,用户就可以很方便地通过修改R0-R7物理地址,达到保护某一区RO -R7中数据的目的。这无疑对后面的程序设计是非常有利的。下一页上一页返回2.1单片机的基本结构溢出标志位Ov ( Over flow)用于指示累加器A在算术运算过程中是否发生溢出。即若运算结果超出了8位数能表示的范围(-128-+127 ),那么Ov就会自动被设置为1;若没有超出表示范围,则Ov为0。例如,在加法运算中,Ov=1,表示运算结
14、果是错误的;Ov = 0,表示运算正确。在乘法运算中,Ov=1,表示运算得到的乘积超过255,即乘积不仅仅在累加器A中,它还有一部分(即乘积的高位部分)在B寄存器中;Ov = 0,表示乘积数据仅在累加器A中。在除法运算中,Ov=1,表示除数为0,除法运算不能进行;Ov = 0,表示除数不为0,因此除法可以正常进行。下一页上一页返回2.1单片机的基本结构奇偶标志位P ( Parity)用于指示累加器A中1数量的奇偶性。由硬件根据累加器A的内容对P位自动置位或复位。若累加器A中1的数量为奇数,则P=1;反之,若累加器A中1的数量为偶数,则P=0。布尔处理器:是以PSW中的进位标志位Cy为其累加器,
15、专门用于处理位操作。这些操作包括置位、位清。、位取反、位等于1转移、位等于。转移、位等于1转移并清。以及位累加器C与其他可位寻址空间之间的信息传送等。(2)控制器控制器包括时钟发生器、定时控制逻辑、指令寄存器IR、指令译码器ID,程序计数器PC,程序地址寄存器、数据指针寄存器DPTR和堆栈指针SP等。下一页上一页返回2.1单片机的基本结构 控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器IR,再进入指令译码器ID进行译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及CPU外部所需要的控制信号,如ALE,PESN,RD,
16、WR等,使各部分协调工作,完成指令所规定的各种操作。下面,本书就将其中的程序计数器PC、堆栈指针SP和数据指针寄存器DPTR等的具体概念及功能进行介绍。 程序计数器PC ( Program Counter)程序计数器PC是一个二进制16位的程序地址寄存器,专门用于存放下一条需要执行指令的内存地址,在执行指令后能自动加to CPU执行指令时,是先根据程序计数器PC中的地址从存储器中取出当前需要执行的指令码,并把它送给控制器分析执行。随后,程序计数器PC中地址码自动加1,以便为CPU取下一个下一页上一页返回2.1单片机的基本结构需要执行的指令码做准备。当下一个指令码取出执行后,PC又会自动加1。这
17、样,程序计数器PC就被一次次地加1,而指令就被一条条地执行。因此,必须在程序执行之前,预先将需要执行程序的机器码按顺序一条条存放到程序存储器中,并且还要将程序计数器PC设置为执行程序第一条指令的内存地址。 AT89S51单片机的程序计数器PC由16个触发器构成,因此,它的编码范围为OOOOHFFFFH,共64 KB。这就是说,AT89S51对程序存储器的寻址范围为64 KB。如果用户想为AT89 S51配置大于64 KB的程序存储器,就必须在制造AT89S51单片机时加长程序计数器的位数。但在实际应用中,64 KB的程序存储器就已经足够了。下一页上一页返回2.1单片机的基本结构堆栈指针SP (
18、 Stack Pointor)堆栈指针SP是一个8位的专用寄存器,用于指示堆栈顶部在RAM中的位置。单片机的堆栈定义可以从下面的介绍中得出。人们在往货仓或货栈存放货物时,总是按顺序从下往上地依次堆放。这样一来,当要取货时,需从上往下地取出。也就是说,最先存入货栈的货物最后才被取出,而最后存入货栈的货物却最先被取出。即货栈的堆货与取货是按照“先进后出,后进先出”的原则。计算机(单片机)中的堆栈是计算机中一种特定的数据存储区,与货栈的堆货与取货规律相同的是,它也是按照“先进后出,后进先出”的原则来存取数据的。它的一端是固定不变,而另一端则是浮动的。所有对数据存储区信息存入与取出的操作,都只在堆栈的
19、浮动端进行,因此这个浮动的区域就称为堆栈区。下一页上一页返回2.1单片机的基本结构堆栈与实际货栈一样,也有栈顶与栈底之分。堆栈指针SP中存放的是堆栈中栈顶的存储单元地址。当没有存放数据时,堆栈的栈顶地址是与栈底地址相互重合的,SP中存放的栈顶存储单元地址实际上就是栈底的地址。而当堆栈中开始存放数据之后,每存放一次数据,栈顶就向“上”挪动一次,也就是说,SP的值就相应增加一次,而同时,栈底地址是保持不变的。AT89S51的堆栈区安放在片内低128字节之内,在这个范围内可以安排任何区域为堆栈区。一般晴况下,由于CPU在工作时至少要有一组工作寄存器,因此,在单片机复位后,堆栈指针SP的初始值就被自动
20、设为07H。也就是说,当第一个数进栈后,SP加1就指向08H单元。下一页上一页返回2.1单片机的基本结构为了合理使用内部RAM这个宝贵资源,堆栈一般不设在工作寄存器区和位寻址区,通常是在内部RAM 30H -7FH地址空间内设置堆栈区。我们可以用数据传送指令给SP赋初值。例如 MOV SP, #70H 这就可以实现将70H赋予SP,作为其初始值。另外,栈操作是通过压栈指令PUSH(即将数据存入堆栈)和弹栈指令POP(即将数据取出堆栈)来完成的。例如MOV A,#35HPUSH ACC下一页上一页返回2.1单片机的基本结构这样一来,A中的数据即35H就被存放到了堆栈中,而SP指针值也会自动加1。
21、堆栈是为子程序调用和中断操作来设立的,其具体功能是为保护断点和保护现场。在后面的程序指令介绍和设计实验中,我们将有比较好的应用,这里就不多述。数据指针寄存器DPTR ( Data Pointer)数据指针寄存器DPTR是一个16位的寄存器,它是由2个8位的特殊功能寄存器DPH和DPL拼接而成的。其中,DPH是DPTR的高8位,DPL是 DPTR的低8位。DPTR在功能上是作为地址指针存放片内ROM的地址,同时也可以用来存放片外RAM和片外ROM的地址,它可以对片外0000H-FFFFH共64 KB地址空间寻址。下一页上一页返回2.1单片机的基本结构例如 MOV DPTR,#3000H MOVX
22、 A,DPTR这两条指令就是完成将片外3000H单元中的内容送到片内累加器A中的。第一条指令执行后,系统将3000H装人DPTR,而第二条指令执行后,系统则把DPTR中的3000H作为外部RAM的地址,并根据这个地址把其中的内容取出送到累加器A中。有关DPTR的具体应用,在后面的程序指令介绍和设计实验中,我们再来具体介绍。2.存储器AT89S51单片机在物理上有4个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。合起来说,就是数据存储器(RAM)和程序存储器ROM/EPROM )。下一页上一页返回2.1单片机的基本结构(1)数据存储器RAM AT89 S51单片机内部
23、有256字节的RAM。按功能可分为低128字节(即128个8位)和高128字节两部分。其中,低128字节为用户数据存储单元,高128字节为特殊功能寄存器SFR存储单元。它们是统一编址的,特殊功能寄存器单元只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据。因此,用户能使用的RAM只有128个,它可用于存放读写的数据、运算的中间结果或用户定义的字型表等。具体来说,内部RAM按功能分为便签区、位寻址区和工作寄存器区三个部分,其具体的分配情况如表2-3所列。特殊功能寄存器如表2-4所列。下一页上一页返回2.1单片机的基本结构用户可使用的数据存储单元又可以分为三部分:工作寄存器区、位寻址区
24、和用户RAM区。工作寄存器区,地址为00H-1FH,包括了4组工作寄存器,每组8个RAM字节,标记为R0-R7。位寻址区,地址为20H-2FH,共16字节。这个区域除了可作为一般RAM单元进行读写之外,还可以对其中每个字节的每一位进行操作。用户RAM区,地址为30H-7FH,共80字节。这个区域通常应用于堆栈数据的存放。另外,在使用单片机时,还可以在其片外通过扩展得到64 KB的数据存储器。下一页上一页返回2.1单片机的基本结构(2)程序存储器ROM/EPROM程序存储器用于存放用户程序、原始数据或表格。AT89 S51共有4 096个8位掩膜ROM,也就是说,它有4 KB的片内ROM和64
25、KB的片外RIM。它们也是统一编址的,CPU的控制器专门提供了一个控制信号EA来区分内部ROM和外部ROM的公用地址区,EA引脚的接法参照前面引脚的说明。 在程序存储器中,有6个单元具有特殊功能。这6个单元的入口地址分别如下: “ 0000H-0002H;所有执行程序的入口地址,当单片机复位后,CPU总是从0000H单元开始执行程序; 0003 H:外部中断0的入口地址; 000BH:定时器0溢出中断入口地址;下一页上一页返回2.1单片机的基本结构 0013H:外部中断1的入口地址; 001 BH:定时器1溢出中断入口地址; 0023 H:串行口中断入口地址。这些地址在编写程序时,通常是在该地
26、址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或是从0000H起始地址跳转到用户设计的初始程序上。 3.输入/输出(I/O)端口 I/O端口又称为I/O接口,也叫I/O通道或I/O .通路。 I/O端口是单片机对外实现控制和信息交换的必经之路,是一个过渡的集成电路,用于信息传送过程中的速度匹配和增强它的负载能力。 I/O端口有串行和并行之分,串行I/O端口一次只能传送一位二进制信息,并行I/O端口一次可以传送一组二进制信息。下一页上一页返回2.1单片机的基本结构(1)并行I/O端口AT89S51共有四个并行I/O端口,分别为P0,P1,P2和P3。这些端口都具有双向I/O功
27、能。即CPU既可以从四个并行I/O 端口中的任何一个输出数据,也可以通过它们输入数据。四个并行I/O端口在结构上并不相同,因此它们在功能和用途上的差异就比较大。P0口和P2口内部均有一个受控制器控制的二选一选择电路,因此它们除可以用作通用I/O口外,还具有特殊的功能。其中P0口可以输出片外存储器的低8位地址码和读写数据;P2口可以输出片外存储器的高8位地址码。P1口常作为通用I/O口使用,为CPU传送用户数据。P3口除可以作为通用I/O口使用外,还具有第二功能(如表2 -5所列)。下一页上一页返回2.1单片机的基本结构(2)串行I/O端口与其他普通单片机不同,AT89S51有两个全双工的可编程
28、串行I/O端口。这些串行I/O端口既可以在程序控制下把CPU的8位并行数据变成串行数据一位一位地由发送数据线TXD或MISO发送出去,也可以把串行数据接收线RXD或MOSI上收到的数据变成8位并行数据,并送到CPU。而且,这种串行发送和串行接收既可以单独进行,也可以同时进行。 单片机的串行发送和串行接收是利用了P3口的第二功能,即它利用P3.1,引脚作为串行数据的发送线TXD,利用P3.0引脚作为串行数据的接收线RXD。另外,P1.5和P1.6的复用功能,即MOSI和MISO功能引脚,也实现了串行数据的接收和发送。下一页上一页返回2.1单片机的基本结构4.定时/计数器 AT89S51内部有两个
29、16位可编程的定时/计数器,分别为T0和T1. 8052除了T0和T1外,还有T3。每一个定时/计数器都是由高8位TH和低8位TL拼接而成的,如T0就是由TH0和TL0拼接而成的。T0和T1的最大计数模值为216-1,有两种工作模式,每种工作模式下又分为若干工作方式。在定时器模式下,T0和T1的计数脉冲可以由单片机时钟脉冲经12分频后提供,因此定时时间和单片机时钟频率有关。在计数模式下,T0和T1的计数脉冲可以从P3.4引脚(T0)和P3.5引脚(T1)上输入。下一页上一页返回2.1单片机的基本结构T0和T1有两个8位的特殊功能寄存器:一个是定时器方式选择寄存器TMOD,用于确定工作模式为定时
30、器模式或计数器模式;另一个是定时器控制寄存器TCON,可以决定定时器或计数器的启动/停止以及中断的控制。5.中断系统计算机中的中断是指CPU暂停原程序执行转而为外部设备服务(即执行中断服务程序),并在服务完成后回到原程序执行的过程。中断系统是指能够处理上述中断过程所需要的那部分电路。下一页上一页返回2.1单片机的基本结构中断源是指能产生中断请求信号的源泉。AT89S51共可处理5个中断源发出的中断请求,可以对这5个中断请求信号进行排队和控制,并响应其中优先级最高的中断请求。AT89 S51单片机的5个中断源有内部和外部之分,其中外部中断源两个,通常由外部设备产生;内部中断源三个,即两个定时/计
31、数器中断源和一个串行口中断源。外部中断源从P3. 3和P3.2引脚上输入,有电平或边沿两种引起中断的触发方式。内部中断源”和T1的两个中断是在它们从全,1”变为全,0”溢出时,自动向中断系统提出的;内部串行口中断源的中断请求是在串行口每发送完一个8位二进制数据或接收到一组输入数据8位后,自动向中断系统提出的。下一页上一页返回2.1单片机的基本结构AT89S51的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求哪个优先权最高,可以被CPU最先处理。2.1.4时
32、钟电路及CPU时序的概念时钟电路是单片机电路中一个非常重要的组成部分。计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。 时钟电路是用于产生单片机工作所需的时钟信号的电路。时钟信号可以由两种方式产生内部时钟方式和外部时钟方式。下一页上一页返回2.1单片机的基本结构1.内部时钟方式 AT89S51单片机内部有一个高增益反向放大器,用于构成振荡器,引脚XTALl和XTAL2分别是此放大器的输入端和输出端。内部时钟方式是设计中常用的时钟方式。这种方式是在XTALl和XTAL2两端跨接晶体或陶瓷谐振器,构成稳定的自激振荡器,其发出的脉冲直接送入内部时钟
33、发生器,如图2-5所示。 电路在加电后延迟约10 ms振荡器起振,在XTAL2引脚上产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中外接的两个电容C1和C2的作用主要有两个:一是帮助振荡器起振(C1,C2值大,起振速度慢;C1,C2值小,起振速度快);二是对振荡器的频率起微调作用(C1,C2值大,频率下一页上一页返回2.1单片机的基本结构略有降低;C1,C2值小,频率略有提高)。由于通常选用的振荡频率的范围为1. 2-12 MHz,典型值为12 MHz和11. 059 2 MHz,因此,电容容量的范围就为5-60 pF。一般来说,当选用内部晶体振荡器时,C1,C2
34、的电容值通常选择为30 pF左右;当外接陶瓷谐振器时,C1,C2电容值约为47 pF。为了减少寄生电容,更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装在与单片机芯片近一些的位置。内部时钟发生器实质上是一个二分频的触发器。其输出信号是单片机工作所需的时钟信号。 2.外部时钟方式外部时钟方式是采用外部振荡器,外部振荡脉冲信号由XTAL2端接入后直接送至内部时钟发生器,如图2 -6所示。下一页上一页返回2.1单片机的基本结构输入端XTALl应接地,由于XTAL2端的逻辑电平不是TTL的,因此,建议在实际连线设计时外接一个上拉电阻。一般要求,外接的脉冲信号应当是高、低电平的持续时间大于20n
35、s,且频率低于12MHz的方波。这种方式适合于多块芯片同时工作,便于同步。下一页上一页返回2.1单片机的基本结构2.1.5 单片机复位电路1.单片机的复位状态计算机在启动运行时都需要复位,复位使中央处理器CPU和系统中的其他器件都处于一种确定的初始状态或者成为原始状态。在这种状态下,所有的专用寄存器都被赋予系统的默认值。AT89 S51单片机的复位状态如表2-1所列。 在复位时,ALE和PESN成输入状态,即ALE = PESN = 1,片内RAM不受复位的影响。复位后,各特殊工作寄存器状态改变的含义可以分析如下: 首先,复位后,PC指向0000H,单片机从起始地址0000H开始执行程序;PS
36、W = 00H,从而使CPU选择工作寄存器组;SP=07H,也就是设定堆栈在07H地址。同时,复位后的THO,TLO,TH1和TL1都变为OOH,表示定下一页上一页返回2.1单片机的基本结构时/计数器复位后都被清除为00H; TMOD和TCON均为00H,则表示定时/计数器工作在方式0,并且系统禁止定时器计数,其中断被屏蔽。还有,复位后,SCON = 00H,则串行口工作在方式Oo IE=00H,CPU屏蔽所有中断。IP复位后的有效数字位都为。,使5个中断源都被设置为低中断优先级。另外,P1,P2,P3都为FFH,则这些I/O端口都处于输入的状态。AT89S51单片机有一个复位引脚RST,后面
37、要介绍的复位电路就是利用这个引脚来搭建的。 2.复位电路的形式 (1)简单复位电路简单复位电路有上电复位和手动复位两种。但不管是哪一种复位电路形式,都是要保证在RST复位引脚上提供10 ms以上稳定的高电平。 下一页上一页返回2.1单片机的基本结构上电复位电路上电复位电路是简单复位电路中的一种,只要在RST复位引脚上接一个电容到Vcc,再接一个电阻到地端,就构成了一个简单的上电复位电路。上电复位电路就是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着Vcc对电容的充电过程而回落,所以RST复位引脚的高电平维持时间取决于电容的充电时间。为了保证系统安全可
38、靠地复位,RST引脚的高电平信号必须维持足够长的时间。常用的上电复位电路如图2 -7所示。这种上电复位电路的工作过程可以描述如下:当系统加电时,电容C充电,电路有电流流过,构成回路,在电阻R上产生压降,RST引脚为高电平;当电容C充满电后,电路相当于断开,RST的电位与地相同,复位结束。由此可见,复位的时间与充电的时间有关,充电时间越长,增大电容的容量或增大电阻的阻值都可以增加复位的时间。下一页上一页返回2.1单片机的基本结构手动复位电路手动复位就是需要人为在复位输入端加高电平让系统实现复位的方式。一般来说,系统运行过程中,为了避免系统硬件因经常加电和断电而造成的损坏,而同时又需要进行系统复位
39、,此时,就可以选择采用手动复位。经常采用的手动复位方法是在RST端和正电源Vc0之间先接成上电复位电路的形式,然后再接一个串联了电阻的按键开关。这样一来,当系统加电时,系统可以实现上电复位;而当按下按键开关时,电路使Vc0和RST端接通,从而实现系统复位。按键的动作必须保证有数十毫秒,也就是大于两个机器周期的时间,这样才能保证让系统安全地实现复位。下一页上一页返回2.1单片机的基本结构图2 -8中的图(a),(b)分别为手动复位电路的两个示例图。其中图2-8(a)为按键式复位电路,图2一8(b)为按键脉冲复位电路。它们都兼有上电复位和按键后系统复位的功能。图2-8(a)中,当按下按键后,通过R
40、1和R2形成的回路,使RST引脚端产生高电平,从而实现系统复位。图2-8(b)中,按键后,是利用RC微分电路在RST端产生正脉冲来实现系统复位。 简单复位电路中,干扰很容易串人复位端,在大多数情况下是不会造成单片机的错误复位的,但它会引起单片机内部某些寄存器的错误复位。这时,我们常见的改进方法就是在RST复位引脚上接一个去藕电容。如图2-8(c)所示。下一页上一页返回2.1单片机的基本结构 (2)复杂复位电路在电路使用环境的干扰较大,电压波动也较大的情况下,为了保证系统可靠地工作,在设计复位电路时,就应当采用复杂复位电路的形式。实际应用中的复杂复位电路的形式是多种多样的,可以将RC电路接一定的
41、处理电路后再接到单片机的复位引脚,也可以采用一些专用的复位电路芯片来实现复位。另外,还可以采用内置了一些复位处理电路的单片机,如AT89S51单片机,以及Motorola, Microchip等公司的单片机,其中有些内置了“看门狗”定时器功能。下面的图2-9就是一些复杂复位电路的示例图。下一页上一页返回2.1单片机的基本结构2.1.6单片机的基本输出元件单元一个单片机系统是离不开输出元件的。如果没有输出元件单元对系统实现的功能进行显示,那么,系统设计是毫无意义的。单片机系统中基本的输出元件单元有LED显示器件、液晶(LCD)显示器件、CRT显示器件等。其中LED显示器和LCD显示器又可以分为数
42、码显示和点阵显示。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于LED显示器价格低廉,发光较强,机械性能好,显示清晰,使用电压低,使用寿命长,因此在普通单片机系统中应用非常广泛。液晶LCD显示器质量轻,功耗低,可以显示文字图形等。CRT显示器则显示功能强大,使用比较普遍。 下一页上一页返回2.1单片机的基本结构下面本书将分别介绍这几种显示器件的原理与基本结构。 1. LCD显示器LCD显示器就是平时所说的液晶显示器。不过由于一般的单片机系统要求实现的显示内容相对较少,因此,这里使用的LCD显示器就是小型或是微型的液晶显示器了。液晶显示器相对于其他类型的显示器有如下优点: .低
43、压微功耗,可以和大规模集成电路相匹配,使便携式计算机和电子仪表成为可能; .显示的信息量大,无电磁辐射,一般可以显示单行或多行字符、汉字或图形; .体积小,采用平板式结构,使用方便; .适合户外使用,符合人眼的视觉习惯,但在黑暗的环境下一页上一页返回2.1单片机的基本结构条件下,必须使用外接的光源才能使LCD显示正常接收。不过,目前的液晶显示器还存在一些缺点,比如使用温度较窄,大屏幕LCD显示器价格较高等,但家用电器、计算机、自动化仪表等领域中都有液晶显示器的应用。在单片机应用系统中,最为常用的液晶显示器类型是段型和点阵两种类型。(1)段型液晶显示器段型液晶显示器是指以长条状显示像素组成一位显
44、示的液晶显示器,它主要用于数字显示,也可用于显示某些西文字符等。从显示形状上分类,段型显示可以分为6段显示、7段显示、8段显示、14段显示和16段显示等,在形状上它总是围绕数字8的结构变化。其中以7段显示最为常用,被广泛应用于各种数字仪表和计数器中。下一页上一页返回2.1单片机的基本结构 从驱动方式上分类,段型显示可以分为静态显示驱动和动态显示驱动两种。一个段型显示器的驱动方式主要取决于该器件各显示像素外引线的引出和排列方式。由于引线电极排列不同,因此其驱动方式也就不同。所以,在使用段型液晶显示器时,必须首先弄清楚其引线电极排列的具体情况,然后再据此使用相应的控制方法。 (2)点阵液晶显示器由
45、于点阵液晶显示器的引线比较多,用户使用时非常不便,因此,点阵制造商通常将点阵液晶显示器和驱动器连接之后做成一个电路模块来出售,我们常将这样的产品称为液晶显示模块(LCM )。在液晶显示模块上,线路板为双面印刷线路板,其正面布有电极引线,并且还固定有液晶显示器件;其背面装配好了液晶显示驱动电路和分压电路,下一页上一页返回2.1单片机的基本结构并且也提供了驱动电路的接口。有些液晶显示模块内部有控制电路,这种内置控制电路的液晶显示模块所给出的接口可以直接与微处理器连接。这样,用户就可以把主要精力投人到显示屏画面软件设计中。点阵液晶显示的实现,主要是靠液晶显示控制器来完成的。字符型液晶显示模块是一类专
46、门用于显示字母、数字、符号等的点阵型液晶显示模块。在显示器的电极使用控制上,它由若干个5 x5或5 x11点阵字符位组成。每一个点阵字符位都可以显示一个字符。点阵字符位之间有一个点距的间隔,起到了字符间距和行距的作用。字符型液晶显示模块安装在一块双面印刷线路板上,其一面用导电橡胶将电路与液晶显示器连接,另一面则装配有所需要的驱动器、控制器以及驱动所需的分压电路。下一页上一页返回2.1单片机的基本结构。它们一般都可以与单片机接口以便组成点阵显示系统。不同类型的字符型液晶显示模块,其显示的字符数目和尺寸有所不同,而相关的电路原理、控制方法等则基本相同或相近在今后的实际应用中,读者可以参阅具体使用的
47、点阵液晶显示器说明来进行设计实验,这里就不多介绍了。 2. LED显示器 LED显示器就是我们常见的发光二极管、数码管显示器和点阵显示器。(1)发光二极管发光二极管是普通二极管的功能改进类型。它具有普通二极管的基本特性,即在其正极引脚上接正电源,在其负极引脚上接地,则其会处于导通的状态,而且它同时会发出一定颜色的光。我们常利用发光二极管来指示电源、某些仪器的出错警示,或是用来模拟一些生活中的大型彩灯下一页上一页返回2.1单片机的基本结构的发光情况。发光二极管的发光颜色是有许多选择的,实际设计时,设计者可以根据实际设计任务的需要来选择。如图2-10(a)所示。(2)数码管显示器 显示器基本结构如
48、果将数个发光二极管按一定的规律进行组合,那么就可以得到其他形式的LED显示器件。数码管就是这样的一种元件。它由发光二极管构成显示字段,每段由一个或几个发同种颜色光的发光二极管构成。下面以每段只有一个发光二极管构成的数码管为例来介绍。 由于一般的数码管是显示字形“8,即由七只发光二极管分别构成“8”的每一划,因此,我们常将此类数码管称为七段数码管。数码管中除了构成基本显示字形的7个发光二极管之外,还有一个构成显示小数点的发光二极管。这8个下一页上一页返回2.1单片机的基本结构发光二极管分别用a,b,c,d,e,f,g,dp来表示。在实际应用中,我们是将这8个发光二极管某一端连接到一起,而将另一端
49、作为控制信号的输入端。当将正极引脚连接到一起时,将这类数码管称为共阳极数码管;反之,当将负极引脚连接到一起时,将这类数码管称为共阴极数码管。如图2-11所示。以共阴极数码管为例,当公共连接点接地(低电平),而控制某段的输入信号为高电平时,该段就会被点亮。在对应的显示字形上就会呈现一个固定的符号字。例如,当显示字形中的b段和。段被点亮时,就构成了一个“1。又如,当显示字形中的a段、b段、c段、e段、f段和g段被点亮时,就构成了一个“A。如果把显示字符所对应的段点亮顺序写成字段码,就称这个处理过程为“译码”。图2一12表示的是数码管显示的字形,表2一6所列为数码管显示字形与对应的段输入数据对照表。
50、下一页上一页返回2.1单片机的基本结构在实际应用中可以通过软件译码和硬件译码两种方式来实现显示字符到其字段码的转换。软件译码就是将要显示的字符代码通过软件程序转换(也就是翻译)成字段码,CPU直接将字段码通过并行接口送到数码管显示器就可实现显示。软件译码的优点是方便灵活,可以显示特殊字形,且小数点处理方便。硬件译码就是CPU将字符代码通过4位并行接口送到一个译码器芯片,由该译码器芯片完成译码的工作后,再送到数码显示器。硬件译码的优点是编程比较简单,但硬件译码不能产生特殊字形,小数点的显示也要单独来处理。在初学单片机还不很熟悉单片机编程方法时,可以考虑用硬件译码来实现单片机的显示控制功能;待编程
51、已比较熟悉之后,就可将这两种方式适时地结合,从而达到设计的目的。数码管显示时的设计方.式数码管设计显示的方式有两种:静态显示方式和动态显示方式。下一页上一页返回2.1单片机的基本结构 a.静态显示方式静态显示就是显示器的每个字段控制都要用单独的一条I/O端口线,当CPU把待显示的字(经硬件译码)或字段码(经软件译码)送到输出口上时,显示器就可以显示出所需显示的字符。在CPU改写它以前,这个显示的字符将保持不变。 静态显示的优点是显示程序比较简单,亮度高,由于在不改变显示内容时不需要CPU去干预显示的状态保持问题,因此节约了CPU的时间。静态显示的缺点是,显示位数占用的系统I/O端口线较多,硬件
52、比较复杂,因此,这种方式只适合于显示位数比较少的系统设计。 b.动态显示方式动态扫描显示方式是单片机应用中使用最为广泛的一种显示方式。它具有线路简单、成本低的特点。在搭建电路时,是将多位的数码管显示器相同的字段控制下一页上一页返回2.1单片机的基本结构线连接在一起,然后由单片机的8个I/O端口线来集中送显示数据,如字段a就与另一个数码管的字段a相连。之后,每个数码管的COM端则由单片机的I/O端口线单独来控制。这样,当CPU向显示器输出显示数据时,只有COM端被设置为有效信号的数码管才会显示这个数据。 实际上,动态扫描就是利用分时工作的方法,使多个数码管轮流来显示数据。一般,各数码管的显示时间
53、为1 ms左右,由于人视觉暂留现象且发光二极管具有余辉效应,使得各数码管显示的效果在人看来就是很稳定的一组数据。在编写程序时,只要使扫描的时间比较短,那么输出显示的效果就不会有闪烁感。鉴于后面的实验中对这部分内容有专门的介绍,这里就不重复举例来说明了。下一页上一页返回2.1单片机的基本结构2.1.7 单片机的基本输入元件单元 单片机系统中的基本输入元件就是按键开关和键盘。图2-13所示是按键与键盘的一些实例图片。 按键是最为简单的输入元件之一,将其一端接到电源的正极(或者负极),另一端接到单片机的某个I/O端口引脚,当按键动作时,相应的I/O端口引脚上的电平状态就会发生变化。若在程序中对I/O
54、引脚状态进行检测,那么就可以实现由按键动作操纵某些程序的执行、启动与停止了。键盘是由多个按键根据一定的规律组合而构成的。常见的键盘可以分为编码键盘和非编码键盘;另外,键盘也可分为独立式键盘与矩阵式键盘。编码键盘就是采用硬件线路来实现键盘按键的编码,每按一次键。键盘就产生一个编码,并且它还有去抖动的功能。这种键盘使用比较方便,但硬件比较复下一页上一页返回2.1单片机的基本结构杂,一般只用于按键数量较少的场合。在简单的单片机系统设计中,这种键盘是比较常用的。1.独立式键盘独立式键盘也称为简单键盘,在应用系统中如果需要的按键数量比较少,那么就可以使用独立式键盘。如图2-14所示,在键盘没有按键动作时
55、,P0. 0, P0. 1, P0. 2三个I/O端口引脚上的输入电平都是高电平。当S0,S1,S2中某一个有按键动作时,对应的I/O引脚上的输入电平就会变为低电平。当按键松开后,该I/O引脚的输入电平就又会回复到高电平的状态。(1)按键去抖动的处理由于按键是机械元件,在按键过程中,都会存在抖动的问题。也就是说,当按键时,由于存在抖动,使得相应的引脚上不会马上变成低电平,而是出现一下一页上一页返回2.1单片机的基本结构系列的中间电平值;而当按键松开时,也是由于存在抖动,使得相应的引脚上不会马上变成高电平,而是出现一系列的中间电平值。如果在设计时不考虑对于按键抖动的处理,那么系统很可能会因为抖动
56、而出现误操作,即在该响应按键动作时没有响应,而在该停止响应按键动作时却没有停止响应。实际上,抖动出现的时间一般为5-10 ms,之后按键的动作就会变得稳定。因此,如果在系统设计时,使程序在检测到按键动作后,先延迟一定的时间,然后再检测按键是否还是之前检测到的动作状态,若是,那么就可以根据按键的状态电平去响应;反之,系统就无需响应这个操作。这样,就可以很好地协调按键响应与按键抖动之间的矛盾了。一般情况下,常采用的延时去抖动时间为10-20 ms.下一页上一页返回2.1单片机的基本结构 (2)独立式键盘与单片机的接口独立式键盘与单片机的接口方式有并行I/O口直接连接方式、扩展并行I/O 口连接方式
57、等。如图2-14所示就是单片机的I/O口与键盘按键的直接连接方式。在后面的设计实验中,对此种方式有很具体的应用,这里就不多介绍。2.矩阵式键盘 矩阵式键盘也叫行列式键盘。如图2-15所示为一个3x3共九个按键的矩阵式键盘。其中单片机的P1. 7, P1. 6,P1. 5分别控制了键盘的行线,而P1. 4, P1 . 3 , P1. 2则分别控制了键盘的列线。下一页上一页返回2.1单片机的基本结构矩阵式键盘的按键处理方法与独立式按键处理方法基本相同。即先检测键盘有无按键动作,若有按键动作,则作延时以便去除抖动影响。然后再检测,若此时检测到已没有按键动作,则返回前面重新检测;若检测到仍然有按键动作
58、,那么就根据检测到的数据查找按键所处的位置,之后就根据按键的位置确定按键所代表的按键值。与独立式键盘不同的是,独立式键盘可以直接确定按键的值;而矩阵式键盘就没那么简单了,它必须通过检测有无按键动作以及查找按键的具体位置才能确定按键的值。(1)矩阵式键盘按键检测与键值确定的步骤矩阵式键盘检测有无按键动作以及查找按键的具体位置的方法一般是采用扫描法。具体的步骤如下:检测有无按键的动作即先使列线上的所有输出引脚上电平下一页上一页返回2.1单片机的基本结构全设为0。然后,进行检测。若没有按键动作,那么行线上的所有输出引脚上电平应当全为1;若某处有按键动作,那么就必然会有一个位置的行线输出引脚电平不为1
59、,也就是说,行根据前面的检测,查找按键的位置即在有按键动作时,再进行逐行逐列的扫描。以图2-15为例,先使列线上的P1. 2 =0,P1. 3和P1.4=1。之后,依次检测行线P1. 7, P1. 6, P1. 5引脚的电平值。若全为1,则说明P1. 2列没有按键动作;但若不是全为1,例如检测到P1. 7 =0,则表示跨接在P1. 7行和P1. 2列的按键有动作,即图2-15按键有动作。如果在该列没有检测到有按键动作,那么就应转到下一列,即使下一个列线引脚电平为0,再去检测各行线引脚的电平值。就这样依次逐列逐行地扫描检测,直到找到有按键动作的情况为止。下一页上一页返回2.1单片机的基本结构确定
60、按键的位置当找到有按键动作的情况后,根据正在扫描的列线和行线的编号就可以确定按键的具体位置,通过后面的程序处理,就可以计算得到相应的按键值,也就是产生按键码。按键码的编号,在程序运行之前,就应当事先定好,并且按照按键的排列顺序有规律地列成一个表格,以供后面查询程序去具体查询。线上输出引脚上电平不全为1。 (2)矩阵式键盘的基本工作方式系统CPU对键盘的基本工作就是扫描方式,可以分为三种:随机方式、定时扫描方式和中断扫描方式。 随机方式就是系统仅在CPU处在空闲状态时,才去扫描键盘的按键情况。当CPU在执行其他应用程序,而该程序中没有键盘扫描的程序内容时,系统就不能去响应此时的按键动作。下一页上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论