51单片机定时器计数器外部串行中断服务控制字(详版)

51单片机定时器计数器外部串行中断服务控制字(详版)

ID:20316510

大小:74.50 KB

页数:4页

时间:2018-10-12

51单片机定时器计数器外部串行中断服务控制字(详版)_第1页
51单片机定时器计数器外部串行中断服务控制字(详版)_第2页
51单片机定时器计数器外部串行中断服务控制字(详版)_第3页
51单片机定时器计数器外部串行中断服务控制字(详版)_第4页
资源描述:

《51单片机定时器计数器外部串行中断服务控制字(详版)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、51单片机定时器0中断服务51单R机定时器0工作在模式0,每巾断10次,使P2.0引脚连接的LED灯闪烁。^include"reg_c51.hHintnn;//屮断次数变屮断服务程屮计数count++时,count应在voidmain()外定义为全局变S!!!voidmain(void){//TMOD=OxOF;TMOD&=OxFO;//定时器0运行在模式0,13位计数器//GATE0=0;C/T0#=0;Ml=0;M0=0;THO=0x00;//设置初值0x00,所以计数值为8192(213),若是时钟频率为12MHzTL0

2、=0x00;//则8192us中断一次(定时器每计数一次1Ps,8192次即8192ns)ET0=l;//允许定时器0屮断EA=1;//允许总中断TR0=l;//启动定时器0while(l);//无限循环,没有循环体)voidit_timerO(void)interrupt1定时器0屮断服务程序{nn=nn++;//每次中断nn加1if(nn==10)//当巾断10次后,使LED灯闪烁{nn=0;P2_0=〜P2_0;//引脚P2.0取反}}TCON定时器/计数器控制寄存器TR1TF0TR0IE1IT1IE0①ITO(ITl)

3、:外部中断0(或1)置0:电平触发置h边沿触发②IEO(IEl):外部中断标志硬件置位③TFO(TFl):定时器()(或1)溢出屮断标志(通常用于华询方艾)当T0(Tl)被允许计数后,Tl(T0)从初始值开始加1计数,最高位产生溢出时,该位由內部硬件置位,并向CPU请求申请屮断。当CPU响应时,由硬件清零。硬件置位硬件清零④TRO(TRl):定时器/计数器Tl(TO)的运行控制位置0:关闭定吋器/计数器置1:启动定时器/计数器TMOD定吋器/计数器方式寄存器GATEC/fMlMOCATEC/fMlMOTMOD低4位:定时器0T

4、MOD高4位:定时器1(1)M1M0:工作方式00方式0:13位定吋器/计数器01方式1:16位定时器/计数器10方式2:自动重装8位定时器/计数器11方式3:仅适用于T0,分为两个8位定时器/计数器方式0:M=2I3=8192方式hM=216=65536方式2:M=28=256方式3:定吋器0分成两个8位计数器,所以两个定吋器的M值均为256(2)C/T:计数器/定时器0:定时器1:计数器(3)GATE:门控位GATE=0时,只要TRi=l,定时器/计数器就开始工作,称为软启动。GATE=1时,只有INTi引脚和TRi引脚同

5、时为1时,定时器/计数器才开始工作,主要用于测量INT引脚上高电平脉冲宽度,称为硬启动。SCON寄存器屮断标志SMOSMISM2RENTB8RB8TIRI①Tl(SCON.l):串行发送中断标志硬件置位必须由软件清零②RI(SCON.O):串行接收中断标志硬件置位必须由软件清零中断控制1.IE寄存器EAESET1EX1ETOEXO(1)EA:总中断允许控制位EA=1:开放所有屮断EA=0:禁止所有中断(2)ES:串行口中断允许位ES=1:允许串行口中断ES=O:禁止串行口中断(3)ETl(ETO):定吋器1(或0)中断允许位E

6、T1(ETO)=1:允许定时器屮断ET1(ETO)=O:禁止定时器中断(3)EXl(EXO):外部中断1(或0)中断允许位EX1(EXO)=1:允许外部中断1(或0)EX1(EXO)=O:禁止外部中断1(或0)2.IP寄存器定时器/计数器的初始化(1)确定工作方式,初始化TMOD控制字(-•般是工作方式2,自动重装)。(2)计算定时器或计数器的初值,将初值写入THO、TLO或TH1、TL1。定时器/计数器的初值因工作方式的不同而不同,没最大计数值为M,则各种工作方式下的M值如下:方式0:M=2I3=8192方式1:M=216=

7、65536方式2:M=28=256方式3:定时器0分成两个8位计数器,所以两个定时器的M值均为256因定吋器川•数器工作的实质是做“加1”计数,所以,当最大计数值M值已知吋,初值X可计算如下:X=M-计数值。(3)根据需要开启定时器/计数器中断,对IE寄存器赋值(EA、ETl(ETO)等初始化)⑷启动定时器/计数器工作,将TRO或TR1置“1”。C51中断服务函数的完整语法void函数名(void)interruptx[usingy]•中断函数不能返回任何值,所以最前面用void•函数名避免与C的关键字重名即可•中断函数不带任

8、何参数中断号X:0外部中断01定时器02外部屮断13定时器14串行中断552单片机定时器2usingy:选择当前工作寄存器组,通常省略,由编译器自行选择0^y^3whiled);//超级循环的功能是“等待屮断”外部中断INTOvoidintsvrO(void)interrup

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。