单片机课程设计报告数字频率计_第1页
单片机课程设计报告数字频率计_第2页
单片机课程设计报告数字频率计_第3页
单片机课程设计报告数字频率计_第4页
单片机课程设计报告数字频率计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 湘潭大学单片机原理及应用 课程设计报告题目: 数字频率计 姓名: 柳栋 学号: 2011551315 学院: 信息工程学院 班级: 11级通信工程三班 指导老师: 罗光明 内容摘要设计以51单片机为核心,利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。本设计的目的是通过在对单片机原理及应用的学习,以及查阅资料,培养自学与动手能力,把学到的知识应用到日常生活当中。在设计的过程中,不断的补充不知道的内容、巩固所学,和队友的分工合作、相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,

2、学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。关键词:单片机;数字频率计;设计;目录第 1 节 概述 41.1 数字频率计概述 41.2 基本设计原理51.3 系统主要功能51.4 设计中遇到的一些问题5第 2 节 数字频率计(低频)的硬件结构设计62.1 系统硬件的构成62.2 系统工作原理图62.3 单片机最小系统设计72.4 频率产生电路设计82.5 数据显示电路设计(8279)82.6 电源设计10第 3 节 软件设计113.1 程序图113.2 数据采集程序设计.11.3.3 显示子程序设计 133.4 C语言程序清单.14第 4 节 结束语.19.参考文献

3、.19第1节 概述1.1 数字频率计概述数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字,显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率计。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一

4、秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。本文。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器。本频率计的设计以AT89C51单片机为核心,利用他内部的定时计数器完成待测信号频率的测量。单片机AT89C51内部具有2个16位定时计数器,定时计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。设

5、计将定时/计数器0设置工作在定时方式,定时/计数器1设置工作在计数方式。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用12 MHz时钟时,每1s加1),这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的124(使用12 MHz时钟时,最大计数速率为500 kHz)。1.2 基本设计原理运用单片机TO,T1计数功能来完成对输入

6、信号的计数。其T1为 计数器,T1为计时器。 为T1装入初值19466,定时50ms,重复50次即为1s,与此同时将同时计数的T0里的值取出,即为该频率信号1s的频率示数第一章 AT89C51单片机及其引脚说明:89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。引脚说明:·VCC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个

7、引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。·P2口:P

8、2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。·P3口:P3是一带有内

9、部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)表1 P3口的第二功能·RST:复位输入。当振荡器工作时,RST引

10、脚出现两个机器周期的高电平将使单片机复位。·ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。·:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。·/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GN

11、D相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。·XTAL2:振荡器反相放大器的输出端。在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。1.4 设计中遇到的一些问题1. 计数器溢出造成数据错误解决方法:通过设置溢出中断T0count变量来记下溢出的次数再结合总数就不会有误差。2. 定时器初值

12、的设置解决方法:本实验才用11.0592M晶振驱动,理论初值设为19456,仍然会有一些误差,经过反复调校,确认初值设为19466最佳。3. 超高频率计数问题实验箱有两种百万级别的频率分别为1.228M和2.4576M,单片机无法响应短时间的超高频率,造成实验结果失常。解决方法:采用硬件分频电路。 第 2 节 数字频率计(低频)的硬件结构设计2.1 系统硬件的构成2.2 系统工作原理图选择AT89S52单片机芯片,选用两位8段共阴极LED数码管实现频率显示,利用8279作I/O口扩展,连接数码管。通过定时器1计时方式,定时器0计数方式,定时每秒钟对外部频率计数,把计数值通过8279芯片在数码管

13、上显示2.3 单片机最小系统设计1.时钟电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。 AT8951内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1、C2如图4.3所示,就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1C2一般选30pF左右。上述电路是靠AT89C51单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动AT89C51。本设计采用内

14、部电路产生振荡。 2.复位电路RST引脚是复位端,高电平有效。该引脚输入至少连续两个机器周期以上的高电平,单片机复位。RST引脚内部有一个ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。使用时,一般在此引脚与VSS引脚之间接一个8.2k的下拉电阻,与VCC引脚之间接一个约10F的电解电容,即可保证上电自动复位。2.4 频率产生电路设计频率发生电路是由CD2040芯片产生150HZ,300HZ,600HZ,153.6KHZ,2.4KHZ 的频率,比较稳定。1.频率产生电路2.频率产生电路的驱动电路2.5 数据显示电路设计(8279)1.8279部分数码管

15、显示电路由4位八段共阴数码及8279芯片及74HS138芯片组成,共阴数码管在应用时将公共极COM接到地,当某一字段发光二极管的阴极为高电平时,相应字段就点亮。当某一字段的阴极为低电平时,相应字段就不亮。通过数码管显示,可以简单而准确的实现显示频率。2.数码管2.6 电源的设计本电源电路是通过变压器,把外部接入的22V电源转变为5V电源,采用7805使电源稳定。第 3 节 软件设计 开始初始化T1定时,T0计数T0计数满T1定时1秒满 While(1)T0count+ 计算脉冲个数sum 送数码管显示3 程序设计 C语言程序清单/*我的频率计:T0定时计器,T1计数器,由P35(/T1)口输入

16、待测频率*/*T0定时1S,在这1S内T1的计数值就是待测的频率值。*/#include<reg52.h>/头文件#include<intrins.h>/头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义sfr16 DPTR=0x82;/定义DPTRbit status_F=1;/状态标志位uint aa, qian, bai,shi,ge,bb,wan,shiwan; /定义变量uchar cout;unsigned long temp;/定义长整型变量/*数码管显示0-9*/uchar co

17、de table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/*子函数声明*/void delay(uint z);void init();void display(uint shiwan,uint wan,uint qian,uint bai,uint shi,uint ge);void xtimer0();void xtimer1();void xint0();/*主函数*/void main()P0=0XFF; /初始化P0口init();/调用定时器,计数器初始化whi

18、le(1)if(aa=19)/定时20*50MS=1Saa=0;/定时完成一次后清0status_F=1;/完成计数 TR1=0; /关闭T1定时器,定时1S完成delay(46); /延时较正误差TR0=0;/关闭T0DPL=TL0; /计数量的低8位DPH=TH0;/计数量的高8位temp=DPTR+cout*65535; /计数值放入变量shiwan=temp%1000000/100000;wan=temp%100000/10000;qian=temp%10000/1000;/显示千位bai=temp%1000/100;/显示百位shi=temp%100/10;/显示十位ge=temp%

19、10;/显示个位display(shiwan,wan,qian,bai,shi,ge); /调用显示函数/*定时器,计数器初始化*/void init()temp=0;/变量赋初值aa=0;cout=0;IE=0X8A;/开中断,T0,T1中断TMOD=0x15;/T0为定时器工作于方式1,T1为计数器工作于方式1TH1=0x3c;/定时器赋高8初值 , 12M晶振TL1=0xb0;/定时器赋低8初值 , 12M晶振TR1=1;/开定时器1TH0=0;/计数器赋高8初值初值TL0=0;/计数器赋低8初值TR0=1;/开计数器0/*显示子函数*/void display(uint shiwan,

20、uint wan,uint qian,uint bai,uint shi,uint ge)P0=0xdf;/P0口是位选 1101 1111 改成 1111 1101 =0XDFP2=tableshiwan;/显示shiwan位delay(5);P0=0xef;/P0口是位选 1110 1111 改成 1111 1110 =0XFEP2=tablewan;/显示wan位delay(3);P0=0xf7;/P0口是位选 1111 01111 改成 0111 1111=0X7F P2=tableqian;/显示千位delay(3);P0=0xfb;/P0口是位选 1111 1011 改成 1011 1111=0XBFP2=tablebai;/显示百位delay(3);P0=0xfd; /P0口是位选 1111 1101 改成 1101 1111 =0XDFP2=tableshi;/显示十位delay(3);P0=0xfe;/P0口是位选 1111 1110 改成 1110 1111 =0XEFP2=tablege;/显示个位delay(3);/*定时中断子函数*/void xtimer1() interrupt 3TH1=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论