单片机数字频率计课程设计.wps资料文档下载
《单片机数字频率计课程设计.wps资料文档下载》由会员分享,可在线阅读,更多相关《单片机数字频率计课程设计.wps资料文档下载(25页珍藏版)》请在冰豆网上搜索。
![单片机数字频率计课程设计.wps资料文档下载](https://file1.bdocx.com/fileroot1/2022-10/7/fd5ddea7-2d27-4412-8707-86ca728c9004/fd5ddea7-2d27-4412-8707-86ca728c90041.gif)
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;
按周期测量键则测量周期;
按脉宽测量键则测量脉宽;
按占空比测量键则测量占空比。
设计要求1、编程语言:
汇编或C51;
2、计算机打印单片机技术课程设计说明书一份;
3、设计时间:
一周;
4、实物制作;
六、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。
七、单片机技术课程设计说明书书写规范格式参照“单片机技术课程设计说明书书写规范格式”文件。
1.3设计课题总体方案介绍及工作原理说明1.3设计课题总体方案介绍及工作原理说明本次设计主要分成两大方面:
硬件电路的设计和软件程序的设计。
硬件电路方面,采用单片机最小系统,便可实现课题要求。
程序的设计方面,本人采用汇编语言编写程序。
1第二章硬件系统的设计第二章硬件系统的设计2.1硬件系统各模块功能简要介绍2.1硬件系统各模块功能简要介绍本次课程设计用到的硬件电路有七个部分组成(见表2-1和图2-1)电路图见附录A。
表2-1硬件电路说明名称接法及功能说明AT89S52单片机,硬件系统的核心处理器数码管电路共阳极,用于显示,P0为段控口P2为位控口电源电路用于接通+5V电源晶振电路给单片机提供时钟信号,12MHz复位电路采用按键电平复位独立键盘电路接P1口下载口用于给单片机下载程序图2-1硬件电路的结构框图单片机数码管复位电路电源电路晶振电路独立键盘电路下载口2硬件电路主要部分的介绍如下:
1、数码管电路:
图2-2数码管电路如图2-2所示数码管电路采用了两个4位一体共阳数码管,P0口接为段控口,电阻的作用是限流,P2口为位控口控制三极管通和断,当其为低电平时三极管接通,相应的数码管显示。
2、独立键盘电路:
图2-3独立键盘电路如图2-3,独立键盘电路采用按键低电平有效。
33、复位电路:
图2-4复位电路复位电路采用手动复位的方式,利用一个电容电压的不可突变性使得复位信号能够维持2个周期的高电平。
4第三章软件系统的设计第三章软件系统的设计3.13.1使用单片机资源的情况使用单片机资源的情况内部RAM:
20H单元存键码;
40H-47H单元为显示频率、脉宽、占空比的缓冲区;
30H-37H单元为显示学号信息的缓冲区;
21H-24H、60H和66H为间接存数区;
SP指向70H单元;
使用了通用寄存器区的第0组和第2组通用寄存器组;
使用了专用寄存器区中的A、IE、P0、P2、P3,其中P0口为段控口,P2口为位控口,P3.4口作为频率待测信号的输入口,P3.2为待测周期、脉宽、占空比信号的输入口。
3.2软件系统各模块功能简要介绍3.2软件系统各模块功能简要介绍程序中主要的子程序为:
测量频率程序,测量周期程序,测量脉宽程序,测量占空比程序,其次有把二进制转化为是十进制的进制转化程序和显示程序。
测量频率程序,测量周期程序,测量脉宽程序,测量占空比子程序在下一节中会介绍,而其它子程序相对比较简单,本节主要介绍进制转化子程序。
进制转化子程序是利用对10循环求取余数的方法,把二进制数转化为十进制数。
其核心是“移位相减”即把被除数向余数单元左移,然后把余数和除数想减,然后把被除数移位后腾出来的低位存放商,这样除法完成后,被除数已经全部转移到余数单元并逐次被减得到最后的余数,而被除数单元被商代替。
3.3设计原理简介3.3设计原理简介本次设计的重点的合理利用定时/计数器。
测量频率:
使用T0的计数功能,T1的计时功能,当它们同时工作时如计时时间为1S,则T0中计的数即为频率。
测量周期:
此处定义周期为信号两个相邻上升沿的时间差,因此定时器从第一个上升沿开始计时到第二个上升沿结束计时即可测得周期。
因为测量脉宽和占空比的原理和测量周期的一致,此处便不再重复。
53.4软件系统程序流程框图3.4软件系统程序流程框图图3-1主程序流程图开始等待查询键值有键按下?
N延时10ms查询键值确定有按?
下?
判断按键YNYS2按下,计频率S3按下,计周期S5按下,计占空比S4按下,计脉宽S6按下,显示学号把计量值转化为十进制显示6图3-2频率子程序流程图图3-3脉宽子程序流程图图3-4显示子程序流程图开始始始定时计数器初始化延时1s得到频率值将二进制频率转化为十进制显示开始定时计数器初始化把测得的周期化为十进制信号正跳变?
信号为低电平?
显示NYNY开始给P2口送位控码给P0口送段控码延时1ms循环8次?
结束YN7图3-4周期子程序流程图图3-5占空比子程序流程图开始定时计数器的初始化信号正跳变?
开始定时信号正跳变?
把测得的二进制周期转化为十进制显示NYNY开始定时计数器初始化信号出现正跳变?
信号出现负跳变?
存储脉冲宽度存周期信号出现正跳变?
NYNY显示NY8第四章第四章设计误差分析及总结设计误差分析及总结4.1误差分析4.1误差分析由于程序中所用的定时/计数器均在查询的方式下工作,加上实物晶振频率的误差,测量误差在所难免,而且由于受程序和单片机本身所限,对测量量也有一定的要求。
对待测信号的要求如下:
1、要求是方波,且高电平至少高于3.5V,低电平应低于0.2V。
2、由于系统的晶振频率为12MHz所以单片机的机器周期T1为1uS,定时/计数器用的是查询方式,故Tmin=2T1,Tmax=1S,而受显示数码位控所限,fmax=65535Hz综上,对待测频率信号打要求是:
HzfHz165535。
对待测周期信号的要求是uSTuS265535。
对待测脉宽信号的要求是:
uSTmuS165535。
由于占空比程序使用的是定时/计数器的工作方式2,故usTmuS1255,uSTkuS1255。
不同的待测信号,要求不同,不符合测量要求的信号,将会出现较大的误差。
在测量范围内的误差,主要由晶振系统和定时器查询程序所占的时间产生,其中最大的是频率的误差,因此要靠调节延时程序的初值,减小误差。
4.24.2频率计的使用说明频率计的使用说明待测频率信号从P3.4口引入,待测周期信号和待测脉宽及占空比信号从P3.2口引入。
测量不同的待测信号之前要按复位键S1手动复位。
S2键测周期,S3键测频率,S4键测脉宽,S5键测占空比,按S6显示学号信息。
94.3实物的运行分析4.3实物的运行分析用keil4编程,把生成的.hex文件通过下载口导入单片机,测得数据如表4-1所示:
表4-1实物的运行分析实际实际测量测量误差误差周期100uS周期100uS101uS101uS0.010.01频率5000Hz频率5000Hz4975Hz4975Hz0.0050.005占空比100:
200占空比100:
200102:
2000.020.02脉宽100uS脉宽100uS101uS101uS0.010.01由表4-1可知,实物测量误差较小,完成设计任务。
4.44.4设计总结设计总结本次课程设计,使我更加熟悉了单片机最小系统,熟悉了硬件电路板的绘制流程和汇编语言的使用,更加培养了我的动手能力,在设计的过程中,难点首先是protel99se的使用,这使我不得不把电子教程完整的看一遍。
然后是求余程序的编写,移位相减解决了这个问题。
再次是对频率连续可测量并使显示不间断,在延时程序中调用显示程序使这个问题得到了解决。
其实设计程序中最主要的问题就是程序的循环了,这就要有清晰的思路,课程设计本身就是一个发现问题解决问题的平台,只是这一次我利用这个平台发现了一些显而易见的问题,本次设计暴露的我课本知识掌握不牢的缺点,今后应当注意改正。
而对于单片机这门课程我的希望是作业宜精不宜多,而且在实验课时应注意增加相关软件使用指导,这样比在信息繁琐的网上找资料的学习效率高的多。
10参考资料参考资料1、马忠梅,单片机的C语言Windows环境编程宝典M,北京:
北京航空航天大学出版社,2003.6;
2、李光飞,单片机C程序设计指导M,北京:
北京航空航天大学出版社,2003.01;
3、李光飞,单片机课程设计实例指导M,北京:
北京航空航天大学出版社,2004.9。
11附录A附录APCB图图:
12123456ABCD654321DCBATitleNumberRevisionSizeBDate:
21-Aug-2011SheetofFile:
H:
单片机技术作业单片机技术作业资料数码管系统图(20110821).ddbDrawnBy:
EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1AT89S52a11b7c4d2e1f10g5dp3d46d38d29d112LED1LED1a11b7c4d2e1f10g5dp3d46d38d29d112LED2R20470R21470R22470R23470R24470R25470R26470R27470P20P21P22P23P24P25P26P27R00470R012KR02470R03470R04470R05470R06470R07470D1LEDD2LEDD3LEDD4LEDD5LEDD6LEDD7LEDD8LEDP00P01P02P03P04P05P06P07VCCP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27S1R1200R21K+C322uFVCCRETRETX1X2Y112MHzC133pFC233pFX1X2123456789J510KP00P01P02P03P04P05P06P07P10P11P12P13P14P15P16P17LS1BELLR121KVCCP31P30P311122334455667788991010ISPWEP15RETP17P16VCCP3712J1CON2SSR131KP32P33P