频率计课程设计.docx

上传人:b****1 文档编号:2576707 上传时间:2023-05-04 格式:DOCX 页数:14 大小:77.81KB
下载 相关 举报
频率计课程设计.docx_第1页
第1页 / 共14页
频率计课程设计.docx_第2页
第2页 / 共14页
频率计课程设计.docx_第3页
第3页 / 共14页
频率计课程设计.docx_第4页
第4页 / 共14页
频率计课程设计.docx_第5页
第5页 / 共14页
频率计课程设计.docx_第6页
第6页 / 共14页
频率计课程设计.docx_第7页
第7页 / 共14页
频率计课程设计.docx_第8页
第8页 / 共14页
频率计课程设计.docx_第9页
第9页 / 共14页
频率计课程设计.docx_第10页
第10页 / 共14页
频率计课程设计.docx_第11页
第11页 / 共14页
频率计课程设计.docx_第12页
第12页 / 共14页
频率计课程设计.docx_第13页
第13页 / 共14页
频率计课程设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

频率计课程设计.docx

《频率计课程设计.docx》由会员分享,可在线阅读,更多相关《频率计课程设计.docx(14页珍藏版)》请在冰点文库上搜索。

频率计课程设计.docx

频率计课程设计

江苏理工学院

JIANGSUUNIVERSITYOFTECHNOLOGY

电气信息工程学院

 

频率计课程设计

 

学院名称:

电气信息工程学院

专业:

电子

班级:

10电子2班

姓名:

陈曦

学号:

10311201

指导老师:

陈连玉

设计时间:

2013年4月

 

数字频率计

数字频率计数器是测量信号频率的装置,也可以用来测量方波脉冲的脉宽通常频率以数字形式直接显示出来,简便易读,即所谓的数字频率计频率测量对生产过程监控有很重要的作用,可以发现系统运行中的异常情况,以便迅速作出处理,传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接采用基于单片机技术,而数字式频率计数器具有操作简单方便、响应速度快、体积小等一系列优点,可以及时准确地测量低频信号的频率。

1、数字频率计与单片机

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

随着复杂可编程逻辑器件(CPLD)和功能越来越强大的单片机的广泛应用。

数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号、尖脉冲信号及其他各种单位时间内变化的物量。

在AT89C51单片机上实现的频率计,整个系统非常精简,而且具有灵活的现场可更改性。

在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。

该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。

2、技术指标

输入脉冲幅度:

0—5V

频率测量范围:

100—100000Hz

测量精度:

±1%

显示方式:

四位数字显示

3、系统结构框图

图1系统结构框图

一、硬件电路设计

1,硬件电路图

图2硬件管脚图

1、其具体连接方法如下:

P3.4口(即T0)接输入脉冲信号。

XTAL1与XTAL2管脚接两个20pF电容和12MHz晶振构成时钟电路。

RST管脚接510Ω电阻,10μF电容及复位开关构成人工复位电路。

P2.4—P2.1接驱动7407的四个输入端,四个输出端接数码管的位选通端。

P0.0—P0.7接数码管的段选线。

2、元件参数如下

R1=R2=510Ω,C1=C2=10uf,C3=C4=20pf。

一片74ls00接成非门使用,用于整形。

一片7407用于驱动数码管。

四个共阴极数码管,一个8路排阻,阻值为330Ω。

共阴级八段数码管图如图

2,各模块电路的实现及其功能

1、信号发生模块

利用电容的充放电,产生近似矩形波的波形,再经非门整形,就可以得到标准的矩形波,若波形不够标准,可多接入几个非门。

频率计算公式为:

f=1/2.2*R2*C2

(1)

计算得到f=190Hz,但由于元件本身并不标准,且有较大误差,以及接入电路后存在的一些干扰,从示波器实测得到的频率为195HZ。

1)单片机系统模块

选择单片机是因为有编程灵活、易调试的特点,而且它的引脚较多,利于电路的设计。

它内部集成了CPU,RAM,ROM,定时器/计数器和多功能I/0口等一台计算机所需的基本功能部件。

晶振由外部接入,各个并行口可直接使用,故直接接数码管的段选线,使得硬件设计易于实现,且简化了程序。

单片机的主要功能就是定时一秒钟,统计被测信号的周期个数,在转换、存储、送给单片机的并行口和驱动7407。

2)数码管显示模块

LED显示器采用动态显示方式。

显示时将所有位的段选线相应的并联在一起,由一个8位I/O口即P0口控制,形成段选线的多路复用。

驱动器7407连接位选部分,由P2.4—p2.1口控制。

由于各位的段选线并联,段选码的输出对各位来说都是相同的。

同一时刻,如果各个位选线都处于选通状态的话,四位的LED将显示相同的字符。

要各位LDE能够显示出与本位相应的显示字符,就须采用扫描显示方式。

即在同一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字型码,这样同一时刻,四位LED中只有选通的那一位显示出字符,而其他三位则是熄灭的。

而在下一刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,在段选线上输出相应位将要显示字符的字符码。

这样循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于人眼有视觉残留现象,只要每位显示间隔足够短,则可造成多位同时亮的效果。

所以数码管的作用就是动态显示频率值。

二、软件设计

1)主程序框图

主程序中包含初始化,二十进制转换程序和压缩BCD码转换成非压缩BCD码程序。

其中二十进制转换程序和压缩BCD码转换成非压缩BCD码程序是:

图3主程序框图

2)数码管显示的调用函数

当频率低于10KHz时,调用函数有四个,QIANW调用函数、BAIW调用函数、SHIW调用函数、GEW调用函数,分别对应数码管的从左到右四位。

当频率不低于10KHz时,调用函数也有四个,QIANW1调用函数、BAIW1调用函数、SHIW1调用函数、GEW1调用函数,分别对应数码管的从左到右四位。

TAB和TAB1是供查表用的。

TAB:

DB77H,41H,3BH,6BH,4DH,6EH,7EH,43H,7FH,6FH

TAB1:

DB0F7H,0C1H,0BBH,0EBH,0CDH,0EEH,0FEH,0C3H,0FFH,0EFH

 

3)中断函数结构

动态扫描显示时间是由定时器1决定的,每中断一次,则显示一个数码管,依次从左往右显示。

中断函数主要负责调用显示程序和存储计数得到的频率值。

四、软件源程序代码

数字频率计的程序和解释说明如下:

ORG0000H;程序复位入口地址

AJMPMAIN

ORG001BH;计时器T0的中断入口

AJMPPTF0;跳转到中断程序中

ORG0033H;主程序入口地址

MAIN:

MOVSP,#60H

MOVTH1,#0ECH

MOVTL1,#78H;定时5MS

SETBEA;开放CPU中断

SETBET1;开放定时器中断

MOVTH0,#0

MOVTL0,#0;给计数器T0赋初值0

MOVTMOD,#15H;计时器T1工作在方式1定时模式,计数器T0工作在方式1计数模式

MOV30H,#0C8H;循环200次,共定时1S

MOV40H,#0;用于判断显示数码管哪一位

SETBTR0;启动计数器0

SETBTR1;启动定时器1

LOOP1:

ACALLZHUANH;将二进制数转换为压缩BCD码

ACALLCHAIF;将压缩BCD码转换为非压缩BCD码

AJMPLOOP1;循环处理计数器T0采集得到的数据

PTF0:

MOVTH1,#0ECH

MOVTL1,#78H;给定时器T1重新赋值

INC40H;数码管判断位加1

MOVA,50H

CJNEA,#00H,DAY;判断50H单元是否为零,若为0继续往下执行,若不为0,则跳转到子程序DAY中

MOVA,40H;每5ms显示一位,从最高位开始,到最低位时,返回高位

CJNEA,#1,LOP1

ACALLQIANW

AJMPTIAO

LOP1:

CJNEA,#2,LOP2

ACALLBAIW

AJMPTIAO

LOP2:

CJNEA,#3,LOP3

ACALLSHIW

AJMPTIAO

LOP3:

ACALLGEW

MOV40H,#0

AJMPTIAO

DAY:

MOVA,40H

CJNEA,#1,LP1

ACALLQIANW1

AJMPTIAO

LP1:

CJNEA,#2,LP2

ACALLBAIW1

AJMPTIAO

LP2:

CJNEA,#3,LP3

ACALLSHIW1

AJMPTIAO

LP3:

ACALLGEW1

MOV40H,#0

TIAO:

DJNZ30H,PTFR;判断是否到1S

MOV20H,TH0

MOV21H,TL0;将计数器T0中的数转移到20H,21H中

MOVTH0,#0

MOVTL0,#0;将计数器T0重新赋0

MOV30H,#0C8H

PTFR:

RETI

ZHUANH:

MOVR2,20H;将计数得到的值存入R2和R3中

MOVR3,21H

CLRA

MOVR4,A;将R4、R5、R6清零

MOVR5,A

MOVR6,A

MOVR7,#16

LOOP:

CLRC;将16位二进制数逐位左移一位,移得的数据放入进位C中

MOVA,R3

RLCA

MOVR3,A

MOVA,R2

RLCA

MOVR2,A

MOVA,R6;(R4R5R6)+(R4R5R6)+C=(R4R5R6)*2+C

ADDCA,R6

DAA

MOVR6,A

MOVA,R5

ADDCA,R5

DAA

MOVR5,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

DJNZR7,LOOP

RET

CHAIF:

MOVA,R5;将压缩BCD码R4R5R6转换为非压缩BCD码,从高到低依次放于50H、51H、52H、53H、54H

ANLA,#0F0H

SWAPA

MOV51H,A

MOVA,R5

ANLA,#0FH

MOV52H,A

MOVA,R6

ANLA,#0F0H

SWAPA

MOV53H,A

MOVA,R6

ANLA,#0FH

MOV54H,A

MOV50H,R4

RET

QIANW:

MOVA,51H;频率不超过10KHZ时,以HZ为单位,四位显示,最高位为千位,以此类推

MOVDPTR,#TAB;千位上显示51H单元中的内容

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0EFH

RET

BAIW:

MOVA,52H;百位上显示52H单元中的内容

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0F7H

RET

SHIW:

MOVA,53H;十位上显示53H单元中的内容

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0FBH

RET

GEW:

MOVA,54H;个位上显示54H单元中的内容

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0FDH

RET

QIANW1:

MOVA,50H;频率大于10KHZ时,小数点放千位,以KHZ为单位,省去个位,以四位显示

MOVDPTR,#TAB;千位上显示50H单元中的内容

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0EFH

RET

BAIW1:

MOVA,51H;百位上显示51H单元中的内容和显示小数点

MOVDPTR,#TAB1

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0F7H

RET

SHIW1:

MOVA,52H;十位上显示52H单元中的内容

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0FBH

RET

GEW1:

MOVA,53H;个位上显示53H单元中的内容

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#0FDH

RET

TAB:

DB77H,41H,3BH,6BH,4DH,6EH,7EH,43H,7FH,6FH;0—9

TAB1:

DB0F7H,0C1H,0BBH,0EBH,0CDH,0EEH,0FEH,0C3H,0FFH,0EFH;0.—9.

NOP

END

五、调试与结果分析

1、硬件调试

焊好电路后,首先检查是否有虚焊,如果没有,再上电检测。

首先检测数码管的好坏,由于P2.4—P2.1控制数码管的位选线,P0.0—P0.7接数码管的段选线,而且数码管是共阴的,所以只要将+5V电源的地分别接P2.4—P2.1口,若数码管显示8和小数点,说明是好的,四个都检测完后就检查数码管的接线。

首先+5V电源的地接P2.4口,电源的正端接一个1KΩ的电阻,分别点触P0.0—P0.7,若点触到哪一个口,相对应的二极管熄灭,说明连线是正确的。

检测完一个数码管,然后用相同的方法检测完四个数码管。

2、软件调试

本次设计采用的单片机是AEDK51HB仿真机,所使用的编程软件是LCA51,操作步骤较为简单。

首先打开LCA51软件,测试串口,然后新建文件,在内部编程,编完程序,保存就可以了,后缀名为.ASM。

没有警告和错误时,在仿真机电源/运行的指示灯为绿色的情况下,点击确定。

下载完成以后,点击全速运行,观察检测结果。

3、测量结果

用单片机检测并由数码管显示的频率范围为180-182Hz,其误差在±1%范围内,所以满足此项要求。

六,课程设计体会

在单片机应用系统设计时,必须先确定该系统的技术要求,这是系统设计的依据和出发点,整个设计过程都必须围绕这个技术要求来工作。

在设计时遵循从整体到局部也即自上而下的原则。

把复杂的问题分解为若干个比较简单的、容易处理的问题,分别单个的加以解决。

将总任务分解成可以独立表达的子任务,这些子任务再向下分,直到每个子任务足够简单,能够直接而容易的实现为止。

在程序调试时应按各个功能模块分别调试。

在程序设计时,正确合理的设计是非常重要的,正确的程序设计包括程序的结构是否合理,一些循环结构和循环指令的使用是否恰当,能否使用较少的循环次数或较快的指令,是否能把某些延迟等待的操作改为中断申请服务,能否把某些计算方法和查表技术适当简化等。

另外程序的设计要具有可扩展性,程序的结构要标准化,便于阅读、修改和扩充。

通过本次课程设计,我更加地了解和掌握单片机的基本知识和基本的编写程序,也更加深入地了解单片机这么课程,掌握汇编语言的设计和调试方法。

对于认识到自己在知识方面存在的不足,明确今后的学习方向是非常有益的。

参考文献:

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

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

[3]张毅刚,彭善元,董继承.单片机原理及应用.高等教育出版社,2003.

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2