文档介绍:广东第二师范学院
单片机课程设计报告
物理系 09 级电子信息工程专业
题目单片机函数发生器设计
姓名
学号
指导教师
2011-4-5
目录
引言 3
一设计任务 3
1设计内容 3
2设计要求 4
二芯片功能介绍 4
三总体功能图和总原理图 5
四程序流程图 6
1 锯齿波程序流程图 6
2 三角波程序流程图 7
3 梯形波程序流程图 8
4 方波程序流程图 9
5 正弦波程序流程图 11
6 整体程序流程图 12
五程序设计 13
六仿真测试 16
七总结与体会 19
八参考文献 19
九致谢 19
引言
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。使用AT98C52作为主控台结合芯片DAC0832产生1HZ-10HZ频率可调的五种信号波(锯齿波、三角波、方波、梯形波、正弦波)。这几种波形有几个开关控制,可以随意进行切换,十分方便。另外,波形的频率和振幅也可以通过开关进行更改。可以说这次的设计操作简单,内容丰富,而且电路快捷明了。
1设计任务
以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、梯形波等),且频率、幅度可变的函数发生器。
设计借口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和仿真图,并编写出控制波形的程序。
2芯片功能介绍
、DAC0832芯片介绍:
DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。DAC0832的内部结构框图如下图所示。
DAC0832的内部结构框图
DAC0832的外部引脚及功能介绍图如下:
DAC0832介绍
DAC0832的应用:
DAC0832一是用作单极性电压输出,二是用作双极性电压输出,最后是用作程控放大器。
DAC0832与8031的连接方式:
DAC0832的与单片机的连接方式有三种方式:(1)单缓冲;(2)双缓冲、(3)直通方式。本程序采用的是方式一即单缓冲方式,ILE为高电平,CS、WR1、WR2、XFER为低电平。
DAC0832引脚图
3 总体功能图和总原理图
函数发生器的设计
K2
键三角波
K3键梯形波
K4键方波
K5键正弦波
K6
调频调幅
K1
键
锯
齿
波
总体功能图
总原理图
4 程序流程图
锯齿波程序流程图
锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。流程图如下所示:
设置初值A
MOV A,#00H DPT#8000H
MOVX ***@DPTR,A
加上设定的步数,ADD A,步数
判断A是否已经满了?
否
重新设置初值A
是
开始
三角波程序流程图
三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。此程序输入的VREF的电压是+5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。
程序流程图如下图所示:
给A设置初值
MOV DPTR,#8000H
MOVX ***@DPTR,A
ADD A,步数
判断A是否已满?
否
是
SUBB A,步数
判断是否等于初值?
否/是
开始
梯形波程序流程图
梯形波输出跟锯齿波和三角波相似,只不过当加到顶峰后的一段时间内不改变A的值,过了一段时间后再将减少A的值,不过先后的步数可以一样也可以不一样。然后减到初始的值后也要持续一段时间,然后再进行加数,如此循环下去。
程序流程图如下图所示:
开始
给A设置初值
MOV A,#00H
是
持续一段时间
SUBB A,步数2
判断是否等于初值?
否
是
持续一段时间
MOVX ***@DPTR,A
ADD A,步数1
判断A是否已满?
否
方波程序流程图
此波形的实现更加简单,只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但