陕西科技大学.docx

上传人:b****5 文档编号:3431822 上传时间:2022-11-23 格式:DOCX 页数:20 大小:230.80KB
下载 相关 举报
陕西科技大学.docx_第1页
第1页 / 共20页
陕西科技大学.docx_第2页
第2页 / 共20页
陕西科技大学.docx_第3页
第3页 / 共20页
陕西科技大学.docx_第4页
第4页 / 共20页
陕西科技大学.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

陕西科技大学.docx

《陕西科技大学.docx》由会员分享,可在线阅读,更多相关《陕西科技大学.docx(20页珍藏版)》请在冰豆网上搜索。

陕西科技大学.docx

陕西科技大学

陕西科技大学

单片机课程设计报告

机电系12级工业电气自动化专业

题目单片机函数发生器设计

姓名聂玉广

学号30

指导教师赵丽

 

摘要

信号发生器,它是一种用于产生标准信号的电子仪器,随着科学技术的发展,对它的要求越来越高。

在工业生产和科研中利用信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。

常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保

证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,因此,高精度,宽调幅,低价格将成为数字量信号发生器的发展趋势。

本设计核心任务是:

以89S52为核心,结合DAC0832实现程序控制产生正弦波、三角波、方波和锯齿波四种常用低频信号。

可以通过键盘选择波型和输入任意频率值。

另外,我采用KEIL,以达到验证作品功能的目的,并且做出一块测试板。

ABSTRACT

Signalgenerator,itisawidelyusedsource,withthescientificandtechnological

development,increasingitsdemands.Industrialproductionandscientificresearchin

theuseofsignalgeneratoroutputsignal,theperformanceofcomponentsand

parametersmeasured,butalsotheelectricalandelectronicproductsforauthentication,

andadjustparametersofidentification.Thesignalgeneratorusedbythevastmajority

ofanalogcircuitcomponents,suchasanalogsignalgeneratorforthelow-frequency

signalsoftenrequireoutputvalueoftheRCgreat,itwillnotonlydifficulttoensure

theaccuracyofparameters,butalsohavegreatsizeandpowerconsumption,Digital

componentsoflow-frequencysignalgenerator,althoughthelow-frequency

performancegoodbutlarger,moreexpensiveprice,therefore,highaccuracy,

wide-AM,willbecomealow-costdigitalsignalgeneratortrendofdevelopment.

Thegraduationprojectcoretaskistodesign:

89S52asthecore,unifiesDAC0832

torealizetheprogrammedcontroltohavethesinewave,thetriangularwave,the

square-waveandthesaw-toothwavefourkindofcommonlyusedlow-frequency

signals.Canchoosethekeyboard-typeandfrequencyofanyinput,frequencyofuse

offivedigitaldisplay,twosquarewiththedutycycleofthedigitaldisplay,witha

waveofthedigitaldisplay.Inaddition,IusedKEILjointsimulation,functional

workstoachievethepurposeofverification,andmakeanevaluationboard.

 

目录

摘要

ABSTRACT

一绪论

1.1单片机的概述

1.2研究背景

1.2研究目的

1.3研究意义

二方案的设计和选择

2.1设计内容

2.2设计原理

2.3设计功能

三芯片功能介绍

3.1DAC0832芯片介绍

3.2DAC0832的外部引脚及功能介绍

3.3DAC0832与8031的连接方式

3.4数/模转换电路

3.5串口通信电路

五程序流程图

5.1锯齿波程序流程图

5.2三角波程序流程图

5.3梯形波程序流程图

5.4方波程序流程图

5.5正弦波程序流程图

5.6整体程序流程图

五程序设计

六总结与体会

参考文献

致谢

 

第一章绪论

1.1单片机概述

随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。

单片机具有体积小、成本低,性能稳定、使用寿命长等特点。

其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的。

1.2研究背景

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统函数信号发生器日新月益更新。

传统的函数信号发生器大多数采用了模拟锁相环、数字锁相环、小数分频锁相环(fractional-NPLLSynthesis)技术,但是随着科技的进步,出现了直接数字合成(DirectDigitalSynthesis-DDS)的FS技术。

单片集成的DDS产品是一种可代替锁相环的快速频率合成器件。

DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。

DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。

通过高速DAC产生数字正弦数字波形,通过带通滤波器后得到一个对应的模拟正弦波信号,最后该模拟正弦波与一门限进行比较得到方波时钟信号。

1.3研究意义

本设计主要研究并设计一个基于单片机的函数信号发生器,实现正弦波与方波的产出。

系统主要是由单片机AT89S52、电源模块、中断键盘模块、AD9850函数信号发生模块、MAX7219显示模块组成,单片机通过中断扫描键盘,计算所需的信号频率,转换成二进制控制码,用数控的方法控制DDS芯片AD9850产生100Hz-40MHz正弦信号,100Hz-5MHz方波信号,并由AT89S52控制MAX7219显示模块完成相应的频率显示

1.3研究意义

近10年间,随着微电子技术的迅速发展,直接数字频率合成器(DirectDigitalFrequencySynthesis简称DDS或DDFS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的姣姣者。

具体体现在相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。

函数信号发生器在电路实验和设备检测中具有十分广泛的用途。

例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。

除供通信、仪表和自动控制系统测试用外,还广泛用于其他非电测量领域

 

第二章设计任务和要求

2.1设计任务:

设计一个由单片机控制的信号发生器。

运用单片机系统控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波等。

信号发生器所产生的波形的频率、幅度均可调节。

并可通过软件任意改变信号的波形。

基本要求:

1.产生三种以上波形。

如正弦波、三角波、矩形波等。

2.最大频率不低于500Hz。

并且频率可按一定规律调节,如周期按1T,2T,3T,4T或1T,2T,4T,8T变化。

3.幅度可调,峰峰值在0——5V之间变化。

扩展要求:

产生更多的频率和波形。

2.2设计原理

数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。

89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:

中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。

输出

图2.1信号发生器原理框图

89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。

当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。

2.3设计功能

(1)本方案利用8155扩展8个独立式按键,6个LED显示器。

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

(2)“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。

(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。

(4)频率范围:

10~1000Hz。

(5)输出波形幅度为0~5V。

第三章芯片功能介绍

3.1、DAC0832芯片介绍:

DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。

基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。

DAC0832的内部结构框图如下图所示

 

图2.1DAC0832的内部结构框图

3.2DAC0832的外部引脚及功能介绍图如下:

图2.2DAC0832介绍

3.3DAC0832与8031的连接方式:

DAC0832的与单片机的连接方式有三种方式:

(1)单缓冲;

(2)双缓冲、(3)直通方式。

本程序采用的是方式一即单缓冲方式,ILE为高电平,CS、WR1、WR2、XFER为低电平。

图2.4DAC0832引脚图

主控电路图

3.4数/模转换电路

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

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

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

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

根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:

直通方式、单缓冲方式和双缓冲方式。

本设计选用直通方式。

DAC0832的数据口和单片机的P0口相连。

CSDA:

片选信号输入线(选通数据锁存器),低电平有效;

WR:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

3.5串口通信电路

通用异步收发器(UART)是一种串行接口,一般微处理器中都包含这种外设接口。

异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。

如果再加入一个合适的电平转换器MAX232,串口就能能用在RS232和RS485等网络中实现通信,或者与计算机的COM端口连接。

串口只需两根信号线(RX和TX)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。

串口通信电路图

第四章程序流程图

4.1锯齿波程序流程图

锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。

然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。

流程图如下所示:

4.2三角波程序流程图

三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。

此程序输入的VREF的电压是+5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。

程序流程图如下图所示:

4.3梯形波程序流程图

梯形波输出跟锯齿波和三角波相似,只不过当加到顶峰后的一段时间内不改变A的值,过了一段时间后再将减少A的值,不过先后的步数可以一样也可以不一样。

然后减到初始的值后也要持续一段时间,然后再进行加数,如此循环下去。

程序流程图如下图所示:

4.4方波程序流程图

此波形的实现更加简单,只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。

这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了。

流程图如下图所示:

4.5正弦波程序流程图

正弦波的实现则相对比较复杂,因为正弦波的实现是输出各个点的值就行了,可是各个点值则要通过正弦函数来求出,不过这些值直接去网上下载下来使用就可以了。

输出的数据刚好是256个数据,这样则可以直接相加就行了。

流程图如下图所示:

4.6整体程序流程图

如下图所示:

第五章程序设计

ORG0000H;程序开始

MOVSP,#60H;设置堆栈

MOVDPTR,#7FFFH;0832的地址

SJMPLOP

TPL:

MOVR6,#04H;切换频率和幅度(手动调节)

MOVR5,#04H

SJMPSTART

LOP:

JNBP1.5,TPL;选择调频

MOVR6,#01H;设置步长

MOVR5,#01H

START:

JNBP1.0,BX1;输出锯齿波

JNBP1.1,BX2;输出三角波

JNBP1.2,BX3;输出梯形

JNBP1.3,BX4;输出方波

JNBP1.4,BX5;输出正弦波

SJMPLOP

BX1:

MOVA,#00H;设置初值

LOOP:

MOVX@DPTR,A;把数据送到端口

ADDA,R6;通过步长改变上升波形

CJNEA,#00H,LOOP

SJMPSTART;返回检测开关情况

BX2:

MOVA,#00H;设置初值

LOOP3:

MOVX@DPTR,A;把数据送到端口转换

ADDA,R6;通过步长改变上升波形

CJNEA,#00H,LOOP3

DECA;减少步长改变数据下降波形

LOOP2:

MOVX@DPTR,A;把数据送到端口转换

DECA;减少步长改变数据下降波形

CJNEA,#00H,LOOP2

SJMPSTART;返回检测

BX3:

MOVA,#00H;设置初值

LOOP4:

MOVX@DPTR,A;把数据送到端口转换

ADDA,R6;增加步长改变数据上升波形

CJNEA,#00H,LOOP4

DECA

MOVR7,0EEH;循环次数

LOP2:

MOVX@DPTR,A;进行延时

DJNZR7,LOP2

LOOP1:

MOVX@DPTR,A;把数据送到端口转换

DECA

CJNEA,#00H,LOOP1;是否到最低点

MOVR7,0EEH;循环次数

LOP1:

MOVX@DPTR,A;把数据送到端口转换

DJNZR7,LOP1;进行延时

SJMPSTART;返回检测

BX4:

MOVA,#00H;设置初值最低点

MOVR7,#0EEH;循环次数

LOOP5:

MOVX@DPTR,A;进行数据转换

DJNZR7,LOOP5;进行延时

MOVA,#0FFH;设置最高点

MOVR7,#0EEH;循环次数

LOOP6:

MOVX@DPTR,A;进行数据转换

DJNZR7,LOOP6;进行延时

MOVA,#00H

SJMPSTART;返回检测开关变化

BX5:

MOVA,#00H;设置初值

LOOP7:

MOVR7,A;保存当前的数据

MOVDPTR,#SIN;读取表的地址

MOVCA,@A+DPTR;读取表中的数据

MOVDPTR,#7FFFH;D/A0832的端口地址

MOVX@DPTR,A;进行数据转换

MOVA,R7;恢复当前数据

INCA;为读取表的下一个值做准备

CJNEA,#00H,LOOP7;是否读完表的数据

SJMPSTART;返回检测开关

SIN:

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,4CH,48H,45H,43H,40H,3DH,3AH

DB38H,35H,33H,30H,2EH,2BH,29H,27H

DB25H,22H,20H,1EH,1CH,1AH,18H,16H

DB15H,13H,11H,10H,0EH,0DH,0BH,0AH

DB09H,08H,07H,06H,05H,04H,03H,02H

DB02H,01H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,01H,02H

DB02H,03H,04H,05H,06H,07H,08H,09H

DB0AH,0BH,0DH,0EH,10H,11H,13H,15H

DB16H,18H,1AH,1CH,1EH,20H,22H,25H

DB27H,29H,2BH,2EH,30H,33H,35H,38H

DB3AH,3DH,40H,43H,45H,48H,4CH,4EH

DB51H,55H,57H,5AH,5DH,60H,63H,66H

DB69H,6CH,6FH,72H,76H,79H,7CH,80H

END

 

总结与体会

经过一系列的努力,终于顺利地完成了这个单片机课程的设计。

这是一个磨练意志的过程。

从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。

一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用Proteus软件画电路图时,然后再转换成一维的WORD中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。

当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。

需要的是细心和耐心。

在很大程度上培养了我拼搏的工作精神。

使我受益匪浅,更加明确了自己专业的方向。

在这一次的设计中,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。

其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。

与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。

课设是一个通过思考、发问、自己解惑并动手、提高的过程。

我会在以后的学习中不断学习,积累经验,不断完善自己,让自己变得更加出色。

谢辞

值此论文完成之际。

首先要感谢我的导师,赵老师从一开始的论文方向的选定,到最后的整篇文论的完成,都非常耐心的对我进行指导。

给我提供了大量数据资料和建议,告诉我应该注意的细节问题,细心的给我指出错误,修改论文。

他对函数信号发生系统的专业研究和对该课题深刻的见解,使我受益匪浅。

赵老师诲人不倦的工作作风,一丝不苟的工作态度,严肃认真的治学风格给我留下深刻的影响,值得我永远学习。

在此,谨向赵老师致以崇高的敬意和衷心的感谢!

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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