ATC单片机的硬件结构和工作原理PPT教学课件_第1页
ATC单片机的硬件结构和工作原理PPT教学课件_第2页
ATC单片机的硬件结构和工作原理PPT教学课件_第3页
ATC单片机的硬件结构和工作原理PPT教学课件_第4页
ATC单片机的硬件结构和工作原理PPT教学课件_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

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

文档简介

1、1第二章 1.MCS51主要性能特点 MCS51产品分类 MCS51是高性能的8位单片机系列产品,它包括8051、80C51和8052三类产品。 8051是HMOS工艺的芯片; 80C51是CHMOS工艺的芯片; 8052是在8051基础上改进了部分功能的HMOS工艺的芯片。 每类产品中都包括了三个芯片: 8051、8751、8031 80C51、87C51、80C31 8052、8752、8032第1页/共151页2第二章 1. MCS51主要性能特点 MCS51产品分类第2页/共151页3第二章 1.MCS51主要性能特点 MCS51主要功能 内部程序存储器容量(ROM):4KB/8KB

2、内部数据存储器容量(RAM):128B/256B I/O口:数量较多,4个双向并口,1个全双工串口,32线 外部程序存储器寻址空间:内外程序存储器总空间为64KB, 外部数据存储器寻址空间:64KB,各型号一致 定时器/计时器:51子系列2个16位T/C,52子系列3个,4种工作模式。 串行口:1个全双工串口,占用2根I/O线构成,4种模式 寄存器区:内部RAM中开辟4个通用工作寄存器区,32个通用寄存器,可适应多级中断或子程序嵌套。第3页/共151页4第二章 1.MCS51主要性能特点 MCS51主要功能 中断系统:5个中断源,2个可编程优先级。 堆栈:位置可编程,深度可达128字节,即整个

3、片内RAM。 布尔处理器:有1个位(布尔)处理机,一位机,有自己的CPU、位寄存器、I/O口和指令集(MCS-51的指令子集)。适用于控制目的和解决逻辑问题。 指令系统:共111条指令。算术逻辑运算、数据传送、位操作、转移控制。 52子系列的增强: 片内RAM:256B (51子系列为128B) 片内ROM:8KB (51子系列为 4KB) T/C:3个 (51子系列为2个) 中断源:6个 (51子系列为5个)第4页/共151页5第二章 2.内部结构与外部引脚 MCS51单片机的内部结构框图内部总线时钟电路CPUINT0T1T0并行接口串行接口P0 P1 P2 P3TXD RXD中断系统ROM

4、RAM定时/计数器INT1第5页/共151页6第二章 2.内部结构与外部引脚 MCS51单片机的内部由以下8个功能部件组成;1个8位中央处理器CPU振荡器和时钟电路4KB内部程序存储器(ROM/EPROM)128B内部数据存储器2个16位定时器计数器4个并行IO口1个全双工串行IO口中断系统 各部件是通过片内单一总线连接而成 其基本结构是通用CPU加外围接口的结构模式 功能部件的控制采用了特殊功能寄存器的集中控制方法第6页/共151页7第二章 2.内部结构与外部引脚 MCS51单片机的内部逻辑框图第7页/共151页8第二章 2.内部结构与外部引脚 MCS51单片机多采用DIP封装,也有方形封装

5、,40个有效引脚。第8页/共151页9第二章 2.内部结构与外部引脚nMCS51单片机40个有效引脚,分为4类:n2个专用主电源引脚:nVCC(40脚):+5V主电源nVSS(20脚):地第9页/共151页10第二章 2.内部结构与外部引脚n2个外接晶体引脚:nXTAL1(19脚):片内为反向放大器输入端。使用片内振荡电路时,外接晶振和电容;使用外部振荡电路时接地。nXTAL2(18脚):片内为反向放大器输出端。使用片内振荡电路时,外接晶振和电容;使用外部振荡电路时,接外部时钟信号。n4个控制/电源复用引脚:nRST/VPD(9脚):在振荡器工作时,引脚上出现连续2个机器周期以上高电平时,单片

6、机复位; VCC掉电期间,可接备用电源,用于内部RAM的数据保持VCC低于规定水平,此引脚上接规定的电压(50.5V),作为备用电源。第10页/共151页11第二章 2.内部结构与外部引脚nALE/ (30脚):当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。n (29脚):此脚的输出是外部程序存储器的读选通信号。n (引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对8051875180C51)或1FFFH(对8052)时,将自动

7、转向执行外部程序存储器内的程序。当EA保持低电平时则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器;对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21伏的编程电源(VPP)。PROGPSEN/VPPEA第11页/共151页12第二章 2.内部结构与外部引脚n32个I/O引脚:P0.0P0.7 、P1.0P1.7 、P2.0P2.7和 P3.0P3.7n P0口(39脚一32脚):是双向8位三态IO口,在外接存储器时,作为地址总线的低8位及数据总线复用。n P1口(1脚一8

8、脚):是8位准双向IO口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向IO口。nP2口(21脚一28脚):是8位准双向IO口。在访问外部存储器时,作为高8位地址总线送出高8位地址。nP3口(10脚一17脚):是8位准双向IO口。在MCS-51中,这8个引脚还具有第二功能,是复用双功能口。第12页/共151页13第二章 2.内部结构与外部引脚nP3口第二功能引脚定义: 第13页/共151页14第二章 3.中央处理器nCPU的组成:nMCS51单片机内的CPU与其他微处理器一样,是单片机的指挥和执行部件,完成运算和控制功能。n在逻辑上它是由8位算逻单元、定时控制部件及专用寄存器组

9、组成。第14页/共151页15第二章 3.中央处理器第15页/共151页16第二章 3.中央处理器n 1算术逻辑单元ALU:n对8位二进信息进行加、减、乘、除、比较等算术运算;n“与”、“或”、“异或”等逻辑运算及取反、清零、置1等逻辑操作功能;n具有很强的调用、转移、判跳操作和丰富的数据传送功能。n还具有极强的布尔处理(位处理)功能。n 2内部寄存器n(1)工作寄存器组:MCS-51指定内部数据存储器(内部RAM)中四组8个字节存储单元为工作寄存器,并以符号R0,R1 R7 表示。03每组的地址分别为n0007H 08H一0FH 10H一17H 18H一1FHn使用哪一组工作寄存器是由PSW

10、的设置来决定的。n工作寄存器的功用类似于一般CPU中的通用寄存器组。第16页/共151页17第二章 3.中央处理器n(2)寄存器A、B:n寄存器A即累加器。在算术运算中用于存放操作数和运算结果;在逻辑操作、数据传送等操作中作为源或目的操作数。n寄存器B主要用于和累加器配合以执行乘除运算,存放第二个操作数。B也可以作一般的寄存器使用。n(3)程序状态字PSW: PSW是一个可编程的8位寄存器,用于存放当前指令执行结果的有关状态,其中有一位可由用户使用。CYCYACACF0F0RS1RS1RS0RS0OVOVP P第17页/共151页18 进位位CY: 表示运算结果有无进位(由硬件改变)CY=1表

11、示有进位,CY=0表示无进位。 在布尔操作中CY是布尔累加器。(由软件改变)第二章 3.中央处理器第18页/共151页19 辅助进位位AC标志: 运算器低四位(低半字节)向高四位(高半字节)的进位情况。有进位则AC1,无进位则AC0。 此位主要用于BCD码的运算。 由硬件改变第二章 3.中央处理器第19页/共151页20 用户标志位F0: 是给用户提供的一个状态标志位。 可由用户定义为某一状态的标志。 由用户在程序中改变。(由软件改变)第二章 3.中央处理器第20页/共151页21 RS1、RS0: 是工作寄存器组的选择位。用以确定所使用的工作寄存器的地址。 这两位由程序设定,在使用工作寄存器

12、前应设定这两位的状态,从而指定了当前使用的工作寄存器组的地址。(由软件改变)第二章 3.中央处理器第21页/共151页22 溢出位OV标志: 运算结果有无溢出的状况,由硬件改变。OV1表示有溢出,OV0表示无溢出。 用于对有符号数加/减运算时的结果判断。 设置规则为: 为第6位向第7位进位 为第7位向CY进位 乘法指令MUL影响OV 积255时,OV=1。积在BA寄存器对中。 积255时,OV=0。积在A寄存器中。 除法指令DIV影响OV 除数=0时,OV=1第二章 3.中央处理器76CCOV6C7C第22页/共151页23 奇偶校验位P标志 运算操作结果中,含有“1”的个数的奇偶性。 MCS

13、-51为奇校验,即 P=1时表示“1”的个数为奇数, P=0时表示“1”的个数为偶数。 常用于数据传输中的检验。第二章 3.中央处理器第23页/共151页24 (4)堆栈指针SP: 8位的堆栈指针SP指示当前堆栈栈顶的地址。 MCS-51的堆栈设在内部数据存储器中(内堆栈)。 堆栈是向上生长型(指地址值)。 PUSH:先+1,再入栈 POP: 先出栈,再-1 SP初值愈小,堆栈可以愈深。最深为整个内部RAM。 用户可以通过SP的设置来定义内部数据存储器中的任一连续区作为堆栈。 在单片机复位后SP=07H,在不重新定义SP时,第1个压栈的数据存入08H单元(第1工作寄存器区)。第二章 3.中央处

14、理器第24页/共151页25 (5)数据指针DPTR 这是一个16位的寄存器,可分成两个字节:高字节DPH和低字节DPL。 其功能是存放16位地址,以指示数据存储器的任何单元。 对64KB外部数据存储器空间寻址,用作间接寻址寄存器 MOVX A, DPTR MOVX DPTR, A 对程序存储器空间寻址,作为基址寄存器,基址+变址。 MOVC A,A+DPTR第二章 3.中央处理器第25页/共151页26 (6)程序计数器PC 这是一个16位的寄存器,无地址,也不可寻址。 CPU总是按PC的指示读取程序。PC功能是存放16位地址,以指示下一条要执行的指令的地址。 PC由硬件自动加1,因此CPU

15、执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。 复位时,PC=0000H。第二章 3.中央处理器第26页/共151页27 CPU定时 MCS-51单片机的振荡器频率规定为1.212MHz。该振荡器周期,称为振荡周期。 振荡脉冲由内部电路形成两相的时钟信号,两相脉冲组成一个状态周期,也称为。(=2个振荡周期)机器周期由6个状态组成=6个时钟周期=12个振荡周期指令周期:执行1条指令所占用的全部时间。 若振荡器频率为12MHz, 振荡周期=1/12 s 时钟周期=1/6 s 机器周期=1 s 指令周期=14 s第二章 3.中央处理器第27

16、页/共151页28 基本定时时序关系第二章 3.中央处理器S机器周期1取指令、译码指令周期机器周期2取操作数、执行第28页/共151页29 一、存储器结构 MCS-51单片机的存储器结构采用哈佛结构,将程序和数据分开存放,程序存储器用以存放程序和固定的表格数据,而数据存储器中只能存放数据,不能执行程序。两者各有自己的寻址方式、寻址空间和控制系统,这对单片机的“面向控制”的实际应用极为方便有利。第二章 4.存储器与特殊功能寄存器第29页/共151页30 8051存储器组织结构第二章 4.存储器与特殊功能寄存器第30页/共151页31 物理上4个存储器空间: 片内/片外程序存储器空间 片内/片外数

17、据存储器空间 逻辑上3个存储器地址空间: 64KB 片内外统一的程序存储器 256B 片内数据存储器 64KB 片外数据存储器第二章 4.存储器与特殊功能寄存器第31页/共151页32 二、程序存储器 程序存储器用于存放要执行的程序指令和固定的表格、常数。 MCS-51单片机由16位的程序计数器(PC)和16条地址线寻址程序存储器,寻址范围为64KB。 内部程序存储器和外部程序存储器在逻辑上是统一编址的。对于有内部ROM或EPROM的芯片8051和8751,其内部程序存储器地址安排在0000H0FFFH的4KB空间,而外部程序存储器的地址空间为1000HFFFFH(60KB)。 执行程序时,不

18、管是从内部程序存储器或是从外部程序存储器读取指令,其操作速度是一样的。 程序存储器的操作完全由程序计数器PC控制,PC指示将要执行的程序指令的地址。 采用立即寻址和基址+变址寻址第二章 4.存储器与特殊功能寄存器第32页/共151页33 程序存储器有以下特殊单元: 0000H 单片机复位后PC=0000H,初始程序入口 0003H 外部中断 000BH 定时/计数器T0溢出中断 0013H 外部中断 001BH 定时/计数器T1溢出中断 0023H 串行口中断 一般在上述地址放置跳转指令,跳至真正的程序入口第二章 4.存储器与特殊功能寄存器0INT1INT第33页/共151页34 三、数据存储

19、器 数据存储器用以存放和读取数据,它不能存放和执行程序指令。 数据存储器在物理上和逻辑上都分为两个地址空间: 内部数据存储器(内部RAM)地址空间为00H7FH, 128B 外部数据存储器(外部RAM)地址空间为0000HFFFFH,64KB 两空间使用不同指令来访问的: 访问内部RAM用MOV指令 访问外部RAM用MOVX指令第二章 4.存储器与特殊功能寄存器第34页/共151页35 8051内部RAM的低128B单元,可按功能分为三个区域: 工作寄存器区: 字节地址:00H1FH 位寻址区: 字节地址:20H2FH,位地址为:00H7FH 数据缓冲区/堆栈区: 字节地址:30H7FH,可用

20、作堆栈和参与运算。 8051高128B为专用寄存器区(S F R) (地址为80HFFH) 其中只有26字节有定义。 对8052,多128B数据存储器,其地址与SFR区地址重叠: 访问SFR,采用直接寻址 访问高128B内部RAM,采用寄存器间接寻址第二章 4.存储器与特殊功能寄存器第35页/共151页36 内部数据存储器配置图: 4个工作寄存器组。每一组包括8个工作寄存器,用符号R0R7表示,同一时刻只选用一组,具体使用哪一组是通过对PSW的RS1、RS0两位的设置来实现的。切换工作寄存器组很容易实现子程厅嵌套、中断嵌套时的现场保护。若只使用了一组工作寄存器,则其他三组RAM单元可作为一般的

21、内部RAM作用。 注意位寻址空间,区分位地址和字节地址。 堆栈的位置由SP确定,不能超出内部RAM空间。第二章 4.存储器与特殊功能寄存器第36页/共151页37 四、特殊功能寄存器SFR 要点 MCS-51的特殊功能寄存器地址安排在内部数据存储器的80H0FFH空间。这种存储器映象方式允许像访问内部数据存储器一样方便的访问特殊功能寄存器。对SFR访问的寻址方式只能为直接寻址。 SFR是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器。MCS-51片内的I/O口锁存器、定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都是以SFR的形式出现。 8051有22个SFR,8052有

22、26个SFR。 8051有11个SFR可以被位寻址,其字节地址可以被8整除。第二章 4.存储器与特殊功能寄存器第37页/共151页38 特殊功能寄存器SFR列表第二章 4.存储器与特殊功能寄存器符号单元地址名称位地址符号地址* ACCE0H累加器ACC.7ACC.0E7HE0H* BF0H乘法寄存器B.7B.0F7HF0H* PSWD0H程序状态字PSW.7PSW.0D7HD0H SP81H堆栈指针 DPL82H数据存储器指针(低8位) DPH83H数据存储器指针(高8位) * IEA8H中断允许控制器IE.7IE.0AFHA8H* IPB8H中断优先控制器IP.7IP.0BFHB8H* P0

23、80H通道0P0.7P0.087H80H* P190H通道1P1.7P1.097H90H* P2A0H通道2P2.7P2.0A7HA0H* P3B0H通道3P3.7P3.0B7HB0H PCON87H电源控制及波特率选择 * SCON98H串行口控制SCON.7SCON.09FH98H SBUF99H串行数据缓冲器 * TCON88H定时控制TCON.7TCON.08FH88H TMOD89H定时器方式选择 TL08AH定时器0低8位 TL18BH定时器1低8位 TH08CH定时器0高8位 TH18DH定时器1高8位 第38页/共151页39 特殊功能寄存器SFR中可位寻址的寄存器第二章 4.

24、存储器与特殊功能寄存器n在CPU介绍中介绍了一些SFR,其他SFR与片内的功能模块管理有关,在后续相关部分详细介绍。第39页/共151页40 一、IO口内部结构 4个功能很强的8位并行口,32条I/O线,分为P0P3口。 I/O口的每位由锁存器、输出驱动器和输入缓冲器组成。 每个I/O既可作输入又可作输出,每一条口线可独立用作输入又可用作输出,作输出时可锁存数据,作输入时可缓冲数据。 每个口包含的锁存器,P0P3是特殊功能寄存器SFR,可以位寻址。第二章 5.并行I/O口口口字节地址字节地址位地址位地址P080H8087HP190H9097HP2A0HA0A7HP3B0HB0B7H第40页/共

25、151页41 IO口的每位锁存器均由D触发器组成。在CPU“写锁存器”信号驱动下,将内部总线上的数据写入锁存器中,锁存器的输出端Q反馈到内部总线上,以响应来自CPU的“读锁存器”信号,把锁存器内容读入内部总线上,送CPU处理。而在响应CPU的”读引脚”信号时,则将IO端口引脚上的信息读至内部总线,送CPU处理。 读IO的指令有两类,一类是读锁存器,一类是读引脚,这两种指令的操作是有区别的。第二章 5.并行I/O口第41页/共151页42 P0口 输出 输入 读-修改-写操作 P0在有外部存储器扩充时,作地址/数据总线复用,分时输出A0A7 和D0D7 输出时接上拉电阻;输入时先写“1”,再读入

26、。 可驱动8个LSTTL负载。第二章 5.并行I/O口第42页/共151页43 P0位结构第二章 5.并行I/O口第43页/共151页44 P1位结构第二章 5.并行I/O口第44页/共151页45第二章 5.并行I/O口 P2位结构第45页/共151页46第二章 5.并行I/O口 P3位结构第46页/共151页47I/O口第二功能注 释P3.0RXD串行口数据接收端P3.1TXD串行口数据发送端P3.2INT0外部中断请求0P3.3INT1外部中断请求1P3.4T0定时/计数器0P3.5T1定时/计数器1P3.6WR外部RAM写信号P3.7RD外部RAM读信号 P3口第二功能第二章 5.并行

27、I/O口第47页/共151页48 I/O口小结: 应用上: P0:系统扩展;通用I/O口(输出时,需接上拉电阻。) P1:通用I/O口 P2:系统扩展;通用I/O口 P3:功能口,每位独立定义;通用I/O口。 P0,P2需复用,位结构设有多路转换器MUX,由内部控制信号控制。 P3口作通用I/O口时,第2功能输出控制线由硬件设为高电平;作第2功能时,应由软件对锁存器置1。 驱动能力上: P0驱动8个LSTTL负载 P1P3驱动34个LSTTL负载第二章 5.并行I/O口第48页/共151页49 I/O口小结: 访问方式上: 每个I/O口均有两种读入方式(用指令区分) 读锁存器(读-修改-写操作

28、指令) 读引脚 (是以IO口为原操作数的指令) 例如 ANL P1,A MOV A,P1 系统复位时,所有口锁存器均置“1”。 注意:读引脚时,需先向锁存器写“1”。第二章 5.并行I/O口第49页/共151页50 读引脚时,需先向锁存器写“1”的原因。第二章 5.并行I/O口第50页/共151页51第二章 6.定时/计数器 对于定时/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都有以下特点:u定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。u定时/计数器的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。u可以按

29、照规定的定时或计数值,在定时时间到或者计数终止时,发出中断申请,以便实现定时控制。第51页/共151页52 一、功能和结构: MCS-51有2个16位可编程定时/计数器(Timer/Counter):T0,T1 每个都具有T/C两种功能和4种工作方式。 有相应的SFR对它们进行编程控制。 工作方式寄存器TMOD 控制寄存器TCON 使用时,靠用户软件设置。复位后,全部被清零。第二章 6.定时/计数器第52页/共151页53第二章 6.定时/计数器n单片机CPU和T/C的关系第53页/共151页54第二章 6.定时/计数器 定时/计数器的原理 本质上是一个加一计数器 定时器功能:计数输入信号为内

30、部时钟脉冲,每个机器周期(12个振荡周期)使计数寄存器的值增一。(计数频率=1/12振荡频率) 计数器功能:计数脉冲由外部输入(T0-P3.4, T1-P3.5),输入信号下跳变10时,计数值加1。每个机器周期对外部输入采样1次,确认1次下跳变用2个机器周期,计数频率=1/24振荡频率。第54页/共151页55 二、相关SFR: TMOD: 地址89H,不可位寻址第二章 6.定时/计数器第55页/共151页56 门控方式选择位GATE : GATE=0,非门控方式(内部启动): TRx=1,启动定时器工作; TRx=0,停止定时器工作。 GATE=1,门控方式(外部启动): TRx=1且引脚/

31、INTx=1才启动。 /INT0控制T0, /INT1控制T1 定时器/计数器功能选择位 0:定时器 1:计数器第二章 6.定时/计数器/CT第56页/共151页57 方式选择位:第二章 6.定时/计数器M1 M0工作方式功 能 说 明0 0方式013位计数器0 1方式116位计数器1 0方式2自动再装入8位计数器1 1方式3定时器0:分成两个8位计数器定时器1:停止计数第57页/共151页58 TCON:地址88H,可位寻址。第二章 6.定时/计数器第58页/共151页59 启动控制位TR0、TR1 =0,停止定时器工作 =1,分情况: GATE=0,启动定时器工作 GATE=1,由/INT

32、x控制, /INTx为高电平,启动定时器工作 /INTx为低电平,禁止定时器工作 溢出中断请求标志位TF0、TF1 定时器溢出时,由硬件置TFx=1,引起中断请求,CPU响应Tx中断后(进入中断处理程序),硬件自动清零TFx。 TFx也可以由程序查询和清零。 低4位用于外部中断控制,在后面介绍。第二章 6.定时/计数器第59页/共151页60 三、工作方式: 两个T/C工作方式有所不同。 T0可用: 方式0,1,2,3 T1可用: 方式0,1,2第二章 6.定时/计数器第60页/共151页61 工作方式0:13位T/C M1M0两位为00时,定时/计数器为工作方式0。 13位是由TLx的低五位

33、和THx的全部8位构成。 C/T=0/1,决定其功能:计数信号为内部时钟或外部输入 可计数最大值:213=8192第二章 6.定时/计数器第61页/共151页62 工作方式1:16位T/C M1M0两位为01时,定时/计数器为工作方式1。 16位是由全部TLx和THx构成。 与方式0相比,除了位数不同,其他状态和控制都相同。 可计数最大值:216=65536第二章 6.定时/计数器第62页/共151页63 工作方式2:自动重装载8位T/C M1M0两位为10时,定时/计数器为工作方式2。 THx为重装载常数,TLx为计数器 TLx溢出时,THxTLx,THx内容不变。 常用于 周期性工作的精确

34、定时 串行口波特率发生器第二章 6.定时/计数器第63页/共151页64 工作方式3:T0分为2个8位T/C M1M0两位为11时,定时/计数器为工作方式3。 方式3只对T0有效,T1在方式3下不工作。 T0分为2个独立的8位计数器; TL0利用了T0的状态和控制位(TR0,GATE,C/T和TF0),功能同方式0、方式1。 TH0使用了定时计数器1的控制启动位TRl和溢出标志位TF1(占用的T1的中断),只能完成定时功能。 方式3是为了在使用串行口时,需要两个独立的计数器而特定提供的。此时把定时器1设定为方式2,用作串行通信的波特串发生器,不使用中断(即溢出标志TF1)。第二章 6.定时/计

35、数器第64页/共151页65第二章 6.定时/计数器第65页/共151页66 四、T/C的编程和应用 编程的基本环节 选择计数脉冲源,即选择功能 定时功能:内部时钟源 计数功能:外部信号输入 选择两个寄存器组成计数器的形式:THx, TLx 选择启动、停止的操作方式(是否使用GATE位) 计数器预置初始值 定时:初始值设定了溢出的周期 计数:通常为零 若使用了中断功能,应做有关设置工作(在中断系统介绍) 启动T/C第二章 6.定时/计数器第66页/共151页67 编程使用:1、方式0: (13位T/C) 要求: T0产生1ms的定时, 并使P1.0输出周期为2ms的方波,设晶振为6MHz。 定

36、时,方式0,不用GATE位, GATE=0,C/T=0,M1M0=00,TMOD=00H 计算初始值:机器周期=12/晶振频率=12/(6106)=2us设初始值为X, (213 X) 2106秒= 103 秒解得 X = 7692 = 1E0CH13位T/C: TH0的8位+TL0的低5位第二章 6.定时/计数器 F0 0C1100000011100001C0E1第67页/共151页68 得 TH0=0F0H TL0=0CH 程序:第二章 6.定时/计数器START: MOVTMOD, #00H;置方式0, 完成1,2,3MOVTL0,#0CH;初始值MOVTH0,#0F0HSETBTR0;

37、启动定时器LOOP: JBCTF0,OUTPUT;等待定时到AJMPLOOPOUTPUT:MOVTL0,#0CH;定时到,需重设初始值MOVTH0,#0F0HCPLP1.0;取反AJMPLOOP;循环第68页/共151页692、方式1: (16位T/C) 要求: T0产生1ms的定时, 并使P1.0输出周期为2ms的方波,设晶振为6MHz。 定时,方式1,不用GATE位, GATE=0,C/T=0,M1M0=01,TMOD=01H 计算初始值:机器周期=12/晶振频率=12/(6106)=2us设初始值为X, (216 X) 2106秒= 103 秒解得 X = FE0CH 得 TH0=0FE

38、H TL0=0CH第二章 6.定时/计数器第69页/共151页70 程序:第二章 6.定时/计数器START: MOVTMOD, #01H;置方式1, 完成1,2,3MOVTL0,#0CH;初始值MOVTH0,#0FEHSETBTR0;启动定时器LOOP: JBCTF0,OUTPUT;等待定时到AJMPLOOPOUTPUT:MOVTL0,#0CH;定时到,需重设初始值MOVTH0,#0FEHCPLP1.0;取反AJMPLOOP;循环第70页/共151页71第二章 6.定时/计数器第71页/共151页72第二章 6.定时/计数器3、方式2: (自动重装载8位T/C) 要求:利用定时器T1的方式2

39、对外部信号计数,要求每计满100次对P1.0端取反。解:计数功能:C/T = 1方式2:M1M0=10不用门控位:GATE=0得:TMOD=0110 0000 = 60H设计数初值X 100=28-X X=256-100=156=9CH程序:ORG 0000HMAIN:MOV TMOD,#60H ; 方式 MOV TL1,#156 ; 初值 MOV TH1,#156 ; 重装 SETB TR1 ; 启动计数LOOP: JNB TF1, LOOP; 等待计够CPL P1.0 ; 取反CLR TF1SJMP LOOP第72页/共151页73第二章 6.定时/计数器4、方式3: (T0分为2个8位C

40、OUNTER) 要求: T0方式3,分别产生200s和400s的定时, 并使P1.0和P1.1分别产生400s和800s的方波,设晶振为6MHz。解:需要利用中断方式。机器周期 t=2s TL0定时200s TH0定时400s 定时溢出产生中断,将P1.0和P1.1取反。方式3,GATE=0,C/T=0,M1M0=11,TMOD=03H 初始值:TL0初始值(28 X) 2= 200 X = 156 = 9CHTH0初始值(28 Y) 2= 400 Y = 56 = 38H因涉及中断系统,程序略去。第73页/共151页74第二章 6.定时/计数器5、运行中读取T/C 在读取运行中的定时/计数器

41、时要特别小心,否则读取的计数值有可能出错。 原因是不可能在同一时刻同时读取TLx和THx的内容。 先读TLx,后读THx:由于定时器在不断运行,读THx前,若恰好产生了TLx向THx进位的情形,则读得的值错误。 先读THx,后读TLx:读TLx前,若恰好产生了TLx向THx进位的情形,则读得的值还是错误。 一种方法是:先读THx,后读TLx,再读THx,若两次读 得的THx值相同,则可确定读得的内容是正确的。若前后两次读得值不同,则重复上述过程,这次重复读得的内容就应该是正确的了。(跳过进位时段)第74页/共151页75第二章 6.定时/计数器 设读得的TH0和TL0分别存放在R1和R0中,程

42、序段如下: RDTIME:MOV A,TH0;读TH0中内容MOV R0,TL0;读TL0中内容CJNE A,TH0, RDTIME;再读,两次TH0比较MOV R1,A;OK!RET第75页/共151页76第二章 6.定时/计数器6、门控制位的功能和使用 门控制位GATE=1,且运行控制位TR01时,允许外部输入电平控制定时器,即INT01启动计数器;INT00则停止计数。利用这一特点可以测量外部输入脉冲的宽度。 例:利用定时器计数器T0的门控制位GATE测量INT0引脚上出现的脉冲宽度。 解:应采用T0以定时功能工作,由外部脉冲通过INT0引脚控制计数器的开关,每次开关通过计数器的时钟(机

43、器周期)信号数量是一定的。计数值乘上机器周期就是脉冲宽度。编程时取T0的方式1定时,且置GATE=1、TR0=1。计数初值取00H。当INT0出现高电平时开始计数,INT0为低电平时停止计数,读出T0的值。第76页/共151页77第二章 6.定时/计数器定时功能:C/T = 0,方式1:M1M0=01,门控位:GATE=1得:TMOD= 0000 1001 = 09H 程序:START:MOVTMOD,#09H; 功能与方式MOVTL0,#00H; 初值0MOVTH0,#00HWAIT1:JBP3.2,WAIT1 ; 等待INT0变低SETBTR0 ;变低,启动定时,INT0=0,未启动WAI

44、T2:JNBP3.2,WAIT2 ; 等待INT0变高,WAIT3:JBP3.2,WAIT3 ; 变高,真正定时CLRTR0; 变低,停止定时MOVR0,TL0; 在停止状态读取MOVR1,TH0HERE:SJMPHERE第77页/共151页78第二章 7.串行接口 一、两种通信形式:并行通信的特点:短距离、高速度,传输线多。串行通信的特点:长距离,高速度,传输线少。第78页/共151页79 二、串行通信概述 1.异步通信方式(Asynchronous Data Communication) 以字符为传送单位,用起始位和停止位标识每个字符的开始和结束,字符间隔不固定,只需字符传送时同步。 发送

45、端和接收端不是同一个时钟(异步) 是帧格式传送,帧格式由4部分组成: 起始位 数据位 奇偶校验位 停止位第二章 7.串行接口第79页/共151页80 2、异步通信的特点: 每帧传送一个字符(字节),字符间不一定相连; 系统简单可靠、造价低, 传输速度较低。第二章 7.串行接口第80页/共151页81 3、同步通信方式(Synchronous Data Communication) 同步通信的含义: 以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,发送端和接收端使用同一个时钟,同步发、收。 同步通信的帧格式: 由同步字符和多个(大量)连续的数据构成。 同步通信的特点:

46、通讯双方须严格同步,硬件要求高 传输速度高 短距离传输 系统复杂 造价高第二章 7.串行接口第81页/共151页82 4、波特率 是描述数据传输速率的物理量。 定义为:每秒钟传送的二进制代码的位数。 单位:比特(b/s)例:要求每秒传送120个字符,每帧为10位。解: B=12010=1200波特每位0.83ms有效数据位传输率=1208=960位/秒第二章 7.串行接口第82页/共151页83 5、串行通信的传输方式 单工方式(Simplex) 半双工方式(Half Duplex) 全双工方式(Full-duplex)第二章 7.串行接口第83页/共151页84 三、MCS-51的串行接口

47、MCS-51有一可编程的全双工串行通信接口 可用作 异步串行通信 同步移位寄存器 通信连接 1对1单机通信 1对多多机通信 帧格式有 8位 10位 11位 可设置不同波特率。第二章 7.串行接口第84页/共151页85 1、串行口结构第二章 7.串行接口第85页/共151页86 串行口数据缓冲器SBUF SBUF是一个SFR 内部硬件是两个独立的接收、发送缓冲器SBUF,一个用作发送;一个用作接收。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两者共用一个字节地址(99H)。 可通过指令对SBUF的读写来区别:对接收缓冲器的操作还是对发送缓冲器的操作。 CPU写SBUF,就是修改发送

48、缓冲器: CPU读SBUF,就是读接收缓冲器。第二章 7.串行接口第86页/共151页87 串行口控制寄存器SCON 用来控制串行口的工作方式和状态,字节地址为98H,它可以位寻址。在复位时所有位被清零。第二章 7.串行接口第87页/共151页88 SM0、SM1:串行口工作方式选择位第二章 7.串行接口第88页/共151页89 SM2:多机通信控制位 主要用于工作方式2和工作方式3。 如SM21,则接收到第9位数据 RB8为0时不启动接收中断标志RI(即RI0),并且将接收到的前8位数据丢弃 RB8为1时,才将接收的前8位数据送入SBUF,并置位RI产生中断请求 当SM2=0时,则不论第9位

49、数据为1或为0,都将前8位数据装入SBUF中,并产生中断请求。 在方式0时,SM2必须为0第二章 7.串行接口第89页/共151页90 REN:允许接收控制位 =1:允许串行口接收 =0:禁止接收 TB8:发送的第9位数据 方式2和方式3时用于存放发送数据第9位 可作为奇偶检验位 多机通信特征位(1:是地址;0:是数据) TB8由软件置位或复位第二章 7.串行接口第90页/共151页91 RB8:接收的第9位数据 方式2和方式3时用于存放接收数据第9位 可作为奇偶检验位 在方式1下,若SM2=0,则RB8用于存放接收到的停止位 方式0下,不使用RB8第二章 7.串行接口第91页/共151页92

50、 TI:发送中断标志 用于指示一帧数据是否发送完。 在方式0下,发送电路发送完第8位数据时,TI由硬件置位 在其它方式下,TI在发送电路开始发送停止位时置位, 发送完后由硬件置位,必须由软件复位 CPU查询TI状态,便可知一帧信息是否已发送完毕第二章 7.串行接口第92页/共151页93 RI:接收中断标志 用于指示一帧数据是否接收完。 在方式0下,RI在接收电路接收到第8位数据时由硬件置位 在其它方式下,RI是在接收电路接收到停止位的中间位置时置位 RI供CPU查询,以决定CPU是否需要从SBUF(接收)中提取接收到的字符或数据 必须由软件复位第二章 7.串行接口第93页/共151页94 特

51、殊功能寄存器PCON PCON主要是为CHMOS型单片机的电源控制设置的专用寄存器,字节地址为87H,不能位寻址。 SMOD:波特率选择位 在方式1、方式2和方式3时,串行通信的波特率和SMOD有关。 SMOD=1,通信波特率乘2; SMOD=0,波特率不变。第二章 7.串行接口SMODSMODGF1GF1GF0GF0PDPDIDLIDL D7 D6 D5 D4 D3 D2 D1 D0 第94页/共151页95 2、串行口工作方式 MCS51的串行口有四种工作方式,它是由SCON中的SM1和SM0来决定的。第二章 7.串行接口第95页/共151页96 方式0 为同步移位寄存器方式,常用于扩展I

52、/O口 方式0的特点: 一帧仅有8位数据,无起始和结束位,低位在前。 波特率固定,其值为osc/12。 连接: RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。第二章 7.串行接口第96页/共151页97 工作过程: 发送过程:写入SBUF,启动发送,一帧发送结束,TI=1 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1第二章 7.串行接口第97页/共151页98n例 外接移位寄存器输出( (串行转换为并行) )第二章 7.串行接口第98页/共151页99 方式1 为波特率可变的8位数据位的异步通信接口 特点: 一帧有10位,1位起始位,8位数据位

53、,1位停止位。接收时停止位进入SCON的RB8。 RXD引脚用于接收数据,TXD引脚用于发送数据。可以同时进行收、发。 波特率可变,由T1的溢出率决定。第二章 7.串行接口第99页/共151页100 工作过程 发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。第二章 7.串行接口第100页/共151页101 方式2,3 为9位异步通信接口 特点: 一帧有11位。1位起始, 8位数据位, 1位校验/特征位(接收时该位进入

54、SCON的RB8), 1位停止位。 RXD引脚用于接收数据,TXD引脚用于发送数据,可以同时进行收、发。 方式2波特率固定有两种值: fosc/32或fosc/64 方式3波特率可变,由T1的溢出率决定。 可以进行多机通信第二章 7.串行接口第101页/共151页102 工作过程: 发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且第9位为1 (或SM2=0),将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。第二章 7.串行接口第102页/共151页103 3、串行通信的波特率设置 MC

55、S-51的串行通信的波特率与下列因素有关 工作方式选择(波特率有固定和可变之分) 系统振荡频率fosc (晶振频率) PCON的SMOD位设置 定时器T1的设置第二章 7.串行接口第103页/共151页104 各工作方式下的波特率 方式0的波特率是固定的,为系统时钟的12分频(fosc/12),即每个机器周期传送一位数据位。 串行口用方式2工作时,波特率为(2SMOD/64)fosc 。 即SMOD=0, fosc/64 即SMOD=1, fosc/32 串行口方式1和方式3用定时器T1作为波特率发生器,其波特率有多种选择,与T1的溢出率有关第二章 7.串行接口第104页/共151页105 T

56、1溢出速率的计算 溢出速率定义为: T1溢出速率= T1溢出次数/秒 溢出速率与定时器的工作方式有关。T1在作为波特率发生器时,设置为方式2自动可重装载8位定时器。 T1溢出率与这两个因素有关 fosc T1的定时初始常数N(=TH1) T1定时器计数机器周期(12/fosc)的个数第二章 7.串行接口第105页/共151页106 T1溢出率=1/定时时间t t = (28-初值N)*机器周期 =(28-初值N)12/fosc T1溢出率= fosc / 12 / (28-初值N) 例如:若fosc=6MHz,TH1=N=0F3H T1溢出率38461.5次/秒第二章 7.串行接口第106页/

57、共151页107 波特率的设置 方式1、3的波特率公式为:波特率 =(2SMOD /32 )(T1溢出率) = 应用中,多是先给定波特率,在据此决定定时器初值常数,得 例如,若fosc=6MHz,SMOD=1,波特率=2400计算可得:N = 242.98 243 = 0F3H第二章 7.串行接口)2(123228NfOSCSMOD12322256波特率OSCSMODfN第107页/共151页108 初始化程序:INIT:MOV TMOD, #20H ; T1为方式2定时MOVTH1, #0F3H ; 常数MOVTL1, #0F3H; 初值SETB TR1; 启动T1MOVPCON, #80H

58、; SMOD=1MOVSCON, #50H; 串行口方式1第二章 7.串行接口第108页/共151页109 常用波特率和定时器T1初值关系第二章 7.串行接口波特率(方式1、3)fosc=6Mfosc=12Mfosc = 11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k 12FFH 19.2k 12FDH9.6k 02FDH4.8k 12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01

59、FEEBH01FEFFH第109页/共151页110 SMOD位对波特率的影响 上页的表中定时器T1的时间常数初值和相应波特率之间有一定误差,是近似值。 SMOD的选择对波特率的准确度有影响。 例如:波特率2400,fosc=6MHz SMOD=0时: 常数: 反代入波特率公式:第二章 7.串行接口HFN9249123224001062256608 .2238)92(12106322860HF波特率第110页/共151页111 误差=(2400-2238.8)/2400=7% SMOD=1时: 常数: 反代入波特率公式: 误差=(2403.85-2400)/2400=0.16%第二章 7.串行

60、接口HFN32431232240010622566185.2403)32(12106322861HF波特率第111页/共151页112 结论: SMOD虽然可以任选,但在某些情况下直接影响波特率的误差范围。因此,要适当考虑其设置。 为保证通信可靠,通常相对误差应不大于2.5%,不同机种间通信尤其应注意。第二章 7.串行接口第112页/共151页113 一、中断系统概述 中断系统是为使处理机对外界异步事件具有处理能力而设置的。 (在资源竞争有限的条件下,中断技术是解决资源竞争的可行办法,采用中断方法可以使多项任务共享一个资源,中断技术实质上就是一种资源共享技术。) 例:某人看书电话铃响暂停看书书

温馨提示

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

最新文档

评论

0/150

提交评论