ImageVerifierCode 换一换
格式:PPT , 页数:57 ,大小:1.43MB ,
资源ID:13276887      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13276887.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(定时与中断系统.ppt)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

定时与中断系统.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章内容,中断系统,定时,/,计数器,C,语言的函数,第,4,章 定时与中断系统,4,.,3中断系统,CPU,在处理某一事件,A,时,发生了另一事件,B,请求,CPU,迅速去处理(,中断发生,);,CPU,暂时,中断当前的工作,转去处理事件,B,(,中断响应和中断服务,);,待,CPU,将事件,B,处理完毕后,再回到原来事件,A,被中断的地方继续处理事件,A,(,中断返回,),这一过程称为,中断,。,4.3.1,什么是中断,MCS-51,单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请

2、求,中断响应,执行中断处理程序,中断返回,引起CPU中断的根源,称为,中断源,。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即,断点,),称为中断返回。实现上述中断功能的部件称为,中断系统,(中断机构)。,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:,分时操作,。,CPU,可以分时为多个,I/O,设备服务,提高了计算机的利用率;,实时响应,。,CPU,能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高,。,CPU,具有处理设备故障及掉电等突发性

3、事件能力,从而使系统可靠性提高。,2,、,INT1,(,P3.3,)可由,IT1,(,TCON.2,)选择其为低电平有效还是下降沿有效。当,CPU,检测到,P3.3,引脚上出现有效的中断信号时,中断标志,IE1,(,TCON.3,)置,1,,向,CPU,申请中断。,3,、,T0,(,P3.4,),片内定时,/,计数器,T0,溢出中断请求标志。当定时,/,计数器,T0,发生溢出时,置位,TF0,,并向,CPU,申请中断。,返回,4,、,T1,(,P3.5,),片内定时,/,计数器,T1,溢出中断请求标志。当定时,/,计数器,T1,发生溢出时,置位,TF1,,并向,CPU,申请中断。,5,、,RX

4、P3.0,)或,TX,(,P3.1,),串行口中断请求标志。当串行口接收完一帧串行数据时置位,RI,或当串行口发送完一帧串行数据时置位,TI,,向,CPU,申请中断。,二、中断请求标志,1、TCON的中断标志,IT0,(,TCON.0,):外部中断,0,触发方式控制位。,当,IT0=0,时,为电平触发方式。,当,IT0=1,时,为边沿触发方式(下降沿有效)。,IE0,(,TCON.1,):外部中断,0,中断请求标志位。,IT1,(,TCON.2,):外部中断,1,触发方式控制位。,IE1,(,TCON.3,):外部中断,1,中断请求标志位。,TF0,(,TCON.5,):定时,/,计数器

5、T0,溢出中断请求标志位。,TF1,(,TCON.7,):定时,/,计数器,T1,溢出中断请求标志位。,2、SCON的中断标志,RI,(,SCON.0,):串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位,RI,。注意,,RI,必须由软件清除。,TI,(,SCON.1,):串行口发送中断标志位。当,CPU,将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位,TI,。,CPU,响应中断时,不能自动清除,TI,,,TI,必须由软件清除。,当中断源需要向,CPU,请求中断时,相应中断标志位由硬件自动置,1,。,三、中断的开放和禁止,C

6、PU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。,EX0,(,IE.0,),外部中断,0,允许位;,ET0,(,IE.1,),定时,/,计数器,T0,中断允许位;,EX1,(,IE.2,),外部中断,0,允许位;,ET1,(,IE.3,),定时,/,计数器,T1,中断允许位;,ES,(,IE.4,),串行口中断允许位;,EA,(,IE.7,),,CPU,中断允许(总允许)位。,80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的,。,PX0,(,IP.0,),外部中断,0,优先级设定位

7、PT0,(,IP.1,),定时,/,计数器,T0,优先级设定位;,PX1,(,IP.2,),外部中断,0,优先级设定位;,PT1,(,IP.3,),定时,/,计数器,T1,优先级设定位;,PS,(,IP.4,),串行口优先级设定位;,PT2,(,IP.5,),定时,/,计数器,T2,优先级设定位。,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,80C51单片机的中断优先级有三条原则:,CPU,同时接收到几个中断时,,首先响应优先级别最高的中断请求,。,正在进行的中断过程,不能被新的同级或低优先级的中

8、断请求所中断,。,正在进行的低优先级中断服务,,能被高优先级中断请求所中断,。,为了实现上述后两条原则,,中断系统内部设有两个用户不能寻址的优先级状态触发器,。,其中一个置,1,,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置,1,,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,4,.,3,.,4 中断处理过程,中断响应条件:,中断源发出中断请求;,此中断源的中断允许位为1;,CPU开中断(即EA=1)。,以上三条同时满足时,CPU才有可能响应中断。,中断函数的完整语法:,返回值 函数名(,【,参数,】,),interrupt,n,using,n,中断处理程

9、序,中断编程:,利用,INT1,作为外部中断输入线,每按一次开关,K,使,P1,口处的,8,个,LED,轮流点亮一次。,#include,#include,void main(),EA=1;,EX1=1;,IT1=1;,P1=0 xfe;,while(1);,void int1()interrupt 2 using 1,P1=_crol_(P1,1);,任务,9,:可控霓虹灯控制,正常情况下,8,个霓虹灯依次顺序点亮,循环显示,时间间隔为,1S,。当按下控制按钮后,,8,个霓虹灯同时亮灭一次,时间间隔为,0.5S,。,主程序:,8,个霓虹灯依次循环点亮,时间间隔为,1S,中断处理程序:,8,个

10、霓虹灯同时亮灭一次,时间间隔为,0.5S,延时子函数,1,、主程序:,T0,初始化,开中断。,8,个霓虹灯依次循环点亮,时间间隔为,1S,。,2,、外部中断,INT0,中断处理程序:,8,个霓虹灯同时亮灭一次,时间间隔为,0.5S,3,、定时,/,计数器,T0,中断处理程序:,50ms,定时时间到,,num+,;,#include,#define uchar unsigned char,uchar num;,void main(),uchar num1,w;,TMOD=0 x01;,TH0=(65536-50000)/256;,TL0=(65536-50000)%256;,EA=1;ET0=1

11、EX0=1;IT0=1;PT0=1;,TR0=1;,while(1),w=0 x01;,for(num1=0;num18;num1+),P1=w;,w=1;,while(num!=20);,num=0;,void int0()interrupt 0 using 1,uchar tempt1,tempt2;,tempt1=num;,tempt2=P1;,num=0;,P1=0 x00;,while(num!=10);,P1=0 xff;,while(num!=20);,num=tempt1;,P1=tempt2;,void timer0()interrupt 1 using 0,num+;,T

12、H0=(65536-50000)/256;,TL0=(65536-50000)%256;,4.1定时器/计数器,实现定时功能,,比较方便的办法是利用单片机内部的定时/计数器,。也可以采用下面三种方法:,软件定时,:软件定时不占用硬件资源,但占用了,CPU,时间,降低了,CPU,的利用率。,采用时基电路定时,:例如采用,555,电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。,采用可编程芯片定时,:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时,/,计数器不

13、够用时,可以考虑进行扩展。,4.1.1 定时/计数器的结构和工作原理,一、定时,/,计数器的结构,定时,/,计数器的实质是加,1,计数器(,16,位),由高,8,位和低,8,位两个寄存器组成。,TMOD,是定时,/,计数器的工作方式寄存器,确定工作方式和功能;,TCON,是控制寄存器,控制,T0,、,T1,的启动和停止及设置溢出标志。,二、定时,/,计数器的工作原理,加,1,计数器,输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经,12,分频后送来;一个是,T0,或,T1,引脚输入的外部脉冲源。每来一个脉冲计数器加,1,,当加到计数器为全,1,时,再输入一个脉冲就使计数器回零,且计

14、数器的溢出使,TCON,中,TF0,或,TF1,置,1,,向,CPU,发出中断请求(定时,/,计数器中断允许时)。如果定时,/,计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。,可见,由溢出时计数器的值减去计数初值才是加,1,计数器的计数值,。,设置为定时器模式时,,加,1,计数器是对内部机器周期计数(,1,个机器周期等于,12,个振荡周期,即计数频率为晶振频率的,1/12,)。,计数值,N,乘以机器周期,Tcy,就是定时时间,t,。,设置为,计数器模式时,,外部事件计数脉冲由,T0,或,T1,引脚输入到计数器。在每个机器周期的,S5P2,期间采样,T0,、,T

15、1,引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加,1,,更新的计数值在下一个机器周期的,S3P1,期间装入计数器。由于检测一个从,1,到,0,的下降沿需要,2,个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为,12MHz,时,,最高计数频率不超过,1/2MHz,,即计数脉冲的周期要大于,2,m,s,。,定时,/,计数器的控制,80C51,单片机定时,/,计数器的工作由两个特殊功能寄存器控制。,TMOD,用于设置其工作方式;,TCON,用于控制其启动和中断申请。,一、工作方式寄存器,TMOD,工作方式寄存器,TMOD,用于设置定时,/,计数器

16、的工作方式,低四位用于,T0,,高四位用于,T1,。其格式如下:,GATE,:门控位。,GATE,0,时,只要用软件使,TCON,中的,TR0,或,TR1,为,1,,就可以启动定时,/,计数器工作;,GATA,1,时,要用软件使,TR0,或,TR1,为,1,,同时外部中断引脚或也为高电平时,才能启动定时,/,计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。,:,定时,/,计数模式选择位。,0,为定时模式;,=1,为计数模式。,M1M0,:工作方式设置位。定时,/,计数器有四种工作方式,由,M1M0,进行设置。,二、控制寄存器,TCON,TCON,的低,4,位用于控制外部中断,

17、已在前面介绍。,TCON,的高,4,位用于控制定时,/,计数器的启动和中断申请。其格式如下:,TF1,(,TCON.7,):,T1,溢出中断请求标志位。,T1,计数溢出时由硬件自动置,TF1,为,1,。,CPU,响应中断后,TF1,由硬件自动清,0,。,T1,工作时,,CPU,可随时查询,TF1,的状态。所以,,TF1,可用作查询测试的标志。,TF1,也可以用软件置,1,或清,0,,同硬件置,1,或清,0,的效果一样。,TR1,(,TCON.6,):,T1,运行控制位。,TR1,置,1,时,,T1,开始工作;,TR1,置,0,时,,T1,停止工作。,TR1,由软件置,1,或清,0,。所以,用软

18、件可控制定时,/,计数器的启动与停止。,TF0,(,TCON.5,):,T0,溢出中断请求标志位,其功能与,TF1,类同。,TR0,(,TCON.4,):,T0,运行控制位,其功能与,TR1,类同。,4.1.2,定时,/,计数器的工作方式,一、方式,0,方式,0,为,13,位计数,,由,TL0,的低,5,位(高,3,位未用)和,TH0,的,8,位组成。,TL0,的低,5,位溢出时向,TH0,进位,,TH0,溢出时,置位,TCON,中的,TF0,标志,向,CPU,发出中断请求。,定时器模式时,有,:N,t/Tcy,计数初值计算的公式为:,定时器的初值还可以采用计数个数直接取补法获得。,计数模式时

19、计数脉冲是,T0,引脚上的外部脉冲。,门控位,GATE,具有特殊的作用。当,GATE=0,时,经反相后使,或门输出为,1,,此时仅由,TR0,控制与门的开启,与门输出,1,时,控制开关接通,计数开始;,当,GATE=1,时,,由外中断引脚信号控制或门的输出,此时控制,与门的开启由外部中断引脚信号和,TR0,共同控制,。当,TR0=1,时,外中断引脚信号引脚的,高电平启动计数,,外部中断引脚信号引脚的,低电平停止计数,。这种方式常用来测量外中断引脚上正脉冲的宽度。,二、方式,1,方式,1,的计数位数是,16,位,由,TL0,作为低,8,位、,TH0,作为高,8,位,组成了,16,位加,1,计数

20、器。,计数个数与计数初值的关系为:,三、方式,2,方式,2,为自动重装初值的,8,位计数方式。,工作方式,2,特别适合于用作较精确的脉冲信号发生器。,计数个数与计数初值的关系为,:,四、方式,3,方式,3,只适用于定时,/,计数器,T0,,,定时器,T1,处于方式,3,时相当于,TR1=0,,停止计数。,工作方式,3,将,T0,分成为两个独立的,8,位计数器,TL0,和,TH0,。,定时,/,计数器的初始化,一、初始化步骤,程序应完成如下工作:,对,TMOD,赋值,以确定,T0,和,T1,的工作方式。,计算初值,并将其写入,TH0,、,TL0,或,TH1,、,TL1,。,中断方式时,则对,IE

21、赋值,开放中断。,使,TR0,或,TR1,置位,启动定时,/,计数器定时或计数。,二、定时器的初值X,定时方式:计数初值X=2n 定时时间/机器周期。,其中n=13、16、8、8分别对应方式0、1、2、3。,1、求T1的方式控制字TMOD:,0 1,0,0,0 0 0 0,TMOD=0X01,;,例,1,:,T0,工作于定时方式,1,,定时时间,T=10ms,,系统主频,f=12MHZ,,允许中断,对,T0,进行初始化编程。,2、计算计数初值Count:,由于晶振为,12 MHz,,振荡周期,=1/12MHZ,,所以机器周期,Tcy,为,1,m,s,。,所以:,N,t/Tcy,10000/1

22、10000,Count,65536,10000,55536,D8F0H,即应将0 x,D8,送入,TH0,中,0 x,F0,送入,TL0,中,机器周期,=,(,1/fosc,),12,Count=2n,定时时间,/,机器周期。,(,1/12MHZ,),12,3、开中断,EA=1;ET0=1;,4、启动定时/计数器,TR0=1;,初始化程序:,TMOD=0X01;,TH0=0XD8;,TL0=0XF0;,EA=1;,ET1=1;,TR1=1;,定时器的应用举例,例,2,:设单片机晶振频率,f=6MHZ,,使用定时器,T1,以方式,1,产生周期为,500uS,的等宽正方形脉冲,并由,P1.0,脚

23、输出。,确定,TMOD,寄存器的内容,定时器,/,计数器,1,的工作方式为方式,1,,从而,M1M0=01,;,实现定时功能,从而,C/T=0;,设通过给,TR1,置位来启动定时器工作,从而,GATE=0,;,另外,定时器,/,计数器,0,不用,从而低四位全为,0,;,所以(,TMOD,),=10H,。,计算计数初值,要产生,500us,的等宽正方波脉冲,只需在,P1.0,端以,250us,为周期交替输出高低电平即可实现,从而定时时间为,250us,,,f=6MHz,。则,机器周期,=2us,,利用公式:,定时时间,t=,计数个数,N,机器周期,T,,可得,N=t/T=250us/2us=12

24、5;,计数初值,X=216-125=65536-125;,这样,:,TH1=(65536-125)/256;,TL1=(65536-125)%256,。,一、采用中断方式,#include,void main(),TMOD=0 x10;,TH1=(65536-125)/256;,TL1=(65536-125)%256;,ET1=1;,EA=1;,TR1=1;,while(1);,void timer1_int()interrupt 3,P1_0=P1_0;,TH1=(65536-125)/256;,TL1=(65536-125)%256;,系统电路图,二、采用查询方式,void main(),

25、TMOD=0 x10;,TH1=(65536-125)/256;,TL1=(65536-125)%256;,TR1=1;,While(1),While(TF1),P10=P10;,TR1=0;,TH1=(65536-125)/256;,TL1=(65536-125)%256;,TF1=0;,TR1=1;,例3:设单片机晶振频率f=12MHZ,在P1.0端接一个发光二极管,利用定时T0工作在方式0,使LED亮1s、灭1s,闪烁。(中断/查询),用,T0,、工作方式,0,实现,1,秒延时,晶振频率为,12MHz,。,因工作方式,0,是,13,位计数器,其最大定时时间为:,2131,s=8192,s

26、8.192ms,,为实现,1,秒延时,可选择定时时间为,5ms,,再循环,200,次。定时时间选定后,可确定计数值为,5ms/1,s=5000,,则,T0,的初值为:,X=213,计数值,=8192,5000,。,采用,T0,方式,0,工作,因此,,TMOD=0 x00,。,/*中断方式*/,#include,sbit P1_0=P10;,unsigned char num0;/全局变量,void main(),TMOD=0 x00;,TH0=(8192-5000)%32;,TL0=(8192-5000)/32;,ET0=1;,EA=1;,TR0=1;,While(1),if(num=200

27、),num=0;,P1_0=P1_0;,void timer0_int()interrupt 1,num,;,TH0=,(,8192-5000,),%32;,TL0=,(,8192-5000,),/32;,/*,查询方式*,/,#include,sbit P1_0=P10;,unsigned char num,0,;,void main(),TMOD=0 x00;,TH0=,(,8192-5000,),%32;,TL0=,(,8192-5000,),/32;,TR0=1;,While(1),while(TF0),num+;,if(num=200),num=0;,P1_0=P1_0;,TR0=0

28、TH0=,(,8192-5000,),%32;,TL0=,(,8192-5000,),/32;,TF0=0;,TR0=1;,1、利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。试设计程序。,2、采用晶振12MHz,在P1.0引脚上输出周期为2.5S,占空比为20%的脉冲信号。,3、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期)。,习题,1、MCS-51系列单片机的五个中断源是哪些?请按自然优先级的顺序写出。,2、允许外部中断源IN

29、T1开中断,IE=_。,3、采用定,时,/计数器T,1计数,工作方式0,软硬结合启动,TMOD=_。,4、,利用定时/计数器T1的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。,定时/计数器,设置定时,/,计数器工作方式,通过对方式寄存器,TMOD,的设置,确定相应的定时,/,计数器是定时功能还是计数功能,工作方式以及启动方法。,定时,/,计数器工作方式有四种:方式,0,、方式,1,、方式,2,和方式,3,。,定时,/,计数器启动方式有两种:软件启动和硬软件共同启动。除了从控制寄存器,TCON,发出的软件启动信号外,还有外部

30、启动信号引脚,这两个引脚也是单片机的外部中断输入引脚。,定时/计数器,设置计数初值,T0,、,T1,是,16,位加法计数器,分别由两个,8,位专用寄存器组成,,T0,由,TH0,和,TL0,组成,,T1,由,TH1,和,TL1,组成。,TL0,、,TL1,、,TH0,、,TH1,的访问地址依次为,8AH,8DH,,每个寄存器均可被单独访问,因此可以被设置为,8,位、,13,位或,16,位计数器使用。,在计数器允许的计数范围内,计数器可以从任何值开始计数,对于加,1,计数器,当计到最大值时(对于,8,位计数器,当计数值从,255,再加,1,时,计数值变为,0,),产生溢出。,定时,/,计数器允许

31、用户编程设定开始计数的数值,称为赋初值。初值不同,则计数器产生溢出时,计数个数也不同。例如:对于,8,位计数器,当初值设为,100,时,再加,1,计数,156,个,计数器就产生溢出;当初值设为,200,时,再加,1,计数,56,个,计数器产生溢出。,定时/计数器,启动定时,/,计数器,根据设置的定时,/,计数器启动方式,启动定时,/,计数器。如果采用软件启动,则需要把控制寄存器中的,TR0,或,TR1,置,1,;如果采用硬软共同启动方式,不仅需要把控制寄存器中的,TR0,或,TR1,置,1,,还需要相应外部启动信号为高电平。,在,C,语言程序中,子程序的作用是由函数来实现的,函数是,C,语言的

32、基本组成模块,一个,C,语言程序就是由若干个模块化的函数组成的。,C,程序都是由,一个主函数,main(),和,若干个子函数,构成,,有且只有一个,主函数,程序由主函数开始执行,主函数根据需要来调用其他函数,其它函数可以有多个。,4.2 C,语言的函数,1.,标准库函数,标准库函数是由,C51,的编译器提供的,用户不必定义这些函数,可以直接调用。,KEIL C51,编译器提供了,100,多个库函数供我们使用。常用的,C51,库函数包括一般,I/O,口函数、访问,SFR,地址函数等,在,C51,编译环境中,以头文件的形式给出。,2.,用户自定义函数,用户自定义函数是用户根据需要自行编写的函数,它

33、必须先定义之后才能被调用。,函数分类和定义,函数定义的一般形式是:,函数类型 函数名(形式参数表),形式参数说明,局部变量定义,函数体语句,其中,“函数类型”说明了自定义函数返回值的类型。,“函数名”是自定义函数的名字。,“形式参数表”给出函数被调用时传递数据的形式参数,形式参数的类型必须要加以说明。,ANSI C,标准允许在形式参数表中对形式参数的类型进行说明。,如果定义的是无参数函数,可以没有形式参数表,但是圆括号不能省略。,“局部变量定义”是对在函数内部使用的局部变量进行定义。,“函数体语句”是为完成函数的特定功能而设置的语句。,函数分类和定义,函数调用就是在一个函数体中引用另外一个已经

34、定义的函数,前者称为主调用函数,后者称为被调用函数,函数调用的一般格式为:,函数名(实际参数列表);,如:delay(250);,对于有参数类型的函数,若实际参数列表中有多个实参,则各参数之间用逗号隔开。实参与形参顺序对应,个数应相等,类型应一致。,如:P1=_crol_(P1,1);,函数调用,在一个函数中调用另一个函数需要具备如下条件:,(,1,)被调用函数必须是已经存在的函数(库函数或者用户自己已经定义的函数。,如果函数定义在调用之后,那么必须在调用之前(一般在程序头部)对函数进行声明。,(,2,)如果程序使用了库函数,则要在程序的开头用,include,预处理命令将调用函数所需要的信息包含在本文件中。如果不是在本文件中定义的函数,那么在程序开始要用,extern,修饰符进行函数原型说明。,函数调用,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服