简易数字频率计的设计_第1页
简易数字频率计的设计_第2页
简易数字频率计的设计_第3页
简易数字频率计的设计_第4页
简易数字频率计的设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要本文对基于单片机的数字频率计系统进行了研究。首先在绪论中介绍了本课题的课题背景、研究意义及完成的功能。本系统是以单片机的基本语言C语言来进行软件设计,51的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。综合以上C 语言的优点,我在编写本系统程序时选择了C 语言。正文中首先介绍了系统的总体设计思路,然后简单描述系统硬件工作原理,且附以系统硬件设计框图;接着具

2、体描述了系统的软、硬件设计,仿真结果,误差分析;最后对本次设计做出了简单的总结、并且提出一些教学建议,文档还附上了本次系统设计的电路原理图、PCB图及元器件清单。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。关键词:单片机;编程;系统设计ABSTRACTIn this paper, based on single chip digital frequency meter systems were studied.First described in the introduction the subject of this topic background, rese

3、arch significance and complete functions. The system is based on SCMs basic language C language for software design, programming language commonly used in 51 there are two, one is in assembly language, one is the C language. Assembly language code generation highly efficient machine readable, but th

4、ey are not strong, complex process that is even more difficult to read, while the C language, in most cases, the efficiency of its machine code generation and assembly language equivalent, but readable and portability is far more than assembly language, but can also be embedded in C language compila

5、tion to solve the time-sensitive nature of coding problems. To sum up the advantages of C language, I am in the preparation of the system selected C language program. First introduced the system in the body of the overall design idea, and then a brief description of system hardware works, and attach

6、ed to the system hardware design block diagram; then specifically describes the systems software and hardware design, simulation results, error analysis; Finally, to make this design a simple summary, and some teaching suggestions, the document is also attached to this sub-system design, circuit sch

7、ematics, PCB drawings and parts lists.This article written by the leading idea is that hardware and software combined with hardware-based, to the preparation of various functional modules.Keywords: microcontroller; programming; system design目 录1 设计课题任务、功能要求说明及总体方案介绍41.1 设计课题任务41.2 功能要求说明41.3 设计课题总体方

8、案介绍及工作原理说明42 设计课题硬件系统的设计62.1 设计课题硬件系统各模块功能简要介绍62.2 设计课题电路原理图、PCB图、元器件布局62.3 设计课题元器件清单63 设计课题软件系统的设计73.1 设计课题使用单片机资源的情况73.2 设计课题软件系统各模块功能简要介绍73.3 设计课题软件系统程序流程框图83.4 设计课题软件系统程序清单94 设计结论、仿真结果、误差分析、教学建议154.1 设计课题的设计结论及使用说明154.2 设计课题的仿真结果154.3 设计课题的误差分析174.4 设计体会174.5 教学建议17参考文献18鸣谢19附录1: 元器件清单20附录2: 电路原

9、理图21附录3: 元器件布局图22附录4: PCB图231 设计课题任务、功能要求说明及总体方案介绍1.1 课题设计任务设计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。1.2 功能要求说明该数字频率计频率以单片机最小系统为基础,采用独立式键盘及动态显示结构组成。四个键(分别接于P1.0P1.3)控制测量,按A键(接P1.0)测频率、按B键(接P1.1)测周期,按C键(接P1.2)测脉宽,按D键(接P1.3)测

10、占空比。1.3 设计课题总体方案介绍及工作原理说明本设计通过单片机内部定时器0定时1秒,同时被测矩形波输入P3.5(T1)通过计数器1对其进行计数,定时时间一到即可测得矩形波的频率,通过计算频率的倒数即可得到周期。同时被测矩形波通过P3.3(INT1)输入单片机,利用此矩形波启停定时器1,即可测得矩形波的脉宽。最后通过周期和脉宽可得占空比,系统总体电路框图如图1.1所示: 图1.1 系统整体框图系统工作原理如下:此数字频率计是利用单片机的P3.3(INT1)和P3.5(T1)同时作为被测矩形波信号输入端,且单片机晶振采用12MHZ。当按1键时测频率,被测矩形波信号从P3.5进入单片机,此时同时

11、启动定时器0和计数器1,定时器0一次定时50ms、定时20次,当定时1s一到立即停止定时计数器,因为晶振为12MHZ,所以此时计数器的计数值即为被测信号的频率;当按2键时测周期,此时先测得被测信号的频率,然后通过T=1/F可求得被测信号的周期;当按3键时,被测矩形波信号从P3.3(INT1)输入单片机,此时通过被测信号启停定时器1来实现测脉宽,即当被测矩形波为高电平时定时器1启动开始定时,当被测信号一从高电平变为低电平定时器1停止定时,读出定时器的定时值,此值即为被测信号的脉宽;按4键时,先测出被测矩形波信号的周期和脉宽,然后通过占空比等于脉宽比上周期即可得到信号的占空比。当按键测得相应的数据

12、之后,先对数进行按位处理后再送数码管显示。2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍复位电路:用于产生复位信号,通过RST引脚送入单片机,进行复位操作。复位电路的好坏直接影响单片机系统工作的可靠性,单片机的复位电路共有上电复位、按键复位和脉冲复位3种,在本次设计中采用按键复位电路,此电路即可实现按键复位,还可以实现上电复位。其中上电复位是利用电容充放电来实现的,按键复位则是通过使复位端经电阻与Vcc电源接通来实现的。振荡电路:单片机本身是一个复杂的同步时序系统,为了确保同步工作方式的实现,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。晶振频率时单片

13、机的一项重要技术指标,晶振频率越高,系统的时钟频率就越高,单片机的运行速度也就越快,本次设计所用的晶振频率为12MHZ。 按键电路:单片机的P1.0、P1.1、P1.2、P1.3分别接按键1、2、3、4。分别用以实现测矩形波的频率、周期、脉宽、占空比,当没键按下时P1.0P1.3为高电平,有键按下时则为低电平。在实物制作时因为P1口内部已经集成了上拉电阻,所以下图中的四个电阻可以省略。显示电路:本次设计显示器采用动态显示方式,用以实现测量值的现实。驱动电路:用以驱动数码管。+2.2 设计课题电路原理图、PCB图、元器件布局图 本设计的电路原理图、PCB图及元器件布局图分别如附录13所示。2.3

14、 设计课题元器件清单 元器件清单如附录4所示。3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况 定时/计数器的使用:测矩形波频率时使用到了定时/计数器0和定时/计数器1,以及使了定时0中断和计数1中断。测脉宽时使用到了定时/计数器1和计数1中断。单片机I/O口的使用:P0口作为数码管的段控码输入端使用;P1口的高4位作为独立式键盘的输入端使用;P2口作为数码管的位控码输入端使用;P3.3和P3.5作为被测矩形波信号的输入端使用。3.2 设计课题软件系统各模块功能简要介绍系统的软件模块框图如图3.1所示: 有键按下 1、2键按下 3、4键按下图3.1 系统软件模块框图各模块功能如下

15、:1、主程序模块:启动显示“P.”,等键按下。2、显示模块1:显示“P.”。3、键功能模块:判断那一键按下,然后去执行相应的程序。4、测频程序模块:测矩形波信号的频率和间接测其周期。5、测脉宽程序段:测矩形波信号的脉宽,并间接测信号的占空比。6、显示模块2:显示测得的频率、周期、脉宽值。7、显示模块3:显示小数点。8、显示模块4:显示占空比值。9、延时模块:用于各位显示间的延时。3.3 设计课题软件系统程序流程框图本次设计的几个主要程序流程图如图3.2、3.3、3.4所示:图3.2 测频子程序流程图 图3.3 测脉宽程序流程图图3.4 系统程序主程序流程图3.4 设计课题软件系统程序清单数字频

16、率计程序清单:#include #include #define uchar unsigned char#define ulong unsigned long#define uint unsigned intuchar data led7;uchar code ledw=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code ledd=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,0x0c,0x81,0x86, 0xa1,0xc6;sbit P3_3=P33;sbit P1_0=P10

17、;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;uchar count;ulong l,m,mk;void delay(uint t) uint i;for(i=0;it;i+);void time_0() interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=20) TR1=0; TR0=0; count=0;void jishu_1() interrupt 3 using 2 m+; TH1=0; TL1=0;ulong pinglv() T

18、MOD=0x51; EA=1; ET0=1; ET1=1; m=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0; TL1=0; TR0=1; TR1=1; while(TR0=1); l= m*65536+TH1*256+TL1;long maikuan() TMOD=0x90; EA=1; ET1=1; IT1=1; TH1=0; TL1=0; m=0; TR1=1; while(P3_3=1);while(P3_3=0);TR1=1;while(P3_3=1);TR1=0; return(m*65536+TH1*256+TL1)

19、; void xianshi() uchar k; uint i; for(k=0;k8;k+) P2=ledwk; i=ledk; P0=leddi ; delay(10) ; void xianshi2(void) uchar k,i; led7=11; for(k=7;k8;k+) P2=ledwk; i=ledk; P0=leddi; delay(10) ; void keyscan()if(P1_0=0) delay(1250); if(P1_0=0) while(P1_0=0); pinglv(); led0= l%10; led1= (l/10)%10; led2= (l/100

20、)%10; led3= (l/1000)%10; led4= (l/10000)%10; led5= (l/)%10; led6= (l/)%10; led7= 12; xianshi(); if(P1_1=0) delay(1250); if(P1_1=0) while(P1_1=0); pinglv(); if(l!=0) l=/l; led0= l%10; led1= (l/10)%10; led2= (l/100)%10; led3= (l/1000)%10; led4= (l/10000)%10; led5= (l/)%10; led6= (l/)%10; led7= 13; xia

21、nshi(); if(P1_2=0) delay(1250); if(P1_2=0) while(P1_2=0); l=maikuan(); led0= l%10; led1= (l/10)%10; led2= (l/100)%10; led3= (l/1000)%10; led4= (l/10000)%10; led5= (l/)%10; led6= (l/)%10; led7= 14; xianshi(); if(P1_3=0) delay(1250); if(P1_3=0) while(P1_3=0); pinglv(); if(l!=0) l=/l; mk=maikuan(); l=m

22、k*100/l; led0= l%10; led1= (l/10)%10; led2= (l/100)%10; led3= (l/1000)%10; led4= (l/10000)%10; led5= (l/)%10; led6= (l/)%10; led3= 15; xianshi(); void main() xianshi2(); while(P1&0x0f)=0x0f); while(1) keyscan();xianshi();4 设计结论、仿真结果、误差分析、教学建议4.1 设计课题的设计结论及使用说明本次设计的数字频率计达到了设计前的预期要求,即测量矩形波信号的频率、周期、脉宽和

23、占空比。数字频率计功能如下:按下键1(P1.0)可测得被测信号的频率。按下键2(P1.1)可测得被测信号的周期。按下键3(P1.2)可测得被测信号的脉宽。按下键4(P1.3)可测得被测信号的占空比。4.2 设计课题的仿真结果 当输入矩形波频率为1Hz时,启动仿真,数码管显示如图4.1所示,按下键1测得频率如图4.2所示,按下键2测得周期如图4.3所示,按下键3测得脉宽如图4.4所示,按下键4测得占空比如图4.5所示。图4.1 数码管上电显示结果图4.2 测频显示结果图4.3 测周期显示结果图4.4 测带宽显示结果 图4.5 测占空比显示结果4.3 设计课题的误差分析本次设计的数字频率计的主要误

24、差来自于:当启动定时计数器时,此时被测信号处于什么状态。当测频时启动定时计数器时,若从T1(P3.5)输入的正弦波刚好为高电平,而当1s定时到时刚好为高电平到时,此时测得的频率值最准确。若启动定时计数器时,输入得矩形波刚好处于低电平,而当定时1s到时矩形波刚好要发生负跳变时,此时测得的频率误差最大。而且频率越大误差也越大。要想避免以上的测量误差,方法是通过程序设计多次测量再求平均值来避免。4.4 设计体会通过本次课程设计-数字频率计的设计,进一步巩固了单片机软硬件的基础知识,在设计中真正的体会到了用汇编语言和C语言编程各自的优缺点,其中汇编语言编程变量存放地址清晰,条理清晰,但是程序设计起来较

25、为繁琐,大型,往往简单的一个逻辑关系要用几条语句才能表达清楚。而C语言程序设计的话程序设计起来较为简单,逻辑关系比较清晰,但是变量存放的地方不知道,而且变量的类型也需要自己设定,往往再设计中会因为变量定义错误而得不出结果。同时在绘制PCB图时特别要注意各个参数的设置,如电线的大小、焊盘和过孔的大小,这些参数的好坏会直接影响电路板的成功率。同时也要注意转印纸的印制和电路板的泡制。通过本次课程设计掌握了较为复杂的系统的C语言程序的编写,同时也使自己在文档处理能力和电路板的制作技术上更加的成熟和完美。4.5 教学建议在这儿提一点关于单片机这门课程教学建议:我认为老师在讲单片机的基础知识的同时应该多讲一点单片机程序实例,这样的话同学们学起来也

温馨提示

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

评论

0/150

提交评论