基于单片机的波形发生器课程设计文档doc.docx

上传人:b****5 文档编号:7775894 上传时间:2023-01-26 格式:DOCX 页数:12 大小:1.08MB
下载 相关 举报
基于单片机的波形发生器课程设计文档doc.docx_第1页
第1页 / 共12页
基于单片机的波形发生器课程设计文档doc.docx_第2页
第2页 / 共12页
基于单片机的波形发生器课程设计文档doc.docx_第3页
第3页 / 共12页
基于单片机的波形发生器课程设计文档doc.docx_第4页
第4页 / 共12页
基于单片机的波形发生器课程设计文档doc.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于单片机的波形发生器课程设计文档doc.docx

《基于单片机的波形发生器课程设计文档doc.docx》由会员分享,可在线阅读,更多相关《基于单片机的波形发生器课程设计文档doc.docx(12页珍藏版)》请在冰豆网上搜索。

基于单片机的波形发生器课程设计文档doc.docx

基于单片机的波形发生器课程设计文档doc

 

西北民族大学

 

 

学院:

电气工程学院

专业:

电子信息工程

姓名:

李丽娜

学号:

P0*******0

指导老师:

高大容

目录

1、绪论

1.1概述

2、基于单片机的波形发生器的设计方案介绍

2.1总体方案设计

2.2波形发生器原理

2.3波形发生器设计方案

3、基于单片机的波形发生器的硬件设计

3.1本设计对单片机的要求

3.2单片机选择

3.3波形输出电路

3.3.1DAC0832引脚介绍

3.3.2数模转换器与单片机接口设计

3.4电源部分设计

4、基于单片机的波形发生器的软件设计

4.1初始化模块

4.2波形产生模块

5、结束语

 

基于单片机的波形发生器设计

1绪论

1.1概述

波形发生器有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。

一般来说任意波形发生器是一种特殊的信号源,综合具有其他信号源生成能力,因而适合各种仿真实验的需要。

2基于单片机的波形发生器的设计方案介绍

2.1总体方案设计

根据题意,可采用单片机程序产生以上4中波形,并通过D/A转换器输出。

另外,采用一片D/A转换器来控制前一片D/A转换器的参考电压,从而可以改变输出波形幅值。

2.2波形发生器的原理

本文利用AT89C51单片机外接数模转换器和运算放大电路,由用户通过按键选择输出实验室中经常使用到的集中基本波形:

方波、正弦波、三角波。

以以产生正弦波为例,采用定点法来生成波形,即将一个周期的正弦波按360°等分为若干点,计算出个点的正弦函数值,并转化为相应D/A转换器输入数值,这样得到一个正弦函数表。

通过程序将该表存于单片机的程序存储器中,利用单片机的定时器来产生定时,每当定时时间到,查表得到该点对应的输出值然后通过D/A转换得到该点的对应电压值。

2.3波形发生器的设计方案

波形发生器原理框图如下

3基于单片机的波形发生器的硬件设计

3.1本设计对单片机的要求

1、本系统要求在有信号输入时,单片机要尽快工作,因此要求单片机运行速度尽可能快。

2、由于汇编语言的移植性好,程序简单明了,因此应选用可支持汇编语言的单片机。

3、单片机的成本应尽可能低。

4、操作过程应尽可能简单。

3.2单片机的选择

3.3波形输出电路

3.3.1DAC0832引脚介绍

DAC芯片的幸型号很多,他们在价格、精度和速度上有很大的差别。

常用的D/A器件是将数字量转成电压或者电流的形式。

按照D/A何单片机的接口方法可分为并行和串行D/A转换器。

前者CPU将各位代码同时送到转换器相应的输入端,转换速度快,应用较广。

因此根据上述原因,本设计用DAC0832作为单片机AT89C51的数据转换器。

DAC0832具有一组8位数据线D0~D7用于输入数字量,一对模拟输出I(out1~out2)用于输出与输入数字量成正比的电流信号,一般外部链接由运算放大器组成的转换电路。

转换器的基准电压输入端VREF一般在-10V~+10V范围内。

DAC0832的引脚及功能如图所示。

3.3.2数模转换器与单片机的接口设计

在本设计中选用DAC0832的单缓冲工作方式,他与单片机AT89C51的接口电路如图所示

波形输出电路主要由两片8位D/A转换器DAC0832和相应运算放大器组成。

3.4电源部分设计

本课题通过7805、7812、7912稳压器将直流电压分别转换为+5V、+12V、-12V直流电压,然后直接和电路系统的电源接口相接。

电路图如下:

4基于单片机发生器的软件设计

按照波形发生器的功能,其应用程序必须有初始化、波形产生、键盘管理和显示等几部分,主要软件模块介绍如下:

4.1初始化模块

初始化程序模块主要进行设置定时器、串口的工作方式、设计波形的类型、幅值和频率,程序如下:

MOVTMOD,#02H;设置定时器0为工作方式2

MOVTL0,#7FH;置初值

MOVTH0,#7FH;

CLRTR0;不启动

MOVSCON,#00H;将串行口初始化为方式0

MOVDPTR,#0FFFDH;IC3的地址送DPTR

MOVA,#0FFH;

MOVX@DPTR,A;输出波形幅值初始化为10V

4.2波形产生模块

以正弦波和三角波为主要研究模块,其程序如下:

①正弦波产生程序

SETBTRO

SINWAV:

MOVR0,#00H;查表指针初始化为0

SINLP1:

MOVDPTR,#SINTAB;正弦波函数表地址宋DPTR

MOVA,R0

MOVCA,@A+DPTR;查表

MOVDPTR,#OFFFEH;IC4地址送DPTR

MOVX@DPTR,A;输出数据给D/A

SINLP2:

JNBTF0,SINLP2;由定时器控制频率

CLRTF0;

INCR0;

CJNER0,#13H,SINTAB;第一象限输出完了吗?

SINLP3:

MOVDPTR,#SINTAB;正弦波函数表表地址送DPTR

MOVA,R0

MOVCA,@A,R0

MOVCA,@A+DPTR;查表

MOVDPTR,#FFFEH;IC4F地址送DPTR

MOVX@DPTR,A;

SINLP4:

JNBTF0,DINLP4;由定时器控制频率

CLRTF0

DECR0

CJNER0,#00H,SINLP3;第二象限输出完了吗?

SINLP5:

MOVDPTR,#SINTAB;正弦波函数表表地址送DPTR

MOVA,R0;

MOVCA,@A+DPTR;查表

CPLA;取反

MOVDPTR,#0FFFEH;IC4地址送DPTR

MOVX@DPTR,A;输出数据给D/A

SINLP6:

JNBTF0,SINLP6;由定时器控制频率

CLRTF0;

INCR0;

CJNER0,#13H,SINLP6;第三象限输出完了吗?

SINLP7:

MOVDPTR,#SINTAB;正弦波函数表地址送DPTR

MOVA,R0;

MOVCA,@A+DPYR;查表

CPLA;取反

MOVDPTR,#0FFFEH;IC4地址送DPTR

MOVX@DPTR,A;

SINLP8:

JNBTF0,SINLP8;由定时器控制频率

CLRTF0;

DECR0;

CJNER0,#00H,SINLP7;第四象限输出完了吗?

SJMPSINWAV;输出下一个周期

SINTAB:

DB7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,

0D9H

DB0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,

0FFH

②三角波产生程序

SETBTR0;

TRIWAV:

MOVR0,#00H;查表指针初始化为0

TRILP1:

MOVDPTR,#TRITAB;正弦波函数表地址宋DPTR

MOVA,R0;

MOVCA,@A+DPTR;查表

MOVDPTR,#0FFFEH;C4地址送DPTR

MOVX@DPTR,A;输出数据给D/A

TRILP2:

JNBTF0,TRILP2;由定时器控制频率

CLRTF0;

INCR0;

CJNER0,#13H,TRILP1;第一象限输出完了吗?

TRILP3:

MOVDPTR,#TRITAB;正弦波函数表表地址送DPTR

MOVA,R0;

MOVCA,@A+DPTR;查表

MOVDPTR,#0FFFEH;IC4地址送DPTR

MOVX@DPTR,A

TRILP4:

JNBTF0,TRILP4;由定时器控制频率

CLRTF0;

DECR0;

CJNER0,#00H,TRILP3;第二象限输出完了吗?

TRILP5:

MOVDPTR,#TRITAB;正弦波函数表表地址送DPTR

MOVA,R0;

MOVCA,@A+DPTR;查表

CPLA;取反

MOVDPTR,#0FFFEH;IC4地址送DPTR

MOVX@DPTR,A;输出数据给D/A

TRILP6:

JNBTF0,TRILP6;由定时器控制频率

CLRTF0;

INCR0;

CJNER0,#13H,TRILP6;第三象限输出完了吗?

TRILP7:

MOVDPTR,#TRITAB;正弦波函数表地址送DPTR

MOVA,R0;

MOVCA,@A+DPYR;查表

CPLA;取反

MOVDPTR,#0FFFEH;IC4地址送DPTR

MOVX@DPTR,A

TRILP8:

JNBTF0,TRILP8;由定时器控制频率

CLRTF0;

DECR0;

CJNER0,#00H,TRILP7;第四象限输出完了吗?

SJMPTRIWAV;输出下一个周期

TRITAB:

DB7FH,86H,8DH,94H,9BH,0A2H,0A9H,0B0H,0B7H,

0BEH

DB0C5H,0CCH,0D3H,0DAH,0E1H,0E8H,0EFH,0F6H,

0FDH

仿真图:

正弦波图形

三角波图形

5结束语

综上所述,对本课题做一下总结:

(1)本设计采用了单片机技术来设计波形发生器,使波形发生器操作和使用都非常方便;

(2)本文比较了不同系列的单片机的功能和特性,最终选取了AT89C51单片机,并以正弦波发生器为例编写了汇编程序,很好的满足了要求,但是由于个人能力和实践上的限制,汇编程序及系统还有不足之处,在全面性上还有欠缺。

我会再接再厉,精益求精。

 

参考文献

[1]戴仙金主编51单片机及其C语言汇编程序开发实例清华大学出版社,2008

[2]高吉祥主编全国大学生电子设计竞赛培训系列教程电子工业出版社,2007

[3]杨素行主编模拟电子技术基础简明教程高等教育出版社,2007

[4]蒋辉平主编单片机原理与应用设计北京航空航天大学出版社2007

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

当前位置:首页 > 高等教育 > 理学

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

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