51单片机原理及应用

上传人:鲁** 文档编号:570232314 上传时间:2024-08-02 格式:PPT 页数:122 大小:5.70MB
返回 下载 相关 举报
51单片机原理及应用_第1页
第1页 / 共122页
51单片机原理及应用_第2页
第2页 / 共122页
51单片机原理及应用_第3页
第3页 / 共122页
51单片机原理及应用_第4页
第4页 / 共122页
51单片机原理及应用_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《51单片机原理及应用》由会员分享,可在线阅读,更多相关《51单片机原理及应用(122页珍藏版)》请在金锄头文库上搜索。

1、51单片机原理及应用单片机原理及应用n第一讲第一讲 单片机结构及原理单片机结构及原理n第二讲第二讲 中断系统中断系统n第三讲第三讲 定时定时/计数器计数器n第四讲第四讲 串口通信串口通信n第五讲第五讲 工具软件介绍、流水灯实验工具软件介绍、流水灯实验51单片机原理及应用单片机原理及应用n n什么是单片机什么是单片机n n单片机能做什么单片机能做什么什么是单片机什么是单片机单板机单板机 将将CPU芯片、芯片、存储器存储器芯片、芯片、I/O接口接口芯片和芯片和简单的简单的I/O设备设备(小键盘、(小键盘、LED显示器)等装显示器)等装配在一块印刷电路板上,再配上配在一块印刷电路板上,再配上监控程序

2、监控程序(固(固化在化在ROM中),就构成了一台单板微型计算中),就构成了一台单板微型计算机(简称单板机)。机(简称单板机)。单单板机板机板机板机单单板板机机的的I/O设设备备简简单单,软软件件资资源源少少,使使用用不不方方便便。主主要要用用于于早早期期微微型型计计算算机机原原理的教学及简单的测控系统。理的教学及简单的测控系统。单板机板机单片机单片机单片机单片机 在一片集成电路芯片上集成微处理器、存在一片集成电路芯片上集成微处理器、存储器、储器、I/O接口电路,从而构成了接口电路,从而构成了单芯片微单芯片微型计算机,即单片机型计算机,即单片机。 单片机能做什么单片机能做什么n n工工工工业业控

3、制控制控制控制 用于各种物理量的采集与控制。电流、电压、温度、液位、流量用于各种物理量的采集与控制。电流、电压、温度、液位、流量用于各种物理量的采集与控制。电流、电压、温度、液位、流量用于各种物理量的采集与控制。电流、电压、温度、液位、流量等物理参数的采集和控制均可以利用单片机方便地实现。在这类等物理参数的采集和控制均可以利用单片机方便地实现。在这类等物理参数的采集和控制均可以利用单片机方便地实现。在这类等物理参数的采集和控制均可以利用单片机方便地实现。在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同系统中,利用单片机作为系统控制器,可以根据被控对象的不同系统中,利用单片机作为系

4、统控制器,可以根据被控对象的不同系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征采用不同的智能算法,实现期望的控制指标,从而提高生产特征采用不同的智能算法,实现期望的控制指标,从而提高生产特征采用不同的智能算法,实现期望的控制指标,从而提高生产特征采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产品质量。典型应用如效率和产品质量。典型应用如效率和产品质量。典型应用如效率和产品质量。典型应用如电电机机机机转转速控制、温度控制、自速控制、温度控制、自速控制、温度控制、自速控制、温度控制、自动动生生生生产线产线等等等等 。n n智能智能智能智能仪仪器器器器仪仪表表表表提高了提高

5、了提高了提高了仪仪器器器器仪仪表的使用功能和精度,使表的使用功能和精度,使表的使用功能和精度,使表的使用功能和精度,使仪仪器器器器仪仪表智能化,同表智能化,同表智能化,同表智能化,同时还简时还简化了化了化了化了仪仪器器器器仪仪表的硬件表的硬件表的硬件表的硬件结结构。如各种构。如各种构。如各种构。如各种智能智能智能智能电电气气气气测测量量量量仪仪表、智表、智表、智表、智能能能能传传感器感器感器感器等。等。等。等。n n机机机机电电一体化一体化一体化一体化产产品品品品机电一体化产品是集机械技术、微电子技术、自动化技术和计算机电一体化产品是集机械技术、微电子技术、自动化技术和计算机电一体化产品是集机

6、械技术、微电子技术、自动化技术和计算机电一体化产品是集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。单片机在机电机技术于一体,具有智能化特征的各种机电产品。单片机在机电机技术于一体,具有智能化特征的各种机电产品。单片机在机电机技术于一体,具有智能化特征的各种机电产品。单片机在机电一体化产品的开发中可以发挥巨大的作用。典型产品如一体化产品的开发中可以发挥巨大的作用。典型产品如一体化产品的开发中可以发挥巨大的作用。典型产品如一体化产品的开发中可以发挥巨大的作用。典型产品如机器人、机器人、机器人、机器人、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、数控

7、机床、自动包装机、点钞机、医疗设备、打印机、传真机、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、复印机复印机复印机复印机等。等。等。等。n n分布式系统的前端模块分布式系统的前端模块分布式系统的前端模块分布式系统的前端模块 在较复杂的工业系统中,经常要采用分布式测控系统完成大量的在较复杂的工业系统中,经常要采用分布式测控系统完成大量的在较复杂的工业系统中,经常要采用分布式测控系统完成大量的在较复杂的工业系统中,经常要采用分布式测控系统完成大量的分布参数的采集。在这类系统中,采用单片机作为分布式系统的分布参数的采集。在这类系统中

8、,采用单片机作为分布式系统的分布参数的采集。在这类系统中,采用单片机作为分布式系统的分布参数的采集。在这类系统中,采用单片机作为分布式系统的前端采集模块,系统具有前端采集模块,系统具有前端采集模块,系统具有前端采集模块,系统具有运行可靠,数据采集方便灵活,成本低运行可靠,数据采集方便灵活,成本低运行可靠,数据采集方便灵活,成本低运行可靠,数据采集方便灵活,成本低廉廉廉廉等一系列优点。等一系列优点。等一系列优点。等一系列优点。n n家用电器家用电器家用电器家用电器家用电器是单片机的又一重要应用领域,前景十分广阔。如家用电器是单片机的又一重要应用领域,前景十分广阔。如家用电器是单片机的又一重要应用

9、领域,前景十分广阔。如家用电器是单片机的又一重要应用领域,前景十分广阔。如空调空调空调空调器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具等。等。等。等。1.1 电子计算机的发展概述n n1.1.1 1.1.1 1.1.1 1.1.1 电电子子子子计计算机的算机的算机的算机的问问世及其世及其世及其世及其经经典典典典结结构构构构1946年年2月月15日日,第一台电子数字第一台电子数字计算机问世,这计算机问世,这标志着计算机时标志着计算机时代的到来

10、。代的到来。(CALCULATOR)ENIAC(“埃尼阿克埃尼阿克”)与现代的计算机相比,有许多不足,但与现代的计算机相比,有许多不足,但它它的问世开创了计算机科学技术的新纪元,的问世开创了计算机科学技术的新纪元,对对人类的生产和生活方式产生了巨大的影响人类的生产和生活方式产生了巨大的影响 。ENIAC是电子管计算机,时钟频率仅有是电子管计算机,时钟频率仅有100 KHz,但能在,但能在1秒钟的时间内完成秒钟的时间内完成5000次加法次加法运算。运算。 匈匈匈匈牙牙牙牙利利利利籍籍籍籍数数数数学学学学家家家家冯冯冯冯 诺诺诺诺依依依依曼曼曼曼在在在在方方方方案案案案的的的的设设设设计计计计上上

11、上上做做做做出出出出了了了了重重重重要要要要的的的的贡贡贡贡献献献献。19461946年年年年6 6月月月月,他他他他又又又又提提提提出出出出了了了了“ “程程程程序序序序存存存存储储储储” ”和和和和“ “二二二二进进进进制制制制运运运运算算算算” ”的的的的思思思思想想想想,进进进进一一一一步步步步构构构构建建建建了了了了计计计计算算算算机机机机由由由由运运运运算算算算器器器器、控控控控制制制制器器器器、存存存存储储储储器器器器、输输输输入入入入设设设设备备备备和和和和输出设备组成输出设备组成输出设备组成输出设备组成这一计算机的经典结构。这一计算机的经典结构。这一计算机的经典结构。这一计算

12、机的经典结构。(EDVACEDVAC-ELECTRONIC DISCRETE VARIABLE AUTOMATIC -ELECTRONIC DISCRETE VARIABLE AUTOMATIC COMPUTERCOMPUTER)电电电电子子子子技技技技术术术术的的的的发发发发展展展展,相相相相继继继继经经经经历了五个时代:历了五个时代:历了五个时代:历了五个时代:电子管;电子管;晶体管;晶体管;集成电路;集成电路;大规模集成电路;大规模集成电路;超大规模集成电路。超大规模集成电路。1.2 单片机的发展概况1.2.1 1.2.1 单片机的片机的发展展过程程 单片机技片机技术发展展过程可分程可分

13、为三个主要三个主要阶段:段: 单芯片微机形成芯片微机形成阶段段 1976年,年,Intel公司推出了公司推出了MCS-48系列系列单片机片机 。8位位CPU、1K字字节ROM、64字字节RAM、27根根I/O线和和1个个8位定位定时/计数器数器。 特点是特点是:存:存储器容量器容量较小,小,寻址范址范围小(不小(不大于大于4K),无串行接口,指令系),无串行接口,指令系统功能不功能不强强。 性能完善提高阶段性能完善提高阶段 1980年,年,Intel公司推出了公司推出了MCS-51系列系列单片机:单片机:8位位CPU、4K字节字节ROM、128字节字节RAM、4个个8位并口、位并口、1个全双工

14、串行口、个全双工串行口、2个个16位定时位定时/计数器。寻址范围计数器。寻址范围64K,并有,并有控制功能较强的布尔处理器。控制功能较强的布尔处理器。 特点是特点是:结构体系完善,性能已大大提高,:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种已成为公认的单片机经典机种 。 微控制器化阶段微控制器化阶段 特点是特点是:片内面向测控系统外围电路增强,:片内面向测控系统外围电路增强,使单片机可以方便灵活地用于复杂的自动测控使单片机可以方便灵活地用于复杂的自动测控系统及设备。系统及设备。“微控制器微控制器”的称谓更

15、能反应单片机的本质的称谓更能反应单片机的本质。 1982年,年,Intel推出推出MCS-96系列单片机。系列单片机。 芯片内集成:芯片内集成:16位位CPU、8K字节字节ROM、232字节字节RAM、5个个8位并口、位并口、1个全双工串行个全双工串行口、口、2个个16位定时位定时/计数器。寻址范围计数器。寻址范围64K。片。片上还有上还有8路路10位位ADC、1路路PWM输出及高速输出及高速I/O部件等。部件等。1.2.2 1.2.2 单片机片机产品近况品近况 ATMELATMELATMELATMEL公司融入公司融入公司融入公司融入FlashFlashFlashFlash存存存存储储器技器技

16、器技器技术术的的的的AT89AT89AT89AT89系列;系列;系列;系列; PhilipsPhilipsPhilipsPhilips公司的公司的公司的公司的80C5180C5180C5180C51、80C55280C55280C55280C552系列;系列;系列;系列; * * * * 深圳宏晶科技有限公司的深圳宏晶科技有限公司的深圳宏晶科技有限公司的深圳宏晶科技有限公司的 STC89C/SSTC89C/SSTC89C/SSTC89C/S系列系列系列系列 ; ADIADIADIADI公司的公司的公司的公司的ADC8xxADC8xxADC8xxADC8xx高精度高精度高精度高精度ADCADCA

17、DCADC系列;系列;系列;系列; MaximMaximMaximMaxim公司的公司的公司的公司的DS89C420DS89C420DS89C420DS89C420高速(高速(高速(高速(50MIPS50MIPS50MIPS50MIPS)系列;系列;系列;系列; 80C5180C51系列系列单片机片机产品繁多,品繁多,主流地位已主流地位已经形成,形成,近年来推出的近年来推出的与与80C5180C51兼容兼容的主要的主要产品有:品有:2-1 MCS-51单片机的组成单片机的组成2-2 MCS-51单片机的引脚及其功能单片机的引脚及其功能2-3 MCS-51单片机的存储器配置单片机的存储器配置2-

18、4 振荡器与时钟电路及振荡器与时钟电路及CPU时序时序2-5 并行并行I/O端口端口2-6 MCS-51单片机基本工作系统的组成单片机基本工作系统的组成MCS-51MCS-51单片机结构原理单片机结构原理2-1 MCS-512-1 MCS-51单片机的组成与结构单片机的组成与结构l8 8位中央处理单元位中央处理单元(CPU)(CPU)l128B/256B128B/256B的数据存储器的数据存储器RAMRAMl4KB/8KB4KB/8KB的片内的片内ROM/EPROMROM/EPROMl4 4个个8 8位并行位并行I/OI/O口口P0-P3P0-P3l2 2个定时器个定时器/ /计数器计数器l5

19、 5个中断源个中断源l1 1个全双工的个全双工的UARTUART(通用异步(通用异步接收、发送器)接收、发送器)l片内振荡与时钟产生电路片内振荡与时钟产生电路1 1、中央处理单元中央处理单元 CPUCPU(8 8位)位)用于数据处理、位操作(位测试、置位、复位)用于数据处理、位操作(位测试、置位、复位)2 2、只读存储器只读存储器 ROMROM(4KB4KB或或8KB8KB)用于永久性存储应用程序,掩膜用于永久性存储应用程序,掩膜ROM、EPROM、EEPROM3 3、随机存取存取器随机存取存取器 RAMRAM(128B/256B128B/256B)用于程序运行中存储工作变量和数据用于程序运行

20、中存储工作变量和数据用作系统总线、扩展外存、用作系统总线、扩展外存、I / OI / O接口芯片接口芯片4、并行输入并行输入/ /输出口输出口 I/OI/O(3232线)线)5 5、串行输入串行输入/ /输出口输出口 UARTUART(二线)(二线)串行通信、扩展串行通信、扩展I / OI / O接口芯片接口芯片6 6、定时定时/ /计数器计数器 T/C(16T/C(16位增量可编程)位增量可编程)它与它与CPUCPU之间各自独立工作,当它计数满时向之间各自独立工作,当它计数满时向CPUCPU中断中断7 7、时钟电路时钟电路分为内部振荡器、外接振荡电路分为内部振荡器、外接振荡电路五源中断、两级

21、优先,可编程进行控制五源中断、两级优先,可编程进行控制8 8、中断系统中断系统ALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARESET8051805180518051单片机单片机单片机单片机内部结构图内部结构图内部结构图内部结构图运算器运算器存储器存储器I/O接口接口控制器控制器中央处理器中央处理器(CPU)(CPU) 包含包含运算器运算器和和控制器控制器两部分两部分(1 1 1 1)8 8 8 8位的位的位的位的ALUALUALUALU:(2 2)8 8位累加器位累加器ACCACC(A A):):(3 3)8位寄存器位寄

22、存器B:(4 4)8 8位程序状态寄存器位程序状态寄存器PSWPSW:(5 5)布尔处理器:)布尔处理器:(6 6)2 2个个8 8位暂存器:位暂存器:运算器 可对可对4 4位(半字节),位(半字节),8 8位(单字节)和位(单字节)和1616位位(双字节)数据进行操作,(双字节)数据进行操作,数据来自两个暂存器。数据来自两个暂存器。累加器,它是最繁忙的累加器,它是最繁忙的8 8位特殊功能寄存器,用位特殊功能寄存器,用A A表示,表示,ALUALU的运算结果存的运算结果存在此处。在此处。8 8位程序状态字寄存器,位程序状态字寄存器,用于存放指令执行后的状用于存放指令执行后的状态信息,供程序查询

23、和判态信息,供程序查询和判别。别。布尔操作器布尔操作器8 8位寄存器,在乘除运算位寄存器,在乘除运算时,用来存放另一个操作时,用来存放另一个操作数,并存放一部分结果。数,并存放一部分结果。(1 1 1 1)程序计数器)程序计数器)程序计数器)程序计数器(PC)(PC)(PC)(PC)(2 2)指令寄存器)指令寄存器(IR)(IR)(3 3)指令译码器)指令译码器(ID)(ID)(4 4)振荡器及定时与控制电路)振荡器及定时与控制电路控制器中央处理器中央处理器(CPU)(CPU)控制器控制器 由由两两个个8位位的的计计数数器器(PCL,PCH)组组成成,PC存存储储将将要要执执行行的的下下一一条

24、条指指令令的的地地址址,16位位可可容容纳纳的的最最大大数数值值为为65535,为为64KB,因因此此,MCS-51可可寻寻址址64KB的的程程序序存存储储器。改变器。改变PC内的值,就可改变程序执行的方向。内的值,就可改变程序执行的方向。1616位程序计数器位程序计数器-PC-PC 由由PC内内容容指指定定的的ROM地地址址单单元元中中取取出出的的指指令令,经经指指令令寄寄存存器器送送至至指指令令译译码码器器进进行行译译码码,进进而而CPU产产生生相相应应的控制信号,执行指令所规定的操作。的控制信号,执行指令所规定的操作。指令存储器及指令译码器指令存储器及指令译码器 MCS-51片片 内内

25、有有 振振 荡荡 器器 OSC, 通通 过过 单单 片片 机机 的的XTAL1,XTAL2连连接接片片外外的的石石英英晶晶体体及及两两个个频频率率微微调调电电容容,产生单片机工作所需要的基本时钟产生单片机工作所需要的基本时钟节拍。节拍。振荡器及定时控制电路振荡器及定时控制电路 1、电源管脚:、电源管脚: Vcc,Vss2、时钟电路管脚:、时钟电路管脚: XTAL1,XTAL23、控制信号脚:、控制信号脚: RST/VPD, ALE/PROG PSEN及及Vpp/EA4、I/O管脚管脚 P0,P1,P2,P32-2 MCS-512-2 MCS-512-2 MCS-512-2 MCS-51单片机的

26、引脚及其功能单片机的引脚及其功能单片机的引脚及其功能单片机的引脚及其功能电源管脚电源管脚 Vcc:电源端,为电源端,为5V,允许电源有偏差;,允许电源有偏差;GND(VSS):地。地。 注注:为了防止电源脉冲对单片机的影响,一般在:为了防止电源脉冲对单片机的影响,一般在VCC和和GND之间接上一个之间接上一个1uF的电容。的电容。时钟电路管脚时钟电路管脚 XTAL1:芯片内部反相放大器输入端,使用外部振荡器时需接地。芯片内部反相放大器输入端,使用外部振荡器时需接地。XTAL2: 芯片内部反相放大器输出端,使用外部振荡时接振荡器输芯片内部反相放大器输出端,使用外部振荡时接振荡器输 入的信号。入的

27、信号。 XTAL2XTAL1内部振荡方式内部振荡方式XTAL2XTAL1外部振荡器外部振荡器外部振荡方式外部振荡方式控制线控制线 ALE/PROGALE/PROG ALE: 地地址址锁锁存存信信号号端端,频频率率为为晶晶体体振振荡荡器器的的1/6正正脉脉冲冲信信号号。当当CPU访访问问片片外外扩扩展展存存储储器器时时,该该信信号号作作为为锁锁存存低低8位地址的控制信号。位地址的控制信号。PROG: 当当片片内内有有EPROM时时,该该管管脚脚提提供供编编程程写写入入时时的的编编程程脉冲信号输入端。脉冲信号输入端。 控制管脚控制管脚 RST/VPDRST/VPD RST: 复复位位信信号号输输入

28、入端端,高高电电平平有有效效。保保持持两两个个机机器器周周期期以以上上,并并变变为为低低电电平平,单单片片机机开开始始从从0000地地址址执执行行,即即可可完完成成单单片片机机复复位位。单单片机复位不改变片内片机复位不改变片内RAM的值的值。VPD: 备用电源。备用电源。+5VRESET10uF控制管脚控制管脚 PSENPSEN PSEN: 程程序序存存储储器器允允许许输输出出信信号号端端。在在访访问问片片外外程程序序存存储储器器时时,CPU控控制制该该端端输输出出负负脉脉冲冲作作为为外外部部存存储储器器的的选选通通信信号号,允允许许CPU读读出出EPROM中中被被选选中中单单元元中中的的指指

29、令令码码。该管脚一般连程序存储器的选通信号端该管脚一般连程序存储器的选通信号端(OE)。控制管脚控制管脚 EA/VppEA/Vpp EA: 外外部部程程序序存存储储器器地地址址允允许许输输入入端端/固固化化编编程程电电压压输输入入端端。程程序序存存储储器器允允许许输输出出信信号号端端。当当EA接接高高时时,前前4KB或或8KB程程序序在在单单片片机机内内,当当EA接接地地时时,所所有有程程序序均均在在外外存储器。存储器。Vpp: 对单片机内程序存储器编程时施加的高电平输入端。对单片机内程序存储器编程时施加的高电平输入端。2-3 MCS-512-3 MCS-512-3 MCS-512-3 MCS

30、-51单片机的存储器配置单片机的存储器配置单片机的存储器配置单片机的存储器配置计算机存储结构:计算机存储结构: 哈佛结构:程序存储与数据存储分开哈佛结构:程序存储与数据存储分开单片机单片机 冯冯.诺诺依依曼曼结结构构:程程序序与与数数据据存存储储在在一一起起通通用用计计算算机机单片机的存储器结构(单片机的存储器结构(ROMRAM):): ROM:常常用用于于存存放放程程序序和和需需要要长长时时间间存存放放的的数数据据,掉掉电不丢失电不丢失; RAM:随时可读可写的存储器,掉电后数据立即丢失。:随时可读可写的存储器,掉电后数据立即丢失。00HFFH1 1、单片机的存储器结构、单片机的存储器结构

31、采用哈佛结构,存在采用哈佛结构,存在4个物理上相互独立的存储器空间:个物理上相互独立的存储器空间:l 片内程序存储器片内程序存储器 片外程序存储器片外程序存储器l 片内数据存储器片内数据存储器 片外数据存储器片外数据存储器0FFFH0000H片内片内4K4KROMROM0000HFFFFH片外片外64KROM片外片外64KRAM(I/O)0000HFFFFHSFR片内片内RAMRAM7FH80H0FFFHEAEA引脚引脚=0=0访问片内与片外访问片内与片外RAM靠指令区分靠指令区分MOV与与MOVXEAEA引脚引脚=1=12 2、单片机的程序存储器、单片机的程序存储器 常用单片机的程序存储器容

32、量:常用单片机的程序存储器容量:型号型号ROMROMRAMRAM8031/328031/320 0128B/256B128B/256B8051/528051/524KB/8KB4KB/8KB128B/256B128B/256B8751/528751/524KB/8KB EPROM4KB/8KB EPROM128B/256B128B/256B89X51/5289X51/524KB/8KB FLASH4KB/8KB FLASH128B/256B128B/256B 随着单片机制造技术的发展,现在内部随着单片机制造技术的发展,现在内部ROM有有64KB,RAM达几达几KB的都有。在进行单片机应用系统开

33、发时,应注意选择,能不扩展的尽量的都有。在进行单片机应用系统开发时,应注意选择,能不扩展的尽量不扩展。不扩展。(片内(片内128B不包含不包含SFR区)区)单片机的程序存储器单片机的程序存储器 单片机的程序存储器的应用:单片机的程序存储器的应用:l上电复位时,上电复位时,PC=0000;PC=0000;l程序存储器有保留单元:程序存储器有保留单元:入口单元地址入口单元地址入口单元地址入口单元地址预留目的预留目的预留目的预留目的存储单元范围存储单元范围存储单元范围存储单元范围0000H0000H复位后初始化引导程序复位后初始化引导程序复位后初始化引导程序复位后初始化引导程序00H-02H00H-

34、02H0003H0003H外部中断外部中断外部中断外部中断0 0服务程序服务程序服务程序服务程序(INT0)(INT0)03H-0AH03H-0AH000BH000BH定时器定时器定时器定时器/ /计数器计数器计数器计数器0 0溢出中断服务程序溢出中断服务程序溢出中断服务程序溢出中断服务程序0BH-12H0BH-12H0013H0013H外部中断外部中断外部中断外部中断1 1服务程序服务程序服务程序服务程序(INT0)(INT0)13H-1AH13H-1AH001BH001BH定时器定时器定时器定时器/ /计数器计数器计数器计数器1 1溢出中断服务程序溢出中断服务程序溢出中断服务程序溢出中断服

35、务程序1BH-22H1BH-22H0023H0023H串行口中断服务程序串行口中断服务程序串行口中断服务程序串行口中断服务程序23H-2AH23H-2AH002BH002BH定时器定时器定时器定时器/ /计数器计数器计数器计数器2 2溢出中断服务程序溢出中断服务程序溢出中断服务程序溢出中断服务程序2BH-2BH-3 3、单片机的数据存储器、单片机的数据存储器 单片机的数据存储器最大寻址为单片机的数据存储器最大寻址为64KB,地址为:,地址为:0000FFFFH片内为片内为128B的数据存储器,片外为的数据存储器,片外为64KB,地址有重叠,靠指令区分,地址有重叠,靠指令区分00H07H08H0

36、FH10H17H18H1FH2FH30H20H7FH用户RAM区位寻址区3组2组1组0组通用工作寄存器通用工作寄存器R0R7低低128B的数据的数据RAM高高128B的特殊寄存器区的特殊寄存器区SFR区区80HFFH单片机的数据存储器单片机的数据存储器 数据存储器中的堆栈:数据存储器中的堆栈:l堆栈用于保护中断时程序的断点地址,以便中断返回堆栈用于保护中断时程序的断点地址,以便中断返回时程序的继续执行;时程序的继续执行;l堆栈的特点是先进后出,后进先出;堆栈的特点是先进后出,后进先出;l堆栈的指令是:堆栈的指令是:PUSH(压入)和(压入)和POP(弹出)(弹出)l堆栈寄存器叫堆栈寄存器叫SP

37、,其内部的数值叫栈底,初始值为,其内部的数值叫栈底,初始值为07H,一,一般应进行设置到般应进行设置到50H或或60H。MOV SP,#60HPUSH A.PUSH B07H60H61H7FH07H07HSP60H60HSPA61H61HSPB单片机的数据存储器单片机的数据存储器低低128B的分区:的分区:l工作寄存器区,工作寄存器区,R0-R7,共四组,由,共四组,由PSW中的中的RS1,RS0决定;决定;l位寻址区位寻址区20H-2FH,位地址为:,位地址为:00H-7FH;l一般数据存储区;一般数据存储区;l堆栈区(由用户进行设置,初始值为堆栈区(由用户进行设置,初始值为07H)高高12

38、8B的分区:的分区:l特殊功能寄存器特殊功能寄存器(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)(SFR) D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0CYCYACACF0F0RS1RS1RS0RS0OVO

39、V/ /P PPSWPSW(Program State Word)程序状态字;)程序状态字;CY进位位标志位或借位位标志位;进位位标志位或借位位标志位;AC半字节进位位标志位或半字节借位标志位;半字节进位位标志位或半字节借位标志位; F0用户标志位;用户标志位;RS1,RS0工作寄存器组选择位,工作寄存器组选择位,00-0区,区,01-1区,区,10-2区,区,11-3区;区;OV溢出标志位,当进行补码运算时,如有溢出,超出溢出标志位,当进行补码运算时,如有溢出,超出-128127范围时置位;范围时置位; /未定位位,在未定位位,在52中为中为F1,用户标志位;,用户标志位; P奇偶标志位,每

40、条指令执行完后,跟踪指示奇偶标志位,每条指令执行完后,跟踪指示A内的内的1 的个数,如为奇数,的个数,如为奇数, 则则P=1,否则为否则为0,常用于校验串行通信中的数据传送是否出错。,常用于校验串行通信中的数据传送是否出错。2-4 2-4 2-4 2-4 2-4 2-4 振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及CPUCPUCPUCPUCPUCPU时序时序时序时序时序时序1. 振荡器与时钟电路:振荡器与时钟电路:单片机内部的增益反向放大器通过单片机内部的增益反向放大器通过XTAL1、XTAL2两个引脚外接的反馈石英两个引脚外接的

41、反馈石英晶体元件构成自激振荡器。时钟发生器把振荡器的信号进行二分频,向晶体元件构成自激振荡器。时钟发生器把振荡器的信号进行二分频,向CPU提供提供了两相时钟脉冲信号了两相时钟脉冲信号P1和和P2。时钟信号的周期称为。时钟信号的周期称为S,它是振荡周期的它是振荡周期的2倍,在每个倍,在每个时钟周期时钟周期S的前半周期,的前半周期,P1有效,后半周期,有效,后半周期,P2有效。有效。2-4 2-4 2-4 2-4 2-4 2-4 振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及CPUCPUCPUCPUCPUCPU时序时序时序时序时序时序(

42、 ( ( ( ( (续续续续续续) ) ) ) ) )2. 机器周期和指令周期:机器周期和指令周期:单片机的一个机器周期由单片机的一个机器周期由6个个S状态周期组成,即状态周期组成,即S1-S6,每个状态又持续两个每个状态又持续两个振荡周期,即振荡周期,即P1和和P2两拍,故一个机器周期包含两拍,故一个机器周期包含12个振荡周期,即个振荡周期,即S1P1,S1P2,S2, P1,S2P2,S6P1,S6P2共共12个状态拍。若采用个状态拍。若采用12MHz晶振,则每个机器周期为晶振,则每个机器周期为1us。单片机的指令长度分为单片机的指令长度分为1B、2B和和3B三种,按三种,按CPU执行每条

43、指令的时间分为执行每条指令的时间分为单周期指令单周期指令、双周期指令双周期指令和和四周期指令四周期指令三种三种。每每一一条条指指令令的的执执行行包包括括取取指指、执执指指两两个个阶阶段段。在在每每个个机机器器周周期期内内ALE两两次次有有效效,第第一一次次出出现现在在S1P2和和S2P1之之期期间间,第第二二次次出出现现在在S4P2和和S5P1期期间。间。2-4 2-4 2-4 2-4 振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及振荡器与时钟电路及CPUCPUCPUCPU时序时序时序时序( ( ( (续续续续) ) ) )3. 取指、执指的时序:取指、执指的时序:2-5 2-5 2-

44、5 2-5 2-5 2-5 并行输入并行输入并行输入并行输入并行输入并行输入/ / / / / /输出端口输出端口输出端口输出端口输出端口输出端口8051单片机有四个单片机有四个8位的位的I/O端口,分别称为端口,分别称为P0,P1,P2,P3,每,每个端口均为准双向口,共占个端口均为准双向口,共占32只引脚,每个端口可作为只引脚,每个端口可作为8位的总位的总线使用,也可作为单独的线使用,也可作为单独的I/O应用。每个端口都包含一个锁存器应用。每个端口都包含一个锁存器(即(即特殊寄存器特殊寄存器P0-P3),一个输出驱动器和输入缓冲器。作输),一个输出驱动器和输入缓冲器。作输出线时数据可以锁存

45、,作输入时可以缓冲。出线时数据可以锁存,作输入时可以缓冲。当有外部扩展的存储器时,当有外部扩展的存储器时,P0作为地址的作为地址的低低8位位,P2作为作为高高8位位组成组成16位位地址总线,而地址总线,而P0复用为复用为8位的数据总线。位的数据总线。P0P2P3P12-5 2-5 2-5 2-5 2-5 2-5 并行输入并行输入并行输入并行输入并行输入并行输入/ / / / / /输出端口输出端口输出端口输出端口输出端口输出端口1 1、P0P0口口 无无外外扩扩存存储储器器时时,P0P0可可作作为为I/OI/O应应用用。CPUCPU执执行行传传送送或或改改写写位位内内容容的的指指令令时时,硬硬

46、件件使使C=0,C=0,开开关关MUXMUX处处于于图图示示位位置置,P0P0作作为为通通用用I/OI/O口口。此此时时,T1T1处处于于截截止止状状态态,输输出出极极变变为为漏漏极极开路,此时需加上拉电阻。开路,此时需加上拉电阻。VCCP0P0口结构口结构 (1 1)P0P0用用作作输输出出口口时时,当当CPUCPU执执行行输输出出指指令令时时,写写脉脉冲冲加加在在D D锁锁存存器器的的CPCP上上,输输出出数数据据经经过过锁锁存存器器的的D D端端,反反相相输输出出在在Q Q非非,然然后后加加到到T2T2上上,到到数数据据为为1 1是是,T2T2导导通通,P0.iP0.i输输出出为为0 0

47、, ,当当数数据据为为0 0时时,T2T2截截止止,P0.iP0.i的的数数据经上拉电阻拉高,为据经上拉电阻拉高,为1 1。VCC 特特殊殊的的单单片片机机“读读运运算算(修修改改)写写”输输出出指指令令,其其执执行行过过程程为为先先读读出出锁锁存存器器的的数数据据,然然后后运运算算再再锁锁存存到到锁锁存存器器,然然后后输输出出到到引引脚脚,读读锁锁存存器器中中的的数数据据时时,Q Q端端数数据据经经过过控控制制开开通通的的三三态态缓缓冲冲器器1 1送送入入内内部部数数据据总线。总线。P0P0口结构口结构 (2 2)P0P0用用作作输输入入口口时时,读读引引脚脚的的指指令令将将三三态态缓缓冲冲

48、器器2 2打打开开,端端口口引引脚脚上的数据经上图蓝色的线输入内部数据总线。上的数据经上图蓝色的线输入内部数据总线。 在在读读引引脚脚时时,由由于于T2T2并并接接在在引引脚脚上上,如如果果T2T2导导通通它它会会把把引引脚脚上上的的高高电电平平拉拉成成低低电电平平,从从而而产产生生误误读读。因因此此,在在读读端端口口之之前前,应应先先向向端端口口锁锁存器写存器写“1 1”,从而是,从而是Q Q非为非为“0 0”,使,使T2T2截止。截止。VCCP0P0口结构口结构 P0 P0口用作数据口用作数据/ /地址总线使用时地址总线使用时,芯片外部有锁存器:,芯片外部有锁存器: (1 1)P0P0口口

49、先先送送出出低低8 8位位地地址址再再送送出出数数据据 此此时时C=1C=1,MUXMUX打打到到上上方方,地地址址/ /数数据据位位驱驱动动T1T1,其其反反相相驱驱动动T2T2,当当地地址址/ /数数据据位位为为“1 1”时时,T1T1导导通通,T2T2截截止止,P0.iP0.i输输出出为为“1 1”;当当地地址址/ /数数据据位位为为“0 0”时时,T1T1截截止止,T2T2导导通通,P0.iP0.i为为“0 0”。 (2 2)P0P0口口先先送送出出低低8 8位位地地址址再再输输入入数数据据 送送出出地地址址与与上上相相同同,但但读读入数据时,打开缓冲器入数据时,打开缓冲器2,2,引脚

50、数据经缓冲器引脚数据经缓冲器2 2进入内部数据总线。进入内部数据总线。VCCP1P1口结构口结构 P1P1口口为为准准双双向向口口,用用作作通通用用I/OI/O口口(开开关关量量输输入入/ /输输出出),输输出出驱驱动动有有上上拉拉电电阻阻(实实质质为为由由两两个个场场效效应应管管构构成成的的),其其余余与与P0P0作作为为I/OI/O口相同。口相同。P2P2口结构口结构 P2 P2口可作为地址高口可作为地址高8 8位,也可作为通用位,也可作为通用I/OI/O口。口。 (1 1)作作为为高高8 8位位地地址址总总线线:MUXMUX打打向向上上方方,使使地地址址与与反反相相器器3 3连连接接,由

51、由P2.XP2.X输出输出地址信息;地址信息;(2 2)作为通用)作为通用I/OI/O口时:口时:MUXMUX打向下方,输入打向下方,输入/ /输出与输出与P0P0口相同。口相同。 P3P3口结构口结构 (1)P3(1)P3口口作作为为通通用用I/OI/O口口:当当CPUCPU执执行行对对P3P3口口的的I/OI/O操操作作时时,W W被被置置1,P31,P3口变为通用口变为通用I/OI/O口,与口,与P0P0、P1P1、P2P2作为作为I/OI/O时的工作原理一致。时的工作原理一致。P3P3口口除除了了具具有有准准双双向向I/OI/O口口以以外外,各各引引脚脚还还具具有有另另外外一一项项功功

52、能能,即即第第二二功功能。能。P3P3口结构口结构P3P3口的第二功能:口的第二功能:口口口口 线线线线第二功能第二功能第二功能第二功能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口输出时

53、,数据由口输出时,数据由W线经反相器线经反相器3输出;输出; P3口输入时,经同相器口输入时,经同相器4输入至第二功能线。输入至第二功能线。端口的负载能力和接口要求端口的负载能力和接口要求 P0口:没一位可驱动口:没一位可驱动8个个LS型型TTL负载;负载; P1-P3:可驱动:可驱动4个个TTL型负载;型负载; ALE端:可驱动端:可驱动8个个LS型型TTL负载;负载; PSEN:可驱动:可驱动8个个LS型型TTL负载。负载。2 2 2 2、端口接口要求、端口接口要求、端口接口要求、端口接口要求1 1 1 1、端口的驱动能力、端口的驱动能力、端口的驱动能力、端口的驱动能力 作作为为输输入入口

54、口时时,任任何何TTL或或NMOS电电路路都都能能以以正正常常的的方方式式驱驱动动8051单单片片机机(HMOS)的的P1-P3口口,由由于于其其输输出出级级具具有有上上拉拉电电阻阻,故故可可被被OC门门的的电路所驱动,无需上拉电阻;电路所驱动,无需上拉电阻; 注注意意:由由于于单单片片机机的的端端口口只只提提供供几几毫毫安安的的输输出出电电流流,因因而而,当当输输出出口口去去驱驱动动一一个个普普通通晶晶体体管管的的基基极极(或或TTL电电路路输输入入端端)时时,应应在在端端口口与与晶晶体体管的基极之间串联一个电阻,以限制高电平输出时的电流。管的基极之间串联一个电阻,以限制高电平输出时的电流。

55、2-6 2-6 2-6 2-6 2-6 2-6 单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成洗衣机控制电路板洗衣机控制电路板2-6 2-6 2-6 2-6 单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成复读机控制电路板复读机控制电路板2-6 2-6 2-6 2-6 2-6 2-6 单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成单片机的基本工作系统组成排队机控制电路板排队机控

56、制电路板第二讲 80C51的中断系统 一、一、一、一、80C5180C51的中断系统结构的中断系统结构的中断系统结构的中断系统结构 中断的概念中断的概念中断的概念中断的概念 看电视看电视中断处理中断处理中断请求中断请求实际生活实际生活中断返回中断返回电话铃响电话铃响接听电话接听电话看电视看电视主程序主程序计算机计算机事件发生事件发生事件处理事件处理主程序主程序执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断的概念中断的概念:IE0TF0IE1TF1TIRI中断请求标志EX0ET0EX1ET1ES1PX0PT0PX1PT1PS高级低级MCS-51MCS-51单片机的

57、中断系统内部查询内部查询入口地址入口地址INT0INT1T0T1TXRX中断允许控制中断优先级EA中断源1.中断源 共有五个中断源,分别是外部中断两个、定时中断两个和串行中断一个,它们是:外部中断外部中断0-INT00-INT0,由P3.2提供,外部中断外部中断1 1INT1INT1,由P3.3提供,外部中断有两种信号方式,即电平方式和脉冲方式。(IT0、IT1)T0T0溢出中断;溢出中断; 由片内定时/计数器0提供T1T1溢出中断;溢出中断; 由片内定时/计数器1提供串行口中断串行口中断RI/TIRI/TI; 由片内串行口提供二、中断源二、中断源2 2、中断源入口地址、中断源入口地址具体入口

58、如下:中断源 入口地址INT0 0003T0 000BHINT1 0013HT1 001BHRI/TI 0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。 三、 中断控制的寄存器 与中断控制有关的控制寄存器有四个:TCON-定时控制寄存器, IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。 定时控制寄存器定时控制寄存器TCONTCON D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0中断请

59、求标志触发方式选择0 低电平1 下降沿串行口控制寄存器串行口控制寄存器SCONSCON D7D6D5D4D3D2D1D0TITIRIRI串行中断请求标志中断允许控制寄存器中断允许控制寄存器IEIE D7D6D5D4D3D2D1D0EAEAESESET1ET1EX1EX1ET0ET0EX0EX0中断优先级控制寄存器(中断优先级控制寄存器(IPIP) D7D6D5D4D3D2D1D0PSPSPT1PT1PX1PX1PT0PT0PX0PX00 禁止,1允许0 低级别,1高级别同一优先级的优先权排队如下表同一优先级的优先权排队如下表:IP=09H=0000 1001PT1、PX0高INT0、T1、T0

60、、INT1、串行口IP=55H=0101 0101PS、PX1、PX0 同级别,都为1PT0、PT1 同级别,都为0处理顺序为 PX0 PX1 PS PT0 PT1 INT0 INT1 RX / TX T0 T1例:D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0PSPSPT1PT1PX1PX1PT0PT0PX0PX01、中断请求标志、中断请求标志 IT0IT0,外中断,外中断,外中断,外中断0 0触发方式控制位。触发方式控制位。触发方式控制位。触发方式控制位。 =0=0,电平触发方式。,电平触发方式。,电平触发方式。,电平触发方式。 =1=1,边沿触发方式(下降沿有效)。,边

61、沿触发方式(下降沿有效)。,边沿触发方式(下降沿有效)。,边沿触发方式(下降沿有效)。 IE0IE0,外中断,外中断,外中断,外中断0 0中断请求标志位。中断请求标志位。中断请求标志位。中断请求标志位。 TF0TF0,T0T0溢出中断请求标志位。溢出中断请求标志位。溢出中断请求标志位。溢出中断请求标志位。 IT1 IT1 、IE1IE1、 TF1TF1类同类同类同类同 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON TCON (88H)(88H) TCON TCON的中断标志的中断标志的中断标志的中断标志 2 2、SCONSCON的中断标志的中断标志的中断标志的中断标志

62、 RI RI,接收中断标志位。,接收中断标志位。,接收中断标志位。,接收中断标志位。 TITI,发送中断标志位。,发送中断标志位。,发送中断标志位。,发送中断标志位。 TI RISCON SCON (98H)(98H)注意:注意:注意:注意:RIRI和和和和TITI由硬件置位、由硬件置位、由硬件置位、由硬件置位、由软件清除。由软件清除。由软件清除。由软件清除。 3、中断允许控制、中断允许控制 EX0EX0,外中断,外中断,外中断,外中断0 0允许位;允许位;允许位;允许位;ET0ET0,T0T0中断允许位;中断允许位;中断允许位;中断允许位; EX1EX1,外中断,外中断,外中断,外中断0 0

63、允许位;允许位;允许位;允许位;ET1ET1,T1T1中断允许位;中断允许位;中断允许位;中断允许位;ES ES ,串口中断允许位;,串口中断允许位;,串口中断允许位;,串口中断允许位;EA EA , CPUCPU中断允许(总允许)位。中断允许(总允许)位。中断允许(总允许)位。中断允许(总允许)位。 EA ES ET1 EX1 ET0 EX0 IE IE (A8H)(A8H) 4、中断优先级控制、中断优先级控制 PX0,外中断,外中断0优先级设定位;优先级设定位;PT0,T0优先级设定位;优先级设定位;PX1,外中断,外中断0优先级设定位;优先级设定位;PT1,T1优先级设定位;优先级设定位

64、;PS ,串口优先级设定位。,串口优先级设定位。 PS PT1 PX1 PT0 PX0 IP IP (B8H)(B8H)中断优先级三条原则:中断优先级三条原则: 同时收到同时收到几个中断时,几个中断时,响应响应优先级别优先级别最高最高的的 中断过程中断过程不能被同级、低优先级所中断不能被同级、低优先级所中断 低优先级低优先级中断服务,中断服务,能被高优先级中断能被高优先级中断有有2个优先级状态触发器个优先级状态触发器: 高高优先级状态触发器优先级状态触发器 低低优先级状态触发器优先级状态触发器n n 中断响应条件中断响应条件n n 有中断请求;有中断请求;n n 对应中断允许位为对应中断允许位

65、为1,开中断(即,开中断(即EA=1)同时满足时,才可能响应中)同时满足时,才可能响应中断。断。一、中断响一、中断响应条件和条件和时间 80C51单片机中断处理过程 硬件受阻,不产生硬件受阻,不产生LCALL的几种情况的几种情况: 正在处理正在处理正在处理正在处理同级或高优先级中断;同级或高优先级中断;同级或高优先级中断;同级或高优先级中断; 当前查询的当前查询的当前查询的当前查询的机器周期不是机器周期不是机器周期不是机器周期不是所执行指令的所执行指令的所执行指令的所执行指令的最后一个最后一个最后一个最后一个机器周期。机器周期。机器周期。机器周期。 正执行的指令为正执行的指令为正执行的指令为正

66、执行的指令为RETRET、RETIRETI或任何访问或任何访问或任何访问或任何访问IEIE或或或或IPIP的指令(只有在这些指令后面至少再执行一条指的指令(只有在这些指令后面至少再执行一条指的指令(只有在这些指令后面至少再执行一条指的指令(只有在这些指令后面至少再执行一条指令时才能接受中断请求)。令时才能接受中断请求)。令时才能接受中断请求)。令时才能接受中断请求)。 受阻未得到响应的中断,若条件消失时该受阻未得到响应的中断,若条件消失时该中断标志已不再有效,该中断将不被响应。中断标志已不再有效,该中断将不被响应。 相应优先级相应优先级状态触发器置状态触发器置1 执行硬件执行硬件LCALL指令

67、指令 把把把把PCPC的内容入栈的内容入栈的内容入栈的内容入栈 相应中断服务程序的相应中断服务程序的相应中断服务程序的相应中断服务程序的入口送入口送入口送入口送PCPC 执行执行中断服务程序中断服务程序。二、二、 中断响中断响应过程程 中断响应过程的前两步是由中断系统内中断响应过程的前两步是由中断系统内中断响应过程的前两步是由中断系统内中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用部自动完成的,而中断服务程序则要由用部自动完成的,而中断服务程序则要由用部自动完成的,而中断服务程序则要由用户编写程序来完成。户编写程序来完成。户编写程序来完成。户编写程序来完成。 三、中断程

68、序三、中断程序举例例 例例1:1:单外中断源外中断源P1P1口口外部中断信号INT0INT0数据80C5180C51char Data;char Data;void main()void main() EA=1;EA=1;E EX X0=1;0=1; while(1)while(1) - - - - - - 主程序:主程序: void IRQ () interrupt 0 Data =P1; 中断服务程序:中断服务程序:中断服务程序:中断服务程序: 第三讲 80C51的定时/计数器实现定时常用的三种方法:实现定时常用的三种方法:软件定时:占用软件定时:占用软件定时:占用软件定时:占用CPUCP

69、U时间,效率低。时间,效率低。时间,效率低。时间,效率低。用用用用555555电路:不可编程。电路:不可编程。电路:不可编程。电路:不可编程。可编程芯片:功能强,需要另外扩展。可编程芯片:功能强,需要另外扩展。可编程芯片:功能强,需要另外扩展。可编程芯片:功能强,需要另外扩展。 单片机内部有单片机内部有2个个16位的定时位的定时/计数器:计数器:使用灵活,编程方便使用灵活,编程方便。1 1、定定定定时时/ / / /计计数器的数器的数器的数器的结结构和工作原理构和工作原理构和工作原理构和工作原理 加加加加1 1计数器(高计数器(高计数器(高计数器(高8 8位、低位、低位、低位、低8 8位)位)

70、位)位) TMODTMOD,工作方式设置;,工作方式设置;,工作方式设置;,工作方式设置; TCONTCON,启动、停止及设置溢出标志,启动、停止及设置溢出标志,启动、停止及设置溢出标志,启动、停止及设置溢出标志。 一、定时一、定时/计数器的结构计数器的结构 2、定时、定时/计数器的工作原计数器的工作原理理计数器脉冲来源:计数器脉冲来源:计数器脉冲来源:计数器脉冲来源:振荡器振荡器振荡器振荡器脉冲经过脉冲经过脉冲经过脉冲经过1212分频分频分频分频T0T0或或或或T1T1引脚的引脚的引脚的引脚的外部脉冲外部脉冲外部脉冲外部脉冲计数功能计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T

71、1为P3.5。定时功能定时功能-计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。TMOD中,各有一个控制位(CT),分别用于控制定时/计数器T0和T1工作在定时器方式还是计数器方式。 定时模式,对内部机器周期计数定时模式,对内部机器周期计数 定时时间定时时间 t 计数值计数值N x Tcy 计数模式,对外部事件脉冲计数计数模式,对外部事件脉冲计数 计数脉冲周期要大于计数脉冲周期要大于2 Tcy 计数值计数值计数值计数值:溢出时计数器值计数初值。溢出时计数器值计数初值。溢出时计数器值计数初值。溢出时计数器值计数初值。 计数器计数器计数器计数器全全全全

72、1 1时,再输入时,再输入时,再输入时,再输入1 1个脉冲就个脉冲就个脉冲就个脉冲就回零回零回零回零,并发生,并发生,并发生,并发生 溢出溢出溢出溢出(TCONTCON中中中中TF0TF0或或或或TF1TF1置置置置1 1),),),), 发中断请求。发中断请求。发中断请求。发中断请求。二、定时器计数器的控制寄存器 与定时器计数器有关的控制寄存器有:定时器控制寄存器TCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0中断请求标志触发方式选择启动定时/计数器0 低电平1 下降沿0

73、停止1 启动工作方式控制寄存器TMOD T1控制T0控制M0M0M1M1C/TC/TGATEGATEM0M0M1M1C/TC/TGATEGATED0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7GATE门控位C/T计数/定时选择M1 M0工作方式选择计数脉冲输入计数脉冲输入三、定时器计数器的工作方式 1. 方式013位方式。由由TL0的的低低5位位和和TH0的的8位位组成。组成。TH0溢出时,置位溢出时,置位TF0标志,向标志,向CPU发出中发出中断请求。断请求。TF0T0TR0GATEINT011&C/T=1振荡器1/12C/T=0TL0 TH08位低5位13位计数器定时定时器

74、器计数计数器器定时= (213 X)*12*1/fosc 8*10-3=(213-x)*12*1/(12*106)X = 213 8000 =192 =0xC0计数初值计数初值:X X2 21313NN2. 2. 方式方式1 11616位方式位方式 振荡器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=(

75、216-X)*12*1/(6*106)1000=(65536-X)*2X=65036 FE0CH 3. 3. 方式方式2 28 8位自动装入时间常数方式位自动装入时间常数方式 TF0振荡器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH0自动重装初值的自动重装初值的8位计数方式位计数方式 ,适合于用作较精确,适合于用作较精确的脉冲信号发生器。的脉冲信号发生器。初值:初值:X28N4. 4. 方式方式3 32 2个个8 8位方式位方式 仅T0可以工作在方式3,T1处于方式3时停止计数。此时T0分成2个独立的计数器TL0和TH0 ,前者用原来T0的控制信号(TR0、TF0)

76、,后者用原来T1的控制信号(TR1、TF1)。 (1) TH0由TR1启动/停止,溢出TF1(2)TL0由TR0启动/停止,溢出TF0(3)TH0只能定时,TL0可以定时/计数,且都是8位定时T=(28)*12foscTL0计数初值28 设计数器最大计数值为M,选择不同的工作方式最大计数值不同。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; 可编程器件在使用前需要进行初始化:

77、确定TMOD控制字:编程时将控制字送TMOD; 开中断(如果使用中断方式): 编程实置位EA、ETi TRi位置位控制定时器的启动和停止。 【例例】若单片机晶振为12MHz,要求产生500s的定时,试计算X的初值。解:采用方式采用方式0:500*10-6=(213-X)*12*1/foscx=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=

78、65036=FE0CH即将即将FEH装入装入TH1,0CH装入装入TL1。TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 01 0 0 0 0 10Hmain()main()函数中:函数中:MOD=0x01;/MOD=0x01;/设置定时器设置定时器0 0为工作方式为工作方式1 1TH0=0xFE; /TH0=0xFE; /定时器定时器0 0高高8 8位给初值位给初值TL0=0xC0; /TL0=0xC0; /定时器定时器0 0低低8 8位给初值位给初值EA=1; /EA=1; /开总中断开总中断ET0=1; /ET0=1; /开定时器开定时器0 0中断中断TR0=1

79、; /TR0=1; /启动定时器启动定时器0 0程序编写程序编写程序编写程序编写中断服务程序中重新装入定时初值中断服务程序中重新装入定时初值void timer0() interrupt 1 TH0=0xFE; /TH0=0xFE; /定时器定时器0 0高高8 8位给初值位给初值TL0=0xC0; /TL0=0xC0; /定时器定时器0 0低低8 8位给初值位给初值51单片机的串口通信单片机的串口通信 51单片机的串行接口单片机的串行接口 一、一、 串行通信的基本概念串行通信的基本概念 并行并行 和和 串行串行 并行通信的优点是速度快,效率高,确点是不适合远距离通信。串行通信刚好相反。单工:信

80、息只能沿着一个方向传播单工:信息只能沿着一个方向传播半双工:信息沿一条线双向传播,不能同时实半双工:信息沿一条线双向传播,不能同时实 现双向传播。现双向传播。全双工:使用两条独立的数据通道,收发可同时进行。全双工:使用两条独立的数据通道,收发可同时进行。单工、半双工单工、半双工 和和 全双工全双工 同步方式和异步方式同步方式和异步方式 (1) 同步方式是将一大批数据分成几个数据块, 数据块之间用同步字符予以隔开, 而传输的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。 (2)异步通信是按帧传送数据, 它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均

81、采用固定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。 同步方式和异步方式同步方式和异步方式同步方式和异步方式同步方式和异步方式二、二、 与串行口有关的特殊功能寄存器与串行口有关的特殊功能寄存器 1. 数据缓冲器数据缓冲器SBUF 串串行行口口缓缓冲冲器器SBUF是是可可直直接接寻寻址址的的特特殊殊功功能能寄寄存存器器, 其其内内部部RAM字字节节地地址址是是99H。在在物物理理上上, 它它对对应应着着两两个个独独立立的的寄寄存存器器, 一一个个发发送送寄寄存存器器, 一一个个接接收收寄寄

82、存存器器。发发送送时时, 就就是是CPU写写 SBUF的的时时候候; 接接收收时时, 就就是是读读取取SBUF的的过过程程, 接接收收寄寄存存器器是是双双缓缓冲冲的的, 以以避避免免在在接接收收下下一一帧帧数数据据之之前前, CPU未未能能及及时时响响应应接接收收器器的的中中断断, 没没有有把把上上一一帧帧数数据据读读走走, 而而产产生生两两帧帧数数据重叠的问题。据重叠的问题。 2. 串行口控制寄存器串行口控制寄存器SCON SCON用用于于控控制制和和监监视视串串行行口口的的工工作作状状态态, 其其各各位位定定义义如如图图 5.3 所所示示。相应的各位功能介绍如下相应的各位功能介绍如下: S

83、M0、SM1: 用用于于定定义义串串行行口口的的操操作作模模式式, 两两个个选选择择位位对对应应 4 种种模模式式,见见表表6.2。其其中中fOSC是是振振荡荡器器频频率率, UART为为通通用用异异步步接接收收和和发发送送器器的的英英文文缩写。缩写。 SM2: 多多机机通通信信时时的的接接收收允允许许标标志志位位。 在在模模式式 2 和和 3 中中, 若若SM2 = 1, 且且接接收收到到的的第第 9 位位数数据据(RB8)是是 0, 则则接接收收中中断断标标志志(RI)不不会会被被激激活活。在在模模式式1中中, 若若SM2=1 且且没没有有接接收收到到有有效效的的停停止止位位, 则则 RI

84、不不会会被被激激活活。 在在模式模式 0 中中, SM2 必须是必须是 0。 SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI 特特殊殊功功能能寄寄存存器器PCON中中, 只只有有一一位位(最最高高位位)SMOD与与串串行行口口的的工工作作有有关关, 该该位位是是串串行行口口波波特特率率系系数数的的控控制制位位: SMOD=1 时时, 波波特特率率加加倍倍, 否则不加倍。否则不加倍。 PCON的地址为的地址为 87H, 不可位寻址不可位寻址, 因此初始化时需要字节传送因此初始化时需要字节传送。 SCOND7D6D5D4D3D2D1D0SMOD0-GF1GF0

85、PDIDL 3. 3. 3. 3. 电源控制寄存器电源控制寄存器电源控制寄存器电源控制寄存器PCONPCONPCONPCON串行口操作模式选择 SM0 SM1 SM0 SM1 模式模式 功功 能能 波特率波特率 0 00 00 10 11 01 01 11 10 01 10 01 1同步移位寄存器同步移位寄存器同步移位寄存器同步移位寄存器 8 8位位位位UART UART 9 9位位位位UART UART 9 9位位位位UART UART f fOSCOSC/12 /12 可变可变可变可变(T1(T1溢出率溢出率溢出率溢出率) ) f fOSCOSC/64 /64 或或或或f fOSCOSC/

86、32 /32 可变可变可变可变(T1(T1溢出率溢出率溢出率溢出率) ) 三、三、 串行口的串行口的 4 种工作模式种工作模式 1. 模式模式 0 同步移位寄存器输入输出模式,可外接移位寄存器,以扩展I/O口。 2. 模式模式 1 串串行行口口工工作作于于模模式式 1 时时, 为为波波特特率率可可变变的的 8 位位异异步步通通信信接接口口。数数据据位位由由 P3.0 (RXD)端端接接收收, 由由P3.1(TXD)端端发发送送。 传传送送一一帧帧信信息息为为 10 位位: 一一位位起起始始位位(0), 8 位位数数据据位位(低低位位在在前前)和和一一位位停停止止位位(1)。波波特特率率是是可可

87、变变的的, 它它取取决决于于定定时时器器 T1 的的溢出速率及溢出速率及SMOD的状态的状态。 模模式式 1 发发送送过过程程。 用用软软件件清清除除 TI后后, CPU执执行行任任何何一一条条以以 SBUF为为目目标标寄寄存存器器的的指指令令, 就就启启动动发发送送过过程程。数数据据由由 TXD引引脚脚输输出出, 此此时时的的发发送送移移位位脉脉冲冲是是由由定定时时器器 /计计数数器器 T1 送送来来的的溢溢出出信信号号经经过过 16 或或 32 分分频频而而取取得得的的。一一帧帧信信号号发发送送完完时时, 将将置置位发送中断标志位发送中断标志TI=1, 向向CPU申请中断申请中断, 完成一

88、次发送过程完成一次发送过程。 (2) 模式 1 接收过程。 用软件清除 RI后, 当允许接收位 REN被置位 1 时, 接收器以选定波特率的 16 倍的速率采样 RXD引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 7、 8、9 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件: RI=0; 接收到的停止位为 1 或 SM2=0。 则停止

89、位送入RB8,8位数据进入SBUF,并置RI1,完成一次接收过程。否则,所接收到的一桢信息将丢失,接收器复位,并从新开始检测负跳变,以便接收下一桢信息。 注意:接收中断标志RI应由软件清除。 3. 模式模式 2 和模式和模式 3。 串行口工作于模式 2 和模式 3 时, 被定义为 9 位位异异步步通信接口。 它们的每帧数据结构是 11 位的: 最低位是起始位(0), 其后是 8 位数据位(低位在先), 第 10 位是用户定义位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。模式 2 和模式3 工作原理相似, 唯一的差别是模式 2 的波特率是固定的, 即为 f / 32或 fOSC

90、 / 64; 而模式 3的波特率是可变的, 与定时器 T1的溢出率有关。 6.5.5 波特率波特率 串行口每秒钟发送或接收的数据位数称为波特率。 假设发送一位数据所需时间为T, 则波特率为 1/T。 (1) 模式 0 的波特率等于单片机晶振频率的 1/12, 即每个机器周期接收或发送一位数据。 (2) 模式 2 的波特率与电源控制器PCON的最高位SMOD的写入值有关: 即 SMOD=0, 波 特 率 为 (1/64) fOSC; SMOD=1, 波 特 率 为(1/32)fOSC。 (3) 模式 1 和模式 3 的波特率除了与SMOD位有关之外, 还与定时器 T1 的溢出率有关。 定时器 T

91、1 作为波特率发生器, 常选用定时方式 2( 8 位重装载初值方式), 并且禁止 T1 中断。此时 TH1 从初值计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是 表表 6.3 定时器定时器T1产生的常用波特率产生的常用波特率 6.6 串行口的应用串行口的应用 一、一、 串行口的编程串行口的编程 串行口需初始化后, 才能完成数据的输入、输出。其初始化过程如下: (1) 按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。 (2) 对于操作模式 2 或 3, 应根据需要在 TB8 中写入待发送的第 9 位数据。 (3) 若选定的操作模式不是模式 0, 还需设定接收/发送的波特

92、率。 设定SMOD的状态, 以控制波特率是否加倍。 若选定操作模式1或3, 则应对定时器 T1进行初始化以设定其溢出率。 串口通信例子串口通信例子功能:将串口接收的数据回传功能:将串口接收的数据回传- - - - - - - - Char a, flag=0;Char a, flag=0;Char a, flag=0;void main()void main()void main() TMOD=0x20; /TMOD=0x20; /TMOD=0x20; /设置定时器设置定时器设置定时器11 1工作方式为工作方式为工作方式为22 2TH1=0xfd; /TH1=0xfd; /TH1=0xfd;

93、/设置波特率设置波特率设置波特率960096009600TL1=0xfd;TL1=0xfd;TL1=0xfd;REN=1; /允许接收SM0=0; SM1=1; /设置串口工作方式TR1=1;EA=1; /开总中断ES=1; /开串口中断while(1) if ( flag=1 ) ES=0; /关串口中断 flag=0; /清零SBUF=a; /设置待发送数据while(!TI); /等待发送完成TI=0; /清除发送中断标志ES=1; 中断服务程序中断服务程序void serail() interrupt 4RI=0; /软件清除接收中断标志a=SBUF; /读数据flag=1;单片机流水

94、灯系统原理图单片机流水灯系统原理图单片机流水灯程序单片机流水灯程序#include #include /包含头文件,其中有对包含头文件,其中有对P0P0P3P3、TCONTCON/SCON/SCON、IEIE、IPIP等的定义等的定义void delay(uint x)void delay(uint x);/软件延时子函数声明软件延时子函数声明sbit LED1 =P20; /sbit LED1 =P20; /将将P2P2口的第口的第0 0位命名为位命名为LED1LED1sbit LED2 =P21;sbit LED2 =P21;sbit LED3 =P22;sbit LED3 =P22;sbit LED4 =P23;sbit LED4 =P23;uchar num; /uchar num; /定义一个变量定义一个变量uchar d;uchar d;void main()void main() while(1)while(1) d=0x01;d=0x01;for(num=0;num4;num+)for(num=0;num4;num+) dnum; /dd0;a-) for(b=100;b0;b-);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号