基于单片机的数字频率课程设计任务书1.docx
- 文档编号:2285152
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:38
- 大小:375.52KB
基于单片机的数字频率课程设计任务书1.docx
《基于单片机的数字频率课程设计任务书1.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字频率课程设计任务书1.docx(38页珍藏版)》请在冰点文库上搜索。
基于单片机的数字频率课程设计任务书1
课程名称:
单片机技术课程设计任务书设计题目:
基于单片机的频率计的设计
1.绪论
一、设计任务
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,它是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。
本设计以51单片机为核心,设计一个能够对方波信号频率进行测量的频率计。
二、设计目的
通过本次课程设使学生掌握:
1)微机接口技术与I/O通道电路的设计及实现方法;2)控制程序的设计及实现方法;3)微机控制系统的实际调试技巧。
提高对微机实时控制系统的设计和调试能力。
三、设计要求
1、方波信号频率范围:
1Hz~15KHz;
2、数码管显示频率
四、设计内容
1、硬件电路原理图;
2、软件流程图及程序;
3、Protues仿真及运行结果。
五、设计报告要求
1、目录
2、正文
(1)课程设计任务书;
(2)总体设计方案;
(3)硬件原理图;
(4)程序流程图及清单;
(5)Protues仿真运行及其结果。
3、收获、体会
4、参考文献
2.总体设计方案
2.1方案比较
方案一:
本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描把测出的数据送到数字显示电路显示。
其实原理框图如2.1所示
2.1方案一原理图
方案二:
本方案主要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。
其原理框图如图2.2所示
2.2方案二原理框图
2.2方案论证
方案一:
本方案主要以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测得正弦波或者三角波为方波。
利用单片机的计数器和定时器的功能对被测信号进行计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:
本方案使用大量的数字器件,被测量信号放大整形电路变成计数器所要求的脉冲信号,其频率于被测信号的频率相同。
同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。
若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率FX=NHZ。
逻辑控制电路的作用有两个:
一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
2.3方案选择
比较以上两种方案可以知道,方案一得核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试能自动选择测试的量程。
与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。
如要测量高频的信号还需要加上分频电路,价格相对高了点。
基于上述,所以选择了方案一。
3.系统硬件设计
3.1一般数字式频率计的原理
数字式频率计是测量频率最常用的仪器之一,其基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图3.1所示待测信号
3.1频率计原理框图
3.2频率计方案的概述
本频率计的设计以AT89S51单片机为核心,利用它内部的定时/计数器完成待测信号周期/频率的测量,单片机AT89S51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时,计数和产生计数溢出时中断要求的功能。
在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1,这样以机器周期为基准可以用来测量时间间隔。
在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。
外部输入在每个机器周期被采用一次,这样查测一次从1到0的跳变至少需要2个机器周期,所以最大计数速率为时钟频率1/24。
定时/计数器的工作有运行控制位TR控制,当TR置1,定时/计数器开始计数:
当TR清0,停止计数。
本设计终合考虑了频率测量精度和测量反应时间的要求。
例如要求频率测量结果为3位有效数字,这时如果待测信号的频率为1HZ,则计数闸门宽度必须大于1000S。
为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法:
(1)当待测信号的频率>100HZ时,定时/计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,计数闸门宽度>1S时,即可满足频率测量结果为3位有效数字。
(2)当待测信号的频率<100HZ时,定时/计数器构成为定时器,由频率计的处理电路把待测信号变成方波,方波宽度等于待测信号的周期。
这时用方波做计数闸门,当待测信号的频率=100HZ,周期为10ms,使用12HZ时钟的最小计数值为10000,完全满足测量精度的要求。
3.3单片机
ATC89C51[可以完成ISP在线编程功能,ATC89C51内部有EEPROM,可以在程序中修改,断电不丢失。
还增加了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。
3.3.189C51芯片介绍
1.许多由关硬件设计中都使用到单片机89C51,其功能[7]比以往的单片机强大的多。
89C51引脚图如图3.2所示。
图3.289C51引脚图
芯片引脚功能:
主电源引脚Vcc和Vss
•Vcc(40脚):
接+5V电压;
•Vss(20脚):
接地。
89C51晶振接法如图3.3。
图3.389C51晶振接法图
选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。
电容的大小范围为20pF~40pF,本设计选用30pF电容。
2.单片机复位状态
单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。
为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。
只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。
在复位有效期间,ALE、引脚输出高电平。
89C51上电复位电路图。
图3.489C51上电复位电路图
单片机复位状态表。
表3.1单片机复位状态表
专用寄存器
复位状态
专用寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TH0
00H
PSW
00H
TL0
00H
SP
07H
TH1
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
SCON
00H
IP
XXX00000B
SBUF
XXXXXXXXB
IE
0XX00000B
PCON
0XXXXXXXB
注:
XXX不定
复位后,P0口~P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。
但复位不影响单片机内部的RAM状态
3.3.274HC164
74HC164是8位串入并出移位寄存器,引脚排列图和逻辑功能示意图如下图所示:
图3.5引脚图图3.6逻辑功能示意图
Ds=Da*Db是数码串行输入端,/CR是清零端,Q0~Q7是数据并行输出端,CP是时钟脉冲——移位操作信号。
其逻辑功能表如下:
图3.7逻辑功能表图
图3.7所示是74HC164状态表,由表可知,74HC164具有下列功能:
(1)清零功能
当/CR(/Reset)=0时,移位寄存器异步清零。
(2)保持功能
当/CR(/Reset)=1、CP(Clock)不处于上升沿时,移位寄存器保持状态不变,
(3)送数功能
当/CR(/Reset)=1时,CP(Clock)上升沿将加在Ds=Da*Db端的二进制数码依次送入移位
寄存器中。
状态方程为
Ds=Da*Db
Q0n+1=Ds
3.3.374LS145
74LS145是一个BCD—十进制译码器/驱动器(OC),用于驱动发光二极管、继电器或MOS电路;能吸收80mA电流,LS145典型功耗为35mW;耐压15V,引脚图(图3.8)和逻辑功能表如下:
图3.8引脚图表3.2逻辑功能表
3.4显示电路
3.9显示电路原理图
由于AT89C51的I/O口较少,本电路采用特殊的显示方式---由P1.6(数据端)和P1.7(时钟端)
组成模拟串行通信口,单片机将要显示的数据用模拟串口发送到74HC164后,由74HC164转换为并行数据控制数码管显示的数字,实现显示数据的传送,由单片机提供位选的BCD码经74LS145译码后控制每位数码管的选通与消隐,并由两个发光二极管做为Hz及KHz的指示。
3.5硬件设计简介和系统整体原理图
3.5.1硬件设计简介
采用外接插头输入脉冲信号,经过1N4538B(1N4538B的稳压值为5V,稳压保护,防止输入电压过高损伤电路)后经过两级74hc14传输将脉冲信号转换为方波信号,输入到4040的时钟计数输入端,4040对输入的脉冲进行计数分频,每4040每输入4096个外出,Q12输出一个脉冲。
单片机的T1工作在计数状态,在单位时间内计数值除以单位时间即是脉冲的频率,单片机所测量的频率的范围内是1~100MHZ,分两档测量,256K~100MHZ,256K以下~1HZ。
单片机测量后将测量结果转换成六位BCD码,通过单片机的串行口发送到数码管显示,数码管显示电路采用74ls164驱动共阴极数码管,采用静态显示。
数据的传送采用串行移动方式,即单片机将六个显示码从低到高逐位通过串行口以方式0发送到数码管显示,数码管的显示为6位,即显示单位为1HZ和1KHZ。
通过两个发光二极管分别指示,P1.0驱动显示1HZ单位指示灯,低电平点亮;P1.1驱动显示1KHZ单位指示灯,低电平点亮。
3.5.2系统整体原理图
3.10系统整体原理图
4.系统软件设计
4.1测频软件实现原理
测频软件的实现是基于电路系统来进行设计的。
本次设计采用的是脉冲定时
测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。
本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。
4.2软件流程图
4.1软件流程图
4.3程序设计
ORG0000H
AJMPMAIN
ORG000BH
LJMPTIME0
ORG001BH
LJMPTIME1
DA4EQUP1.2
DA3EQUP1.3
DA2EQUP1.4
DA1EQUP1.5
CLKEQUP1.7
DATEQUP1.6
DSPLA_ADD1EQU30H
DSPLA_ADD2EQU31H
DSPLA_ADD3EQU32H
DSPLA_ADD4EQU33H
DSPLA_ADD5EQU34H
DSPLA_ADD6EQU35H
DSPLA_ADD7EQU36H
TX_TIMEEQU50H
MOS_BZEQU51H
BZ2EQU52H
LDBZBIT10H
LD1HZEQU7BH
JSQ3EQU53H
JSQ2EQU54H
JSQ1EQU55H
BCD1EQU60H
BCD2EQU61H
BCD3EQU62H
BCD4EQU63H
CXEQU64H
HUANC1EQU65H
HUANC2EQU66H
HUANC3EQU67H
HUANC4EQU68H
MAIN:
LCALLSETUP;调用初始化程序
MAIN1:
LCALLDSPLA;调用显示子程序
LJMPMAIN1;循环调用显示子程序
DSPLA:
NOP;显示子程序
DSPLATEMP:
MOVR7,#7;R7为每轮扫描还需显示数据位数
MOVR0,#DSPLA_ADD1;取显示缓冲区首地址
MOVDPTR,#TAB;显示码表格指针
DSP1:
MOVA,@R0;取显示缓冲区数值
MOVCA,@A+DPTR;查表取显示缓冲区数值对应的显示码
DENG:
CLRCLK;将每位显示值串行打入74HC164。
CLRC
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
RLCA
MOVDAT,C;
SETBCLK
NOP
CLRCLK
LCALLWAY;调用位显示驱动程序
LCALLDELAY10;调用延时子程序,每位延时显示
CLRDA1;关闭显示
SETBDA2
CLRDA3
SETBDA4
DSP2:
INCR0;扫描显示下一位
DJNZR7,DSP1;扫描显示下一位
DSPLAEND:
RET
TAB:
DB0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7d,0x07,0x7F,0x6F;显示缓冲区数值对应的显示码表
DB0x0BF,0x01,0x02
;----------位显示驱动子程序---------
WAY:
MOVA,R7
CJNEA,#7,WAY1
SETBDA1
CLRDA2
CLRDA3
CLRDA4
RET
WAY1:
CJNEA,#6,WAY2
CLRDA1
CLRDA2
SETBDA3
CLRDA4
RET
WAY2:
CJNEA,#5,WAY3
CLRDA1
SETBDA2
CLRDA3
CLRDA4
RET
WAY3:
CJNEA,#4,WAY4
SETBDA1
CLRDA2
SETBDA3
CLRDA4
RET
WAY4:
CJNEA,#3,WAY5
SETBDA1
SETBDA2
CLRDA3
CLRDA4
RET
WAY5:
CJNEA,#2,WAY6
CLRDA1
SETBDA2
SETBDA3
CLRDA4
RET
WAY6:
CJNEA,#1,WAY7
SETBDA1
SETBDA2
SETBDA3
CLRDA4
WAY7:
RET
;-------定时计数器初始化子程序------
SETUP:
CLRTR0
CLRTR1
CLRLDBZ
MOVMOS_BZ,#1
MOVLD1HZ,#10
CLRDA1
SETBDA2
CLRDA3
SETBDA4
MOVTX_TIME,#50
MOVJSQ1,#0
MOVTMOD,#51H
MOVTH0,#63H;20mS
MOVTL0,#0c0H
MOVTH1,#00H
MOVTL1,#00H
SETBET0
SETBET1;
SETBEA
CLRES;
CLREX1;
CLREX0;
SETBTR0
SETBTR1;
RET
DELAY10:
NOP
DELAY5:
MOVR6,#0FFH
DJNZR6,$
RET
TIME0END1:
LJMPTIME0END
;--------频率小于1Hz数据处理子程序-----
LDSJ:
MOVTX_TIME,#50;
DJNZLD1HZ,TIME0END1;判断是否定时到10s
CLRTR1;停止计数器
MOVA,TH1
MOVJSQ2,A
MOVA,TL1
MOVJSQ3,A
MOVA,JSQ1
JNZPY1
MOVA,JSQ2
JNZPY1
MOVA,JSQ3
CLRC
SUBBA,#10
JNCPY1
LCALLBMBCD;
MOVR0,#BCD1
MOVA,@R0;
ANLA,#0FH;
MOVDSPLA_ADD6,A
MOVDSPLA_ADD1,#0
MOVDSPLA_ADD2,#0
MOVDSPLA_ADD3,#0
MOVDSPLA_ADD4,#0
MOVDSPLA_ADD5,#10
MOVDSPLA_ADD7,#11
SETBLDBZ
MOVLD1HZ,#10
LJMPTIME07
PY1:
CLRLDBZ
LJMPTIME0END
;---------T0中断子程序------------
TIME0:
PUSHPSW;保护现场
PUSHACC
MOVA,MOS_BZ;
CJNEA,#1,TIMJS;查看计数通道,如果T0计数,则转移;
MOVTH0,#63H;如果T0定时,重置定时器T0初值
MOVTL0,#0c0H
DJNZTX_TIME,TIME0END
JBLDBZ,LDSJ
MOVTX_TIME,#50
CLRTR1
MOVA,TH1
MOVJSQ2,A;
MOVA,TL1
MOVJSQ3,A;
MOVA,JSQ1
JNZPY
MOVA,JSQ2;
JNZPY
MOVA,JSQ3
JNZPY
SETBLDBZ
MOVLD1HZ,#10
PY:
LCALLJSPD2
MOVA,BZ2;
CJNEA,#0,KTR
PPPTR:
LCALLBMBCD
LCALLBCDZH
MOVDSPLA_ADD7,#11
TIME07:
MOVTH1,#00H
MOVTL1,#00H
MOVJSQ1,#0
TIME0END:
POPACC
POPPSW
SETBTR1
SETBTR0
RETI
TIMJS:
MOVTH0,#00H
MOVTL0,#00H
INCJSQ1;
TIMJSEDN:
POPACC
POPPSW
RETI
KTR:
LCALLSETUP1
POPACC
POPPSW
RETI
JSPD2:
MOVA,JSQ1
CLRC
SUBBA,#0cH
JCZ2
MOVA,JSQ2
JNZB2
CLRC
SUBBA,#35H
JCZ2
JNCB2
MOVA,JSQ3
CLRC
SUBBA,#00H
JCZ2
JNCB2
Z2:
MOVBZ2,#0
RET
B2:
MOVBZ2,#0
RET
;-----------T1中断子程序-------------
TIME1:
PUSHPSW
PUSHACC
MOVA,MOS_BZ
CJNEA,#1,TIM1DS
MOVTH1,#00H
MOVTL1,#00H
INCJSQ1
TIME2END:
POPACC;恢复现场,中断返回
POPPSW
RETI
TIM1DS:
MOVTH1,#63H;初始化定时器初值
MOVTL1,#0C0H
DJNZTX_TIME,TIME1END;判断定时中断次数达到50次,即定时1s完成
MOVTX_TIME,#51;如果完成1s定时,初始化定时中断次数寄存器
CLRTR0;停止定时计数器
MOVA,TH0;计数值高字节送至JSQ2
MOVJSQ2,A
MOVA,TL0;计数值高低节送至JSQ2
MOVJSQ3,A
LCALLSJPD
MOVA,BZ2
CJNEA,#1,DET
LCALLMUL4;如果频率大于750k,则将计数值乘128
LCALLBMBCD5;调用BCD码转换子程序
MOVDSPLA_ADD7,#12;显示单位为KHz
MOVTH0,#00H;测量一次后并将频率值送显示缓冲区后,将计数值清零
MOVTL0,#00H
MOVJSQ1,#0
TIME1END:
POPACC;恢复现场,启动定时计数器,中断返回
POPPSW
SETBTR0
SETBTR1
RETI
DET:
LCALLSETUP;调定时计数器初始化程序,换计数通道(量程),中断返回
POPACC
POPPSW
RETI
;-----------判断频率是否小于750k子程序---------
SJPD:
MOVA,JSQ1;
CLRC
SUBBA,#0
JCZ1
JNZB1
MOVA,JSQ2
CLRC
SUBBA,#16H
JCZ1
JNCB1
MOVA,JSQ3
CLRC
SUBBA,#0e3H
JCZ1
JNCB1
RET
Z1:
MOVBZ2,#0
RET
B1:
MOVBZ2,#1
RET
;-----------二进制转BCD码子程序----------
BMBCD:
MOVR0,#JSQ3;寄存器及指针设定
MOVR7,#3;计数值用三个字节来存储,转换成十进制有8位
MOVR1,#BCD1
MOVA,R0
MOVR5,A
MOVA,R1
MOVR6,A
MOVA,R7
MOVR3,A
INCR3;压缩BCD码用四个字节来存储,正好是8位十进制
CLRA
CLBCD:
MOV@R1,A;清BCD码寄存器区,共四个字节
INCR1
DJNZR3,CLBCD
MOVA,R7
MOVB,#08
MULAB;计数值的三个字节共24位
MOVR3,A
LP0:
MOVA,R5;BCD码转换
MOVR0,A
MOVA,R7
MOVR2,A
CLRC
LP1:
MOVA,@R0
RLCA;从高位移出待转换数的一位到CY中
MOV@R0,A
INCR0
DJNZR2,LP1
MOVA,R6
MOVR1,A
MOVA,R7
MOVR2,A
INCR2
LP2:
MOVA,@R1;
ADDCA,@R1;位权加法(BCD码带进位自身相加,相当于乘2)
DAA
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 频率 课程设计 任务书