频率计数器毕业论文
频率计数器毕业论文
目录
中文摘要 ··············································································································································································· 2 引言 ························································································································································································ 4 一 设计任务目标 ································································································································································· 4 二 工具选择 ········································································································································································· 4 1 PROTEUS仿真软件简介 ········································································································································· 4 2 CODEVISIONAVR C COMPILER简介 ··························································································································· 4 三 硬件电路的设计 ···························································································································································· 5 3.1 系统的基本原理与框架 ··································································································································· 5
3.1.1 频率计数器计数原理 ······························································································································ 5
3.1.2设计框架 ··················································································································································· 5 3.2电路设计 ··························································································································································· 5 3.3 单片机部分 ······················································································································································· 6 3.3.1 Atmega16单片机介绍 ····························································································································· 6 3.3.2单片机ATMEGA16外部引脚说明 ············································································································· 6 3.3.4 LCD显示器系统 ····································································································································· 8 3.3.5 555定时器的工作原理 ······················································································································· 11
四 系统的软件设计 ·························································································································································· 14 4.1 系统程序设计流程图 ····································································································································· 14 4.2 ATMEGA16程序设计 ······································································································································ 14
4.2.1 LCD初始化 ··········································································································································· 14 4.2.2 定时/计数器(T/C)初始化 ················································································································ 16
五 系统测试 ······································································································································································· 22 5.1 效果图 ····························································································································································· 22 5.2 读数验证 ························································································································································· 24 参考文献 ············································································································································································· 25 致谢 ······················································································································································································ 25 附录 ······················································································································································································ 26
1 页
频率计数器毕业论文
中文摘要
信号频率、时间间隔、相位和脉冲计数等是常见的测量对象,对它们的测量离不开频率计数器或它的同类产品,如电子计数器和时间间隔分析仪等。本文以频率计数器为研究对象,利用Proteus强大的微机处理器仿真功能,结合CodeVisionAVR C Compiler编译器,给出了简易频率计数器的设计方案并完成仿真测试。该频率计数器由555定时器、LCD显示器和单片机ATMEGA16构成,可测量频率范围为0~50kHz。
关键字:Proteus,单片机, 555定时器。
2 页
频率计数器毕业论文
Abstract
The frequency, time-gap, phase and events counter usually are the physical parameters to be tested, which dependented on frequency counter or related products, like electronic counter and time-gap analyzer. In this paper, the frequency counter was the research object, Combined Proteus powerful processor simulation with CodeVision AVR C Compiler. Provided a easy project and completed according tests. This frequency counter is consisted of 555 timer,LCD and ATMEGA16, which Measuring range is 0~50kHz.
Key words: Proteus, monolithic integrated circuit,, 555 timers.
3 页
频率计数器毕业论文
引言
传统的频率计数器通常由组合电路等大量的硬件电路构成,一般采用传统开发模式,需
要的硬件成本高,系统开发周期长,开发效率低。本文基于Proteus和CodeVisionAVR C Compiler接口仿真平台,提出了频率计数器的仿真方法,可以很好地避免传统开发模式的缺点,在虚拟仪器的教学演示和实际应用系统设计等方面具有很大的作用。
一 设计任务目标
利用ATMEGA16单片机的T0、T1的定时计数器功能,来完成对555定时器输入的信号进行频率计数,计数的频率结果通过LCD(1602)并口显示器动态显示出来。要求能够对0-50KHZ的信号频率进行准确计数。
二 工具选择
本设计通过使用proteus仿真软件实现电路的硬件设计,并进行实时仿真;采用CodeVisionAVR C Compiler作为单片机系统的软件设计平台,在遵循A/D转换器的工作时序的基础上,进行程序编写,从而使电路硬件的实际功能得以实现。 1 proteus仿真软件简介
Proteus仿真软件是来自英国Labcenter electronics公司的EDA工具软件,其有近20年的历史,在全球广泛使用。除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。Proteus能够很容易的为用户建立了完备的电子设计开发环境,组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。Proteus 产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。是一款非常优秀的单片机仿真软件。 2 CodeVisionAVR C Compiler简介
CodeVisionAVR C Compiler软件是目前最流行开发AVR系列单片机的软件之一。CodeVisionAVR C Compiler提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。CodeVisionAVR C Compiler是美国
ATMEL
公司出品的AVR系列兼容单片机C
4 页
频率计数器毕业论文
语言软件开发系统,软件提供了丰富的库函数和功能强大的集成开发调试工具,在开发大型软件时体现了高级语言的优势。
三 硬件电路的设计
3.1 系统的基本原理与框架
3.1.1 频率计数器计数原理
频率计数器原理:通过单片机里面的定时器/计数器,对信号源输入的信号在规定时间内对脉冲进行计数,然后推算出信号源的频率。如果规定在t时间定时器/计数器中断,对信号源计数了N个脉冲,则该信号源的频率?= N/t.(∵t=NT,T=1/?;∴?= N/t)。如图示:
从?=t/N可知,对于频率计数器的规定的中断时间t越大则?精确度越高,则系统计算频率?的时间也将变长,反之亦然。
3.1.2设计框架
基于Proteus和CodeVisionAVR C Compiler的频率计数器仿真系统的开发过程分为以下3步。
(1) 电路设计:在Proteus平台上进行单片机系统电路设计、选择元器件、接插件、连
接电路和电气检测等。
(2) 程序设计:在CodeVisionAVR C Compiler平台上进行单片机系统源程序设计、编
辑、汇编编译和调试,最后生成目标代码文件(*.hex)。
(3) Proteus和CodeVisionAVR C Compiler联合仿真:在Proteus平台上将目标代码文
件加载到单片机系统中,并实现单片机实时交互、协同仿真。 3.2电路设计
频率计数器仿真设计思路:系统开始运行即开始对555定时器输入的信号源进行频率计数,并每隔1S在LCD并口显示器显示频率值。本设计采用单片机ATMEGA16内部定时器/计数器T/C1对外部的555定时器的信号源进行频率计数,T/C2采用定时工作方式,1/16S中断,使T/C2中断16次以后对T1取数并在LCD并口显示器显示频率值。
进入Proteus的ISS仿真软件的主界面进行频率计数器系统电路原理的设计。由设计思路可知,仿真系统所需主要元件有:1个ATMEGA16芯片,1个555定时器,1个LCD1602
5 页