T-C0定时功能应用(精)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

深圳职业技术学院AVR单片机技术电子信息工程技术专业资源库定时器/计数器实例解析T/C0定时功能应用深圳职业技术学院苏全T/C0定时功能应用实例一、实现功能:在实验开发板上进行实验:使用T/C0进行1s的定时,每到1s,PA口外接的LED灯亮或灭一次(即原来是亮的,则触发后熄灭,若原来是灭的,则触发后点亮)。T/C0定时功能应用实例二、T/C0定时实验电路图T/C0定时功能应用实例三、程序释疑:程序的功能是通过T/CO的定时功能产生定时溢出中断,控制PA端口连接的LED灯进行亮灭指示。函数的功能是:中断函数每25ms产生一次中断,进人T/CO溢出中断函数后,计数变量Counter加1,当Counter为40时,即25msX25=ls后,控制PA端口LED灯取反。T/C0定时功能应用实例四、定时器初值设定:由于采用8MHz时钟的1024分频,所以定时器每加一个数的运行频率是8MHz/1024=7812.5Hz,走的时间为1/7812.5ms=0.128ms,所以T/C0在这种情况下的最大定时时间为256X0.128ms=32.768ms,我们需要的是1s的定时,所以我们可以设置计数初值为61,中断溢出的时间为(256-61)X0.128ms〜25ms,这样要得到1s的定时,需要产生40次定时器的中断溢出。T/C0定时功能应用实例#includeiom16v.hCharCounter=0;//1s计数变量清零/******端口初始化*******voidport_init(){PORTA=0xFF;//PA端口初始值为”1”DDRA=0xFF;//PA端口配置为输出DDRB&=(0«PB0);//PBO配置为输人}端口初始化函数五、源程序T/C0定时功能应用实例voidtimer0_init(){SREG=0x80;//使能全局中断TIMSK|=(1«TOIE0);//使能TO溢出中断TCCR0|=(1«CS02)|(0«CS01)|(1«CS00);//T/C0T.作于普通模式,1024分频TCNT0=61;//定时器初值设置,定时//时间=(256-61)、7812.5=25ms}定时器0初始化函数T/C0定时功能应用实例#pragmainterrupt_handlertimer0_ovf:10voidtimer0_ovf(void){TCNT0=61,//重置计数初值if(++Counter=40)//定时时间到1s吗?定时{//中断溢出40次为1sPORTA=〜PORTA;Counter=0;//1s计时变量清零}定时器0中断服务函数T/C0定时功能应用实例voidmain(){port__init();timer0_init();while(1);//等待}主函数

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功