毕业设计基于单片机的信号发生器设计01.docx

上传人:b****2 文档编号:11396900 上传时间:2023-05-31 格式:DOCX 页数:25 大小:110.44KB
下载 相关 举报
毕业设计基于单片机的信号发生器设计01.docx_第1页
第1页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第2页
第2页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第3页
第3页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第4页
第4页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第5页
第5页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第6页
第6页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第7页
第7页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第8页
第8页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第9页
第9页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第10页
第10页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第11页
第11页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第12页
第12页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第13页
第13页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第14页
第14页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第15页
第15页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第16页
第16页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第17页
第17页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第18页
第18页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第19页
第19页 / 共25页
毕业设计基于单片机的信号发生器设计01.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计基于单片机的信号发生器设计01.docx

《毕业设计基于单片机的信号发生器设计01.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的信号发生器设计01.docx(25页珍藏版)》请在冰点文库上搜索。

毕业设计基于单片机的信号发生器设计01.docx

毕业设计基于单片机的信号发生器设计01

基于单片机的信号发生器设计

代劲

(吉首大学物理科学与信息工程学院,湖南吉首416000)

摘要

本文介绍一种用AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。

文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。

关键词:

单片机;DAC;信号发生器

 

DesignofSignalGeneratorBasedonMCU

DaiJing

(CollegeofPhysicsScienceandInformationEngineering,JishouUniversity,Jishou,Hunan416000)

Abstract

ThispaperintroducesasignalgeneratorwithMCUAT89C51,whichisusedtogenerateelectro-wave-formssuchassquares、triangles、sinesandteeth-saw.TheperiodsofthesesignalscanbechangedbyprogramsofMCUAT89C51andtheiroutputscanbeselectedtobemonopolarorbipolar.Thispaperprovidestheoriginalcode.Andthetechnicalparameterofthesignalgeneratormeetstherequestofthedesignafterthesimulationtest.

Keywords:

MCU;DAC;signalgenerator

 

硬件设计

硬件原理框图

硬件原理方框图如图4.1所示。

 

图4.1硬件原理框图

主控电路

AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。

在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。

模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。

中断系统是使处理器具有对外界异步事件的处理能力而设置的。

当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。

在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形[6]。

如图4.2所示,AT89C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。

如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。

如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8155的PB口输出,并在数码管上显示出来。

图4.2主控电路图

数/模转换电路

由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。

DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。

但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。

DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。

由图4.3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H,则U1的输出电压为0V;若P0口向其送的数据为0FFH时,则U1的输出电压为-5V.故当U1输出电压为0V时,由公式得:

Vout=-5V.当输出电压为-5V时,可得:

Vout=+5V,所以输出波形的电压变化范围为-5V~+5V.故可推得,当P0所送数据为80H时,Vout为0V[4]。

 

图4.3数模转换电路

按键接口电路

图4.4为键盘接口电路的原理图,图中键盘和8155的PA口相连,AT89C51的P0口和8155的D0口相连,AT89C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。

其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出。

“S3”号键代表锯齿波输出,“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号[3]。

 

时钟电路

8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图4.5所示。

电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器选择频率为12MHz的石英晶体。

由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形[9]。

 

图4.5时钟电路

显示电路

显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用LED数码管显示器。

而且LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。

其器件模型如图4.6所示。

图4.6LED显示电路

 

软件设计

程序流程图

本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。

主程序的流程图如图5.1所示,在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。

在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。

 

图5.1主程序流程图

图5.2为各波形子程序的流程图。

如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。

如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换

器将数据转换成模拟信号,形成所需波形信号。

图5.2子程序流程图

 

波形仿真

 

通过前面的软、硬件设计,整个电路的设计已基本完成,下面将进行正弦波、方波、三角波、锯齿波等波形的仿真与测试。

本文中波形信号的仿真是以Proteus6.5这一款软件为平台,装入波形发生程序,验证硬件电路和程序的正确性。

正弦波的仿真

如图5.3所示,此波形为幅度为5V,频率为500HZ的正弦波,是通过查表转换的方法来实现的。

而要实现其他如10HZ、100HZ、1KHZ等频率的波形,则需要调用延时子程序,改变波形发生的时间常数。

 

图5.3正弦波仿真图

三角波的仿真

如图5.4所示,此波形为幅度为5V,频率为500HZ的正弦波,是通过查表转换的方法来实现的。

通过调用延时子程序,改变波形发生的时间常数,实现10HZ、100HZ、1KHZ等频率的波形。

 

图5.4三角波仿真图

 

锯齿波的仿真

如图5.5所示,此波形为幅度为5V,频率为500HZ的锯齿波,是通过查表转换的方法来实现的。

而要实现其他如10HZ、100HZ、1KHZ等频率的波形,则需要调用延时子程序,改变波形发生的时间常数。

 

方波的仿真

如图5.6所示,此波形为幅度为5V,频率为500HZ的方波,是通过查表转换的方法来实现的。

通过调用延时子程序,改变波形发生的时间常数,实现10HZ、100HZ、1KHZ等频率的波形。

 

图5.6方波仿真图

结束语

这种基于单片机的信号发生器已经展示出很好的性能,而且有着很高的性价比。

此外,它产生的波形与模拟电路的波形相比,波形有着更好的平滑性,其周期性也更加稳定。

已经越来越多的应用到各种电子设备当中,给人们的日常生活带来了方便。

在论文中简单介绍了它的用途和发展趋势,根据它的一些基本知识,按照自己的想法设计了一类低频信号发生器,具体包括了设计方案以及相关参数的选取和计算,根据工作基本原理加入了一些相关的辅助电路,并编写了相关的应用程序。

有些指标还有待于进一步提高。

例如,在精度及其它功能的扩展上还有较大的潜力可以挖掘,这些都有待于我们通过对电路的改进和对元器件的最佳选择来进一步完善。

而且由于本人所学知识有限,很多知识点的学习不够深刻,我会在以后的学习中更加踏实、认真的学好各个知识点。

 

参考文献

[1]程全.基于AT89C52实现的多种波形发生器的设计[J].周口师范学院学报,2005.22(5):

57~58.

[2]周明德.微型计算机系统原理及应用[M].北京:

清华大学出版社,2002.341~364.

[3]刘乐善.微型计算机接口技术及应用[M].北京:

北京航空航天大学出版社,2001.258~264.

[4]童诗白.模拟电路技术基础[M].北京:

高等教育出版社,2000.171~202.

[5]杜华.任意波形发生器及应用[J].国外电子测量技术,2005.1:

38~40.

[6]张友德.单片微型机原理、应用与实践[M].上海:

复旦大学出版社,2004.40~44.

[7]程朗.基于8051单片机的双通道波形发生器的设计与实现[J].计算机工程与应用,2004.8:

100~103.

[8]张永瑞.电子测量技术基础[M].西安:

西安电子科技大学出版社,2006.61~101.

[9]李叶紫.MCS-51单片机应用教程[M].北京:

清华大学出版社,2004.232~238.

[10]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:

高等教育出版社,1988.56~289.

 

致谢

本文的研究工作是在杨永东老师指导、帮助和督促下完成的。

杨永东老师在该领域有敏锐的感知力以及对其应用价值的洞察力给我留下了深刻的印象。

在攻读学士学位四年的学习期间,导师勇于探索、敢于创新的科研精神激励我不断努力进取,在今后的人生旅途上取得成功的宝贵的精神财富。

同时,在学习期间导师为我提供了良好的研究环境和实践条件,并对一些创新性的工作给予了大量的指导与支持。

在本文完成之际,谨向为我倾注了大量心血的导师及帮助过我的老师和同学表示最诚挚的感谢和深深的敬意!

附录一

源程序:

ORG0000H

AJMMAIN

ORG000BH

LJMPTC0

ORG0030H

MAIN:

MOVDPTR,#9FFFH指向DAC0832

(1)

MOVA,70H

MOVX@DPTR,ADAC0832

(1)输出

MOVDPTR,#7F00H指向8155命令字端口地址

MOVA,#06H设置A口为输入,B口、C口为输出

MOVX@DPTR,A送命令字

MOVDPTR,#7F01H指向A口地址

MOVXA,@DPTR读入A口的开关数据

JNBACC.4,K10H判断是否“4”号键,若是则转输出10Hz信号

JNBACC.5,K100H判断是否“5”号键,若是则转输出100Hz信号

JNBACC.6,K500H判断是否“6”号键,若是则转输出500Hz信号

JNBACC.7,K1K判断是否“7”号键,若是则转输出1KHz信号

AJMPMAIN

LED1:

MOVR3,#06H设置6个LED显示

MOVR2,#01H选通第一位LED数据

MOVR1,#30H送显示缓冲区首址

GN1:

MOVDPTR,#7F03H指向C口地址

MOVA,R2位选通数据送A

MOVX@DPTR,A位选通数据送C口

RLA选通下一位

MOVR2,A位选通数据送R2中保存

MOVA,@R1取键值

MOVDPTR,#TAB送LED显示软件译码表首址

MOVCA,@A+DPTR查表求出键值显示的段码

MOVDPTR,#7F02H指向B口地址

MOV@DPTR,A段码送显示

LCALLLOOP1调延时子程序

INCR1指向下一位显示缓冲区地址

DJNZR3,GN1循环显示6个LED

RET

LOOP1:

MOVR4,#08H延时子程序

LOOP:

MOVR5,#0A0H

DJNZR5,$

DJNZR4,LOOP

RET

K10H:

MOV30H,#00H显示10Hz

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOV34H,#01H

MOV35H,#00H

LCALLLED1调显示子程序

MOVTMOD,#00H

MOVTL0,#15H

MOVTH0,#9EH

AJMPPD

K100H:

MOV30H,#00H显示100Hz

MOV31H,#00H

MOV32H,#00H

MOV33H,#01H

MOV34H,#00H

MOV35H,#00H

LCALLLED1调显示子程序

MOVTMOD,#00H

MOVTL0,#08H

MOVTH0,#0F6H

AJMPPD

K500H:

MOV30H,#00H显示500Hz

MOV31H,#00H

MOV32H,#00H

MOV33H,#05H

MOV34H,#00H

MOV35H,#00H

LCALLLED1调显示子程序

MOVTMOD,#00H

MOVTL0,#01H

MOVTH0,#0FEH

AJMPPD

K1K:

MOV30H,#00H显示1KHz

MOV31H,#00H

MOV32H,#01H

MOV33H,#00H

MOV34H,#00H

MOV35H,#00H

LCALLLED1调显示子程序

MOVTMOD,#00H

MOVTL0,#01H

MOVTH0,#0FFH

PD:

JNBACC.0,KE0判断是否“0”号键按下,若是则转方波输出

JNBACC.1,KE1判断是否“1”号键按下,若是则转正弦方波输出

JNBACC.2,KE2判断是否“2”号键按下,若是则转三角波输出

JNBACC.3,KE3判断是否“3”号键按下,若是则转锯齿波输出

LJMPPD

KE0:

MOVR7,#00H

LCALLLED1调显示子程序

MOVR6,#00H

AJMPGN

KE1:

MOVR7,#02H

LCALLLED1调显示子程序

MOVR6,#00H

AJMPGN

KE2:

MOVR7,#02H

LCALLLED1调显示子程序

MOVR6,#00H

AJMPGN

KE3:

MOVR7,#02H

LCALLLED1调显示子程序

MOVR6,#00H

GN:

SETBTR0

SETBET0

SETBEA

LOP1:

JNBACC.4,K10H判断是否“4”号键,若是则转输出10Hz信号

JNBACC.5,K100H判断是否“5”号键,若是则转输出100Hz信号

JNBACC.6,K500H判断是否“6”号键,若是则转输出500Hz信号

JNBACC.7,K1K判断是否“7”号键,若是则转输出1KHz信号

AJMPLOP1

TC0:

CJNER7,#00H,TC1发送方波程序

MOVDPTR,#TAB1送方波数据表首址

MOVA,R6发送数据寄存器

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH指向DAC0832

(2)

MOVX@DPTR,ADAC0832

(2)输出

MOVA,R6

INCA

MOVR6,A

CJNEA,#32,QL1

MOVR6,#00H

AJMPQL1

TC1:

CJNER7,#01H,TC2发送正弦波程序

MOVDPTR,#TAB2送正弦波数据表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH指向DAC0832

(2)

MOVX@DPTR,ADAC0832

(2)输出

MOVA,R6

INCA

MOVR6,A

CJNEA,#32,QL1

MOVR6,#00H

AJMPQL1

TC2:

CJNER7,#02H,QL1发送三角波程序

MOVDPTR,#TAB3送三角波数据表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH指向DAC0832

(2)

MOVX@DPTR,ADAC0832

(2)输出

MOVA,R6

INCA

MOVR6,A

CJNEA,#32,QL1

MOVR6,#00H

AJMPQL1

TC3:

CJNER7,#03H,QL1发送锯齿波程序

MOVDPTR,#TAB4送锯齿波数据表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH指向DAC0832

(2)

MOVX@DPTR,ADAC0832

(2)输出

MOVA,R6

INCA

MOVR6,A

CJNEA,#32,QL1

MOVR6,#00H

QL1:

RETI

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80H

TAB1:

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

TAB2:

DB80H,83H,86H,89H,8DH,90H,93H,96H

DB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH

DB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H

DB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H

DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H

DB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H

DB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH

DB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH

DB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H

DB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH

DB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH

DB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H

DB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H

DB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H

DB96H,93H,90H,8DH,89H,86H,83H,80H

DB80H,7CH,79H,78H,72H,6FH,6CH,69H

DB66H,63H,60H,5DH,5AH,57H,55H,51H

DB4EH,4

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

当前位置:首页 > 工程科技 > 能源化工

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

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