基于单片机数字频率计的设计(共14页).doc

上传人:飞****2 文档编号:14945763 上传时间:2022-05-09 格式:DOC 页数:14 大小:608.50KB
返回 下载 相关 举报
基于单片机数字频率计的设计(共14页).doc_第1页
第1页 / 共14页
基于单片机数字频率计的设计(共14页).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《基于单片机数字频率计的设计(共14页).doc》由会员分享,可在线阅读,更多相关《基于单片机数字频率计的设计(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上北华大学 频率计设计单片机实习报告姓 名: 班 级: 信息13-2学 号: 6院 系:电气信息工程学院指导教师: 实习日期:2015.10.122014.10.16目录一、实习的目的任务1、目的1) 熟悉并掌握单片机外围芯片的应用方法2) 掌握单片机应用系统一般的设计过程3) 利用Keil uV4软件完成应用系统软件设计4) 利用STC-ISP软件完成在系统编程、下载,并完成系统软件调试2、任务课题名称:数字频率计处 理 器:AT89S52单片机测量范围:1Hz-100Hz显 示:LCD12864测量波形:矩形波、正弦波等实际成果:实物、设计报告一份二、硬件介绍1、硬

2、件设计数字频率计是现代科研生产中不可或缺的测量仪器,它以十进制数显示被测频率,基本功能是测量正弦信号,方波信号,及其它各种单位时间内变化的物理量。此次设计提出了用AT89S52单片机为核心控制元件,设计一个简易的数字频率计, 本方案以AT89S52单片机作为主控核心,与LSD12864、发光二极管、按键、香蕉线等构成数字频率计如图2-1所示,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的数字频率计具有实时显示信号源频率特点,能够对1999Hz频段内的正弦信号,方波信号进行测量,同时还利用S语言编程,使其实现一些基本的功能。图2-1 频率计原理图本设计的系统实用性强、操

3、作简单、扩展功能强,可应用于教学实验,学生自主实验等对频率精确度要求不高的场合,也可应用于家用情况下频率的初步获取。它的功能实现是测频开始前,单片机P32接口为信号源的接口,操作人连接信号线之后按下总开关,即测频开始,此时LCD12864会显示对应的信号的频率,同时发光二极管会闪烁作为工作信号,直至测频结束,实物如图2-2所示。图2-2实物图2、电路结构本系统所涉及的部分电路如下所示:图2-3 蜂鸣器电路图2-4 LCD12864电路图2-5键盘电路图2-6 led电路图三、软件介绍 1、keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统

4、,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。2、Keil Vision42009年2月发布Keil Vision4,Keil Vision4引入灵活的窗口管理系统,使开发人员

5、能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。3、keil中国Keil 的网站虽然没有中文版本,但是Keil 软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil 软件。国内由米尔科技、亿道电子、英倍特提供Keil 的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商。4、优点Keil C51生成的目标代码效率非常

6、之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。四、程序设计1、设计思路利用AT89S52内部的定时/计数器0,和定时/计数器1结合完成,在初化AT89S52时,把定时/计数器0设置为计数方式,计数的信号来源于单片机的引脚P35,定时/计数器1设置为定时方式.上电后按下按键kye1(P37),去抖启动,同时开始T1的定时过程和T0的计数过程,T1定时50ms,设置定时中断,当T1第20次进入中断定时结束时,停止T0的计数过程。之后通

7、过读取T0的计数值n,就可以知道在1s内输入信号的频率为val。若T1定时不到1s,T0计数到65536溢出,则进入计数中断,蜂鸣器报警。2、程序流程图本程序流程框图如下图所示:图4-1 程序流程图3、软件代码专心-专注-专业#include#includelcd.hint i=0,j=0,k=0,l=0;int bai=0,shi=0,ge=0,fen=0;int jz2=0,0;sbit start=P37;sbit add=P36;sbit dec=P35;void main() TMOD=0X10; TH1=(65536-45872)/256; TL1=(65536-45872)%25

8、6; EA=1; ET1=1; TR1=1;/EX0=1;IT0=1;lcd_init();display1();/hzsend_command(0x88+0x03); send_data(dis111);send_data(dis112);/ while(1);/*/计数/*inti()interrupt 0 i+; /*t1() interrupt 3TR1=0;j+;if(j=20) j=0; /jiaozhengshuju if(k=0)jz0=i;k=1; if(k=1)jz1=i;k=0; i=0; / if(jz0=jz1)l=jz1;else l=jz0;/ bai=l/100

9、; shi=l%100/10; ge=l%10; display(0x88,bai,shi,ge,0);/ TH1=(65536-45872)/256;TL1=(65536)%256;TR1=1;LCD程序:/#include #define uchar unsigned char#define uint unsigned int/*12864端口定义*/#define CS P2 /寄存器选择输入 sbit SID = P11; /液晶读/写控制sbit SCLK = P10; /液晶使能控制uchar code dis1 = .Hz;uchar code dis2 = frequency

10、meter;/*/* */* 延时函数 */* */*/void delay_1ms(uint x) uint i,j; for(j=0;jx;j+) for(i=0;i110;i+); void send_command(uchar command_data) uchar i; uchar i_data; i_data=0xf8; CS=0x03; SCLK=0; for(i=0;i8;i+) SID=(bit)(i_data&0x80); SCLK=0; SCLK=1; i_data=i_data1; i_data=command_data; i_data&=0xf0; for(i=0;i

11、8;i+) SID=(bit)(i_data&0x80); SCLK=0; SCLK=1; i_data=i_data1; i_data=command_data; i_data=4; for(i=0;i8;i+) SID=(bit)(i_data&0x80); SCLK=0; SCLK=1; i_data=i_data1; CS=0x00; delay_1ms(10);void send_data(uchar command_data) uchar i; uchar i_data; i_data=0xfa; CS=0x03; for(i=0;i8;i+) SID=(bit)(i_data&0

12、x80); SCLK=0; SCLK=1; i_data=i_data1; i_data=command_data; i_data&=0xf0; for(i=0;i8;i+) SID=(bit)(i_data&0x80); SCLK=0; SCLK=1; i_data=i_data1; i_data=command_data; i_data=4; for(i=0;i8;i+) SID=(bit)(i_data&0x80); SCLK=0; SCLK=1; i_data=i_data1; CS=0x00; delay_1ms(10);void lcd_init() send_command(0x

13、30); delay_1ms(5); send_command(0x0c); delay_1ms(5); send_command(0x01); delay_1ms(5);void display(int a,uchar b,uchar c,uchar d,uchar e ) send_command(a); send_data(dis1b); send_data(dis1c); send_data(dis1d); send_data(dis110); send_data(dis1e);void display1()int a; send_command(0x80); for(a=0;a16;

14、a+) send_data(dis2a); 五、实习体会为期一周的实习很快就结束了,在这一周里我在以前学习单片机的基础上又学到了很多知识,不仅丰富了自己的硬件知识,还锻炼了很好的编程能力。实习开始我们查询资料,同时根据实验内容调试各个模块。经过几天的不懈努力,我们终于把实习题目完全做了出来,由于进度比较快,所以接下来的时间我又研究了实验板上的其它电路和元器件。通过对实验板上面的硬件电路的学习和研究,除了本实验中用到的一些器件,我同时研究了A/D采集电路的设计应用,12864液晶并行方式的应用等。在实习中我们积极合作,遇到不会或不懂的问题积极交流,共同学习,同时我们还积极帮助别的同学学习和调试,

15、在教会大家知识的同时进一步巩固了自己所学。这次实习不仅让我找到了进一步学习单片机的方式和方法,同时让我学到了很多新的知识,感受到了用自己所学帮助别人的乐趣。并且使我们学到的知识理论联系实际,更深入的巩固了课堂所学。希望以后学校和老师还能给我们提供这样的机会。六、参考文献【1】卢胜利,郝立果,丁峰等.单片机原理与应用技术实践M.北京:机械工业出版社,2009.5;【2】谢自美.电子线路设计M.武昌:华中科技大学出版社,2000.7;【3】张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2002.【4】李春.数字频率计设计D.北京:邵阳电子厂,2011,02:4页到7页;【5】张杰,杨艳丽,马莉莉,张立倩.基于单片机C语言的数字频率计设计内蒙古农业大学学报,第28卷,第二期,2007年6月。【4】郭天祥.新概念51单片机教程.北京.电子工业出版社,2009;七、教师评语教师评语:成绩:教师签字:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁