一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。
基本实现:
5个按键,每按一次按键后输出对应波形
5个led指示对应波形
示波器中显示2~3个周期波形时,正弦波波形要光滑
双极性电压输出,电压幅值可调.
仿真原理图如下
实验报告
实验名称:波形发生器
单片机实验——DA转换实验
DA转换器是将数字量转换为模拟量的电路,主要用于数据传输系统、自动测试设备、医疗信息处理、电视信号的数字化、图像信号的处理和识别、数字通信和语音信息处理等。按数字量输入方式:并行输入和串行输入DA转换器。按模拟量输出方式:电流输出和电压输出DA转换器。按DA转换的分辩率:低分辩率、中分辩率和高分辩率DA转换器。学习并熟悉如何设置DA转换对于科学研究等将产生重要影响。
1实验目的
了解常用DA转换芯片的结构组成,工作原理。
掌握DAC0832的引脚功能,与单片机连接。
理解单、双极输出方式的电路结构原理,学会用这两种方式。
( 4 ) 设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。
2 D/A转换器工作原理
任D/A是将数字量转换成模拟量的器件,D/A的输出是电压或电流信号。衡量D/A性能的主要参数是:
分辨率:即输出模拟量的最小变化量。
满刻度误差:即输入为全1时,实际输出电压与理想值之差。
输出范围
转换时间:从转换器的输入改变到输出稳定的时间间隔。
是否容易与CPU接口。
3 DAC0832工作方式
DAC0832三种工作方式
单缓冲方式:若应用系统中只有一路D/A转换或虽然有夺路转换,但并不要求各路信号同步输出时,则采用单缓冲的方式来接口。方法是:使锁存器和DAC寄存器同时接收数据。
双缓冲方式:当多路D/A信号要求同步输出时,则采用双缓冲方式。方法是:分别使其输入锁存器接收数据;同时传送数据到其DAC寄存器,以实现多路转换同步输出。
直通方式:所有控制信号均有效,适宜连续控制时。
D/A转换
D/A芯片DAC0832的应用:DAC0832是8位 D/A芯片,片内带数据锁存器,电流输出。该系列产品包括DAC0830——32,它们可以完全相互代换。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路组成
ADC0808引脚如图,各引脚功能如下:
DI0-DI7:数据输入线,TLL电瓶。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。当输入全为1时Iout1最大。
Iout2:电流输出线。其值与Iout1之和为常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻。
Vcc:电源输入线(+5v~+15v)
Vref:基准电压输入线(-10v~+10v)
AGND:模拟地,模拟信号和基准信号参考地。
DGND:数字地,两种地线在基准电源处共地比较好。
主要功能电路
4.0 电路图
4.1转换电路
4.2波形指示灯
4.3按键电路
4.4单片机电路
4.5 运行结果
三角形
方波
锯齿波
梯形波
正弦波
5. 总结
方波拟合成功,其他波形拟合存在问题。
单片机源程序如下:
#include "reg52.h"
#include #define ADC_PORT P2 //如图,ADC0832连接端口 //老师要求的5种波 #define W_SINE 0 #define W_SQU 1 #define W_TRI 2 #define W_TRA 3 #define W_SAW 4 #define PI 3.1415926f //圆周率好像是这个数 //简化类型符写法 typedef unsigned char u8; typedef unsigned int u16; typedef unsigned long u32; sbit ADC_CS_WR=P3^0; //如图,ADC0832使能口 //老师要求的5个LED,接P0口 sbit LED0=P0^0; sbit LED1=P0^1; sbit LED2=P0^2; sbit LED3=P0^3; sbit LED4=P0^4; //图给出的5个按键 sbit KEY0=P1^0; sbit KEY1=P1^1; sbit KEY2=P1^2; sbit KEY3=P1^3; sbit KEY4=P1^4; //全局变量 u8 mode;//模式:正弦波…… u16 freq;//频率 u8 time;//计次参数 u8 AM;//调幅 void Timer0Init(void); void scanKey(void); void sys_init(void); void sine_wave(u8 location);//正弦波 void squ_wave(u8 location);//方…… void tri_wave(u8 location);//三…… void tra_wave(u8 location);//梯…… void saw_wave(u8 location);//锯…… void Timer0Init(void) //100微秒@12.000MHz { TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x02; //设置定时器模式 TL0 = 0x9C; //设置定时初值 TH0 = 0x9C; //设置定时重载值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 EA = 1; //开总中断 ET0 = 1; //开定时器0中断 } void scanKey(void)//按键扫描 { if(KEY0==0) { mode=0; P0=0xFF;//灭所有灯 LED0=0; } if(KEY1==0) { mode=1; P0=0xFF;//灭所有灯 LED1=0; } if(KEY2==0) { mode=2; P0=0xFF;//灭所有灯 LED2=0; } if(KEY3==0) { mode=3; P0=0xFF;//灭所有灯 LED3=0; } if(KEY4==0) { mode=4; P0=0xFF;//灭所有灯 LED4=0; } } void sys_init(void)//系统初始化 { time=0; ADC_CS_WR=0; ADC_PORT=0; mode=0;//默认输出正弦波 freq=100;//默认频率100Hz AM=255;//最大幅度 } void sine_wave(u8 location)//输出正弦波 { double x=(double)location/50*PI;//把0-100放缩到0-2派(pai,没有那个符号,好难受(╯﹏╰)) u8 y=(sin(x)*(AM/2)+(AM/2));//算出y,并放缩到0-254(因为ADC范围0-AM,感觉这个芯片好落后) ADC_PORT=y; } void squ_wave(u8 location)//方…… { if(location<50) ADC_PORT=AM; else ADC_PORT=0x0;//这个好简单 } void tri_wave(u8 location)//三…… { //为了简化,在单周期输出V字形 u8 y; if(location<50) y=(50-location)*AM/50; else y=(location-50)*AM/50; ADC_PORT=y; //偶函数,信不?当然你说奇函数也没错 } void tra_wave(u8 location)//梯…… { u8 y; if(location<25) y=0xFF; else if(location<50) y=(50-location)*AM/25; else if(location<75) y=0; else y=(location-75)*AM/25; ADC_PORT=y; } void saw_wave(u8 location)//锯…… { ADC_PORT=location*AM/100; //用(100-location)也以变成反向锯齿 } void Timer0Work() interrupt 1 //中断服务函数 { switch(mode) ……………………
上一篇:dht11和ds18b20温湿度控制 单片机程序
下一篇:蓝牙定时开关APP软件(附51单片机参考程序)
推荐阅读
史海拾趣
Base Two (2) Systems公司自创立之初,便以技术创新为核心竞争力。在创始团队的带领下,公司研发团队不断攻克技术难关,成功研发出一系列具有领先水平的电子产品。这些产品不仅性能卓越,而且具有广泛的应用前景,为公司在市场上赢得了良好的口碑。
在追求经济效益的同时,晨晶电子也积极履行社会责任,致力于绿色环保事业。公司通过了ISO14001环境管理体系认证,严格遵守环保法规,实施清洁生产。同时,晨晶电子还积极推广环保理念,倡导绿色消费,为保护环境、促进可持续发展做出了积极贡献。
这五个故事不仅展示了晨晶电子在电子行业中的发展历程和成就,也体现了其不断创新、追求卓越的企业精神。在未来的发展中,晨晶电子将继续秉承这一精神,努力成为电子行业的佼佼者。
DBS Microwave Inc公司起源于XXXX年,当时由几位志同道合的电子工程师创立。他们共同意识到,随着无线通信技术的飞速发展,微波器件的市场需求将会急剧增长。于是,他们凭借丰富的专业知识和对市场趋势的敏锐洞察,决定专注于研发和生产高质量的微波射频器件。起初,公司面临着资金紧张、市场竞争激烈等诸多挑战,但创始人团队凭借坚韧不拔的精神和对技术的执着追求,逐步在市场上崭露头角。
作为一家具有社会责任感的企业,Ferranti Electric Inc公司一直致力于可持续发展。公司注重环保和节能,采用环保材料和生产工艺,减少对环境的影响。同时,公司也积极参与公益事业和社会活动,回馈社会。这些举措不仅体现了公司的社会责任感,也为公司的长远发展奠定了坚实的基础。
CLANDELL公司初创时,市场上已有众多成熟的电子产品制造商。面对激烈的竞争,CLANDELL公司创始人凭借对技术的敏锐洞察和对市场的深入理解,决定专注于研发高性能、高可靠性的电子产品。初创期资金匮乏,但团队凭借对技术的执着和对市场的信念,不断攻克技术难关,逐步在市场上站稳脚跟。
CLANDELL公司初创时,市场上已有众多成熟的电子产品制造商。面对激烈的竞争,CLANDELL公司创始人凭借对技术的敏锐洞察和对市场的深入理解,决定专注于研发高性能、高可靠性的电子产品。初创期资金匮乏,但团队凭借对技术的执着和对市场的信念,不断攻克技术难关,逐步在市场上站稳脚跟。
嵌入式系统是专用计算机应用系统,它具有一般计算机组成的共性,也是由硬件和软件组成。 图1-1完整地描述了嵌入式系统的软硬件各部分的组成结构。 字串8 2.1 嵌入式系统的硬件基本结构 嵌入式系统的硬件架构如图1-1下半部分所示,是以嵌入 ...… 查看全部问答∨ |
本信息来自合作QQ群:AVR单片机学习与交流群(17727270) 群管理员在坛子里的ID:铜河 小弟请教一个问题 如果要在atmega16 的 A1口输出一串数 要怎么写 在icc avr中 能写PORTA.1=???吗… 查看全部问答∨ |
我现在正在学习单片机,有的老师说单片机好,但现在我在网上看好像大多都是C51,我真不知道是选择哪种好,各位请帮参谋一下,说一下现在的形势,我给学哪种好,谢了!… 查看全部问答∨ |
|
自己时师范大学电子系的学生 也大四了 大一大二一直玩WOW 总游戏时间都365天了 大三才认识危机 一年的时间将挂的10几门必修课都修完了 现在的有个机会去培训 嵌入式LUNIX软件工程师   ...… 查看全部问答∨ |
毕业设计的题目是:嵌入式系统环境下自动测试工具的安装与使用,我对此不了解,不知道该怎么做,从和下手,实现什么功能,哪位能否给我一些建议或者指导,先谢了!… 查看全部问答∨ |
根据官方给出的最新版本勘误表 对于C3 和C5版本的芯片 FLASH 最大擦写次数为100次, 所以童鞋们注意了,最好还是在SRAM里调程序,而不要烧到FLASH里去 下面是相应的说明截图 … 查看全部问答∨ |
|
有谁用过这个芯片,求指教,如何提升BQ24620的充电电流,按照技术文档上写的调节 ISET 两端的电压,但调节作用不明显,还请告知,不胜感激! The ISET1 input sets the maximum charging current. Battery current is sensed by resistor RSR conn ...… 查看全部问答∨ |