1、单片机系统开发与应用工程实习报告选题名称: 基于 AT89C52 单片机的简易频率计设计系(院): 专 业: 计)班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期2010 年 5 月 30 日摘要:在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以 AT89C52 单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器 0 作为定时器,实现
2、 2.5ms 定时。 外部待测脉冲从单片机的 TI(第 15引脚)输入,以定时/计数器 1 作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用 C 语言进行软件编程,用 keil 软件进行调试。最后把调试成功后的程序固化到 AT89C52 单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。关键词:单片机;频率计;AT89C52目 录1 项目综述111 设计要求 112 系统设计 12 硬件设计22.1 电路原理图 .22.2 元件清单 .22.3 主要芯片引脚说明 .33 软件设计43.1 程序流程图 .43.2 软件设计简述
3、.53.3 程序清单 .64 系统仿真及调试.104.1 硬件调试 .104.2 软件调试 .105 结果分析.10总 结.11参考文献.12单片机系统开发与应用工程实习报告11 项目综述在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了选择 AT89C52 单片机作为核心器件,采用模块化布局,设计一个简易数字频率计测量频率并进行显示。11 设计要求基于 AT89C52 单片机简易频率计的设计要求如下:(1) 测量范围。幅度:0.55V;频率:1Hz1MHz.(2) 测试误差0.1%。(3) 用 4 位数
4、码管显示。当频率变化时,能通过数码管及时看到变化后的信号频率。12 系统设计121 框图设计基于 AT89C52 单片机简易频率计的电路主要由数码管显示电路、复位电路、晶振电路、电源电路等几部分组成,系统框图如图 3.1 所示。图 3.1 基于 AT89C52 单片机简易频率计系统框图单片机系统开发与应用工程实习报告2123 知识点本项目需要通过学习和查阅资料,掌握和了解如下知识:1) +5V 电源原理及设计。2) 单片机复位电路工作原理及设计。3) 单片机晶振电路工作原理及设计。4) 频率信号发生器的特性及使用。5) 驱动电路 74LS244 的特性及使用。6) AT89C52 单片机引脚结
5、构及功能。7) 单片机 C 语言程序设计方法。2 硬件设计2.1 电路原理图基于 AT89C52 单片机简易频率计电路原理图如图 2-1 所示。图 2-1 基于 AT89C52 单片机简易频率计电路原理图2.2 元件清单基于 AT89C52 单片机简易频率计元件清单如表 2-1 所示。表 2-1 基于 AT89C52 单片机简易频率计元件清单元件名称 型号 数量/个 用途单片机 AT89C52 1 控制核心晶振 12MHz 1 晶振电路电容 30pF 2 晶振电路电解电容 10uF/10V 1 复位电路电阻 10k 1 复位电路驱动器 74LS244 1 LED 驱动非门 74LS04 1 位
6、选信号单片机系统开发与应用工程实习报告3数码管 4 位共阴 1 显示电路按键 1 复位电路电源 +5V/0.5A 1 提供+5V2.3 主要芯片引脚说明2.3.1 AT89C52 引脚说明AT89C52 为 40 脚 双 列 直 插 封 装 8 位 通 用 微 处 理 器 , 采 用 工 业 标 准 的 C51 内核 , 在 内 部 功 能 及 管 脚 排 布 上 与 通 用 的 8xc52 相 同 , 其 主 要 用 于 会 聚 调 整 时 的 功能 控 制 。 功 能 包 括 对 会 聚 主 IC 内 部 寄 存 器 、 数 据 RAM 及 外 部 接 口 等 功 能 部 件的 初 始 化
7、 , 会 聚 调 整 控 制 , 会 聚 测 试 图 控 制 , 红 外 遥 控 信 号 IR 的 接 收 解 码 及 与主 板 CPU 通 信 等 。 AT89C52 共 有 6 个 中 断 向 量 : 两 个 外 中 断 ( INT0 和INT1) , 3 个 定 时 器 中 断 ( 定 时 器 0、 1、 2) 和 串 行 口 中 断 。AT89C52 引脚图如下:图 2-2 AT89C52 引脚图主 要 管 脚 有 :XTAL1( 19 脚 ) 和 XTAL2( 18 脚 ) 为 振 荡 器 输 入 输 出 端 口 。RST/Vpd( 9 脚 ) 为 复 位 输 入 端 口 , 外 接
8、 电 阻 电 容 组 成 的 复 位 电 路 。VCC( 40 脚 ) 和 VSS( 20 脚 ) 为 供 电 端 口 , 分 别 接 +5V 电 源 的 正 负 端 。P0 口 是 一 组 8 位 漏 极 开 路 型 双 向 I/O 口 , 也 即 地 址 /数 据 总 线 复 用 口 。P1, P2, P3 是 一 组 带 有 内 部 上 拉 电 阻 的 8 位 双 向 I/O 口 。单片机系统开发与应用工程实习报告42.3.2 74HC244 引脚说明74HC244 可 以 让 输 入 的 数 据 保 持 比 较 长 的 时 间 , 简 单 输 入 接 口 扩 展 通 常 使 用的 典
9、型 芯 片 为 74HC244, 由 该 芯 片 可 构 成 三 态 数 据 缓 冲 器 。 74HC244 芯 片 的 引脚 排 列 如 下 图 所 示 :图 2-3 74HC244 引 脚 图74HC244 芯 片 内 部 共 有 两 个 四 位 三 态 缓 冲 器 , 使 用 时 可 分 别 以 1C 和 2G 作为 它 们 的 选 通 工 作 信 号 。 当 1/OE 和 2/OE 都 为 低 电 平 时 , 输 出 端 Y 和 输 入 端 A状 态 相 同 ; 当 1/OE 和 2/OE 都 为 高 电 平 时 , 输 出 呈 高 阻 态 。3 软件设计本项目利用单片机的内部定时器溢
10、出产生中断来实现定时。待测信号由单片机的TI 中断来间接测量 。定时 /计数器 0 定时 2.5ms 中断并对中断次数进行计数,当 2.5ms中断次数计到 40 次即 0.1s 时,查看定时/计数器 1 上的计得的数值,经过计算得到的待测信号的频率值,放入显示缓冲区,由数码管进行显示。3.1 程序流程图主程序流程图如图 3-1 所示。单片机系统开发与应用工程实习报告5图 3-1 主程序流程图3.2 软件设计简述1)利用单片机的内部定时器溢出产生中断来实现定时。2)待测信号由单片机的 TI(第 15 引脚)中断来间接测量。3)采用 12MHz 晶振,机器周期为 1us4)定时/计数器 0 工作方
11、式:定时方式,工作方式 1,每次定时 2.5ms。实现 2.5ms 定时算法:(3-1)1663(2)2.510()DX即 TH0=0xf6,TL0=0x3c 5)定时/计数器 1 工作方式:计数方式,工作方式 1。当 2.5ms 中断次数计到 40次即 0.1s 时,查看定时/计数器 1 上的计得的数值 。6)通过公式: (3-2)0.24计 数 值脉 冲 频 率可以计算出脉冲频率。单片机系统开发与应用工程实习报告6最后的数据以 KHz 单位,采用四舍五入的方法保留一位小数。7)显示采用四位共阴 LED 数码管,用单片机 P0 口的 8 位控制数码管的 8 段二极管的明暗。用 P2 口的 P
12、2.0P2.3 作为 4 位数码管的选通信号,采用从低到高逐位扫描的方法。3.3 程序清单基于 AT89C52 单片机简易频率计程序清单如下:#includebit timeint0,timeint1;unsigned char dispbuf4;unsigned int period;unsigned int timecount=0;unsigned int count_1s;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /7
13、段数码管代码表HEX_TO_BCD(unsigned int n) /十六进制数转 BCD 码子程序,/将 BCD 码送至显示缓存数组unsigned char i; /当显示的频率超出范围,显示 EEEE 报错if (n9361)for(i=0;i40)count_1s=0;/每 0.1s 对计数器 1 所计数 值进行统计单片机系统开发与应用工程实习报告9timecount=TH1*256+TL1;TH1=0;TL1=0;/精确到小数点后 1 位,以 KHz 为单位period=timecount/10;/四舍五入显示if(timecount%10)4)period+;timecount=0
14、;HEX_TO_BCD(period);void timer1(void) interrupt 3 /定时器 1 中断服务程序,溢出后中断TH1=0x00;TL1=0x00;void main(void) /主函数/初始化INIT_TMR1INT();while(1)/显示子程序scandisp();单片机系统开发与应用工程实习报告104 系统仿真及调试应用系统设计完成之后,就要进行硬件调试和软件调试,软件调试可以利用开发及仿真系统进行。4.1 硬件调试硬件调试的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和工艺性故障。一般原则是先静态后动态。利用万用表或逻辑
15、测试仪器,检查电路中各器件以及引脚是否连接正确,是否有短路故障。先将单片机 AT89C52 芯片取下,对电路板进行通电检查,通过观察看是否有异常,是否有虚焊的情况,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试,观察各接口电路是否正常。4.2 软件调试软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。本设计采用的调试软件是 keil。程序调试时,先是一个模块一个模块地进行,一个子程序一个子程序地调试,最后联起来统调。当程序调试无误后,就可以用在系统编程器将程序固化到 AT89C52 的 FLASH ROM 中。5 结果分析把电路按要求接
16、好,接上待测脉冲信号,插上电源即可测量出待测脉冲信号的频率。本设计利用实验室提供的单片机实验箱上的脉冲信号进行测试,当接入的脉冲信号为 0.25MHz 时,可以看到数码管上的显示值为 259.4KHz;当接入的脉冲信号为0.5MHz 时,可以看到数码管上的显示值为 508.3KHz。经计算,测量值都在误差允许范围内,因此符合设计要求,本设计成功完成预期目标。单片机系统开发与应用工程实习报告11总结经过一个星期的努力和老师的耐心指导,终于顺利完成了此次的单片机课程设计。整个过程可以说就是一个不断发现问题和解决问题的过程,虽然有点累,但收获颇多。通过此次的单片机课程设计,我学到了许多以前在课本上学
17、不到的东西,同时也把以前学到的理论知识运用到了此次的课程设计中,很好地加强了我在单片机方面的知识,特别是在中断处理部分。整个调试程序的过程让我对 keil 软件有了更深一步的了解。并且,此次的课程设计也很好地锻炼了我的动手能力,让我能够发现问题,积极开动脑筋去解决问题,同时也让我对硬件有了进一步的了解。课程设计是培养我们综合运用所学知识,发现、提出、分析和解决问题的实际能力,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考查过程。这次课程设计使我懂得了理论与实际相结合的重要性,只掌握书上的理论知识是远远不够的,而应该把所学的理论知识与实践相结合,把理论运用与实践,从实践中验证理论,从
18、而提高自己的实际动手能力和独立思考的能力,为以后踏入社会打下基础。在设计的过程中不免会遇到一些问题,通过老师和同学的帮助,以及去图书馆查找资料,终于把问题都解决了,在解决问题的过程中,我发现自己的不足之处,同时也巩固了所学的知识。总得来说,此次的课程设计很有意义,我从中学到了很多。过程虽苦,但结果很甜!单片机系统开发与应用工程实习报告12参考文献1 李广弟,朱月秀,冷祖祁.单片机基础.北京:北京航天航空大学出版社,2007.62 扬居义.单片机课程设计指导.北京:清华大学出版社,2009.93 张义和,陈敌北.例说 8051.北京:人民邮电出版社,2006.14 求是科技.单片机典型模块设计实
19、例导航.北京:人民邮电出版社,2004.55 周兴华.手把手教你学单片机 C 程序设计.北京:北京航空航天大学出版社,2007.10指导教师评语学号 姓名 班级选题名称 基于 AT89C52 单片机的简易频率计设计序号 评价内容权重( %)得分1 考勤记录、学习态度、工作作风与表现。 5 2自学情况:上网检索机时数、文献阅读情况(笔记) 。 103论文选题是否先进,是否具有前沿性或前瞻性。54成果验收:是否完成设计任务;能否运行、可操作性如何等。205报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。306 文献引用是否合理、充分、真实。 57答辩情况:自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。25合计指导教师(签章): 年 月 日