Verilog课程设计-2---数字频率计.doc

上传人:scccc 文档编号:11431913 上传时间:2021-08-04 格式:DOC 页数:14 大小:538.50KB
返回 下载 相关 举报
Verilog课程设计-2---数字频率计.doc_第1页
第1页 / 共14页
Verilog课程设计-2---数字频率计.doc_第2页
第2页 / 共14页
Verilog课程设计-2---数字频率计.doc_第3页
第3页 / 共14页
Verilog课程设计-2---数字频率计.doc_第4页
第4页 / 共14页
Verilog课程设计-2---数字频率计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Verilog课程设计-2---数字频率计.doc》由会员分享,可在线阅读,更多相关《Verilog课程设计-2---数字频率计.doc(14页珍藏版)》请在三一文库上搜索。

1、 文理学院综合课程设计所在院系专业名称电子信息工程班级信工1106班题目数字频率计指导教师梁赫西成员 杜招 吴刚完成时间2013.12.20一、设计任务及要求:设计任务:设计一个以单片机为核心的频率测量装置要 求:累计每秒进入单片机的外部脉冲个数 ,用LED管显示。指导教师签名: 2013年12月20日 二、指导教师评语:指导教师签名: 2013年12月 20日 1 设计任务书1.1基本设计要求 设计一个以单片机为核心的频率测量装置。使用AT89C51单片机的定时器/计数器的定时和计数功能,外部扩展6位LED数码管,要求累计每秒进入单片机的外部脉冲个数,用LED数码管,要求累计每秒进入单片机的

2、外部脉冲个数,用LED数码管显示出来。(1)被测频率fx110Hz,采用测周法,显示频率. ;fx110Hz,采用测频法,显示频率。(2)利用键盘分段测量和自动分段测量。(3)完成单脉冲测量,输入脉冲宽度范围是100ms0.1s。(4)显示脉冲宽度要求如下。 Tx1000ms,显示脉冲宽度。 Tx1000ms,显示脉冲宽度。 1.2实验原理 测量频率有测频法和测周法两种。 (1)测频法,利用外部电平变化引发的外部中断,测算1s内的波从而实现对频率的测定; (2)测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接

3、测定频率。理论上,测频法适用于较高频率的测量,测周法适用于较低频 率的测量。 经过调校,在测量低频信号时,本项目中测频法精度已高于测 周法,故舍弃测周法,全量程采用测频法 2设计阐明2.1设计内容(1)用keil C51编写软件,再用proteus进行仿真。(2)按照proteus仿真图进行实物连接。(3)测试。2.2设计要求 须采用测频法测出外部脉冲的频率,并把频率用led数码管显示出 来,软件必需用到单片机的计数器/定时器功能和中断功能,并且 有复位按键。2.3设备及工作环境(1)硬件:计算机一台、单片机实验箱一台、通信电缆一根。(2)软件:proteus、keil C51、windows

4、操作系统。 3系统方案整体设计3.1设计思路利用单片机的定时器功能,产生1秒定时,在这1秒内利用外部中断对外部脉冲进行计数。这样,中断次数就是我们要的外部脉冲的频率。然后用单片机的并行I/O口控制LED数码管并显示出频率。3.2系统整体框图图1 系统整体框图 4硬件设计4.1系统硬件设计4.1.1 单片机可以选用多种单片机,不同的单片机可能有不同的程序设计和电路连接,这里选用AT89C52RC,它与AT89C51兼容。4.1.2 LED数码管本设计可以采用一块6位七段LED数码管,也可以用6块单独的LED数码管来连接,但后者连接线比较多,容易出错。由于市面上6位七段LED数码管很难买到,我采用

5、的是一块4位七段LED数码管和一块2位七段LED数码管来实现6位七段LED数码管的功能。4.2系统工作原理论述 该系统主要由6部分组成:测试部分,定时部分,复位部分,时钟频率产生部分,处理部分和显示部分。其中测试部分是由单片机INTO口的输入中断来完成;定时部分由单片机内的TO定时器产生一秒的定时;复位部分是通过按压式开关向单片机的RST引脚输入高电平使单片机复位;时钟频率产生部分是由一块12MHz晶振和两块30pF的电容组成,产生机器周期为1us;处理部分是通过单片机内的处理程序把从测试部分得出的数据进行处理,最后送给LED数码管显示;显示部分是由LED数码管组成的,显示出单片机中经处理后的

6、最后的数据,即外部脉冲频率。 5软件设计5.1分析论证 该系统的设计主要采用了6位LED数码管,单片机内部16位定时器和外部中断INT0。主要包括输入模块,运算模块,显示模块和复位模块。5.1.1输入模块 通过单片机的INTO口把外部脉冲输入单片机内部。5.1.2运算模块 该模块主要是计算从INTO口1秒内输入的脉冲个数,并通过运算处理把个数转换为能使LED数码管显示该数的编码,再通过P0口和P2口把编码送给LED数码管。其中要使用单片机内部的TO定时器功能用来产生一秒的时间间区,还要用到外部中断INTO,并通过外部中断计算外部脉冲在一秒内的输入个数,这样就测出了外部脉冲的频率。5.1.3显示

7、模块 显示模块是显示单片机内运算出来的外部输入脉冲个数,它是通过单片机内P0和P2口输出的高低电平来控制的。5.1.4复位模块 复位模块是使单片机从头开始工作。5.1.5整体功效 从INTO口输入外部脉冲,通过单片机的运算处理,再从LED数码管上显示出外部脉冲1秒内个数。当按下复位按键时,单片机从头开始工作,即重新计算外部脉冲1秒内的输入个数并显示出来。 5.2程序流程图脉冲输入外部中断中断计数counter+是否满1秒?处理counter并输出YESNO复位键? 图2程序流程图5.3程序清单#include#define uint unsigned int#define uchar unsi

8、gned charuchar code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uint counter=0,t0=0;unsigned long int pinlv;int a0,a1,a2,a3,a4,a5;void delay_ms(uint z)uint x,y;for(x=z;x0;x-)for(y=10;y0;y-);void display() a0=pinlv%10; a1=pinlv%100/10; a2=pinlv%1000/100; a3=pinlv%10000/1000; a4=pinlv%10

9、0000/10000; a5=pinlv/100000;if(pinlv=110)while(1) P0=0xfe;P2=tabledua0;delay_ms(1);P0=0xfd;P2=tabledua1;delay_ms(1);P0=0xfb;P2=tabledua2;delay_ms(1);P0=0xf7;P2=tabledua3;delay_ms(1);P0=0xef;P2=tabledua4;delay_ms(1);P0=0xdf;P2=tabledua5;delay_ms(1); else if(pinlv110)while(1) P0=0xfe;P2=tabledu0;delay

10、_ms(1);P0=0xfd;P2=tabledu0;delay_ms(1);P0=0xfb;P2=tabledu0;delay_ms(1);P0=0xf7;P2=tabledua0|0x80;delay_ms(1);P0=0xef;P2=tabledua1;delay_ms(1);P0=0xdf;P2=tabledua2;delay_ms(1); void main()TMOD=0x01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;IT0=1;EX0=1;ET0=1;TR0=1;while(1)if(t0=20) t0=0; display(

11、); void zhongdu0() interrupt 0counter+; void timer0() interrupt 1TH0=(65536-52700)/256;TL0=(65536-50008)%256;t0+;if(t0=20) TH0=0x00;TL0=0x00;EX0=0;TR0=0;pinlv=counter;counter=0;6 仿真加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-16.hex”;在“Clock Frequency输入晶振频率为12MHz。 启动仿真如后两页图(a)和图(b)所示:

12、6. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-16.hex”;在“Clock Frequency输入晶振频率为12MHz。 启动仿真如后两页图(a)和图(b)所示:图a 图3 仿真1图b 7调试过程及分析调试过程中,首先调试程序,使用KEIL编写的c程序存在一些错误,可以通过KEIL的查错功能进行检查,再改正。当然有些错误会“莫名其妙”,这时候可以问问其他人,也可以上网查证。其次是调试硬件,调试硬件可以通过PROTEUS仿真软件模拟,这也可以验证程序是否正确。焊好的电路板也会存在一些错误,比如少连

13、了哪个引脚,或者是错连了哪个引脚,哪些地方可能存在干扰,检查电路可以对照电路图一步步检查,可以借助万用表来检查。图5 实物图 8设计总结本次课程设计是基于单片机的频率计数器,通过这几天的努力,终于完成了。设计成果基本满足设计要求,验证无误。设计中用到了AT89S51芯片,程序不太长,也不太难,关键是硬件的连接比较困难,特别是LED数码管部分的连接。通过本次设计,我知道了基于单片机的频率计数器的工作流程,并进一步学习了KEIL、PROEUS软件的使用方法。运用实物验证了自己学习的单片机知识,如单片机内的计数器/定时器功能、中断功能等。这个实验设计对我有点难度,是我清楚了自己的知识 缺陷。总之,这次课程设计开辟了我的思路,增强了我的动手能力。 参考文献1. 单片机原理及应用,高等教育出版社。2. 电子技术基础,高等教育出版社。13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1