




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章MCS-51单片机的内部资源及应用主要内容:
MCS-51单片机内部各器件的具体结构、组成原理、工作方式的设置及典型应用,为读者后续学习单片机应用系统设计、充分利用单片机内部资源解决工程实际问题奠定基础。重点在于各器件工作方式的设置及灵活应用,难点在于中断系统和定时器/计数器的应用。
3.1.1MCS-51内部并行I/O口
8051有4个8位并行I/O口,分别命名为P0,P1,P2和P3口。1.P0口
P0口为双向三态输入/输出口,P0口既可作为地址/数据总线口,又可作为通用I/O口,可驱动8个TTL输入。在访问3.1MCS-51单片机的并行I/O口
外部存储器时,P0口作地址/数据总线复用口,是一个真正的双向口,并分时送出地址的低8位和送出(或接收)相应存储单元的数据。作通用I/O口时,P0口只是一个准双向口,需要在外部引脚处外接上拉电阻。P0口的位结构如右图所示。2.P2口
P2口常用做外部存储器的高8位地址口。当不用做地址口时,P2口也可作为通用I/O口,这时它也是一个准双向I/O口。不必外接上拉电阻就可以驱动任何MOS驱动电路,且只能驱动4个TTL输入。P2口的位结构如右图所示。3.P1口
P1口常用做通用I/O口,它也是一个标准的准双向I/O口,不必外接上拉电阻就可以驱动任何MOS驱动电路,且只能驱动4个TTL输入。P1口的位结构如右图所示。4.P3口
P3口是一个双功能口,第一功能与P1口一样可用做通用I/O口,也是一个准双向I/O口,能驱动4个TTL输入。另外还具有第二功能。P3口工作在第二功能时各管脚定义如下表所示。P3口的位结构图如右图所示。3.1.2MCS-51内部并行I/O口的应用
MCS-51I/O端口的操作方式:(1)输出数据方式:CPU通过一条数据传送指令就可以把输出数据写入P0~P3的端口锁存器,然后通过输出驱动器送到端口引脚线。例如,下面的指令均可在P0口输出数据。
MOVP0,AANLP0,#dataORLP0,A(2)读端口数据方式:
CPU读入的这个数据并非端口引脚线上的数据。读端口数据可以直接读端口。例如,下面的指令均可以从P1口输入数据。
MOVA,P1MOV20H,P1MOVR0,P1MOV@R0,P1(3)读端口引脚方式:读端口引脚方式可以从端口引脚上读入信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁存器置1,然后才能读端口引脚。因此,用户在读引脚时必须先置位锁存器后读,连续使用两条指令。例如,下面的程序可以读P1引脚上的低4位信号。
MOVP1,#0FH;置位P1引脚的低4位锁存器MOVA,P1;读P1引脚上的低4位信号送累加器A
在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看做状态口,这是由用户决定的。
[例题1]要求将两个BCD拨码开关的数字和,在LED数码管上显示出来。(用CD4511驱动LED)
解:CD4511是BCD锁存—段码译码—共阴LED驱动集成电路,其引脚如右图所示,各引脚功能如下:VCC:接正电源;Vss:接地;A,B,C,D:BCD码输入脚(A为最低位,D为最高位);
Qa~Qg:段码输出脚,高电平有效,最大可输出25mA电流;
BI:熄灭,接低电平则Qa~Qg全部输出低电平;LT:点亮测试,接低电平则Qa~Qg全部输出高电平;LE:锁存允许,接高电平锁存,则输出不会随BCD码输入改变。1.I/O口直接用于输入/输出
硬件电路设计:BCD拨码开关为4位,两个BCD拨码开关分别接至P3口的高四位和低四位(注意:应连接上拉电阻),由P1口的高四位和低四位通过两片CD4511分别扩展两位LED。硬件电路如下图所示。软件设计思想:读P3口引脚,得到输入数据,将数据分成2个4位BCD码,求BCD码和,输出到P1口,通过CD4511驱动LED显示。程序如下:
ORG0100H MOVP3,#0FFH ;读引脚先对其写1MOVA,P3 ;读引脚CPLA ;取反,取真正的键值MOV20H,A ;A中的数据送20H单元保存SWAPA ;A中的内容半字节交换ANLA,#0FH ;A中得到原高4位的反码ANL20H,#0FH ;20H单元中得到原低4位的反码ADDA,20H ;A中为原高低4位反码之和DAA ;BCD码调整MOVP1,A ;输出到P1口SJMP$ ;程序执行完,“原地踏步”END 2.I/O口扩展外部锁存器
为了提高数据传输速率,MCS-51单片机常常需要使I/O口通过外部锁存器和输入设备相连。如下图所示为8051通过74LS373与输入设备连接的接口图。通过中断方式读取数据,8051响应该中断请求后在中断服务程序中通过下面的指令读取输入数据:
MOVDPTR,#7FFFH;DPTR指向74LS373端口,地址为7FFFH)MOVXA,@DPTR;读入数据到A中
3.2MCS-51单片机的中断断系统计算机与外界界的联系是通通过外部设备备(也称为外外设、输入/输出设备或或I/O设备备)与外界联联系的。计算算机与外设之之间不是直接接相连的,而而是通过不同同的接口电路路来达到彼此此间的信息传传送的目的。。计算机与外设设之间交换信信息的方式::(1)无条件件传送方式::外设对计算机机来说总是准准备好的。(2)查询传传送方式:传送前计算机机先查询外设设的状态,若若已经准备好好就传送,否否则就继续查查询/等待。。(3)中断传传送方式:外设通过申请请中断的方式式与计算机进进行数据传送送。(4)直接存存储器存取方方式(DMA):传送数据的双双方直接通过过总线传送数数据,不经经CPU中转转。3.2.1中中断的基基本概念1.中断的定定义所谓“中断””,是指CPU执行正常常程序时,系系统中出现特特殊请求,CPU暂时中中止当前的程程序,转去处处理更紧急的的事件(执行行中断服务程程序),处理理完毕(中断断服务完成))后,CPU自动返回原原程序的过程程。作用:采用中断技术术可以提高CPU效率、、解决速度矛矛盾、实现并并行工作、分分时操作、实实时处理、故故障处理、应应付突发事件件,可使多项项任务共享一一个资源(CPU)。中断与子程序序的最主要区区别:子程序是预先先安排好的,,中断是随机机发生的。中断涉及的几几个环节:中断源、中中断申请、开开放中断、保保护现场、中中断服务、恢恢复现场、中中断返回。2.中断源源中断源是指引引起中断的设设备或事件,,或发出中断断请求的源头头。3.中断的的分类中断按功能通通常可分为可可屏蔽中断、、非屏蔽中断断和软件中断断三类。可屏蔽中断是是指CPU可可以通过指令令来允许或屏屏蔽中断的请请求。非屏蔽中断是是指CPU对对中断请求是是不可屏蔽的的,一旦出现现,CPU必必须响应。软件中断则是是指通过相应应的中断指令令使CPU响响应中断。4.中断优优先权与中断断嵌套中断优先级((也称为中断断优先权)::给每个中断源源指定中断响响应的优先级级别,CPU按中断源源的优先级高高低顺序响应应各中断源发发出的中断请请求。中断嵌套:在某一瞬间,,CPU因响响应某一中断断源的中断请请求而正在执执行它的中断断服务程序时时,若又有一一级别高的中中断源向CPU发出中断断请求,且CPU的中断断是开放的,,CPU可以以把正在执行行的中断服务务程序暂停下下来,转而响响应和处理优优先权更高的的中断源的中中断请求,等等处理完后再再转回来,继继续执行原来来的中断服务务程序,这就就是中断嵌套套。中断嵌套的过过程和子程序序嵌套过程类类似,子程序序的返回指令令是RET,,而中断服务务程序的返回回指令是RETI。5.中断响响应及处理过过程①保护断点点②寻找中断断源③中断处理理④中断返回回保护断点和寻寻找中断源都都是由硬件自动完成的,用户户不用考虑。6.中断系系统的功能中断系统:能够实现中断断功能的硬件件电路和软件件程序。中断系统的功功能:能够实现中断断优先权排队队、中断嵌套套、自动响应应中断和中断断返回等功能能。MCS-51单片机的大大部分中断电电路都是集成成在芯片内部部的,只有外外部中断请求求信号产生电电路才分散在在各中断源电电路和接口电电路中。3.2.2MCS-51的中断断系统MCS-51提供了5个个中断源,2个中断优先先级控制,可可实现2个中中断服务嵌套套。可通过程程序设置中断断的允许或屏屏蔽,设置中中断的优先级级。1.MCS-51的中断断源8051允许许5个中断源源:(1)外部中中断源(中断断标志为IE0和IE1)由((P3.2))端口线引引入,低电平平或下降沿引引起。由((P3.3))端口线引引入,低电平平或下降沿引引起。(2)内部中中断源(中断标志为为TF0、TF1和TI/RI)T0:定时/计数器0中中断,由T0回零溢出引引起。T1:定时/计数器1中中断,由T1回零溢出引引起。TI/RI::串行I/O中断,完成成一帧字符发发送/接收引引起。8051的中中断结构如下下图所示。CPU识别中中断申请的依依据:CPU在每个个机器周期的的S5P2期期间,会自动动查询各个中中断申请标志志位,若查到到某标志位被被置位,将启启动中断机制制。2.中断控制制MCS-51单片机设置置了4个专用用寄存器用于于中断控制,,用户通过设设置其状态来来管理中断系系统。(1)定时器器控制寄存器器TCON((88H))TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:定时器溢出中中断申请标志志位(由硬件自动置位)。=0:定时器未溢出出;=1:定时器溢出(由全“1”变成全“0”)时由硬件自动动置位,申请请中断,中断被CPU响应后由硬硬件自动清零。TR0/TR1:定时器运行启启停控制位(可由用户通通过软件设置置)。=0:定时器停止运运行;=1:定时器启动运运行。IE0/IE1:外部中断申请请标志位(由硬件自动动置位,中中断响应后转转向中断服务务程序时,由由硬件自动清0)。=0:没有外部中断断申请;=1:有外部中断申申请。IT0/IT1:外部中断请求求的触发方式式控制位(可由用户通通过软件设置置)。=0:在INT0/INT1端端申请中断的的信号低电平平有效;=1:在INT0/INT1端端申请中断的的信号负跳变变有效。(2)串行口口控制寄存器器SCON((98H))TI/RI::串行口发送/接收中断申请标志志位(由硬件自动置位,必须由由用户在中断断服务程序中中用软件清0)。=0:没有串行口发送/接收中断申请;=1:有串行口发送/接收中断申请。SCON的高高6位用于串串行口工作方方式设置和串串行口发送/接收控制。。(3)中断允许控控制寄存器IE(0A8H))SM0SM1SM2RENTB8RB8TIRI
EA
ESET1EX1ET0EX0(3))中中断断允允许许控控制制寄寄存存器器IE((0A8H))EAESET1EX1ET0EX0EX0/EX1/ET1/ET0/ES位位::分别别是是/,,T0/T1,,串串行行口口的的中中断断允允许许控控制制位位。。=0::禁止止中中断断;;=1::允许许中中断断。。EA::总的的中中断断允允许许控控制制位位((总总开开关关))::=0::禁止止全全部部中中断断;;=1::允许许中中断断。。(4))中中断断优优先先级级控控制制寄寄存存器器IP((0B8H))8051有有两两个个中中断断优优先先级级,,即即高高优优先先级级和和低低优优先先级级,,每每个个中中断断源源都都可可设设置置为为高高或或低低中中断断优优先先级级,,以以便便CPU对对所所有有的的中中断断实实现现两两级级中中断断嵌嵌套套。。8051内内部部中中断断系系统统对对各各中中断断源源的的中中断断优优先先级级有有一一个个统统一一的的规规定定,,称称为为自自然然优优先先级级((也也称称为为系系统统缺缺省省优优先先级级))。。如如下下表表所所示示。。8051单单片片机机的的中中断断优优先先级级采采用用了了自自然然优优先先级级和和人人工工设设置置高高、、低低优优先先级级的的策策略略,,中中断断处处于于同同一一级级别别时时,,就就由由自自然然优优先先级级确确定定。。开开机机时时,,每每个个中中断断都都处处于于低低优优先先级级,,中中断断优优先先级级可可以以通通过过程程序序来来设设定定,,由由中中断断优优先先级级寄寄存存器器IP来来统统一一管管理理。。(4))中中断断优优先先级级控控制制寄寄存存器器IP((0B8H))PSPT1PX1PT0PX0PX0/PX1::/优先先级级控控制制位位::=0::属低低优优先先级级;;=1::属高高优优先先级级。。PT0/PT1::T0/T1中中断断优优先先级级控控制制位位::=0::属低低优优先先级级;;=1::属高高优优先先级级。。PS1::串行行口口中中断断优优先先级级控控制制位位::=0::属低低优优先先级级;;=1::属高高优优先先级级。。中断断优优先先级级处处理理原原则则::对同时时发发生生多多个个中中断断申申请请时时::不同同优优先先级级的的中中断断同同时时申申请请::先先高高后后低低相同同优优先先级级的的中中断断同同时时申申请请::按按序序执执行行正处处理理低低优优先先级级中中断断又又接接到到高高级级别别中中断断::高高打打断断低低正处处理理高高优优先先级级中中断断又又接接到到低低级级别别中中断断::高高不不理理低低3.中中断断响响应应(1)中中断断响响应应的的条条件件MCS-51单单片片机机工工作作时时,,在在每每个个机机器器周周期期中中都都会会去去查查询询各各个个中中断断标标志志,,如如果果有有中中断断请请求求。。必必须须满满足足下下列列条条件件单单片片机机才才能能响响应应中中断断。。①相相应应的的中中断断是是开开放放的的;;②没没有有同同级级的的中中断断或或更更高高级级别别的的中中断断正正在在处处理理;;③正正在在执执行行的的指指令令必必须须执执行行完完最最后后1个个机机器器周周期期;;④若若正正在在执执行行RETI,,或或正正在在访访问问IE或或IP寄寄存存器器,则则必必须须执执行行完完当当前前指指令令的的下下一一条条指指令令。。后后方方能响响应应中中断断。。(2)中中断断响响应应的的过过程程中断断过过程程包包括括中中断断请请求求、、中中断断响响应应、、中中断断服服务务、、中中断断返返回回四四个个阶阶段段。。中断断请请求求::中断断源源将将相相应应请请求求中中断断的的标标志志位位置置““1””,,表表示示发发出出请请求求,,并并由由CPU查查询询。。中断断响响应应::在中中断断允允许许条条件件下下相相应应中中断断。。断断点点入入栈栈→→撤撤除除中中断断标标志志→→关关闭闭低低同同级级中中断断允允许许→→中中断断入入口口地地址址送送PC。。这这些些工工作作都都是是由由硬硬件件自自动动完完成成的的。。中断断服服务务::根据据入入口口地地址址转转中中断断服服务务程程序序,,包包含含保保护护现现场场、、执执行行中中断断主主体体、、恢恢复复现现场场。。中断断返返回回::执行行中中断断返返回回RETI指指令令→→断断点点出出栈栈→→开开放放中中断断允允许许→→返返回回原原程程序序。。中断断服服务务程程序序入入口口地地址址::中断断响响应应的的主主要要内内容容就就是是由由硬硬件件自自动动生生成成一一条条长长调调用用指指令令((LCALLaddr16)),,CPU执执行行这这条条长长调调用用指指令令便便响响应应中中断断,,转转入入相相应应的的中中断断服服务务程程序序。。这这里里的的addr16就就是是程程序序存存储储器器中中相相应应的的中中断断服服务务程程序序的的入入口口地地址址,,MCS-51的的5个个中中断断源源的的中中断断服服务务程程序序入入口口地地址址是是固固定定的的,,如如下下表表所所示示。。8051的的5个个中中断断源源的的中中断断服服务务入入口口地地址址之之间间相相差差8个个单单元元。。这这8个个存存储储单单元元用用来来存存储储中中断断服服务务程程序序一一般般来来说说是是不不够够的的。。用用户户常常在在中中断断服服务务程程序序地地址址入入口口处处放放一一条条三三字字节节的的长长转转移移指指令令。。一一般般地地,,主主程程序序从从0030H单单元元以以后后开开始始存存放放。。例例如如::ORG0000HLJMPSTART;转转入主主程序,,START为为主程序序地址标标号ORG0003HLJMPINT0;转转外中断断中断服服务程序序ORG000BHLJMPT0;转转定时时器T0中断服服务程序序ORG0030HSTART:…………;主主程序开开始(3)中断响响应时间间正常中断断响应时时间至少少为3~~8个机机器周期期,如果果有同级级或高级级中断服服务,将将延长中中断响应应时间。。4.中断请请求的撤撤除为了避免免中断请请求标志志没有及及时撤除除而造成成的重复复响应同同一中断断请求的的错误,,CPU在相相应中断断时必须须及时将将其中断断请求标标志位撤撤除。8051的5个个中断源源的中断断请求撤撤除的方方法是不不同的。。(1)定定时器溢溢出中断断请求的的撤除定时器溢溢出中断断得到响响应后,,其中断断请求的的标志位位TF0和TF1由硬硬件自动复位。(2)串串行口中中断请求求的撤除除串行口中中断得到到响应后后,其中中断请求求的标志志位TI和RI不能由由硬件自自动复位位,必须须由用户户在中断断服务程程序的适适当位置置通过如如下指令令将它们们撤除。。CLRTI;撤除除发送中中断请求求标志CLRRI;撤除除接收中中断请求求标志或采用字字节型指指令:ANLSCON,#0FCH(3)外部中中断请求求的撤除除外部中断断请求的的两种触触发方式式(电平平触发和和负边沿沿触发))的中断断请求撤撤除的方方法是不不同的。。负边沿触触发方式式:CPU在在前一机机器周期期采到/引引脚为高高,后一一机器周周期采到到为低才才认为是是一次中中断请求求,即依依靠CPU两次次检测((或))上的的负边沿沿触发电电平状态态而置位位外部中中断标志志位IE0或IE1。。CPU可可记忆申申请、可可由硬件件自动撤除中断断申请。。电平触发发方式::/引脚上的的低电平平须持续续到中断断发生。。若中断断返回前前仍未及及时撤除除低电平平,虽然然CPU在响应应中断时时能由硬硬件自动动复位IE0或或IE1,但引引脚上的的低电平平仍会使使已经复复位的IE0或或IE1再次置置位,产产生重复复中断的的错误。。电平触发发型外部部中断请请求的撤撤除必须须由外部部硬件使使(或))上的低低电平随随着其中中断被响响应而变变为高电电平。其其中断请请求撤除除的电路路如下图图所示。。外来的低低电平→→反相→→CP端端产生上上跳沿→→D端端的“0”输出出到Q端端→申请请中断,,中断服务务返回前前对P1.0送送“0””→令令Q端变变为“1”指令如下下:ANLP1,,#0FEH((或CLRP1.0));令Q端端置“1”ORLP1,#01H((SETBP1.0);令SD端置““1”,以免下下次中断断来时Q端不能能变“0”3.2.3MCS-51中断系系统的编编程(1)中中断初始始化设置置:开相应中中断允许许(IE))、根据据需要选选择优先先级(IP))和选选择外中中断触发发方式((TCON),,设置计计数器、、串行口口的有关关参数。。(2)中中断服务务程序的的编写::中断入口口、保护护现场、、关中断断、中断断服务主主体程序序、恢复复现场、、开中断断、设置置计数器器、串行行口的有有关参数数、中断断返回指指令RETI。。[例题2]设8051外部部中断源源接引脚脚,,中断断触发方方式为电电平触发发,试编编制8051中中断系统统的初始始化程序序。解:采用用位操作作指令实实现(也也可以采采用传送送指令和和逻辑指指令)。。SETBEA;开开总中中断SETBEX0;开中中断SETBPX0;设设置为高高优先级级CLRIT0;设设置置为电电平触触发方方式[例题3]通过外部中中断控控制八八盏灯灯循环环点亮亮。解:通过P1口口扩展展八盏盏灯,,在引引脚脚接一一个按按钮开开关到到地,,每按按一下下按钮钮就申申请一一次中中断,,点亮亮一盏盏灯,,中断断服务务则是是:依依次点点亮八八盏灯灯中的的一盏盏。采采用边边沿触触发。。硬件件电路路如下下图所所示。。程序如如下::ORG0000HLJMPMAINORG0013H;中中断断服务务程序序入口口地址址LJMPIN11MAIN::SETBEA;开开总总中断断允许许“开开关””SETBEX1;开开分分中断断允许许“开开关””CLRPX1;低低优优先级级(也也可不不要此此句))SETBIT1;边边沿触触发MOVA,#01H;给给累加加器A赋初初值SJMP$;原原地地等待待中断断申请请IN11::RLA;左环移移一次次MOVP1,A;输输出到到P1口RETI;中中断返返回END3.2.4MCS-51扩展外外部中中断请请求输输入口口8051单单片机机只提提供了了两个个外部部中断断请求求输入入端,,如果果需要要使用用多于于两个个的中中断源源,就就必须须扩展展外部部中断断请求求输入入口。1.定定时器器/计计数器器用于于扩展展外部部中断断请求求输入入口8051单单片机机有两两个定定时器器/计计数器器,它它们作作为计计数器器使用用时,,计数数输入入端T0((或T1))发生生负跳跳变将将使计计数器器加1,利利用此此特性性,适适当设设置计计数初初值,,就可可以把把计数数输入入端T0((或T1))作为为外部部中断断请求求输入入口。。其特特点是是以占占用内内部定定时中中断为为代价价的。。中断断服务务程序序的入入口地地址仍然为为000BH或或001BH。。2.查查询方方式扩扩展外外部中中断请请求输输入口口把多个个中断断源通通过硬硬件((如与与非门门)引引入外外部中中断输输入端端,同同时又又连到到某个个I/O口口。当当有中中断源源申请请中断断时,,在中中断服服务程程序中中通过过软件件查询询可确确定哪哪一个个是正正在申申请的的中断断源,,其查查询的的次序序可由由中断断优先先级决决定。。其特特点是是中断断响应应速度度较慢慢。适适用用于外外部中中断源源较多多的场场合。。3.使用专专用芯片扩扩展外部中中断请求输输入口当外部中断断源较多,,同时又要要求中断响响应速度很很高时,查查询方式扩扩展外部中中断请求输输入口的方方法很难满满足要求。。这时可以以使用专用用接口芯片片进行外部部中断请求求输入口的的扩展。74LS148优先先级编码器器和可编程程中断控制制器8259均可以以实现该任任务。3.3MCS-51单片机的定定时器/计数器3.3.1定时器/计数器1.基本概概念(1)计数:计数是指对对外部事件件的个数进进行计量。。其实质就就是对外部部输入脉冲冲的个数进进行计量。。实现计数数功能的器器件称为计计数器。(2)定时:8051单单片机中的的定时器和和计数器是是一个部件件,只不过过计数器记记录的是外外界发生的的事件,而而定时器则则是由单片片机内部提提供一个非非常稳定的的计数源进进行定时的的。这个计计数源是由由单片机的的晶振经过过12分频频后获得的的一个脉冲冲源。所以以定时器计计数脉冲的的时间间隔隔与晶振有有关。(3)定时的种种类软件定时::利用执行一一个循环程程序进行时时间延迟。。其特点是是定时时间间精确,不不需外加硬硬件电路,,但占用CPU时间间。因此软软件定时的的时间不宜宜过长。硬件定时::利用硬件电电路实现定定时。其特特点是不占占用CPU时间,通通过改变电电路元器件件参数来调调节定时,,但使用不不够灵活方方便。对于于时间较长长的定时,,常用硬件件电路来实实现。可编程定时时器:通过专用的的定时器/计数器芯芯片实现。。其特点是是通过对系系统时钟脉脉冲进行计计数实现定定时,定时时时间可通通过程序设设定的方法法改变,使使用灵活方方便。也可可实现对外外部脉冲的的计数功能能。MCS-51单片机机内部有两两个16位位可编程的的定时器/计数器,,简称为T0和T1,均可作作定时器用用也可计数数器,它们们均是二进进制加法计计数器,当当计数器计计满回零时时能自动产产生溢出中中断请求,,表示定时时时间已到到或计数已已终止。适适用于定时时控制、延延时、外部部计数和检检测等。计数器:对引脚T0(P3.4))和T1((P3.5.)输入入的外部脉脉冲信号计计数,当输输入脉冲信信号从1到到0的负跳跳变时,计计数器就自自动加1。。计数的最最高频率一一般为振荡荡频率的1/24。。定时器:对系统晶振振振荡脉冲冲的12分分频输出进进行计数。。(1)定时时器/计数数器的结构构组成:16位加法法计数器、、工作方式式寄存器TMOD和和控制寄存存器TCON。T0:TL0(低低8位)和和TH0((高8位))T1:TL1(低低8位)和和TH1((高8位))2.MCS-51内部定时器器/计数器8051单单片机内部部的定时器器/计数器器的结构如如下图所示示。(2)控制寄存存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:T0/1计计数溢出标标志位。可可用于申请请中断或供供CPU查查询。在进进入中断服服务程序时时会自动清清零;但在在查询方式式时必须软软件清零。。=1:计数溢出;;=0:计数未满。。TR0/TR1:T0/1启启停控制位位。=1:启动计数;;=0:停止计数。。IE0/IE1和IT0/IT1:用于管理外外部中断((前面已介介绍过)。。M1,M0:工作方式选选择位。。=00:13位定时时器/计数数器;=01:16位定时时器/计数数器(常用用);=10:可自动重装装的8位定定时器/计计数器(常常用);=11:T0分为为2个8位位定时器/计数器;;仅适用于于T0。C/::定时方式/计数方式式选择位。。=1:选择计数器器工作方式式,对T0/T1引引脚输入的的外部事件件的负脉冲冲计数;=0::选择定时器器工作方式式,对机器器周期脉冲冲计数定时时。如下页图所所示。(2)工作作方式寄存存器TMODGATEC/T
M1
M0GATEC/T
M1
M0T1T2GATE::门控位,定定时器/计计数器的启启/停可由由软件与硬硬件两者控控制=0::软件控制,,只由TCON中的的启/停控控制位TR0/TR1控制定定时器/计计数器的启启/停。=1::硬件控制,,由外部中中断请求信信号/和和TCON中的启/停控制位位TR0/TR1组组合状态控控制定时器器/计数器器的启/停停。其控制逻辑辑如下图所所示。3.3.2定时时器/计数数器的工作作方式8051单单片机的定定时器/计计数器共有有四种工作作模式,现现以T0为为例加以介介绍,T1与T0的的工作原理理相同,但但方式3下下T1停止止计数。方方式(如F0)和用用户定义名名称等几种种方式。1.工作方方式0(M1M0=00,,13位位定时器/计数器))由TH0的的全部8位位和TL0的低5位位(TL0的高3位未用))构成13位加1计计数器,当当TL0低低5位计数数满时直接接向TH0进位,并并当全部13位计数数满溢出时时,溢出标标志位TF0置“1”。2.工作方方式1((M1M0=01,16位定时器器/计数器器)由TH0和和TL0构构成16位位加1计数数器,其他他特性与工工作方式0相同。3.工作方方式2((M1M0=10,自动动重装计数数初值的8位定时器器/计数器器)16位定时时器/计数数器被拆成成两个8位位寄存器TH0和TL0,CPU在对对它们初始始化时必须须装入相同同的定时器器/计数器器初值。以以TL0作作计数器,,而TH0作为预置置寄存器。。当计数满满溢出时,,TF0置置“1”,,同时TH0将计数数初值以硬硬件方法自自动装入TL0。这这种工作方方式很适合合于那些重重复计数的的应用场合合(如串行行数据通信信的波特率率发生器))。4.工作方方式3((M1M0=11,2个8位定定时器/计计数器,仅仅适用于T0)TL0:8位定时器器/计数器器,使用T0原有控控制资源TR0和TF0,其其功能和操操作与方式式0或方式式1完全相相同。TH0:只能作为8位定时器器,借用T1的控制制位TR1和TF1,只能对对片内机器器周期脉冲冲计数。在方式3模模式下,定定时器/计计数器0可可以构成两两个定时器器或者一个个定时器和和一个计数数器。T0方式3下的T1方式2,,因定时初初值能自动动恢复,用用作波特率率发生器更更为合适。。定时器/计计数器可按按片内机器器周期定时时,也可对对由T0/T1引脚脚输入一个个负脉冲进进行加法计计数。在应应用时,其其工作方式式和工作过过程均可通通过程序设设定和控制制,因此,,定时器/计数器在在工作前必必须先对其其进行初始始化,计算算和设置初初值。1.定时时器T0/T1中中断申请过过程(1)在已已经开放T0/T1中断允许许且已被启启动的前提提下,T0/T1加1计满满溢出时TF0/TF1标标志位自动动置“1””;(2)CPU检测到TCON中TF0/TF1变变“1””后,将将产生指指令:LCALL000BH/LCALL001BH执行行中断服服务程序序;(3)TF0/TF1标志位位由硬件件自动清清“0””,以备备下次中中断申请请。3.3.3定时器/计数器的的应用2.定时器/计数器初初始化的的步骤(1)写写TMOD,设设置定时时器/计计数器的的工作方方式;((2)计算算定时器器/计数数器的初初值,写写入TH0/TH1、、TL0/TL1。((3)设置置IE、、IP,,以开放放相应的的中断和和设定中中断优先先级。3.定定时器/计数器器的定时时器/计计数器范范围(1)工工作方式式0:13位定定时器/计数器器方式最大计数数值=213=8192(2)工工作方式式1:16位定定时器/计数器器方式最大计数数值=216=65536(3)工作方式式2和工作方方式3:8位的定定时器/计数器器方式因因此,最大计数数值=28=2563.计数器初初值的计计算方法:用最大计计数量减减去需要要的计数数次数。。即:TC=MC其中:TC———计数器器需要预预置的初初值;M——计计数器的的模值((最大计计数值));方式0时时,M=213;方式1时,M=216;方式2,3时,M=28;C——计计数器计计满回0所需的的计数值值,即设设计任务务要求的的计数值值。例如:流水线上上一个包包装是12盒,,要求每每到12盒就产产生一个个动作,,用单片片机的工工作方式式0来控控制,则则应当预预置的初初值为::TC=MC=21312=81804.定时器初初值的计计算定时时间间的计算算公式为为:T=(MTC)××T0(或TC=MT/T0)其中:T——定定时器的的定时时时间,即即设计任任务要求求的定时时时间;;T0——计数数器计数数脉冲的的周期,,即单片片机系统统主频周周期的12倍;;M——计计数器的的模值;;TC———定时器器需要预预置的初初值。若设初值值TC=0,则则定时器器定时时时间为最最大。若若设单片片机系统统主频为为12MHz,,则各种种工作方方式定时时器的最最大定时时时间为为:工作方式式0:Tmax=213×1s=8.192ms工作方式式1:Tmax=216×1s=65.536ms工作方式式2和3:Tmax=28×1s=0.256ms5.定时器/计数器应应用举例例[例题4]设一只发发光二极极管LED和8051的P1.0脚脚相连。。当P1.0脚脚是高电电平时,,LED发亮;;当P1.0脚脚是低电电平时,,LED不亮。。编制程程序用定定时器来来实现发发光二极极管LED的闪闪烁功能能,设置置LED每1s闪烁一一次。已已知单片片机系统统主频为为12MHz。。解:定时器/计数器器的最长长的定时时是65.536ms,无法法实现1s的定定时。可可以采用用软件计计数器来来进行设设计。设计思想想:定义一个个软件计计数器单单元30H,先先用定时时器/计计数器0做一个个50ms的定定时器,,定时时时间到了了以后将将软件计计数器中中的值加加1,如如果软件件计数器器计到了了20,,取反P1.0,并清清掉软件件计数器器中的值值,否则则直接返返回。则则完成了了20次次定时中中断才取取反一次次P1.0,因因此定时时时间就就为20×50=1000ms=1s。定时器/计数器器0采用用工作方方式1,,其初值值为:21650ms/1s=6553650000=15536=3CB0H电路图如如下:程序如下下:ORG0000HAJMPSTART;转入入主程序序ORG000BH;定时时器/计计数器0的中断断服务程程序入口口地址AJMPTIME0;跳跳转到真真正的定定时器中中断服务务程序处处ORG0030HSTART:MOVSP,#60H;设设置堆栈栈指针MOVP1,#0FFH;关关发光二二极管LED((使其灭灭)MOV30H,#00H;软软件计数数器预清清0MOVTMOD,#01H;定时时器/计计数器0工作于于方式1MOVTH0,#3CH;设置定定时器/计数数器的初值MOVTL0,#0B0HSETBEA;开总总中断允许SETBET0;开开定时器/计计数器0中断断允许SETBTR0;启动定定时器/计数数器0LOOP:AJMPLOOP;循循环环等待待(真正正工作作时,,这里里可写写任意意其他他程序序)定时器器/计计数器器0的的中断断服务务程序序如下下:TIME0:PUSHACC;将将PSW和和ACC推推入堆堆栈保保护PUSHPSWINC30H;软软件计计数器器加1MOVA,30HCJNEA,#20,T_LP2;软软件计计数器器单元元中的的值到到了20了了吗??到了,,继续续执行行;否否则则,转转入T_LP2T_LP1:CPLP1.0;到到了,,P1.0取反反MOV30H,#00H;清清软软件计计数器器T_LP2:MOVTH0,#3CH;重重置定定时器器/计计数器器的初初值MOVTL0,#0B0HPOPPSW;恢恢复PSW和ACCPOPACCRETI;中中断断返回回END[例题题5]设外部部有一一个计计数源源。编编制程程序,,对外外部计计数源源进行行计数数并显显示。。解:将外部部计数数源连连到定定时器器/计计数器器1的的外部部引脚脚T1上,,可用用LED将将计数数的值值显示示出来来,我我们用用P1口连连接的的8个个LED来来显示示计到到的数数据。。LED对对P1口电电平要要求同同例4。(电路路图类类同例例3))程序如如下::ORG0000HAJMPSTART;转转入主主程序序ORG0030HSTART:MOVSP,#60H;设设置置堆栈栈指针针MOVTMOD,#60H;定定时器器/计计数器器1作作计数数用SETBTR1;启启动动计数数器1开始始运行行LOOP:MOVA,TL1;读读计数数器1的计计数值值送AMOVP1,A;将将计计数值值输出出到P1口口,驱驱动LED显示示AJMPLOOP;转转回回LOOPEND3.4MCS-51单单片机机的串串行通通信3.4.1概概述述1.通通信通信::单片机机与外外界进进行信信息交交换统统称为为通信信。8051单片机机的通通信方方式有有两种种:并行通通信::数据的的各位位同时时发送送或接接收。。特点点是传传送速速度快快、效效率高高,但但成本本高。。适用用于短短距离离传送送数据据。计计算机机内部部的数数据传传送一一般均均采用用并行行方式式。串行通通信::数据一一位一一位顺顺序发发送或或接收收。特特点是是传送送速度度慢,,但成成本低低。适适用于于较长长距离离传送送数据据。计计算机机与外外界的的数据据传送送一般般均采采用串串行方方式。。2.数数据据通信信的制制式单工方方式::数据仅仅按一一个固固定方方向传传送;;半双工工方式式:数据可可实现现双向向传送送,但但不能能同时时进行行;全双工工方式式:允许双双方同同时进进行数数据双双向传传送;;多工方方式::在同一一线路路上实实现资资源共共享。。3.串串行行通信信的分分类串行数数据通通信按按数据据传送送方式式可分分为异异步通通信和和同步步通信信两种种形式式:同步方方式::以数据据块为为单位位进行行数据据传送送,包包括同同步字字符、、数据据块和和校验验字符符CRC。。优点点是数数据传传输速速率较较高,,缺点点是要要求发发送时时钟和和接收收时钟钟保持持严格格同步步。数数据格格式如如下图图所示示。异步方方式::以字符为为单位位进行行数据据传送送,每每一个个字符符均按按固定定的字字符格格式传传送,,又被被称为为帧。。优点点是不不需要要传送送同步步脉冲冲,可可靠性性高,,所需需设备备简单单;缺缺点是是字符符帧中中因包包含有有起始始位和和停止止位而而降低低了有有效数数据的的传输输速率率。数据格格式如如下图图所示示:4.串串行行数据据通信信的波波特率率波特率率是指指每秒秒钟传传送信信号的的数量量,单单位为为波特特(Baud))。而而每秒秒钟传传送二二进制制数的的信号号数((即二二进制制数的的位数数)定定义为为比特特率,,单位位是bps(bitpersecond))或写写成b/s(位位/秒秒)。。在单片片机串串行通通信中中,传传送的的信号号是二二进制制信号号,波波特率率与比比特率率数值值上相相等。。单位位采用用bps。。例如,,异步步串行行通信信的数数据传传送的的速率率是120字符符/秒秒,而而每个个字符符规定定包含含10位数数字,,则传传输波波特率率为::120字符符/秒秒×10位/字符符=1200位位/秒秒=1200bps3.4.2MCS-51的串串行口口MCS-51单单片机机内部部有一一个全全双工工的串串行通通信口口(P3.0、、P3.1),,既既可作作UART(通通用异异步接接收/发送送器))用,,也可可作同同步移移位寄寄存器器使用用,还还可用用于网网络通通信,,其帧帧格式式可有有8位位、10位位和11位位,并并能设设置各各种波波特率率。1.串行行口寄寄存器器结构构(1))两个个物理理上独独立的的同名名的接接收/发送送缓冲冲寄存存器SBUF指令MOVSBUF,A启启动一一次数数据发发送,指指令MOVA,,SBUF完完成一一次数数据接接收,即即向发发送缓缓冲器器SBUF写入入数据据即可可发送送数据据,从从接收收缓冲冲器SBUF读读出数数据即即可接接收数数据。。(2))输入入和输输出移移位寄寄存器器和控控制器器等组组成。。(3))2个个SFR寄寄存器器SCON和PCON,,用于于串行行口的的初始始化编编程。。(4))接接收收/发发送送数数据据,无无论论是是否否采采用用中中断断方方式式工工作作,每每接接收收/发发送送一一个个数数据据都都必必须须用用指指令令对对RI/TI清清0,,以以备备下下一一次次收收/发发。。SBUF(发)SBUF(收)发送控制器TI接收控制器RI移位寄存器波特率发生器T11A累加器(门)移位寄存器RxD(P3.1)TxD(P3.1)去申请中断引脚引脚CPU内部MCS-51串串行行口口的的结结构构如如下下图图所所示示::2.串行通信控制制寄存器SCON(98H)SM0SM1
SM2RENTB8RB8
TIR1SM0,SM1:串行口4种工工作方式控制制位。=00:方式0,8位位同步移位寄寄存器,其波波特率为fosc/12;=01:方式1,10位UART,其波特率率为可变,由由定时器控制制;=10:方式2,11位UART,其波特率率为fosc/64或fosc/32;=11:方式3,11位UART,其波特率率为可变,由由定时器控制制。其中:fosc为系统晶振频频率。RI,TI::串行口收/发发数据申请中中断标志位=1申请中中断;=0不申请请中断。RB8:在方式2、3中,用于存存放收到的第第9位数据;;在双机通信信中,作为奇奇偶校验;在在多机通信中中,用作区别别地址帧/数数据帧的标志志。TB8:方式2、3中中,是要发送送的第9位数数据;在双机机通信中,用用于对接收到到的数据进行行奇偶校验;;在多机通信信中,用作判判断地址帧/数据帧,TB8=0表表示发送的的是数据,TB8=1表表示发送的的是地址。REN:串行口接收允允许控制位=1:表示允许接收收;=0:禁止接收。SM2:串行口多机通通信控制位,,作为方式2、方式3的的附加控制位位。3.中断允允许寄存器IE(0A8H)中断允许寄存存器IE在3.2.2节节中已介绍。。其中对串行行口有影响的的位ES。ES为串行中中断允许控制制位。ES=1:允许串行中断断;ES=0:禁止串行中断断。4.电源管管理寄存器PCON(87H)不可位寻址。。PCON主要用于实实现电源控制制而设置的专专用寄存器,,已在1.3.3节中介介绍过。其格格式如下图所所示。SMOD
GF1GF0
PD1DLSMOD:串行口波特率率倍增位=1:串行口波特率率加倍。=0:串行口波特率率不变,系统统复位时默认认为SMOD=0。3.4.3串串行口的的工作方式1.工作方方式0(8位移位寄存存器I/O方方式)发送/接收过过程:SBUF中的的串行数据由由RxD逐位位移出/移入入(低位在先先,高位在后后);TxD输出移位时时钟,频率=fosc1/12;每每送出/接收收8位数据TI/RI自动置1;需要用软软件清零TI/RI。注意:串行口在方式式0下的工作作并非是一种种同步通信方方式,经常配合“串串入并出”““并入串出””移位寄存器器一起使用,,以达到扩展一一个并行口的的目的。扩扩展电路如下下图所示。如要发送数据据,查询方式式的程序如下下:MOVSCON,#00H;;串行口方式式0MOVSBUF,A;;将将数据送出JNBTI,$;;等待数据据发送完毕CLRTI;;为下次次发送作准备备注意:复位时,SCON已经经被清零,缺缺省值为方式式0。发送条件:TI=0。接收条件:TI=0,置置位REN=1(允允许接收数据据)。2.方式1(波特率可变的的10位异步通信方方式)发送/接收数数据的格式::一帧信息包括括1个起始位位0,8个数数据位和1个个停止位1。。发送/接收过过程:SBUF中的的串行数据由由RXD逐位位移出/移入入;TXD输输出移位时钟钟,频率=((2SMOD/32)T1的溢出出率,波特率可变。。每送出/接接收8位数据据TI/RI自动置置1;需要用用软件清零TI/RI。工作作时,发送端端自动添加一一个起始位和和一个停止位位;接收端自自动去掉一个个起始位和一一个停止位。。发送/接收条条件:同方式0。3.方式2(固定波特率的的11位异步接收/发送方式)发送/接收过过程:方式2的接收收/发送过程程类似于方式式1,所不同同的是它比方方式1增加了了一位“第9位”数据(TB8/RB8),用用于“奇偶校校验”。方式式2常用于单单片机间通信信。波特率=fosc2SMOD/64。发送/接收条条件:同方式0。3.方式3(可变波特率的的11位异步接收/发送方式)方式3和方式2唯一一的区别是波波特率机制不不同,方式3的波特特率=(2SMOD/32)T1的溢出出率。奇偶校验:奇偶校验是检检验串行通信信双方传输的的数据正确与与否的一个措措施,并不能能保证通信数数据的传输一一定正确。即即如果奇偶校验发生生错误,表明明数据传输一一定出错了;;如果奇偶校校验没有出错错,绝不等于于数据传输完完全正确。奇校验规定::8位有效数据据连同1位附附加位中,二二进制“1””的个数为奇奇数。偶校验规定::8位有效数据据连同1位附附加位中,二二进制“1””的个数为偶偶数。约定发送采用用奇校验:若发送的8位位有效数据中中“1”的个个数为偶数,,则要人为在在附加位中添添加一个“1”一起发送送;若发送的的8位有效数数据中“1””的个数为奇奇数,则要人人为在附加位位中添加一个个“0”一起起发送。约定接收采用用奇校验:若接收到的9位数据中““1”的个数数为奇数,则则表明接收正正确,取出8位有效数据据即可;若接接收到的9位位数据中“1”的个数为为偶数,则表表明接收出错错!应当进行行出错处理。。采用偶校验时,处处理方法与奇奇校验类似。。3.4.4串串行口的的通信波特率率串行口的通信信波特率恰到到好处地反映映了串行传输输数据的速率率。在MCS-51串行行口的四种工工作方式中,,方式0和2的波特率是是固定的,而而方式1和3的波特率是是可变的,由由定时器T1的溢出率((T1溢出信信号的频率))控制。各种种方式的通信信波特率如下下:方式0:波特率固定为为fosc/12。其中:fosc———系统主机晶晶振频率方式2:波特率由PCON中的选选择位SMOD来决定,,可由下式表表示:波特率=(2SMOD/64)×fosc方式1和方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年CPSM考试自由应考试题及答案
- 时效性在全媒体运营中的重要性试题及答案
- 2025年安徽省铜陵市单招职业适应性测试题库及答案一套
- 2025年安阳职业技术学院单招职业适应性考试题库及答案一套
- 预防肺炎第一课
- 2025年安徽现代信息工程职业学院单招职业适应性考试题库及答案1套
- 边防专业能力测试题及答案
- 干货满满的电子商务试题及答案
- 2024年CPSM考试战略试题及答案
- 微生物肥料在土壤修复中的应用考核试卷
- 2025年上半年黑龙江鹤岗市兴山区招聘事业单位人员5人重点基础提升(共500题)附带答案详解-1
- 区域临床检验中心
- 2024年版人民医院新院建设施工合作合同一
- 基于大数据的拉萨旅游业市场分析
- 术后疼痛病人中医护理
- 布局经营-绘画构图基础 课件-2024-2025学年高中美术人美版(2019)选择性必修1 绘画
- 人力资源社会保障宣传工作计划及打算
- 语法辨析-中考语文真题题源解密(辽宁版)(带答案)
- 养老院安全管理体系方案
- 2024年贵州省公务员录用考试《行测》真题及答案解析
- 2024-2030年中国建筑垃圾处理行业发展分析及投资规划研究报告
评论
0/150
提交评论