简易数字频率计的设计

更新时间:2023-11-24 17:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘 要

本文对基于单片机的数字频率计系统进行了研究。

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

本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。

关键词:单片机;编程;系统设计

1

ABSTRACT

In this paper, based on single chip digital frequency meter systems were studied.

First described in the introduction the subject of this topic background, research significance and complete functions. The system is based on SCM's 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 they 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 compilation 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 attached to the system hardware design block diagram; then specifically describes the system's 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 schematics, 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

2

目 录

1 设计课题任务、功能要求说明及总体方案介绍 ................................................. 4 1.1 设计课题任务................................................................................................ 4 1.2 功能要求说明 ....................................................................................................... 4 1.3 设计课题总体方案介绍及工作原理说明 ........................................................ 4 2 设计课题硬件系统的设计 ..................................................................................... 6 2.1 设计课题硬件系统各模块功能简要介绍.................................................... 6 2.2 设计课题电路原理图、PCB图、元器件布局............................................. 6 2.3 设计课题元器件清单.................................................................................... 6 3 设计课题软件系统的设计 ..................................................................................... 7 3.1 设计课题使用单片机资源的情况................................................................ 7 3.2 设计课题软件系统各模块功能简要介绍.................................................... 7 3.3 设计课题软件系统程序流程框图 ..................................................................... 8 3.4 设计课题软件系统程序清单 ............................................................................. 9 4 设计结论、仿真结果、误差分析、教学建议 ....................................................... 15

4.1 设计课题的设计结论及使用说明.............................................................. 15 4.2 设计课题的仿真结果 ......................................................................................... 15 4.3 设计课题的误差分析.................................................................................. 17 4.4 设计体会 ............................................................................................................... 17 4.5 教学建议 ............................................................................................................... 17 参考文献 ............................................................................................................................... 18 鸣谢 ........................................................................................................................................ 19 附录1: 元器件清单......................................................................................................... 20 附录2: 电路原理图......................................................................................................... 21 附录3: 元器件布局图 .................................................................................................... 22 附录4: PCB图 .................................................................................................................. 23

3

1 设计课题任务、功能要求说明及总体方案介绍

1.1 课题设计任务

设计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。

1.2 功能要求说明

该数字频率计频率以单片机最小系统为基础,采用独立式键盘及动态显示结构组成。四个键(分别接于P1.0~P1.3)控制测量,按A键(接P1.0)测频率、按B键(接P1.1)测周期,按C键(接P1.2)测脉宽,按D键(接P1.3)测占空比。

1.3 设计课题总体方案介绍及工作原理说明

本设计通过单片机内部定时器0定时1秒,同时被测矩形波输入P3.5(T1)通过计数器1对其进行计数,定时时间一到即可测得矩形波的频率,通过计算频率的倒数即可得到周期。同时被测矩形波通过P3.3(INT1)输入单片机,1,利用此矩形波启停定时器即可测得矩形波的脉宽。最后通过周期和脉宽可得占空比,系统总体电路框图如图1.1所示:

系统工作原理如下:

此数字频率计是利用单片机的P3.3(INT1)和P3.5(T1)同时作为被测矩形波信号输入端,且单片机晶振采用12MHZ。当按1键时测频率,被测矩形波信号从P3.5进入单片机,此时同时启动定时器0和计数器1,定时器0一次定时50ms、定时20次,当定时1s一到立即停止定时计数器,因为晶振为12MHZ,所以此时

4

复位电路单振荡电路片机按 键图1.1 系统整体框图

显示电路驱动电路计数器的计数值即为被测信号的频率;当按2键时测周期,此时先测得被测信号的频率,然后通过T=1/F

可求得被测信号的周期;当按3键时,被测矩形波

信号从P3.3(INT1)输入单片机,此时通过被测信号启停定时器1来实现测脉宽,即当被测矩形波为高电平时定时器1启动开始定时,当被测信号一从高电平变为低电平定时器1停止定时,读出定时器的定时值,此值即为被测信号的脉宽;按4键时,先测出被测矩形波信号的周期和脉宽,然后通过占空比等于脉宽比上周期即可得到信号的占空比。当按键测得相应的数据之后,先对数进行按位处理后再送数码管显示。

5

2 设计课题硬件系统的设计

2.1 设计课题硬件系统各模块功能简要介绍

复位电路:用于产生复位信号,通过RST引脚送入单片机,进行复位操作。复位电路的好坏直接影响单片机系统工作的可靠性,单片机的复位电路共有上电复位、按键复位和脉冲复位3种,在本次设计中采用按键复位电路,此电路即可实现按键复位,还可以实现上电复位。其中上电复位是利用电容充放电来实现的,按键复位则是通过使复位端经电阻与Vcc电源接通来实现的。

振荡电路:单片机本身是一个复杂的同步时序系统,为了确保同步工作方式的实现,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。晶振频率时单片机的一项重要技术指标,晶振频率越高,系统的时钟频率就越高,单片机的运行速度也就越快,本次设计所用的晶振频率为12MHZ。 按键电路:单片机的P1.0、P1.1、P1.2、P1.3分别接按键1、2、3、4。分别用以实现测矩形波的频率、周期、脉宽、占空比,当没键按下时P1.0~P1.3为高电平,有键按下时则为低电平。在实物制作时因为P1口内部已经集成了上拉电阻,所以下图中的四个电阻可以省略。

显示电路:本次设计显示器采用动态显示方式,用以实现测量值的现实。 驱动电路:用以驱动数码管。+

2.2 设计课题电路原理图、PCB图、元器件布局图

本设计的电路原理图、PCB图及元器件布局图分别如附录1~3所示。

2.3 设计课题元器件清单

元器件清单如附录4所示。

6

3 设计课题软件系统的设计

3.1 设计课题使用单片机资源的情况

定时/计数器的使用:测矩形波频率时使用到了定时/计数器0和定时/计数器1,以及使了定时0中断和计数1中断。测脉宽时使用到了定时/计数器1和计数1中断。

单片机I/O口的使用:P0口作为数码管的段控码输入端使用;P1口的高4位作为独立式键盘的输入端使用;P2口作为数码管的位控码输入端使用;P3.3和P3.5作为被测矩形波信号的输入端使用。

3.2 设计课题软件系统各模块功能简要介绍

系统的软件模块框图如图3.1所示:

主程序模块显示模块1 有键按下

键功能程序模块 1、2键按下 3、4键按下 测频程序模块测脉宽程序模块显示模块2延时模块 显示模块3显示模块4图3.1 系统软件模块框图

各模块功能如下:

1、主程序模块:启动显示“P.”,等键按下。 2、显示模块1:显示“P.”。

3、键功能模块:判断那一键按下,然后去执行相应的程序。

7

4、测频程序模块:测矩形波信号的频率和间接测其周期。 5、测脉宽程序段:测矩形波信号的脉宽,并间接测信号的占空比。 6、显示模块2:显示测得的频率、周期、脉宽值。 7、显示模块3:显示小数点。 8、显示模块4:显示占空比值。 9、延时模块:用于各位显示间的延时。

3.3 设计课题软件系统程序流程框图

本次设计的几个主要程序流程图如图3.2、3.3、3.4所示: 0初始化(定时50ms,20次)定时器

图3.2 测频子程序流程图 图3.3 测脉宽程序流程图

定时器1初始化计数器1初始化中断初始化P3.3=0?Y中断初始化N启动定时器1启动定时计数器定时溢出?N定时50ms到?Y计数20次?Y返回频率值NYm自加1、定时初值重装NP3.3=1?N返回脉宽值Y 8

N调显示(显示P.)开始 N3键按下N4键按下NY测占空比数据处理,显示Y测脉宽数据处理,显示有键按下?Y1键按下N2键按下Y测周期数据处理,显示Y测频率数据处理,显示 图3.4 系统程序主程序流程图

3.4 设计课题软件系统程序清单

数字频率计程序清单: #include #include

#define uchar unsigned char #define ulong unsigned long #define uint unsigned int uchar data led[7];

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=P3^3; sbit P1_0=P1^0; sbit P1_1=P1^1;

9

sbit P1_2=P1^2; sbit P1_3=P1^3; uchar count; ulong l,m,mk;

void delay(uint t) {

uint i;

for(i=0;i

void time_0() interrupt 1 using 1 {

TH0=(65536-50000)/256; TL0=(65536-50000)%6; count++; if(count==20) { TR1=0; TR0=0; count=0; }

void jishu_1() interrupt 3 using 2 {

m++; TH1=0; TL1=0; }

ulong pinglv() {

TMOD=0x51; EA=1; ET0=1; ET1=1; m=0;

TH0=(65536-50000)/256;

}

10

本文来源:https://www.bwwdw.com/article/t7zt.html

Top