您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Verilog课程设计-2---数字频率计
湖北师范学院文理学院信息工程系2010级电子信息工程专业综合课程设计文理学院综合课程设计所在院系专业名称电子信息工程班级信工1106班题目数字频率计指导教师梁赫西成员杜招吴刚完成时间2013.12.2011设计任务书1.1基本设计要求设计一个以单片机为核心的频率测量装置。使用AT89C51单片机的定时器/计数器的定时和计数功能,外部扩展6位LED数码管,要求累计每秒进入单片机的外部脉冲个数,用LED数码管,要求累计每秒进入单片机的外部脉冲个数,用LED数码管显示出来。一、设计任务及要求:设计任务:设计一个以单片机为核心的频率测量装置要求:累计每秒进入单片机的外部脉冲个数,用LED管显示。指导教师签名:2013年12月20日二、指导教师评语:指导教师签名:2013年12月20日2(1)被测频率fx<110Hz,采用测周法,显示频率×××.×××;fx>110Hz,采用测频法,显示频率××××××。(2)利用键盘分段测量和自动分段测量。(3)完成单脉冲测量,输入脉冲宽度范围是100s~0.1s。(4)显示脉冲宽度要求如下。Tx<1000s,显示脉冲宽度×××。Tx>1000s,显示脉冲宽度××××。1.2实验原理测量频率有测频法和测周法两种。(1)测频法,利用外部电平变化引发的外部中断,测算1s内的波从而实现对频率的测定;(2)测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接测定频率。理论上,测频法适用于较高频率的测量,测周法适用于较低频率的测量。经过调校,在测量低频信号时,本项目中测频法精度已高于测周法,故舍弃测周法,全量程采用测频法2设计阐明32.1设计内容(1)用keilC51编写软件,再用proteus进行仿真。(2)按照proteus仿真图进行实物连接。(3)测试。2.2设计要求须采用测频法测出外部脉冲的频率,并把频率用led数码管显示出来,软件必需用到单片机的计数器/定时器功能和中断功能,并且有复位按键。2.3设备及工作环境(1)硬件:计算机一台、单片机实验箱一台、通信电缆一根。(2)软件:proteus、keilC51、windows操作系统。3系统方案整体设计3.1设计思路利用单片机的定时器功能,产生1秒定时,在这1秒内利用外部中断对外部脉冲进行计数。这样,中断次数就是我们要的外部脉冲的频率。然后用单片机的并行I/O口控制LED数码管并显示出频率。43.2系统整体框图图1系统整体框图4硬件设计4.1系统硬件设计4.1.1单片机可以选用多种单片机,不同的单片机可能有不同的程序设计和电路连接,这里选用AT89C52RC,它与AT89C51兼容。4.1.2LED数码管本设计可以采用一块6位七段LED数码管,也可以用6块单独的LED数码管5来连接,但后者连接线比较多,容易出错。由于市面上6位七段LED数码管很难买到,我采用的是一块4位七段LED数码管和一块2位七段LED数码管来实现6位七段LED数码管的功能。4.2系统工作原理论述该系统主要由6部分组成:测试部分,定时部分,复位部分,时钟频率产生部分,处理部分和显示部分。其中测试部分是由单片机INTO口的输入中断来完成;定时部分由单片机内的TO定时器产生一秒的定时;复位部分是通过按压式开关向单片机的RST引脚输入高电平使单片机复位;时钟频率产生部分是由一块12MHz晶振和两块30pF的电容组成,产生机器周期为1us;处理部分是通过单片机内的处理程序把从测试部分得出的数据进行处理,最后送给LED数码管显示;显示部分是由LED数码管组成的,显示出单片机中经处理后的最后的数据,即外部脉冲频率。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显示模块显示模块是显示单片机内运算出来的外部输入脉冲个数,它是通过单片机内P0和P2口输出的高低电平来控制的。5.1.4复位模块6复位模块是使单片机从头开始工作。5.1.5整体功效从INTO口输入外部脉冲,通过单片机的运算处理,再从LED数码管上显示出外部脉冲1秒内个数。当按下复位按键时,单片机从头开始工作,即重新计算外部脉冲1秒内的输入个数并显示出来。5.2程序流程图图2程序流程图脉冲输入外部中断中断计数counter++是否满1秒?处理counter并输出YESNO复位键?75.3程序清单#includereg52.h#defineuintunsignedint#defineucharunsignedcharucharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uintcounter=0,t0=0;unsignedlongintpinlv;inta0,a1,a2,a3,a4,a5;voiddelay_ms(uintz){uintx,y;for(x=z;x0;x--){for(y=10;y0;y--);{;}}}voiddisplay(){a0=pinlv%10;a1=pinlv%100/10;a2=pinlv%1000/100;a3=pinlv%10000/1000;a4=pinlv%100000/10000;a5=pinlv/100000;8if(pinlv=110){while(1){P0=0xfe;P2=tabledu[a0];delay_ms(1);P0=0xfd;P2=tabledu[a1];delay_ms(1);P0=0xfb;P2=tabledu[a2];delay_ms(1);P0=0xf7;P2=tabledu[a3];delay_ms(1);P0=0xef;P2=tabledu[a4];delay_ms(1);P0=0xdf;P2=tabledu[a5];delay_ms(1);}}elseif(pinlv110){while(1){P0=0xfe;P2=tabledu[0];delay_ms(1);P0=0xfd;P2=tabledu[0];delay_ms(1);P0=0xfb;P2=tabledu[0];delay_ms(1);P0=0xf7;P2=tabledu[a0]|0x80;delay_ms(1);P0=0xef;P2=tabledu[a1];delay_ms(1);P0=0xdf;P2=tabledu[a2];delay_ms(1);}}}voidmain(){TMOD=0x01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;9IT0=1;EX0=1;ET0=1;TR0=1;while(1){if(t0==20){t0=0;display();}}}voidzhongdu0()interrupt0{counter++;}voidtimer0()interrupt1{TH0=(65536-52700)/256;TL0=(65536-50008)%256;t0++;if(t0==20){TH0=0x00;TL0=0x00;EX0=0;TR0=0;pinlv=counter;counter=0;10}6仿真加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件“keil-16.hex”;在“ClockFrequency输入晶振频率为12MHz。启动仿真如后两页图(a)和图(b)所示:}6.Proteus仿真加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件“keil-16.hex”;在“ClockFrequency输入晶振频率为12MHz。启动仿真如后两页图(a)和图(b)所示:图a11图3仿真1图b7调试过程及分析调试过程中,首先调试程序,使用KEIL编写的c程序存在一些错误,可以通过KEIL的查错功能进行检查,再改正。当然有些错误12会“莫名其妙”,这时候可以问问其他人,也可以上网查证。其次是调试硬件,调试硬件可以通过PROTEUS仿真软件模拟,这也可以验证程序是否正确。焊好的电路板也会存在一些错误,比如少连了哪个引脚,或者是错连了哪个引脚,哪些地方可能存在干扰,检查电路可以对照电路图一步步检查,可以借助万用表来检查。图5实物图8设计总结本次课程设计是基于单片机的频率计数器,通过这几天的努力,终于完成了。设计成果基本满足设计要求,验证无误。设计中用到了13AT89S51芯片,程序不太长,也不太难,关键是硬件的连接比较困难,特别是LED数码管部分的连接。通过本次设计,我知道了基于单片机的频率计数器的工作流程,并进一步学习了KEIL、PROEUS软件的使用方法。运用实物验证了自己学习的单片机知识,如单片机内的计数器/定时器功能、中断功能等。这个实验设计对我有点难度,是我清楚了自己的知识缺陷。总之,这次课程设计开辟了我的思路,增强了我的动手能力。参考文献1.《单片机原理及应用》,高等教育出版社。2.《电子技术基础》,高等教育出版社。
本文标题:Verilog课程设计-2---数字频率计
链接地址:https://www.777doc.com/doc-5703767 .html