单片机数字频率计设计.docx
- 文档编号:12849738
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:14
- 大小:90.10KB
单片机数字频率计设计.docx
《单片机数字频率计设计.docx》由会员分享,可在线阅读,更多相关《单片机数字频率计设计.docx(14页珍藏版)》请在冰点文库上搜索。
单片机数字频率计设计
单片机课程设计
题目:
数字频率计
班级:
电气073班
姓名:
杨艳萍
学号:
200708953
指导教师:
苟军年
设计时间:
2010.1.4
讨论后独立思考完成。
一、中文摘要
本数字频率计将采用定时、计数的方法测量频率,采用一个1602ALCD显示器动态显示6位数。
测量范围从1Hz—10kHz的正弦波、方波、三角波、锯齿波的频率。
以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
二、引言
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
本数字频率计将采用定时、计数的方法测量频率。
输入信号通过放大整形电路整形为矩形波,然后进入单片机对矩形波的变化次数在1s内进行统计,由于频率是输入信号在1s内的变化次数,故所测到的统计次数即为被测信号的频率。
因为一个信号其频率不一定固定,故需重复上述步骤,以循环检测频率变化。
3、设计方案及原理
本数字频率计将采用定时、计数的方法测量频率,以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
采用一个1602ALCD显示器动态显示6位数。
测量范围从1Hz—10kHz的正弦波、方波、三角波、锯齿波。
具体为先将输入信号通过放大整形电路整形为矩形波,然后送入单片机,在1s内对矩形波的周期变化次数进行统计。
所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数,故所统计到的次数即为被测信号的频率。
最后直接用十进制数字显示被测信号频率。
若信号其频率不稳定,则需重复上述步骤,以循环检测频率变化,取其平均值作为该信号的频率。
被测信号从输入端输入经三极管放大电路放大,再经由555电路组成的施密特触发器整形,将三角波、正弦波、锯齿波等信号变换成方波信号,便于计数。
三极管采用高频小功率管。
数字频率计的总电路图如附图所示,输入被测信号经放大整形电路整形送入定时/计数器输入端口P3.5,单片机在1s时间内统计输入脉冲个数,将计数值的每一位分离出来并显示在LCD液晶显示屏上。
当输入信号改变时需要复位CPU,否则测出的频率是错误的。
在单片机80C51中,当定时器/计数器用作“定时器”时,在每个机器周期寄存器加1,因此,也可以把它看作是在累计机器周期。
由于一个机器周期包括12个振荡周期,所以,它的计数速率是振荡频率的1/12。
四、硬件设计
1、硬件原理图如图所示
2、基本原理
1)放大整形
在晶体管参数和元件值相同的情况下,共射放大器的电压,电流放大倍数均较大,因而功率放大倍数最大,其输入,输出电阻适中,高频特性也较好,应用较为广泛。
故采用共射级放大电路将输入信号放大。
再将通过放大的信号送至555定时器构成的施密特触发器,将各种波形转化为矩形波,以方便计数。
施密特触发器的正向阈值电压Vt+=Vr1=2/3Vcc,负向阈值电压Vt-=Vr2=1/3=Vcc,则回差电压Vt=Vr1-Vr2=1/3Vcc。
2)数字信号处理
在单片机80C51中,当定时器/计数器用作“定时器”时,在每个机器周期寄存器加1,因此,也可以把它看作是在累计机器周期。
由于一个机器周期包括12个振荡周期,所以,它的计数速率是振荡频率的1/12。
而用作“计数器”时,寄存器在其对应的外输入端T0或T1有一个“1→0”的跳变时加1。
此操作中,在每个机器周期的S5P2期间采样外部输入信号,当一个周期的采样值为高电平,而下一个周期采样值变为低电平时,计数器加1。
新的计数值在紧接着检测到一个跳变后的下一个周期的S3P1期间在寄存器中出现。
由于识别一个从“1→0”的跳变要用两个机器周期(24个振荡周期),所以最快的计数速率是振荡频率的1/24。
外部输入信号的速率是不受限制的,但必须保证给出的电平在变化前至少被采样一次,即它应该至少保持一个完整的机器周期。
当开关与振荡器相接则为定时,与TX端相接则为计数。
后一个开关受控制信号的控制,它实际上决定了脉冲源是否加到计数器的输入端,即决定了加1计数器的开启与运行。
在实际线路中起另一个开关作用的是特殊功能寄存器TMOD与TCON的相应位。
TMOD和TCON是专门用于定时器/计数器的控制寄存器,用户可用指令对其各位进行写入或更改操作,从而选择不同的工作状态(计数或定时)或启动时间,并可设置相应的控制条件,换言之,定时器/计数器是可编程的。
3)频率输出LCD显示
LCD为英文LiquidCrystalDisplay的缩写,即液晶显示器,是一种数字显示技术,可直接将频率显示在液晶屏上。
图1.555定时器构成的施密特触发器图2.555定时器引脚图
如上图,在Vi从0开始升高的过程中,当V1<1/3Vcc时,V11
3、具体硬件电路见附图(附录1中)。
五、软件设计
1、T0定时
本次设计选用定时器T0完成定时功能,选用方式1时最多也只能定时131ms,显然不能满足定时1的要求,可以用下面这种方法解决:
采用T0定时10mS,连续循环定时100次即可完成1s定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1定时到时。
其程序流程图如图3所示。
图3T0定时流程图
2、T1计数
设计中T1采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可以达到460800Hz,但计数器最多只能计数65536次,显然需要对计数单元进行扩展,扩展的思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。
当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。
T1计数程序的流程图如图4所示。
图4T1计数流程图
3、软件程序见附录(附录2中)
6、总结
本次课程设计,运用单片机原理及应用的知识,以及查阅资料,培养了分析问题、解决问题的能力,并且引导一种创新的思维,把学到的知识应用到日常生活当中。
在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。
全能提高个人系统开发的综合能力,开拓了思维.
经过这次设计,认识到自己在知识方面存在的不足,明确了今后的学习方向,受益匪浅,为将来的就业提前打了下坚实的基础。
在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力支持和协助,在此一并表示衷心的感谢。
七、参考文献
[1]李华,王思明,张金敏编著,单片机原理及应用,兰州:
兰州大学出版社,2001.
[2]封志宏主编,模拟电子技术,兰州:
兰州大学出版社,2003.
[3]吴蓉主编,数字电子技术,兰州:
兰州大学出版社,2005.
[4]林伸茂编著,8051单片机彻底研究,北京:
中国电力出版社,2007.
[5]邹久明编著,80C51单片机实用技术,北京:
北京航空航天大学出版社,2008.
附录1
附录2
软件程序:
ORG0000H
AJMPSTART
ORG000BH ;T0中断入口
AJMPT0INT
ORG001BH ;T1中断入口
AJMPT1INT
ORG0030H
START:
MOVIE,#8AH ;开放T0、T1中断
MOVTMOD,#51H;T0定时,T1计数
MOVTH0,#0DCH
MOVTL0,#00H ;定时10ms
MOV20H,#100 ;100*10ms=1s
MOVTH1,#00H
MOVTL1,#00H
MOV21H,#0
MOV22H,#0
MOV23H,#0;存放采集到的频率
SETBTR1
SETBTR0
WAIT:
AJMPWAIT;等待中断
T1INT:
INC23H;计数器溢出则23H单元自增1
RETI
T0INT:
DJNZ20H,NEXT1;定时10ms产生中断
CLRTR1
CLRTR0
MOV22H,TH1;1s时间到则采集数据
MOV21H,TL1
ACALLDISPLAY
SJMP$
END
;Hereisend
NEXT1:
MOVTH0,#0DCH;继续定时
MOVTL0,#00H
RETI
DISPLAY:
MOVA,23H
MOVB,#0FFH
MULAB
MOV24H,A
MOV25H,B
MOVA,23H
MOVB,#0FFH
MULAB
MOVB,26H
ADDA,25H
MOV25H,A
CLRA
ADDCA,26H
MOV26H,A
;文件名:
LCD1301.ASM
;程序功能:
显示程序
RSbitP3.4
RWbitP3.6
EbitP3.7
LCDEQUP1
;显示主程序
MAIN:
MOV26H,#12H
MOVA,26H
DAA
MOV26H,A
MOV25H,#33H
MOVA,25H
DAA
MOV25H,A
MOV24H,#47H
MOVA,24H
DAA
MOV24H,A
toString:
MOVR6,#3
MOVR1,#30H//HEADADDRESS
MOVR0,#26H
NEXT:
MOVA,@R0
ANLA,#0F0H
SWAPA
ADDA,#30H
MOV@R1,A
INCR1
MOVA,@R0
ANLA,#0FH
ADDA,#30H
MOV@R1,A
INCR1
DECR0
DJNZR6,NEXT
MOVLCD,#00000001B;清屏并光标复位
ACALLWR_COMM;调用写入命令子程序
ACALLINIT_LCD;调用初始化子程序
MOVLCD,#00H;写入显示起始地址
ACALLWR_COMM;调用写入命令子程序
MOVR7,#6
MOVR1,#30H
TO:
MOVA,@R1
MOVLCD,A
ACALLWR_DATA;调用写入数据子程序
INCR1
DJNZR7,TO
JMP$;维持当前输出状态
;LCD初始化设定
INIT_LCD:
MOVLCD,#00110000B;设置8位、2行、5x7点阵
ACALLWR_COMM;调用写入命令子程序
MOVLCD,#00001111B;显示器开,光标允许闪烁
ACALLWR_COMM;调用写入命令子程序
MOVLCD,#00010100B;文字不动,光标自动右移
ACALLWR_COMM;调用写入命令子程序
RET
;----------------------------
WR_COMM:
;写入命令子程序
CLRRS;RS=0,选择指令寄存器
CLRRW;RW=0,选择写模式
CLRE;E=0,禁止读/写LCM
ACALLCHECK_BF;调用判LCM忙碌子程序
SETBE;E=1,允许读/写LCM
RET
CHECK_BF:
;判断是否忙碌子程序
MOVLCD,#0FFH;此时不接受外来指令
CLRRS;RS=0,选择指令寄存器
SETBRW;RW=1,选择读模式
CLRE;E=0,禁止读/写LCM
NOP;延时1微秒
SETBE;E=1,允许读/写LCM
JBLCD.7,CHECK_BF;忙碌循环等待
RET
WR_DATA:
;写入数据子程序
SETBRS;RS=1,选择数据寄存器
CLRRW;RW=0,选择写模式
CLRE;E=0,禁止读/写LCM
ACALLCHECK_BF;调用判断忙碌子程序
SETBE;E=1,允许读/写LCM
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数字频率计 设计