您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 单片机飞思卡尔PIT模块
周期中断定时器(PIT)•定时器简介•周期中断定时器简介(PIT)•周期中断定时器寄存器•PIT模块编程范例•时钟产生器模块定时器简介——为什么使用定时器时间延迟的产生和测量外部信号周期和脉冲宽度的测量事件计数器事件发生时间比较器波形发生器周期性的中断产生定时器实际上是计数器,它通过累计已知时间间隔的个数来计算时间。被累计的时间间隔若是系统时钟,计数器就变成了定时器。定时器简介——怎样获得定时器程序设计软件定时器voiddelay(void){unsignedinti,j;for(i=0;i10;i++)for(j=0;j10000;)j++;}微处理器常常内置定时器(硬件定时器)–MCS51单片机内有二个16位定时器、计数器–MC9S12XS内置RTI(RealTimeInterrupt)ECT–enhancedcapturetimerOC–OutputcomparerPWM–PulsewidthmodulationPeriodandpulsewidthmeasurement四个24位PIT定时器定时器简介——怎样获得定时器外围扩展定时器8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。定时器简介——怎样获得定时器外围扩展定时器DS12887把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下:(1)内含一个锂电池,断电情况运行十年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3)二进制数码或BCD码表示时间、日历和定闹。(4)12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。(5)MOTOROLA5和INATAEL总线时序选择。(6)有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。(7)可编程方波信号输出。(8)中断信号输出(IRQ)可以产生500ms一次到每122μs一次的中断定时器简介——定时器的主要性能参数位数加1或是减1时钟重装载周期中断定时器简介(PIT)4路24位定时器,每路可以分别打开或关闭1~2^24个总线周期定时产生中断信号周期中断定时器寄存器1、PIT控制寄存器及强制载入微定时器寄存器PITCFLMTPITE:PIT模块使能位0禁止PIT1使能PITPITSWAIT:等待模式PIT停止控制位0在等待模式下PIT正常运行1在等待模式下PIT时钟产生器停止PITFRZ:冻结模式PIT计数器冻结控制位0在冻结模式下PIT正常运行1在冻结模式下PIT计数器失去作用PFLMT[1..0]:PIT强制载入微定时器模数值控制位1相应的8位微定时器模数值被载入8位微定时器递减计数器中0强制载入无效地址:$0340周期中断定时器寄存器2、PIT强制载入定时器寄存器PITFLTPFLT[3..0]:PIT强制载入定时器模数值控制位1相应的16位定时器模数值被载入16位定时器递减计数器中0强制载入无效3、PIT通道使能寄存器PITCEPCE[3..0]:PIT使能控制位。该寄存器使能PIT四个通道,如果PCE写0,PIT通道将被禁止,PITTF中相应的标志位也将被清除;如果PCE写1,PIT通道使能,16位定时器计数器被载入起始值并开始计数。1通道使能0通道禁止地址:$0341地址:$0342周期中断定时器寄存器4、PIT定时器复合寄存器PITMUXPMUX[3..0]:PTI定时器复合寄存器控制位。该寄存器控制16位定时器与8位微定时器时基0或者时基1连接复合。0相应16位定时器与微时基0连接1相应16位定时器与微时基1连接5、PIT中断使能寄存器PITINTEPINTE[3..0]:PIT定时器溢出中断使能控制位。0PIT相应通道溢出中断禁止1PIT相应通道溢出中断使能周期中断定时器寄存器6、PIT溢出标志寄存器PITTFPIF[3..0]:PIT通道溢出标志位。当16位定时器计数器和相复合的8位微定时器计数器递减到0后,相应位的标志位被置位。写1后清除标志位,写0无效。0PIT相应通道没有发生溢出中断1PIT相应通道发生了溢出中断7、PIT微定时器装载寄存器PITMTLD0/PITMTLD1周期中断定时器寄存器8、PIT定时器装载寄存器PITLD0/PITLD1/PITLD2/PITLD3PLD[15..0]:同上原理。周期中断定时器寄存器9、PIT通道计数器PITCNT[0..4]PCNT[15..0]:该寄存器存放16位递减计数器值。PIT模块编程范例voidinitIOBoutput(void)//IO口初始化,B口为输出{DDRB=0XFF;PORTB=0XFF;}voidinitPIT(void)//定时中断初始化函数50MS定时中断设置{PITCFLMT_PITE=0;//定时中断通道0关PIT使能端PITCE_PCE0=1;//定时器通道0使能PITMTLD0=240-1;//8位定时器初值设定。240分频,在24MHzBusClock下,为0.1MHz即10us.PITLD0=PITTIME-1;//16位定时器初值设定。PITTIME*0.01MSPITINTE_PINTE0=1;//定时器中断通道0中断使能PITCFLMT_PITE=1;//定时器通道0使能}初始化模块PIT模块编程范例中断服务子程序voidinterrupt66PIT0(void){vTmpPIT++;if(vTmpPIT==10){PORTB=~PORTB;//输出取反vTmpPIT=0;}PITTF_PTF0=1;//清中断标志位}voidmain(void){pllclk();initIOBoutput();initPIT();EnableInterrupts;for(;;){}/*waitforever*/}主程序时钟产生器模块——寄存器锁相环模块利用锁相环可以提高总线频率—若晶振为4M—不使用锁相环:总线频率为2M—使用锁相环:总线频率可为40MHz可通过以下锁相环模块的寄存器设置提高总线频率—锁相环控制寄存器(PLLCTL)—时钟合成寄存器(SYNR)—时钟分频寄存器(REFDV)—时钟产生模块的标志寄存器(CRGFLG)—时钟选择寄存器(CLKSEL)—预分频寄存器(POSTDIV)时钟产生器模块——寄存器1、时钟分频寄存器REFDVREFFRQ[1..0]:与参考时钟有关001-2M012-6M106-12M1112M以上REFDIV[5..0]:分频因子,有效值为0~63。地址:$352、时钟合成寄存器SYNRVCOFRQ[1..0]:与压控振动器有关00VCO频率32-48M01VCO频率48-80M10VCO频率80-120M11VCO频率120M以上SYNDIV[5..0]:锁相环时钟倍频数,有效值为0~63。地址:$34时钟产生器模块——寄存器3、锁相环控制寄存器(PLLCTL)CME:时钟监控允许位1允许0禁止PLLON:锁相环电路允许位1允许0禁止地址:$3A4、时钟产生模块的标志寄存器CRGFLGLOCK:锁相环锁定标志,从外部晶振频率时钟切换到VCO时钟时需要查看该标志是否由0变为1。1时钟频率已稳定,锁相环频率已锁定0时钟频率未稳定,锁相环频率未锁定地址:$37时钟产生器模块——寄存器5、时钟选择寄存器(CLKSEL)PLLSEL:选定锁相环位1BusClock=PLLCLK/20BusClock=OSCCLK/2地址:$396、预分频寄存器POSTDIVPOSTDIV[4..0]:预分频因子。POSTDIV为默认时(后四位全0),fvoc=fpll。地址:$时钟产生器模块——寄存器•REFDV=0X07;//设置分频系数•SYNR=0X53;//设置倍频参数•while(CRGFLG-LOCK!=1);//等待稳定•POSTDIV=0;//预分频系数默认fpll=fvoc•CLKSEL=0x80;//选择PLL作为时钟•//若晶振为16M,则PLLCLK=2*16*(19+1)/(7+1)=80MHz,则总线频率是40MHz锁相环模块寄存器设置示例时钟产生器模块——程序示例锁相环模块voidpllclk(void)//总线24MHz,外部时钟为16MHz{CLKSEL=0X00;PLLCTL=0xe1;SYNR=2;//PLLCLK2*OSCCLK*(SYNR+1)/(REFDV+1)REFDV=1;PLLCTL=0X60;asmNOP;asmNOP;asmNOP;while((CRGFLG&0X08)==0);//时钟校正同步CLKSEL=0X80;}
本文标题:单片机飞思卡尔PIT模块
链接地址:https://www.777doc.com/doc-3354888 .html