0频率计设计单片机实习报告姓名:班级:信息13-2学号:6院系:电气信息工程学院指导教师:实习日期:2015.10.12~2014.10.16北华大学1目录一、实习的目的任务...............................................................................................................21、目的.....................................................................................................................................22、任务.....................................................................................................................................2二、硬件介绍...........................................................................................................................21、硬件设计.............................................................................................................................22、电路结构.............................................................................................................................4三、软件介绍...........................................................................................................................61、keil简介..............................................................................................................................62、KeilμVision4....................................................................................................................63、keil中国..............................................................................................................................74、优点.....................................................................................................................................7四、程序设计...........................................................................................................................71、设计思路.............................................................................................................................72、程序流程图.........................................................................................................................73、软件代码.............................................................................................................................8五、实习体会.........................................................................................................................12六、参考文献.........................................................................................................................12七、教师评语.........................................................................................................................132一、实习的目的任务1、目的1)熟悉并掌握单片机外围芯片的应用方法2)掌握单片机应用系统一般的设计过程3)利用KeiluV4软件完成应用系统软件设计4)利用STC-ISP软件完成在系统编程、下载,并完成系统软件调试2、任务课题名称:数字频率计处理器:AT89S52单片机测量范围:1Hz-100Hz显示:LCD12864测量波形:矩形波、正弦波等实际成果:实物、设计报告一份二、硬件介绍1、硬件设计数字频率计是现代科研生产中不可或缺的测量仪器,它以十进制数显示被测频率,基本功能是测量正弦信号,方波信号,及其它各种单位时间内变化的物理量。此次设计提出了用AT89S52单片机为核心控制元件,设计一个简易的数字频率计,本方案以AT89S52单片机作为主控核心,与LSD12864、发光二极管、按键、香蕉线等构成数字频率计如图2-1所示,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的数字频率计具有实时显示信号源频率特点,能够对1~999Hz频段内的正弦信号,方波信号进行测量,同时还利用S语言编程,使其实现一些基本的功能。3图2-1频率计原理图本设计的系统实用性强、操作简单、扩展功能强,可应用于教学实验,学生自主实验等对频率精确度要求不高的场合,也可应用于家用情况下频率的初步获取。它的功能实现是测频开始前,单片机P3^2接口为信号源的接口,操作人连接信号线之后按下总开关,即测频开始,此时LCD12864会显示对应的信号的频率,同时发光二极管会闪烁作为工作信号,直至测频结束,实物如图2-2所示。4图2-2实物图2、电路结构本系统所涉及的部分电路如下所示:图2-3蜂鸣器电路5图2-4LCD12864电路图2-5键盘电路6图2-6led电路图三、软件介绍1、keil简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。2、KeilμVision42009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。73、keil中国Keil的网站虽然没有中文版本,但是Keil软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。国内由米尔科技、亿道电子、英倍特提供Keil的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商。4、优点KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。四、程序设计1、设计思路利用AT89S52内部的定时/计数器0,和定时/计数器1结合完成,在初化AT89S52时,把定时/计数器0设置为计数方式,计数的信号来源于单片机的引脚P3^5,定时/计数器1设置为定时方式.上电后按下按键kye1(P3^7),去抖启动,同时开始T1的定时过程和T0的计数过程,T1定时50ms,设置定时中断,当T1第20次进入中断定时结束时,停止T0的计数过程。之后通过读取T0的计数值n,就可以知道在1s内输入信号的频率为val。若T1定时不到1s,T0计数到65536溢出,则进入计数中断,蜂鸣器报警。2、程序流程图本程序流程框图如下图所示:8图4-1程序流程图3、软件代码#includereg52.h#includelcd.hinti=0,j=0,k=0,l=0;intbai=0,shi=0,ge=0,fen=0;intjz[2]={0,0};sbitstart=P3^7;sbitadd=P3^6;sbitdec=P3^5;voidmain(){TMOD=0X10;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET1=1;TR1=1;//EX0=1;IT0=1;lcd_init();display1();//hzsend_command(0x88+0x03);send_data(dis1[11]);send_data(dis1[12]);//while(1);}//***********************************************//计数9//***********************************************inti()interrupt0{i++;}//************************************************t1()interrupt3{TR1=0;j++;if(j==20){j=0;//jiaozhengshujuif(k==0){jz[0]=i;k=1;}if(k==1){jz[1]=i;k=0;}i=0;//if(jz[0]=jz[1])l=jz[1];elsel=jz[0];//////////////////////////////////////////bai=l/100;shi=l%100/10;ge=l%10;display(0x88,bai,shi,ge,0);}////////