《单片机飞思卡尔PIT模块.ppt》由会员分享,可在线阅读,更多相关《单片机飞思卡尔PIT模块.ppt(21页珍藏版)》请在优知文库上搜索。
1、周期中断定时器(周期中断定时器(PIT) 定时器简介定时器简介 周期中断定时器简介(周期中断定时器简介(PIT) 周期中断定时器寄存器周期中断定时器寄存器 PIT模块编程范例模块编程范例 时钟产生器模块时钟产生器模块定时器简介定时器简介为什么使用定时器为什么使用定时器 u 时间延迟的产生和测量 u 外部信号周期和脉冲宽度的测量 u 事件计数器u 事件发生时间比较器u 波形发生器u 周期性的中断产生 定时器实际上是计数器,它通过累计已知时间间隔的个数来计算时间。被累计的时间间隔若是系统时钟,计数器就变成了定时器。定时器简介定时器简介怎样获得定时器怎样获得定时器 u 程序设计软件定时器void d
2、elay(void) unsigned int i,j; for(i=0;i10;i+) for(j=0;j10000;) j+;u 微处理器常常内置定时器(硬件定时器)MCS51单片机内有二个单片机内有二个16位定时器、计数器位定时器、计数器MC9S12XS内置内置 RTI ( Real Time Interrupt) ECT enhanced capture timer OC Output comparer PWM Pulse width modulationPeriod and pulse width measurement 四个四个24位位PIT定时器定时器定时器简介定时器简介怎样获得
3、定时器怎样获得定时器 u 外围扩展定时器 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。 定时器简介定时器简介怎样获得定时器怎样获得定时器 u 外围扩展定时器 DS12887把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,可广泛用于各种需要较高精度的
4、实时时钟场合中。其主要功能如下: (1)内含一个锂电池,断电情况运行十年以上不丢失数据。 (2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。 (3)二进制数码或BCD码表示时间、日历和定闹。 (4)12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。 (5)MOTOROLA5和INATAEL总线时序选择。 (6)有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。 (7)可编程方波信号输出。 (8)中断信号输出(IRQ)可以产生500ms一次到每122s一次的中断定时器简介定时器简
5、介定时器的主要性能参数定时器的主要性能参数 u 位数 u 加1或是减1u 时钟u 重装载周期中断定时器简介(周期中断定时器简介(PITPIT) 4路路24位定时器,位定时器,每路可以分别每路可以分别u 打开或关闭打开或关闭u 1224个总线个总线 周期定时周期定时u产生中断信号产生中断信号周期中断定时器寄存器周期中断定时器寄存器1、PIT控制寄存器及强制载入微定时器寄存器控制寄存器及强制载入微定时器寄存器 PITCFLMTPITE:PIT模块使能位模块使能位0 禁止禁止PIT 1 使能使能PITPITSWAIT:等待模式等待模式PIT停止控制位停止控制位 0 在等待模式下在等待模式下PIT正常
6、运行正常运行 1 在等待模式下在等待模式下PIT时钟产生器停止时钟产生器停止 PITFRZ:冻结模式冻结模式PIT计数器冻结控制位计数器冻结控制位 0 在冻结模式下在冻结模式下PIT正常运行正常运行 1 在冻结模式下在冻结模式下PIT计数器失去作用计数器失去作用PFLMT1.0:PIT强制载入微定时器模数值控制位强制载入微定时器模数值控制位1 相应的相应的8位微定时器模数值被载入位微定时器模数值被载入8位微定时器递减计数器中位微定时器递减计数器中0 强制载入无效强制载入无效地址:地址:$0340$0340周期中断定时器寄存器周期中断定时器寄存器2、PIT强制载入定时器寄存器强制载入定时器寄存器
7、 PITFLTPFLT3.0:PIT强制载入定时器模数值控制位强制载入定时器模数值控制位1 相应的相应的16位定时器模数值被载入位定时器模数值被载入16位定时器递减计数器中位定时器递减计数器中0 强制载入无效强制载入无效3、PIT通道使能寄存器通道使能寄存器 PITCEPCE3.0:PIT使能控制位。该寄存器使能使能控制位。该寄存器使能PIT四个通道,如果四个通道,如果PCE写写0,PIT通道将被禁止,通道将被禁止,PITTF中相应的标志位也将被清除;如果中相应的标志位也将被清除;如果PCE写写1,PIT通道使能,通道使能,16位定时器计数器被载入起始值并开始计数。位定时器计数器被载入起始值并
8、开始计数。 1 通道使能通道使能 0 通道禁止通道禁止地址:地址:$0341$0341地址:地址:$0342$0342周期中断定时器寄存器周期中断定时器寄存器4、PIT定时器复合寄存器定时器复合寄存器 PITMUXPMUX3.0:PTI定时器复合寄存器控制位。该寄存器控制定时器复合寄存器控制位。该寄存器控制16位定时器与位定时器与8位微定时器时基位微定时器时基0或者时基或者时基1连接复合。连接复合。 0 相应相应16位定时器与微时基位定时器与微时基0连接连接 1 相应相应16位定时器与微时基位定时器与微时基1连接连接5、PIT中断使能寄存器中断使能寄存器 PITINTE PINTE3.0:PI
9、T定时器溢出中断使能控制位。定时器溢出中断使能控制位。 0 PIT相应通道溢出中断禁止相应通道溢出中断禁止 1 PIT相应通道溢出中断使能相应通道溢出中断使能周期中断定时器寄存器周期中断定时器寄存器6、PIT溢出标志寄存器溢出标志寄存器PITTF PIF3.0:PIT通道溢出标志位。当通道溢出标志位。当16位定时器计数器和相复合的位定时器计数器和相复合的8位微定时器计数器递减到位微定时器计数器递减到0后,后,相应位的标志位被置位。写相应位的标志位被置位。写1后清除标志位,写后清除标志位,写0无效。无效。 0 PIT相应通道没有发生溢出中断相应通道没有发生溢出中断 1 PIT相应通道发生了溢出中
10、断相应通道发生了溢出中断7、PIT微定时器装载寄存器微定时器装载寄存器 PITMTLD0/PITMTLD1周期中断定时器寄存器周期中断定时器寄存器8、PIT定时器装载寄存器定时器装载寄存器 PITLD0/PITLD1/PITLD2/PITLD3PLD15.0:同上原理。周期中断定时器寄存器周期中断定时器寄存器9、PIT通道计数器通道计数器 PITCNT0.4PCNT15.0:该寄存器存放16位递减计数器值。PITPIT模块编程范例模块编程范例void initIOBoutput(void)/IO口初始化,B口为输出 DDRB=0XFF; PORTB=0XFF;void initPIT(void
11、)/定时中断初始化函数 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.01MS PITINTE_PINTE0=1;/定时器中断通道0中断使能 PITCFLMT_PITE=1;/定时器通道0使能 初始化模块PITPIT模块编程范例模块编程范例中断服务子程序void interrupt 66 PIT0(void
12、) vTmpPIT+; if(vTmpPIT=10) PORTB=PORTB;/输出取反 vTmpPIT=0; PITTF_PTF0=1;/清中断标志位void main(void) pllclk(); initIOBoutput(); initPIT(); EnableInterrupts; for(;) /* wait forever */ 主程序 时钟产生器模块时钟产生器模块 寄存器寄存器锁相环模块 u利用锁相环可以提高总线频率若晶振为若晶振为4M不使用锁相环:总线频率为不使用锁相环:总线频率为2M使用锁相环:总线频率可为使用锁相环:总线频率可为40MHzu可通过以下锁相环模块的寄存器设
13、置提高总线频率锁相环控制寄存器(锁相环控制寄存器(PLLCTL)时钟合成寄存器(时钟合成寄存器(SYNR)时钟分频寄存器(时钟分频寄存器(REFDV)时钟产生模块的标志寄存器(时钟产生模块的标志寄存器(CRGFLG)时钟选择寄存器(时钟选择寄存器(CLKSEL) 预分频寄存器(预分频寄存器(POSTDIV) 时钟产生器模块时钟产生器模块 寄存器寄存器1、时钟分频寄存器、时钟分频寄存器REFDVREFFRQ1.0 :与参考时钟有关与参考时钟有关00 1-2M 01 2-6M 10 6-12M 11 12M以上以上 REFDIV5.0 :分频因子,有效值为分频因子,有效值为063。地址:地址:$3
14、5$352、时钟合成寄存器、时钟合成寄存器SYNRVCOFRQ1.0:与压控振动器有关00 VCO频率 32-48M 01 VCO频率 48-80M 10 VCO频率 80-120M 11 VCO频率 120M以上 SYNDIV5.0:锁相环时钟倍频数,有效值为063。地址:地址:$34$34 时钟产生器模块时钟产生器模块 寄存器寄存器3、锁相环、锁相环控制寄存器(控制寄存器(PLLCTL)CME: 时钟监控允许位时钟监控允许位1 允许允许0 禁止禁止PLLON: 锁相环电路允许位锁相环电路允许位 1 允许允许 0 禁止禁止地址:地址:$3A$3A4、时钟产生模块的标志寄存器、时钟产生模块的标
15、志寄存器 CRGFLGLOCK :锁相环锁定标志,从外部晶振频率时钟切换到锁相环锁定标志,从外部晶振频率时钟切换到VCO时钟时需要查看该标志是否由时钟时需要查看该标志是否由0变为变为1。1 时钟频率已稳定,锁相环频率已锁定时钟频率已稳定,锁相环频率已锁定 0 时钟频率未稳定,锁相环频率未锁定时钟频率未稳定,锁相环频率未锁定 地址:地址:$37$37 时钟产生器模块时钟产生器模块 寄存器寄存器5、时钟选择寄存器(、时钟选择寄存器(CLKSEL)PLLSEL:选定锁相环位选定锁相环位1 Bus ClockPLLCLK/20 Bus ClockOSCCLK/2地址:地址:$39$396、预分频寄存器
16、、预分频寄存器POSTDIVPOSTDIV4.0 :预分频因子。预分频因子。POSTDIV 为默认时(后四位全为默认时(后四位全0),),fvoc =fpll。地址:地址:$ $ 时钟产生器模块时钟产生器模块 寄存器寄存器 REFDV=0X07; /设置分频系数 SYNR=0X53 ; /设置倍频参数 while(CRGFLG-LOCK!=1);/等待稳定 POSTDIV=0;/预分频系数默认fpll=fvoc CLKSEL=0 x80; /选择PLL作为时钟/若晶振为16M,则PLLCLK=2*16*(19+1)/(7+1)=80MHz,则总线频率是40MHz锁相环模块寄存器设置示例 时钟产生器模块时钟产生器模块 程序示例程序示例锁相环模块void pllclk(void)/总线24MHz,外部时钟为16MHz CLKSEL=0X00; PLLCTL=0 xe1; SYNR=2;/PLLCLK 2*OSCCLK*(SYNR + 1)/(REFDV + 1) REFDV=1; PLLCTL=0X60; asm NOP; asm NOP; asm NOP; while(CRGFLG&0X