51单片机教程PPT资料_第1页
51单片机教程PPT资料_第2页
51单片机教程PPT资料_第3页
51单片机教程PPT资料_第4页
51单片机教程PPT资料_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

1、江西环境工程职业学院机械与电子分院 张小波时 间:2011年9月51单片机原理及应用第一讲 单片机结构及原理第二讲 中断系统第三讲 定时/计数器第四讲 串口通信第五讲 工具软件介绍、流水灯实验51单片机原理及应用什么是单片机单片机能做什么单片机 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 单片机能做什么工业控制 用于各种物理量的采集与控制。电流、电压、温度、液位、流量等物理参数的采集和控制均可以利用单片机方便地实现。在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产

2、品质量。典型应用如电机转速控制、温度控制、自动生产线等 。智能仪器仪表提高了仪器仪表的使用功能和精度,使仪器仪表智能化,同时还简化了仪器仪表的硬件结构。如各种智能电气测量仪表、智能传感器等。机电一体化产品机电一体化产品是集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。单片机在机电一体化产品的开发中可以发挥巨大的作用。典型产品如机器人、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、复印机等。分布式系统的前端模块 在较复杂的工业系统中,经常要采用分布式测控系统完成大量的分布参数的采集。在这类系统中,采用单片机作为分布式系统的前端采集模块,系统具有运行可

3、靠,数据采集方便灵活,成本低廉等一系列优点。家用电器家用电器是单片机的又一重要应用领域,前景十分广阔。如空调器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具等。1.2 单片机的发展概况1.2.1 单片机的发展过程 单片机技术发展过程可分为三个主要阶段: 单芯片微机形成阶段 1976年,Intel公司推出了MCS-48系列单片机 。8位CPU、1K字节ROM、64字节RAM、27根I/O线和1个8位定时/计数器。 特点是:存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。 性能完善提高阶段 1980年,Intel公司推出了MCS-51系列单片机:8位CPU、4K字节ROM

4、、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。 特点是:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种 。 微控制器化阶段 特点是:片内面向测控系统外围电路增强,使单片机可以方便灵活地用于复杂的自动测控系统及设备。“微控制器”的称谓更能反应单片机的本质。 1982年,Intel推出MCS-96系列单片机。 芯片内集成:16位CPU、8K字节ROM、232字节RAM、5个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K。片上还有8路10位ADC、1路

5、PWM输出及高速I/O部件等。1.2.2 单片机产品近况 ATMEL公司融入Flash存储器技术的AT89系列; Philips公司的80C51、80C552系列; * 深圳宏晶科技有限公司的 STC89C/S系列 ; ADI公司的ADC8xx高精度ADC系列; Maxim公司的DS89C420高速(50MIPS)系列; 80C51系列单片机产品繁多,主流地位已经形成,近年来推出的与80C51兼容的主要产品有:2-1 MCS-51单片机的组成2-2 MCS-51单片机的引脚及其功能2-3 MCS-51单片机的存储器配置2-4 振荡器与时钟电路及CPU时序2-5 并行I/O端口2-6 MCS-5

6、1单片机基本工作系统的组成MCS-51单片机结构原理2-1 MCS-51单片机的组成与结构8位中央处理单元(CPU)128B/256B的数据存储器RAM4KB/8KB的片内ROM/EPROM4个8位并行I/O口P0-P32个定时器/计数器5个中断源1个全双工的UART(通用异步接收、发送器)片内振荡与时钟产生电路1、中央处理单元 CPU(8位)用于数据处理、位操作(位测试、置位、复位)2、只读存储器 ROM(4KB或8KB)用于永久性存储应用程序,掩膜ROM、EPROM、EEPROM3、随机存取存取器 RAM(128B/256B)用于程序运行中存储工作变量和数据用作系统总线、扩展外存、I /

7、O接口芯片4、并行输入/输出口 I/O(32线)5、串行输入/输出口 UART(二线)串行通信、扩展I / O接口芯片6、定时/计数器 T/C(16位增量可编程)它与CPU之间各自独立工作,当它计数满时向CPU中断7、时钟电路分为内部振荡器、外接振荡电路五源中断、两级优先,可编程进行控制8、中断系统P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器 缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7

8、P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARESET8051单片机内部结构图运算器存储器I/O接口控制器中央处理器(CPU) 包含运算器和控制器两部分(1)8位的ALU:(2)8位累加器ACC(A):(3)8位寄存器B:(4)8位程序状态寄存器PSW:(5)布尔处理器:(6)2个8位暂存器:运算器 可对4位(半字节),8位(单字节)和16位(双字节)数据进行操作,数据来自两个暂存器。累加器,它是最繁忙的8位特殊功能寄存器,用A表示,ALU的运算结果存在此处。8位程序状态字寄存器,用于存放指令执行后的状态信息,供程序查询和判别。布尔操作器8位寄存器,在乘除运算时

9、,用来存放另一个操作数,并存放一部分结果。(1)程序计数器(PC)(2)指令寄存器(IR)(3)指令译码器(ID)(4)振荡器及定时与控制电路控制器中央处理器(CPU)控制器 由两个8位的计数器(PCL,PCH)组成,PC存储将要执行的下一条指令的地址,16位可容纳的最大数值为65535,为64KB,因此,MCS-51可寻址64KB的程序存储器。改变PC内的值,就可改变程序执行的方向。16位程序计数器-PC 由PC内容指定的ROM地址单元中取出的指令,经指令寄存器送至指令译码器进行译码,进而CPU产生相应的控制信号,执行指令所规定的操作。指令存储器及指令译码器 MCS-51片内有振荡器OSC,

10、通过单片机的XTAL1,XTAL2连接片外的石英晶体及两个频率微调电容,产生单片机工作所需要的基本时钟节拍。振荡器及定时控制电路 1、电源管脚: Vcc,Vss2、时钟电路管脚: XTAL1,XTAL23、控制信号脚: RST/VPD, ALE/PROG PSEN及Vpp/EA4、I/O管脚 P0,P1,P2,P32-2 MCS-51单片机的引脚及其功能电源管脚 Vcc:电源端,为5V,允许电源有偏差;GND(VSS):地。 注:为了防止电源脉冲对单片机的影响,一般在VCC和GND之间接上一个1uF的电容。时钟电路管脚 XTAL1:芯片内部反相放大器输入端,使用外部振荡器时需接地。XTAL2:

11、 芯片内部反相放大器输出端,使用外部振荡时接振荡器输 入的信号。 XTAL2XTAL1内部振荡方式XTAL2XTAL1外部振荡器外部振荡方式控制线 ALE/PROG ALE: 地址锁存信号端,频率为晶体振荡器的1/6正脉冲信号。当CPU访问片外扩展存储器时,该信号作为锁存低8位地址的控制信号。PROG: 当片内有EPROM时,该管脚提供编程写入时的编程脉冲信号输入端。 控制管脚 RST/VPD RST: 复位信号输入端,高电平有效。保持两个机器周期以上,并变为低电平,单片机开始从0000地址执行,即可完成单片机复位。单片机复位不改变片内RAM的值。VPD: 备用电源。+5VRESET10uF控

12、制管脚 PSEN PSEN: 程序存储器允许输出信号端。在访问片外程序存储器时,CPU控制该端输出负脉冲作为外部存储器的选通信号,允许CPU读出EPROM中被选中单元中的指令码。该管脚一般连程序存储器的选通信号端(OE)。控制管脚 EA/Vpp EA: 外部程序存储器地址允许输入端/固化编程电压输入端。程序存储器允许输出信号端。当EA接高时,前4KB或8KB程序在单片机内,当EA接地时,所有程序均在外存储器。Vpp: 对单片机内程序存储器编程时施加的高电平输入端。2-3 MCS-51单片机的存储器配置计算机存储结构: 哈佛结构:程序存储与数据存储分开单片机 冯.诺依曼结构:程序与数据存储在一起

13、通用计算机单片机的存储器结构(ROMRAM): ROM:常用于存放程序和需要长时间存放的数据,掉电不丢失; RAM:随时可读可写的存储器,掉电后数据立即丢失。00HFFH1、单片机的存储器结构 采用哈佛结构,存在4个物理上相互独立的存储器空间: 片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器0FFFH0000H片内4KROM0000HFFFFH片外64KROM片外64KRAM(I/O)0000HFFFFHSFR片内RAM7FH80H0FFFHEA引脚=0访问片内与片外RAM靠指令区分MOV与MOVXEA引脚=12、单片机的程序存储器 常用单片机的程序存储器容量:型号ROMRAM

14、8031/320128B/256B8051/524KB/8KB128B/256B8751/524KB/8KB EPROM128B/256B89X51/524KB/8KB FLASH128B/256B 随着单片机制造技术的发展,现在内部ROM有64KB,RAM达几KB的都有。在进行单片机应用系统开发时,应注意选择,能不扩展的尽量不扩展。(片内128B不包含SFR区)单片机的程序存储器 单片机的程序存储器的应用:上电复位时,PC=0000;程序存储器有保留单元:入口单元地址预留目的存储单元范围0000H复位后初始化引导程序00H-02H0003H外部中断0服务程序(INT0)03H-0AH000B

15、H定时器/计数器0溢出中断服务程序0BH-12H0013H外部中断1服务程序(INT0)13H-1AH001BH定时器/计数器1溢出中断服务程序1BH-22H0023H串行口中断服务程序23H-2AH002BH定时器/计数器2溢出中断服务程序2BH-3、单片机的数据存储器 单片机的数据存储器最大寻址为64KB,地址为:0000FFFFH片内为128B的数据存储器,片外为64KB,地址有重叠,靠指令区分00H07H08H0FH10H17H18H1FH2FH30H20H7FH用户RAM区位寻址区3组2组1组0组通用工作寄存器R0R7低128B的数据RAM高128B的特殊寄存器区SFR区80HFFH

16、单片机的数据存储器 数据存储器中的堆栈:堆栈用于保护中断时程序的断点地址,以便中断返回时程序的继续执行;堆栈的特点是先进后出,后进先出;堆栈的指令是:PUSH(压入)和POP(弹出)堆栈寄存器叫SP,其内部的数值叫栈底,初始值为07H,一般应进行设置到50H或60H。MOV SP,#60HPUSH A.PUSH B07H60H61H7FH07HSP60HSPA61HSPB单片机的数据存储器低128B的分区:工作寄存器区,R0-R7,共四组,由PSW中的RS1,RS0决定;位寻址区20H-2FH,位地址为:00H-7FH;一般数据存储区;堆栈区(由用户进行设置,初始值为07H)高128B的分区:

17、特殊功能寄存器(SFR): ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON可位寻址(11个) SP,DPTR,TMOD,TH0,TL0,TH1,TL1,SBUF,PCON不可位寻址(共9个) 特殊功能寄存器(SFR)的初始值除P0,P1,P2,P3为FFH,SP为07外,其余均为00H。单片机的特殊功能寄存器(SFR) D7D6D5D4D3D2D1D0CYACF0RS1RS0OV/PPSWPSW(Program State Word)程序状态字;CY进位位标志位或借位位标志位;AC半字节进位位标志位或半字节借位标志位; F0用户标志位;RS1,RS0工作寄存器组选择

18、位,00-0区,01-1区,10-2区,11-3区;OV溢出标志位,当进行补码运算时,如有溢出,超出-128127范围时置位; /未定位位,在52中为F1,用户标志位; P奇偶标志位,每条指令执行完后,跟踪指示A内的1 的个数,如为奇数, 则P=1,否则为0,常用于校验串行通信中的数据传送是否出错。2-4 振荡器与时钟电路及CPU时序1. 振荡器与时钟电路:单片机内部的增益反向放大器通过XTAL1、XTAL2两个引脚外接的反馈石英晶体元件构成自激振荡器。时钟发生器把振荡器的信号进行二分频,向CPU提供了两相时钟脉冲信号P1和P2。时钟信号的周期称为S,它是振荡周期的2倍,在每个时钟周期S的前半

19、周期,P1有效,后半周期,P2有效。2-4 振荡器与时钟电路及CPU时序(续)2. 机器周期和指令周期:单片机的一个机器周期由6个S状态周期组成,即S1-S6,每个状态又持续两个振荡周期,即P1和P2两拍,故一个机器周期包含12个振荡周期,即S1P1,S1P2,S2, P1,S2P2,S6P1,S6P2共12个状态拍。若采用12MHz晶振,则每个机器周期为1us。单片机的指令长度分为1B、2B和3B三种,按CPU执行每条指令的时间分为单周期指令、双周期指令和四周期指令三种。每一条指令的执行包括取指、执指两个阶段。在每个机器周期内ALE两次有效,第一次出现在S1P2和S2P1之期间,第二次出现在

20、S4P2和S5P1期间。2-4 振荡器与时钟电路及CPU时序(续)3. 取指、执指的时序:2-5 并行输入/输出端口8051单片机有四个8位的I/O端口,分别称为P0,P1,P2,P3,每个端口均为准双向口,共占32只引脚,每个端口可作为8位的总线使用,也可作为单独的I/O应用。每个端口都包含一个锁存器(即特殊寄存器P0-P3),一个输出驱动器和输入缓冲器。作输出线时数据可以锁存,作输入时可以缓冲。当有外部扩展的存储器时,P0作为地址的低8位,P2作为高8位组成16位地址总线,而P0复用为8位的数据总线。P0P2P3P12-5 并行输入/输出端口1、P0口 无外扩存储器时,P0可作为I/O应用

21、。CPU执行传送或改写位内容的指令时,硬件使C=0,开关MUX处于图示位置,P0作为通用I/O口。此时,T1处于截止状态,输出极变为漏极开路,此时需加上拉电阻。VCCP0口结构 (1)P0用作输出口时,当CPU执行输出指令时,写脉冲加在D锁存器的CP上,输出数据经过锁存器的D端,反相输出在Q非,然后加到T2上,到数据为1是,T2导通,P0.i输出为0,当数据为0时,T2截止,P0.i的数据经上拉电阻拉高,为1。VCC 特殊的单片机“读运算(修改)写”输出指令,其执行过程为先读出锁存器的数据,然后运算再锁存到锁存器,然后输出到引脚,读锁存器中的数据时,Q端数据经过控制开通的三态缓冲器1送入内部数

22、据总线。P0口结构 (2)P0用作输入口时,读引脚的指令将三态缓冲器2打开,端口引脚上的数据经上图蓝色的线输入内部数据总线。 在读引脚时,由于T2并接在引脚上,如果T2导通它会把引脚上的高电平拉成低电平,从而产生误读。因此,在读端口之前,应先向端口锁存器写“1”,从而是Q非为“0”,使T2截止。VCCP0口结构 P0口用作数据/地址总线使用时,芯片外部有锁存器: (1)P0口先送出低8位地址再送出数据 此时C=1,MUX打到上方,地址/数据位驱动T1,其反相驱动T2,当地址/数据位为“1”时,T1导通,T2截止,P0.i输出为“1”;当地址/数据位为“0”时,T1截止,T2导通,P0.i为“0

23、”。 (2)P0口先送出低8位地址再输入数据 送出地址与上相同,但读入数据时,打开缓冲器2,引脚数据经缓冲器2进入内部数据总线。VCCP1口结构 P1口为准双向口,用作通用I/O口(开关量输入/输出),输出驱动有上拉电阻(实质为由两个场效应管构成的),其余与P0作为I/O口相同。P2口结构 P2口可作为地址高8位,也可作为通用I/O口。 (1)作为高8位地址总线:MUX打向上方,使地址与反相器3连接,由P2.X输出地址信息;(2)作为通用I/O口时:MUX打向下方,输入/输出与P0口相同。 P3口结构 (1)P3口作为通用I/O口:当CPU执行对P3口的I/O操作时,W被置1,P3口变为通用I

24、/O口,与P0、P1、P2作为I/O时的工作原理一致。P3口除了具有准双向I/O口以外,各引脚还具有另外一项功能,即第二功能。P3口结构P3口的第二功能:口 线第二功能P3.0RXD(串行口通信数据输入线)P3.1TXD(串行口通信数据输出线)P3.2INT0(外部中断0信号输入)P3.3INT1(外部中断1信号输入)P3.4T0(计数器0的外部信号输入端)P3.5T1(计数器1的外部信号输入端)P3.6WR(CPU至片外数据存储器的“写选通控制”输出)P3.7RD(CPU至片外数据存储器的读写选通控制”输出) (2)P3口用作第二功能时,锁存器的输出Q由硬件设置为1。 P3口输出时,数据由W

25、线经反相器3输出; P3口输入时,经同相器4输入至第二功能线。端口的负载能力和接口要求 P0口:可驱动8个LS型TTL负载; P1-P3:可驱动4个TTL型负载; ALE端:可驱动8个LS型TTL负载; PSEN:可驱动8个LS型TTL负载。2、端口接口要求1、端口的驱动能力 作为输入口时,任何TTL或NMOS电路都能以正常的方式驱动8051单片机(HMOS)的P1-P3口,由于其输出级具有上拉电阻,故可被OC门的电路所驱动,无需上拉电阻; 注意:由于单片机的端口只提供几毫安的输出电流,因而,当输出口去驱动一个普通晶体管的基极(或TTL电路输入端)时,应在端口与晶体管的基极之间串联一个电阻,以

26、限制高电平输出时的电流。2-6 单片机的基本工作系统组成洗衣机控制电路板2-6 单片机的基本工作系统组成复读机控制电路板2-6 单片机的基本工作系统组成排队机控制电路板第二讲 80C51的中断系统 一、80C51的中断系统结构 中断的概念 看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断的概念:IE0TF0IE1TF1TIRI中断请求标志EX0ET0EX1ET1ES1PX0PT0PX1PT1PS高级低级MCS-51单片机的中断系统内部查询内部查询入口地址入口地址INT0I

27、NT1T0T1TXRX中断允许控制中断优先级EA中断源1.中断源 共有五个中断源,分别是外部中断两个、定时中断两个和串行中断一个,它们是:外部中断0-INT0,由P3.2提供,外部中断1INT1,由P3.3提供,外部中断有两种信号方式,即电平方式和脉冲方式。(IT0、IT1)T0溢出中断; 由片内定时/计数器0提供T1溢出中断; 由片内定时/计数器1提供串行口中断RI/TI; 由片内串行口提供二、中断源2、中断源入口地址具体入口如下:中断源 入口地址INT0 0003T0 000BHINT1 0013HT1 001BHRI/TI 0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序

28、,这是因为给每个中断源安排的空间只有8个单元。 三、 中断控制的寄存器 与中断控制有关的控制寄存器有四个:TCON-定时控制寄存器, IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。 定时控制寄存器TCON D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择0 低电平1 下降沿串行口控制寄存器SCON D7D6D5D4D3D2D1D0TIRI串行中断请求标志中断允许控制寄存器IE D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0中断优先级控制寄存器(IP) D7D6D5D4D3D2D1D0

29、PSPT1PX1PT0PX00 禁止,1允许0 低级别,1高级别同一优先级的优先权排队如下表:IP=09H=0000 1001PT1、PX0高INT0、T1、T0、INT1、串行口IP=55H=0101 0101PS、PX1、PX0 同级别,都为1PT0、PT1 同级别,都为0处理顺序为 PX0 PX1 PS PT0 PT1 INT0 INT1 RX / TX T0 T1例:D7D6D5D4D3D2D1D0PSPT1PX1PT0PX01、中断请求标志 IT0,外中断0触发方式控制位。 =0,电平触发方式。 =1,边沿触发方式(下降沿有效)。 IE0,外中断0中断请求标志位。 TF0,T0溢出中

30、断请求标志位。 IT1 、IE1、 TF1类同 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON (88H) TCON的中断标志 2、SCON的中断标志 RI,接收中断标志位。 TI,发送中断标志位。 TI RISCON (98H)注意:RI和TI由硬件置位、由软件清除。 3、中断允许控制 EX0,外中断0允许位;ET0,T0中断允许位; EX1,外中断0允许位;ET1,T1中断允许位;ES ,串口中断允许位;EA , CPU中断允许(总允许)位。 EA ES ET1 EX1 ET0 EX0 IE (A8H) 4、中断优先级控制 PX0,外中断0优先级设定位;PT0,T0

31、优先级设定位;PX1,外中断0优先级设定位;PT1,T1优先级设定位;PS ,串口优先级设定位。 PS PT1 PX1 PT0 PX0 IP (B8H)中断优先级三条原则: 同时收到几个中断时,响应优先级别最高的 中断过程不能被同级、低优先级所中断 低优先级中断服务,能被高优先级中断有2个优先级状态触发器: 高优先级状态触发器 低优先级状态触发器 中断响应条件 有中断请求; 对应中断允许位为1,开中断(即EA=1)同时满足时,才可能响应中断。一、中断响应条件和时间 80C51单片机中断处理过程 硬件受阻,不产生LCALL的几种情况: 正在处理同级或高优先级中断; 当前查询的机器周期不是所执行指

32、令的最后一个机器周期。 正执行的指令为RET、RETI或任何访问IE或IP的指令(只有在这些指令后面至少再执行一条指令时才能接受中断请求)。 受阻未得到响应的中断,若条件消失时该中断标志已不再有效,该中断将不被响应。 相应优先级状态触发器置1 执行硬件LCALL指令 把PC的内容入栈 相应中断服务程序的入口送PC 执行中断服务程序。二、 中断响应过程 中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。 三、中断程序举例 例1:单外中断源P1口外部中断信号INT0数据80C51char Data;void main() EA=1;EX0=1;while(1)

33、 - - - 主程序: void IRQ () interrupt 0 Data =P1; 中断服务程序: 第三讲 80C51的定时/计数器实现定时常用的三种方法:软件定时:占用CPU时间,效率低。用555电路:不可编程。可编程芯片:功能强,需要另外扩展。 单片机内部有2个16位的定时/计数器:使用灵活,编程方便。1、定时/计数器的结构和工作原理 加1计数器(高8位、低8位) TMOD,工作方式设置; TCON,启动、停止及设置溢出标志。 一、定时/计数器的结构 2、定时/计数器的工作原理计数器脉冲来源:振荡器脉冲经过12分频T0或T1引脚的外部脉冲计数功能-计数脉冲来自相应的外部输入引脚,T

34、0为P3.4,T1为P3.5。定时功能-计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。TMOD中,各有一个控制位(CT),分别用于控制定时/计数器T0和T1工作在定时器方式还是计数器方式。 定时模式,对内部机器周期计数 定时时间 t 计数值N x Tcy 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy 计数值:溢出时计数器值计数初值。 计数器全1时,再输入1个脉冲就回零,并发生 溢出(TCON中TF0或TF1置1), 发中断请求。二、定时器计数器的控制寄存器 与定时器计数器有关的控制寄存器有:定时器控制寄存器TCOND7D6D5D4D

35、3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0 低电平1 下降沿0 停止1 启动工作方式控制寄存器TMOD T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE门控位C/T计数/定时选择M1 M0工作方式选择计数脉冲输入三、定时器计数器的工作方式 1. 方式013位方式。由TL0的低5位和TH0的8位组成。TH0溢出时,置位TF0标志,向CPU发出中断请求。TF0T0TR0GATEINT011&C/T=1振荡器1/12C/T=0TL0 TH08位低5位13位计数器定时器计数器定时= (21

36、3 X)*12*1/fosc 8*10-3=(213-x)*12*1/(12*106)X = 213 8000 =192 =0 xC0计数初值:X213N2. 方式116位方式 振荡器1/12TL0 TH0TF011&T0TR0/TR1GATEINT0C/T=0C/T=18位8位16位计数器16位计数,由TL0作为低8位、TH0作为高8位 。16位计数,由TL1作为低8位、TH1作为高8位初值:X216N定时= (216 X)*12*1/fosc1*10-3=(216-X)*12*1/(6*106)1000=(65536-X)*2X=65036 FE0CH 3. 方式28位自动装入时间常数方式

37、 TF0振荡器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH0自动重装初值的8位计数方式 ,适合于用作较精确的脉冲信号发生器。初值:X28N4. 方式32个8位方式 仅T0可以工作在方式3,T1处于方式3时停止计数。此时T0分成2个独立的计数器TL0和TH0 ,前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。 (1) TH0由TR1启动/停止,溢出TF1(2)TL0由TR0启动/停止,溢出TF0(3)TH0只能定时,TL0可以定时/计数,且都是8位定时T=(28)*12foscTL0计数初值28 设计数器最大计数值为M,选择不同

38、的工作方式最大计数值不同。12MHZ方式0:M=213=8192 , 8.192ms方式1:M=216=65536, 65.536ms方式2:M=28=256, 256us方式3:M=28=256, 256us四、应用举例计算计数器的计数初值: 编程时将计数初值送THi、 TLi; 可编程器件在使用前需要进行初始化:确定TMOD控制字:编程时将控制字送TMOD; 开中断(如果使用中断方式): 编程实置位EA、ETi TRi位置位控制定时器的启动和停止。 【例】若单片机晶振为12MHz,要求产生500s的定时,试计算X的初值。解:采用方式0:500*10-6=(213-X)*12*1/foscx

39、=7692=1E0CH=1 1110 000 0 1100 F0H 0CH即将F0H装入TH0,0CH装入TL0。TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 0 0 0 0 00 00H 采用方式1:500*10-6=(216-X )*12*1/foscx=65036=FE0CH即将FEH装入TH1,0CH装入TL1。TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 01 0 0 0 0 10Hmain()函数中:TMOD=0 x01;/设置定时器0为工作方式1TH0=0 xFE; /定时器0高8位给初值TL0=0 xC0; /定时器0低8

40、位给初值EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /启动定时器0程序编写中断服务程序中重新装入定时初值void timer0() interrupt 1 TH0=0 xFE; /定时器0高8位给初值TL0=0 xC0; /定时器0低8位给初值 51单片机的串口通信 51单片机的串行接口 一、 串行通信的基本概念 并行 和 串行 并行通信的优点是速度快,效率高,确点是不适合远距离通信。串行通信刚好相反。单工:信息只能沿着一个方向传播半双工:信息沿一条线双向传播,不能同时实 现双向传播。全双工:使用两条独立的数据通道,收发可同时进行。单工、半双工 和 全双工 同步方式和异步

41、方式 (1) 同步方式是将一大批数据分成几个数据块, 数据块之间用同步字符予以隔开, 而传输的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。 (2)异步通信是按帧传送数据, 它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。 同步方式和异步方式二、 与串行口有关的特殊功能寄存器 1. 数据缓冲器SBUF 串行口缓冲器SBUF是可直接寻址的特殊功能寄存器, 其内部RAM字节地址是99H。在物理上

42、, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是CPU写 SBUF的时候; 接收时, 就是读取SBUF的过程, 接收寄存器是双缓冲的, 以避免在接收下一帧数据之前, CPU未能及时响应接收器的中断, 没有把上一帧数据读走, 而产生两帧数据重叠的问题。 2. 串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态, 其各位定义如图 5.3 所示。相应的各位功能介绍如下: SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式,见表6.2。其中fOSC是振荡器频率, UART为通用异步接收和发送器的英文缩写。 SM2: 多机通信时的接收允

43、许标志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位数据(RB8)是 0, 则接收中断标志(RI)不会被激活。在模式1中, 若SM2=1 且没有接收到有效的停止位, 则 RI不会被激活。 在模式 0 中, SM2 必须是 0。 SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI 特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。 PCON的地址为 87H, 不可位寻址, 因此初始化时需要字节传送。 SCOND7D6D5D4D3D2

44、D1D0SMOD0-GF1GF0PDIDL 3. 电源控制寄存器PCON串行口操作模式选择 SM0 SM1 模式 功 能 波特率 0 00 11 01 10101同步移位寄存器 8位UART 9位UART 9位UART fOSC/12 可变(T1溢出率) fOSC/64 或fOSC/32 可变(T1溢出率) 三、 串行口的 4 种工作模式 模式 0 同步移位寄存器输入输出模式,可外接移位寄存器,以扩展I/O口。 2. 模式 1 串行口工作于模式 1 时, 为波特率可变的 8 位异步通信接口。数据位由 P3.0 (RXD)端接收, 由P3.1(TXD)端发送。 传送一帧信息为 10 位: 一位起

45、始位(0), 8 位数据位(低位在前)和一位停止位(1)。波特率是可变的, 它取决于定时器 T1 的溢出速率及SMOD的状态。 模式 1 发送过程。 用软件清除 TI后, CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由 TXD引脚输出, 此时的发送移位脉冲是由定时器 /计数器 T1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志TI=1, 向CPU申请中断, 完成一次发送过程。 (2) 模式 1 接收过程。 用软件清除 RI后, 当允许接收位 REN被置位 1 时, 接收器以选定波特率的 16 倍的速率采样 RXD引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 7、 8、9 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件: RI=0; 接收到的停止位为 1 或 SM2=0。 则停止位送入RB8

温馨提示

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

评论

0/150

提交评论