频率计数器毕业论文(4)

2019-04-23 10:58

频率计数器毕业论文

由 0 开始。

void lcd_putchar(char c)-在当前坐标显示字符c。

void lcd_puts(char *str)-在当前坐标显示 SRAM 中的字符串 str 。 void lcd_putsf(char flash *str)-在当前坐标显示 FLASH中的字符串 str 。

因此在主程序中调用这些函数lcd_init()即可完成LCD的初始化,如lcd_init(20)表示初始化LCD,每行显示20字符。 4.2.2 定时/计数器(T/C)初始化

Atmega16单片机有3个定时器:8位的T/C0,16位的T/C1和8位的T/C2。这里只使用T/C1和T/C2。 1. 对T/C1的初始化

T/C1是多功能的定时/计数器,除了有和51单片机定时/计数器相同的16位计数器模式之外,还有特殊的CTC(比较匹配清零)计数模式和PWM波形生成器工作模式。这里只使用其16位计数方式。下图所示为T/C1的相关寄存器符号和功能。

控制寄存器TCCR1A用于设置定时器的工作方式。控制寄存器TCCR1B用于设置计数脉冲的来源、分频数和触发方式,这里对从T1(PB1)引脚输入的脉冲进行计数,所以无法对脉冲进行分频操作,只能选择触发类型(上升沿或者下降沿触发)。TCNT1L和TCNT1H组成16位计数器TCNT1,和51单片机中的TH1:TL1寄存器组合方式一样,OCR1AH:OCR1AL、OCR1BH:OCR1BL、ICR1H:ICR1L寄存器与PWM波形生成控制有关。

需要注意的是,Atmega16单片机T1输入的脉冲频率不能超过单片机工作频率的1/4,所以在单片机工作于16MHz时,T1输入的脉冲频率不能超过4MHz。另外如果脉冲计数超过65536(216)则TCNT1发生溢出,因此还需要设置TCNT1溢出中断来保存其发生溢出的次数。

综合T/C1的功能,就可以使用Code Vision AVR C的向导功能来设置并生成相应的初始化代码,这里设置T/C1为普通16位计数方式,使用下降沿触发,设置溢出中断:

16 页

频率计数器毕业论文

相应生成的初始化代码为: TCCR1A=0x00; TCCR1B=0x06; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; TIMSK=0x04; 器功能一样

17 页

//TIMSK为定时/计数器中断掩码寄存器,和51单片机的IE寄存

频率计数器毕业论文

T/C1的中断处理程序如下,用户只需要把自己的程序加入到大括号中即可:

interrupt [TIM1_OVF] void timer1_ovf_isr(void)

{ }

2.对T/C2的初始化

T/C2是8位的定时/计数器,除了有和T/C1相同的功能之外,T/C2还有特殊的异步工作方式,如果此时在PC6(TOSC1)和PC7(TOSC2)引脚接上32.768KHz手表晶振,即可为单片机提供精确的S级定时,这比常规的定时器定时方式(只能提供ms级的定时)有更大的优势。T/C2的相关寄存器如下所示:

控制寄存器TCCR2用于设置T/C2的工作方式和分频系数。TCNT2为8位的计数寄存器,寄存器OCR2与PWM波形生成有关,这里不在赘述。寄存器ASSR中的AS2位用于设置T/C2的时钟来源(系统时钟或外接32.768KHz晶振),当AS2=1时为32.768KHz晶振,否则为系统时钟。

由于在频率计中的核心是精确定时的1秒定时实现,因此就使用T/C2的异步工作模式来实现精确定时1秒:PC6和PC7接上32.768KHz晶振,然后设置T/C2为异步方式(AS2=1),设置分频系数为128,再设置TC2的溢出中断,这样TC2每溢出一次的时间正好为1秒(256×128=32768),即实现了精确的1s定时。

根据上述要求,就可以使用Code Vision AVR C的向导功能来设置T/C2并生成相应的初始化代码:

18 页

频率计数器毕业论文

相应生成的代码为:

ASSR=0x08; TCCR2=0x05; TCNT2=0x00; OCR2=0x00; TIMSK=0x84;

相应的中断处理程序如下,用户加入自己的代码即可:

interrupt [TIM2_COMP] void timer2_comp_isr(void)

{ }

由此可见使用Code Vision AVR C编写程序是及其方便容易的,用户可以在对单片机结构(寄存器设置)不了解情况下完成对单片机的初始化并且不会出错。

Atmega16频率计数系统整体程序(见附录),经CodeVisionAVR C Compiler仿真调试,上述程序可通过测试,如图所示:

19 页

频率计数器毕业论文

图 4.4 系统整体程序仿真调试

20 页


频率计数器毕业论文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基础操作题-windows xp 省计算机等级考试复习资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: