单片机简易频率计课程设计Word格式.docx

上传人:b****6 文档编号:17303998 上传时间:2022-12-01 格式:DOCX 页数:16 大小:269.92KB
下载 相关 举报
单片机简易频率计课程设计Word格式.docx_第1页
第1页 / 共16页
单片机简易频率计课程设计Word格式.docx_第2页
第2页 / 共16页
单片机简易频率计课程设计Word格式.docx_第3页
第3页 / 共16页
单片机简易频率计课程设计Word格式.docx_第4页
第4页 / 共16页
单片机简易频率计课程设计Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机简易频率计课程设计Word格式.docx

《单片机简易频率计课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《单片机简易频率计课程设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

单片机简易频率计课程设计Word格式.docx

本次设计由于个人水平有限,因此,本次设计根据需要,采用脉冲定时测频法。

基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图2所示。

图2

由上图可以看出,待测信号经过放大整形电路后得到一个待测信号的脉冲信号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示出来。

但是控制部分才是最重要的,它在整个系统的运行中起至关重要的作用。

为了得到一个高性能的数字频率计,本次设计采用单片机来做为数字频率计的核心控制电路,辅之于少数的外部控制电路。

因此本此设计的系统包括信号放大整形电路、分频电路、单片机AT89C51和显示电路等。

本系统让被测信号经过放大整形后,进入单片机开始计数,利用单片机内部定时计数器定时,在把所记得的数经过相关处理后送到显示电路中显示。

其系统原理框图将在下面介绍。

根据上述的基于单片机的数字频率计的设计原理,我们可设计一个由放大整形电路、分频电路、多路数据选择器、AT89C51以及显示电路来构成的数字式频率计,其系统框图如图3所示。

图3

二、硬件设计

AT89C51单片机及其引脚说明:

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:

4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。

引脚说明:

·

VCC:

电源电压

GND:

P0口:

P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0口具有内部上拉电阻。

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

P1口:

P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

P2口:

P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。

P3口:

P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

P3口同时具有AT89C51的多种特殊功能,具体如下表1所示:

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外部中断0)

P3.3

INT1(外部中断1)

P3.4

T0(定时器0)

P3.5

T1(定时器1)

P3.6

WR(外部数据存储器写选通道)

P3.7

RD(外部数据存储器都选通道)

表1

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

EA/VPP:

外部访问允许。

为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,EA必须同GND相连接。

需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

ALE/RPOG:

当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。

当在Flash编程时还可以作为编程脉冲输出(RPOG)。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

PSEN:

程序存储允许时外部程序存储器的读选通信号。

当AT89C52执行外部程序存储器的指令时,每个机器周期PSEN两次有效,除了当访问外部数据存储器时,PSEN将跳过两个信号。

显示原理

我们测量的频率最终要显示出来。

八段LED数码管显示器基本电路如图4所示。

图4

八段LED数码管显示器由8个发光二极管组成。

基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。

LED数码管显示器有两种形式:

一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;

另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。

如下图所示。

共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。

当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。

8个笔划段hgfedcba对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就能表示欲显示字符的字形代码。

技术参数

名称

符号

标准值

单位

MIN

TYPE

MAX

电路电源

VDD-VSS

-0.3

7.0

V

LCD驱动电压

VDD-VEE

VDD-13.5

VDD+0.3

输入电压

VIN

静电电压

-

100

工作温度

-20

+70

°

C

储存温度

-30

+80

表2极限参数表

电参数表

测试条件

单位

输入高电平

VIH

2.2

VDD

输入低电平

VIL

0.6

输出高电平

VOH

IOH=0.2mA

2.4

输出低电平

VOL

IOL=1.2mA

0.4

工作电流

IDD

VDD=5.0V

2.0

mA

液晶驱动电压

VDD-VEE

Ta=0°

4.9

Ta=25°

4.7

Ta=50°

4.5

表3电参数表

时序特性表

项目

测试条件

允许时间周期

TCYCE

5.1a5.1b

1000

ns

允许脉冲宽度,高电平

PWEH

450

--

允许上升和下降时间

tErtEf

25

地址建立时间

tAS

140

数据延迟时间

tDDR

320

数据建立时间

tDSW

195

数据保持时间

tH

10

DATAHOLDTIME

tDHR

20

地址保持时间

tAH

表4时序特性表

模块引脚功能表

引线号

功能

1

Vss

接地

0V

2

5V±

10%

3

VEE

保证VDD-VEE=4.5∽5V电压差

4

RS

寄存器选择信号

H:

数据寄存器L:

指令寄存器

5

R/W

读/写信号

读L:

6

E

片选信号

下降沿触发,锁存数据

7

|

14

DB0

DB7

数据线

数据传输

表5模块引脚功能表

三、软件设计

测频软件的实现是基于电路系统来进行设计的。

本次设计采用的是脉冲定时测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。

本次软件设计语言采用C语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。

初始化T0,T1

开定时器T1,计数器T0

NO

 

四、调试说明

当输入频率为1HZ时,测得频率为1HZ.

当输入频率为987HZ时,测得频率为987HZ。

但是当输入频率为5KHZ时,测得频率为5001HZ。

误差为0.02%。

当输入频率大到100kHZ时,测得频率为10015HZ,误差为0.15%。

误差分析:

因为定时和计数都是由单片机本身来完成的,在计数的时候会产生误差。

这个误差的大小是用单片机的内部时钟决定的,采用高频率的晶振来为单片机提供内部时钟,则能减少此误差。

本次设计我们用的是12MHz的晶振,而测频的范围是1Hz~1MHz。

所以定时计数的误差在本系统基本可以忽略不计。

五、使用说明

该设计主要是能够测量外部周期信号的频率值,并且通过数码管进行显示。

把编译好得到的hex程序文件载入到单片机里,就可以对整体电路进行仿真了。

经过对上述电路的仿真,我们可以看出,电路所要完成的功能都能基本实现。

结论

基于单片机的频率计的设计涉及到计算机的硬软件知识,通过对系统的设计和调试,本次设计主要完成了以下工作:

1、提出基于单片机的数字频率计设计的基本方案;

2、完成了电路设计;

3、编译了软件程序;

4、对硬件电路进行了仿真,进行了误差分析。

参考文献

[1]李雷等编.集成电路应用实验.国防工业出版社2003

[2]李雷等编.电子技术应用实验教程.电子科技大学出版社,2006

[3]朱红等编.电子技术综合实验.电子科技大学出版社,2005

[4]冯熙昌编.电子电话机集成电路手册.人民邮电出版社,1996

[5]李华等编.MCS-51系列单片机实用接口技术.北京航空航天大学出版社,1993

[6]徐惠民,安德宁等编.单片微型计算机原理接口及应用.北京邮电大学出版社,2000

[7]张毅坤,陈善久,单片微型计算机原理及应用.西安电子科技大学出版社,2002.

[8]张友德,赵志英,徐时亮.单片微机原理应用与实验.复旦大学出版社,2000.

附录

Ⅰ、系统电路图

Ⅱ、程序清单

#include<

reg51.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

sfr16DPTR=0x82;

bitstatus_F=1;

uintaa,qian,bai,shi,ge,bb,wan,shiwan;

ucharcout;

unsignedlongtemp;

ucharcode

table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

voiddelay(uintz);

voidinit();

voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge);

voidxtimer0();

voidxtimer1();

voidmain()

{

P0=0XFF;

init();

while

(1)

if(aa==19)

aa=0;

status_F=1;

TR1=0;

delay(46);

TR0=0;

DPL=TL0;

DPH=TH0;

temp=DPTR+cout*65535;

shiwan=temp%1000000/100000;

wan=temp%100000/10000;

qian=temp%10000/1000;

bai=temp%1000/100;

shi=temp%100/10;

ge=temp%10;

if(shiwan==0)

shiwan=10;

if(wan==0)

wan=10;

if(qian==0)

qian=10;

if(bai==0)

bai=10;

if(shi==0)

shi=10;

}}}}

}

display(shiwan,wan,qian,bai,shi,ge);

voidinit()

temp=0;

cout=0;

IE=0X8A;

TMOD=0x15;

TH1=0x3c;

TL1=0xb0;

TH0=0;

TL0=0;

TR1=1;

TR0=1;

voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge)

P0=0x20;

P2=table[shiwan];

delay(5);

P0=0x10;

P2=table[wan];

delay(3);

P0=0x08;

P2=table[qian];

P0=0x04;

P2=table[bai];

P0=0x02;

P2=table[shi];

P0=0x01;

P2=table[ge];

voidxtimer1()interrupt3

aa++;

voidxtimer0()interrupt1

{

cout++;

voiddelay(uintz)

uinti,j;

for(i=0;

i<

z;

i++)

for(j=0;

j<

110;

j++);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1