已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
频率计实验报告一、 实验目的 掌握单片机、数字译码和显示单元的组成和工作原理 学习及演示任务,增强劝阻实验创新能力二、实验要求1、被测频率fx小于110Hz采用测周法,显示频率XXX。XXX;fx大于110Hz采用测频法,显示频率XXXXXX;2、可利用键盘分段测量和自动分段测量;3、可完成单脉冲测量,输入脉冲宽度范围是100微秒-0.1秒;三、设计目的三、基本原理所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定的时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=T/N。其中脉冲形成电路的作用是将被测信号变成脉冲信号。其重复频率等于被测频率f,时间基准信号发生器提供基准的时间脉冲信号。若其周期为1S,则门控电路的输出信号持续时间也等于1S,门闸电路由标准秒信号进行控制。当秒信号来到时,门闸开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时,门闸关断。计数器停止计数,由于计数器计得的脉冲数N是在1S时间内的累计数,所以被测频率等于N。四,实验设计分析 使用数码管显示 控制最简单,根据设计要求显示格式XXXX。可以准确的显示频率大小,又由于数码管简单便宜且满足设计要求,所以选着数码管显示比较合理。选择AT89C51作为单片机芯片,选用两位8段共阴极LED数码管实现频率显示,利用8279作I/O口扩展,连接数码管和键盘。通过定时器1计时方式,定时器0计数方式,定时每秒钟对外部频率计数,单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。 AT89C51内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1、C2如图4.3所示,就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1C2一般选30pF左右。上述电路是靠AT89C51单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动AT89C51。本设计采用内部电路产生振荡。 系统原理框图选择AT89C51作为单片机芯片,选用两位8段共阴极LED数码管实现频率显示,利用8279作I/O口扩展,连接数码管和键盘。通过定时器1计时方式,定时器0计数方式,定时每秒钟对外部频率计数,把计数值通过8279芯片在数码管上显示。如图4.1所示。四位位数码管8279P3 P2P3.48051数据图4.1 系统原理框图启动键晶振电路复位电路 时钟电路和复位电路1.时钟电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。 AT89s52内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1、C2如图4.3所示,就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1C2一般选30pF左右。上述电路是靠AT89s52单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动AT89s52。本设计采用内部电路产生振荡。五,实验要求实现 基本电路设计单片机最小系统模块包括主控单元和基本外围电路,具体如图3-2所示。采用外部5V电源, AT89C51为主控芯片,P0口采用74LS373驱动,采用11.0592HZ晶振,手动高电平复位方式。通过P3.4采集外部输入频率,实时扫描键盘输入,控制输出采集频率。 数码管显示电路设计数码管显示电路由4位八段共阴数码及8279芯片及74HS138芯片组成,共阴数码管在应用时将公共极COM接到地,当某一字段发光二极管的阴极为高电平时,相应字段就点亮。当某一字段的阴极为低电平时,相应字段就不亮。8279是专用键盘、显示接口芯片,单个芯片就能完成键盘输入和LED显示控制两种功能。可以为64键的接触方式按键阵列提供扫描接口,能自动消除按键抖动以及n键同时按下的保护。通过数码管显示,可以简单而准确的实现显示频率。采用芯片不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 频率发生电路设计频率发生电路是由4个74LS393芯片以及晶振电路产生600HZ、300HZ、150HZ、75HZ、4种不同的频率,电路设计简单,产生频率稳定。 电源电路设计 本电源电路是通过变压器,把外部接入的22V电源转变为5V电源,采用7805使电源稳定。 程序流程图由于C语言编程容易,且Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。所以我们使用Keil软件进行编程。根据设计项目所需功能,我们先进行初始化,在待机状态下,采集频率。然后把采集的频率进行十进制转换,然后检测是否有键按下,若键0按下,则数码管显示所采集的频率,再按下键0时则不显示。系统实现所有功能,其程序框图如图4-1所示。定时器8初始化采集频率频率转换数码管显示YN键0按下开始 主程序、/*三:频率计设计要求:1:被测频率fx小于110Hz采用测周法,显示频率XXX。XXX;fx大于110Hz采用测频法,显示频率XXXXXX;2:可利用键盘分段测量和自动分段测量;3:可完成单脉冲测量,输入脉冲宽度范围是100微秒-0.1秒;4:自由发挥其他功能. */#include#define uint unsigned int #define unchar unsigned charsbit enter=P34;sbit start=P30;unchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 ;unchar code table2=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uint t,a,b,temp;float tt;long nn;/声明函数void delay();void init();void display(long);void examf();void examt();void scan();/*主函数*/void main() init();while(1) examf(); examt(); if(nn=110)display(tt); elsedisplay(nn);/*函数的定义*void delay()uint i,j;for(i=0;i+;i10) for(j=0;j+;j10);void init()t=0;TMOD=0x15;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TH0=0x00;TL0=0x00;EA=1;ET1=1;ET0=1;TR1=1;TR0=1;IE=0x8a;void timer0() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;t+;void examf() if(t=20) t=0; a=TH0; b=TL0; TH0=0x00; TL0=0x00; nn=a*256+b; void examt() int x,y; if(TH0=0x00)&(TL0=0x01) TH0=0x00; TL0=0x00; x=TH1-(65536-50000)/256; y=TL1-(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; tt=0.*(256*x+y);/*float examt() if(t=20) t=0; a=TH0; b=TL0; TH0=0x00; TL0=0x00; nn=a*256+b; */void display(long h)uint sw,wan,qian,bai,shi,ge;sw=h/;wan=h%/10000;qian=h%10000/1000;bai=h%1000/100;shi=h%100/10;ge=h%10;/if(sw!=0)P0=table1sw;P2=0xdf;delay();P2=0xff;P0=table1wan;P2=0xef;delay();P2=0xff;P0=table1qian;P2=0xf7;delay();P2=0xff;P0=table1bai;P2=0xfb;delay();P2=0xff;P0=table1shi;P2=0xfd;delay();P2=0xff;P0=table1ge;P2=0xfe;delay();P2=0xff;void scan()/检查第四行键盘P1=0x7f; temp=P1;temp=P1&0x0f; while(temp!=0x0f) delay(); temp=P1; temp=P1&0x0f; while(temp!=0x0f) temp=P1; switch(temp) case 0x7e:enter=1; /表示4,4按下 break; case 0x7d:enter=1; /表示4,3按下 break; case 0x7b:enter=1; /表示4,2按下 break; case 0x77:enter=1; /表示4,1按下 break; while(temp!=0x0f) temp=P1; temp=temp&0x0f; /检查第三排键盘/*P3=0xbf; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xbe: num=1;/表示3,4按下 break; case 0xbd:num=6;/表示3,3按下 break; case 0xbb:num=3;/表示3,2按下 break; case 0xb7:num=4;/表示3,1按下 break; while(temp!=0x0f) temp=P3; temp=temp&0x0f; /检查第二行键盘P3=0xdf; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xde:num=1; /表示2,4按下 break; case 0xdd:num=6;/表示2,3按下 break; case 0xdb:num=3;/表示2,2按下 break; case 0xd7:num=4;/表示2,1按下 break; while(temp!=0x0f) temp=P3; temp=temp&0x0f; /检查第一行键盘P3=0xef; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xee:num=1; /表示1,4按下 break; case 0xed:num=6;/表示1,3按下 break; case 0xeb:num=3;/表示1,2按下 break; case 0xe7:num=4;/表示1,1按下 break; while(temp!=0x0f) temp=P3; temp=temp&0x0f; */采集频率采集频率采集频率采集频率软硬件调试数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。数值频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用Verilog HDL编程设计实现的数字频率计。除被测信号的整形部分、键输入部分和数码显示部分外,其余全部在一片FPGA芯片上实现,整个系统非常精简,且具有灵活的现场可更改性。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定的时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=T/N。其中脉冲形成电路的作用是将被测信号变成脉冲信号。其重复频率等于被测频率f,时间基准信号发生器提供基准的时间脉冲信号。若其周期为1S,则门控电路的输出信号持续时间也等于1S,门闸电路由标准秒信号进行控制。当秒信号来到时,门闸开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时,门闸关断。计数器停止计数,由于计数器计得的脉冲数N是在1S时间内的累计数,所以被测频率等于N明确频率计工作原理以后,为了更清晰的对程序进行编写。还应该做出程序的总体框图,程序的主体可以分为四个模块:定时计数、采集数据、进制转换和数码显示。务是利用开发工具进行调试,发现和纠正程序的错误,同时也能发现硬件的故障。软件调试是一个模块接一个模块进行的。首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。最后调试整个程序。尤其注意的是各模块间能否正确的传递参数。1. 检查数码管显示模块程序。观察数码管上是否能够显示相应的字符。2. 检查定时计数模块程序。可以在硬件电路的输入端P3.4输入已知的4个频率,分别观察数码管上是否显示相应的频率值。3. 检查数据的转换模块程序。 程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。数据采集系统:采用单片机内部两个定时器,定时器1定时,定时器0计数,采集输入频率,并转换为用于显示的代码。 显示系统的调试:要显示的数据存放在71H、72H单元中,先在30H39H分单元中存放09的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。整体测试:把三部分进行程序联调,编译程序,看是否存在错误。经过多次的尝试与查找相资料,最后做出并完善了整体的方案。系统功能分析 本课程设计是利用单片机设计一个频率计,能够0HZ-9999HZ的频率,四位位数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西宁市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合卷)
- 2026年梧州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(夺分金卷)
- 赣州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(全优)
- 三亚市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(夺分金卷)
- 2026年铜陵市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(b卷)
- 梁平县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(轻巧夺冠)
- 郴州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合卷)
- 公司低碳节能绿色承诺书8篇
- 2026年酒泉市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)带答案详解(完整版)
- 驻马店市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(典型题)
- 松江区乡镇地图课件上海市松江区行政区划可编辑高清模板
- 语言:轰隆隆来了
- 白云区五年级上学期语文期末试卷
- 报名统计表格
- 软件系统上线试运行申请表方(仅用于个人学习的参考模板)
- 特许经营管理手册范本(餐饮)
- 配电箱配电柜专项施工方案
- 大学生政协模拟提案范本
- 冰雪文化英语谈知到章节答案智慧树2023年哈尔滨师范大学
- 心绞痛口腔临床疾病概要
- 2020阿里云产品图标
评论
0/150
提交评论