为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

频率计的设计

2019-09-11 12页 doc 44KB 84阅读

用户头像

is_435706

暂无简介

举报
频率计的设计数字简易频率计的设计 一 总体方案设计 (1)系统总体结构 (2)芯片选择 AT89S52芯片:选用该单片机作为频率计的控制部件,用来实现频率的核心的功能。 74LS245芯片:用来驱动数码管。 74LS373芯片:锁存器,用来锁存输出的信号。 74LS240芯片:八单线驱动器,缓冲输出的信号。 74LS393芯片:两个四位二进制计数器。 74LS04芯片:反相器,用以电压的反向。 8255芯片:可编程并行I/O接口芯片,用以扩展单片机的IO口。 LED数码显示管:用来显示所检测到的频率。 (3)定时与计数方式 设置AT...
频率计的设计
数字简易频率计的设计 一 总体设计 (1)系统总体结构 (2)芯片选择 AT89S52芯片:选用该单片机作为频率计的控制部件,用来实现频率的核心的功能。 74LS245芯片:用来驱动数码管。 74LS373芯片:锁存器,用来锁存输出的信号。 74LS240芯片:八单线驱动器,缓冲输出的信号。 74LS393芯片:两个四位二进制计数器。 74LS04芯片:反相器,用以电压的反向。 8255芯片:可编程并行I/O接口芯片,用以扩展单片机的IO口。 LED数码显示管:用来显示所检测到的频率。 (3)定时与计数方式 设置AT89S52的定时/计数器0 为计数功能,工作方式1;定时/计数器1 为定时器功能,工作方式1 2、硬件电路设计 (1)AT89S52单片机的最小系统 此次课程设计的要求如下:一方面,单片机要通过I/O口中接收输入信号,另一方面要通过I/O口控制数码管的初始化、显示方式以及要显示的字符。 因此,设计必须以单片机为核心,显示器为外围设备。硬件上,单片机通过电路板电路与液晶显示电路相连;软件上,单片机要下载完整的程序对二者进行适时的控制。 图1  单片机控制的数显频率计电路系统框图 从图中可以看出,单片机控制的数显频率计的主要功能模块分为2类: ● 数码管显示:是指在单片机的控制下,数码管显示被测信号的频率。 ● 单片机模块:通过输入的信号来测出频率,并把相应的频率通过8255输出到数码管显示。 单片机电路主要是通过编写程序来控制硬件电路。因此,可以通过改变程序,提高测量精度。 (2)方波发生电路设计 分频电路:该电路由一篇74LS393构成,T0-T7为分频输出插孔。该计数器在加电时由RESET清零。当输入为8.0MHZ时,T0-T7输出脉冲分别为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,312500HZ 脉冲发生电路:实验台提供了8.0MHZ的脉冲源 (3)显示电路的设计 单片机通过74LS240输出段选信号,实现数码管每一段的显示;通过74LS245再经过非门后实现位选,从而将单片机的输出信号显示出来。 (4)AT82S51单片机接口的设计 该课设使用了8255a用来扩展端口,单片机P0,P2口作为地址线来控制PA,PB口的输出,选择8255a为工作方式0即基本输入/输出方式。 三.软件设计 软件设计概述: 1)利用单片机的内部定时器溢出产生中断来实现定时。 2)待测信号由单片机的T0(第15引脚)中断来间接测量。 3)采用12MHz晶振,机器周期为1us 4)定时/计数器0工作方式:计数方式,工作方式1,每次定时1ms。 即TH1=(65536-1000)/256,TL1=(65536-1000)%256 5)定时/计数器0工作方式: 定时方式,工作方式1。当1ms达到后,查看定时/计数器1上的计得的数值 。 6)通过公式:脉冲频率=计数器数值/1ms,可以计算出脉冲频率。最后的数据以KHz为单位 。                  7)显示采用六位共阳LED数码管,用单片机P0口作为地址线来控制8255a以实现对数码管的段的明暗的控制。用P2口作为地址线连接到8255a再通过74LS245反选作为6位数码管的选通信号,采用从低到高逐位扫描的方法。 (1)主程序框图 (2)初始化子程序框图 (3)中断子程序流程图 (4)数码管显示程序流程图 四、调试与测试结果分析 (1)实验系统连线 该实验室基于实验箱完成的,只需要连接两根线,即8MHZ连接到T插口,P3.4连接到T0~T7的任意一个插孔。 (2)程序调试 在程序上机调试过程中,运行程序,当输入合适的脉冲后,数码管并未显示相应的的频率,经逐步检查后发现是数码管的位选信号没有反选,导致数码管未被选中,因此不显示相应数据。 在排除错误之后,在误差的允许范围内,当输入脉冲后,数码管通过单片机的控制能够显示相应的频率,程序运行成功。 (3)实验结果分析 把电路按要求接好,接上待测脉冲信号,打开电源即可测量出待测脉冲信号的频率。本设计利用实验室提供的单片机实验箱上的脉冲信号进行测试,当接入的脉冲信号为500KHz时,可以看到数码管上的显示值为532KHz;当接入的脉冲信号为250KHz时,可以看到数码管上的显示值为137KHz。经计算,测量值都在误差允许范围内,因此符合设计要求,本设计成功完成预期目标。 五、系统原理图 六、实验原理 该课程设计为 七、参考文献: 1 陈海宴.51单片机原理及应用.北京:北京航天航空大学出版社,2010.7 2谭浩强.c语言程序设计.北京:清华大学出版社,1990. 附录 #include #include #define add XBYTE[0xff23] #define PA XBYTE[0xff20] #define PB XBYTE[0xff21]  #define PC XBYTE[0xff22] /* A口 地址:0FF20H B口 地址:0FF21H C口 地址:0FF22H D口 地址:0FF23H */ unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}; unsigned char wei[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned int f; void delaynms(unsigned int ms) { unsigned int x,y; for(x=ms;x;x--) for(y=110;y;y--); } void smg(unsigned char aa,unsigned char bb) { PA=~wei[aa];              //A口:位选 PB=table[bb];              //B口:段选 delaynms(2); } void init_count0_timer1()//设置计数器 { TMOD=0x15;    //计数器0 工作方式1 定时器1 工作方式1 TH1=(65535-1000)/256;//1ms TL1=(65535-1000)%256; TR1=1; ET1=1; TH0=0; TL0=0; TR0=1; EA=1; } void timer1() interrupt 3 { TH1=(65535-1000)/256;//1ms TL1=(65535-1000)%256; f=TH0*256+TL0; TH0=0; TL0=0; } void main() {      add=0x80; init_count0_timer1(); while(1) { smg(0,f/1000); smg(1,f%1000/100); smg(2,f%100/10); smg(3,f%10); } }
/
本文档为【频率计的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索