❶ 函数信号发生器用单片机和DAC032做的程序
程序很简单的,关键在写程序的时候要注意DAC0832的保持时间和转换速度。
建议你先弄个单缓冲或者直接控制的。
接着控制的会比较简单:
就是DAC8032
1,2,3,10,17,18脚GND。20,19,8脚VCC
能明白吧!程序自己写比较好,这样能学到更多东西
给你点参考,这个程序能让你对它的工作方式更熟悉!!
ORG
0000H
MAIN:MOV
A,P1
MOV
R0,A
;设置高电平
MOV
R1,#00H
;设置低电平
LCALL
BOXING
SJMP
MAIN
BOXING:
JNB
P1.0,SANJIAO
;P1.0控制三角波的输出
JNB
P1.1,JUXING
;P1.1控制矩形波的输出
JNB
P1.2,JUCHI
;P1.2控制锯齿波的输出
RET
;三角波
SANJIAO:
MOV
DPTR,#7FFFH
;
选中DA0832
MOV
A,#00H
UP1:
MOVX
@DPTR,A
;
向0832输出数据
INC
A
JNZ
UP1
;
A=!0
跳转反之顺序执行
DOWN1:DEC
A
MOVX
@DPTR,A
JNZ
DOWN1
RET
;矩形波
JUXING:
MOV
DPTR,#7FFFH
LP:MOV
A,R0
;设置输出上限
MOVX
@DPTR,A
LCALL
DEL_H
;调高电平延时程序
MOV
A,R1
MOVX
@DPTR,A
LCALL
DEL_L
;调低电平延时程序
RET
;锯齿波
JUCHI:
MOV
DPTR,#7FFFH
MOV
A,#00H
LOOP:MOVX
@DPTR,A
INC
A
;SJMP
LOOP
RET
;延时程序
DEL_H:
;高电平
MOV
R7,#250
DE:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
DEL_L:
;低电平
MOV
R7,#250
DEL:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
;
END
❷ 基于单片机的信号发生器的设计,输出方波,正弦波,三角波,锯齿波,频率可调。原理是如何哒怎么取点
51单片机硬件有PCA模块的,或者是PWM发生器的型号,也有没有的,你采用的芯片有没有这些硬件?
正弦波:
如果有,以PCA模块为例,可以作为DA使用,使用前根据datasheet配置好PCA。在51头文件中有math.h,里面有sin(X)函数,可以在程序中直接使用,使用前在主函数重要包含math.H这个文件。然后每个点采样输出即可,频率可调可以通过不同方法实现,如果是要做信号发生器,推荐使用一个电位器,通过AD采集电压,将采集值作为你输出函数的系数即可,亦可以通过串口发送指令等方式实现,前提要在使用前将AD或者串口配置好。
如果没有硬件模块,也可以用普通IO口模拟,思路如下,经过y=sinx函数求得的结果,经过算法转化成二进制(主要是将小数转化成二进制的算法),推荐转化成8的整数倍位,比如8位二进制或者16位二进制。转化结束后将结果给IO口输出即可,频率也可采取上述方法设定。
三角波:
如果有DA,将DA的输入值按一定时间自增,到达峰值后按一定时间自减。前文中的“一定时间”设定的足够小,可以近似认为是三角波。三角波输出频率就是周期,在具体到操作层面时,可以将输出函数前加上一个时间系数,还是通过调节正弦波的频率的方式调节。
木有DA···还是和正弦波类似,通过算法将输出值转化成二进制,然后送给IO口
方波:
这个最简单,将IO口定时切换高低电平即可,你定的时间就将成为你输出的频率。
如果有PCA模块,可配置成定时翻转模式,比较方便~
锯齿波是不是和方波类似啊?
❸ 基于单片机、ADC0832信号发生器设计
智能函数发生器设计
设计的要求如下
设计要求
1. 信号频率范围1HZ~100kHZ;
2. 输出波形应有: 方波、三角形、正弦波;
3. 输出信号幅值范围0~10V;
4. 具有数字显示输出信号频率和电压幅值功能。
第一章 方案设计与论证
方案一:本方案直接采用凌阳SPCE061A作为波形发生器。波形的具体产生是通过两路DAC来产生,凌阳SPCE061A在这方面的设计为我们提供了极大的方便,用它实现的好处在于,外围电路极其简单,另外在DAC的编程方面又提供及其便利的编程环境。外围电路的设计包括三大部分,第一是键盘控制电路的设计,这里采用4*4键盘,由IOA的低八位进行控制,把键盘上的行和列分别接在IOA0~IOA3和IOA4~IOA7上,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。第二是显示电路的设计,这里为了在波形输出依然有显示,由于单片机的局限性这里采用通常的动态LED显示行不通,因为波形输出时要求CPU不停地为其服务而没有空闲来为LED进行不停更新,解决方案是采用带数据缓存器和驱动的LCD来提供显示,这样只占用八个I/O口即可完成设计要求,也可放弃适时显示功能采用LED显示,这里将提供两种显示方案。第三是滤波和电压转换电路的设计,滤波采用低通滤波器,滤除DAC转换过程中形成的高频小锯齿波。另外由于凌阳SPCE061A单片机DAC输出为电流输出,为满足达到5V的电压输出,外接OP07运算放大器进行放大,加1千欧姆电阻进行电流信号到电压信号的转换。本设计的特点是全面采用数字电路方案,因而工作稳定可靠。利用单片机控制管理,使频率设置和占空比调整等操作可用键盘输入,十分方便.由于方案中涉及到SPCE061A单片机现简介如下:
SPCE061A单片机概述
SPCE061A是继u'nSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。目前有两种封装形式:84引脚的PLCC84封装和80引脚的LQFP80贴片封装。主要性能如下:
16位m’nSP微处理器;
工作电压:VDD为2.4~3.6V(cpu), VDDH为2.4~5.5V(I/O);
CPU时钟:32768Hz~49.152MHz ;
内置2K字SRAM、内置32K FLASH;
可编程音频处理;
32位通用可编程输入/输出端口;
32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器;
声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;
系统处于备用状态下(时钟处于停止状态)耗电小于[email protected];
具备触键唤醒的功能;
14个中断源:定时器A / B,2个外部时钟源输入,时基,键唤醒等;
使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
具备异步、同步串行设备接口;
具有低电压复位(LVR)功能和低电压监测(LVD)功能;
内置在线仿真电路接口ICE(In- Circuit Emulator);
具有保密能力;
具有WatchDog功能(由具体型号决定)
❹ 单片机函数信号发生器
DAC0832可以的,但是速度比较慢,如果信号频率比好基较高的话友槐谨建议用高速DAC,另外DA出来的波形是“阶梯”明滑状的,所以后面建议加一个低通滤波器
❺ 如何用单片机作可编程30MHZ函数发生器设计
添加一个外部的频率发生芯片就好了,用单片机控制,这种根据不同芯片电路就不同,你可以查一下AD98系列的芯片看看,电路布线要注意点!1