目录
一、概述 2
课题研究的内容和意义 2
2
二、系统总体设计 4
系统设计方案论证(几种方案选一) 4
系统总体框图及简要说明实现了的主要功能 4
三、硬件电路设计 6
元器件的选择 6
13
14
14
15
四、软件设计 17
17
19
五、系统调试 23
23
23
23
六、展望 26
概述
课题研究的内容和意义
本课题采用51单片机对两个DAC0832进行控制来实现16位DA输出。因为高精度DAC转换芯片价格比较贵,而且有时不易购买,通过对2个DAC0832进行控制,可以构成高精度的DAC,既降低了成本又解决了实际需要。
设计并制作一个基于单片机的16位DA输出,能够输出方波、三角波、正弦波这3种波形,在输出波形的同时能够实现波形的调频和调幅,波形在示波器上显示。
本设计可以通过按键控制实现波形调频,通过改变DA的基准电压输入来实现调幅。
第一种方案:直接采用16位DA转换芯片,让单片机对16位DA芯片进行控制,从而输出波形。
第二种方案:采用2个8位DA转换芯片DAC0832,两个DA芯片采用双缓冲数据输入方式,让单片机先后控制这两个DA芯片的数据输入,最后再一起把数据经DA转换器转换输出,从而输出波形。
最终采用第二种方案。
。
单片机
示波器
两个DAC0832
按键
实现了波形输出和波形的调频调幅。
三、硬件电路设计
:硬件电路用了STC89C51RC单片机,8位DA转换芯片DAC0832,运放LM358,还有MAX232.
:
软件设计
主程序流程图: 开始
调用
显示波形
子程序
调用
独立键盘扫描子程序
单片机端口
初始化
子程序独立按键检测及波形显示程序流程图
开始
判断键1是否被按下,是则置标志位a++;a>3置0
是
判断
标志位a
是否等于0
否
检测键2是否按下
波形调频延时函数时间标志位加大
否是
否
是否
波形调频延时函数时间标志位减小
检测键3是否按下
是
否
结束
开始
判断标志位a=1?
否
产生三角波
是
判断标志位a=2?
否
产生方波
是
判断标志位a=3?
否
产生正弦波
是
结束
否
总程序:
#include<>
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit da1wr1=P1^0;
sbit da1wr2=P1^1;
sbit da2wr1=P1^2;
sbit da2wr2=P1^1;
sbit ile=P1^3;
sbit cs=P1^2;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
uint i=0;
uint ih=0;
uint il=0;
//uchar numdis=0;
uchar a=0;
uchar d=0;
uchar c=10;
uchar k;
uchar num=3;
uchar code tab[256]=
{
0x80,0x82,0x85,0x88,0x8b,0x8e,0x91,0x94,0x97,0x9a,0x9d,0xa0,0xa3,0xa6,
0xa9,0xac,0xaf,0xb2,0xb6,0xb9,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,,0xcf,
0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,
0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,
0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff
基于单片机的16位数模转换波形发生器项目报告 来自淘豆网m.daumloan.com转载请标明出处.