2021年基于5单片机的信号发生器-完整电路、程序

合集下载

基于51单片机的函数信号发生器

基于51单片机的函数信号发生器

实验名称:基于8255的LED显示函数信号发生器设计一、课题内容和要求基本要求:1.用存储器或算法得到信源。

2.用DA转换器输出一函数信号(正弦、方波、三角、锯齿等,频率1000Hz)3.用数码管或LCD上将输出参数显示4.用功能键切换各信号的输出。

发挥部分:1.通过键盘,可修改输出信号的频率。

每按一次键,频率值进给或后退100Hz,频率范围100Hz~1500Hz2.按键时,蜂鸣器发出提示音,表示按键有效3.数码管或LCD显示的内容可以用频率值和周期值切换表示,周期值精确到0.01ms 动态显示格式:自定二、总体设计利用AT89S52单片机采用查表或算法产生三角波、正弦波和方波三种波形,再通过D/A 转换器DAC0832将数字信号转换成模拟信号,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示各自的频率或者周期值。

三、单元设计1.键盘扫描部分矩阵键盘电路硬件图:实验中采用8255的PA口和PC口的低四位进行键盘扫描,行由8255的PA0~PA3端口控制,列由8255的PC0~PC3端口控制,其中PA口工作在输出方式,PB口工作在输入方式。

当PA0~PA3中一个口输出低电平时,对应的行线上的电平就为0,这是当有键按下时对应的列线上就变为低电平,这时PC口上对应位就可以检测到低电平从而判断是哪个键按下。

键盘扫描流程图:第二行判断键盘扫描程序如下:SCAN:MOV DPTR,#1FFCH;PA口地址MOV A,#00HMOVX @DPTR,A; PA0~PA3输出低电平 INC DPTR;DPTR指向PC口MOVX A,@DPTR;读PC口的值ANL A,#0FH;屏蔽无用位CJNE A,#0FH,DETAIL;判断是否有低电平ACALL DELAY1;延时ACALL DELAY1AJMP SCAN;无键按下则继续扫描DETAIL:ACALL DELAY1;消抖动ACALL DELAY1MOV DPTR,#1FFCH;再判断是否有键按下MOV A,#00HMOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTRANL A,#0FHCJNE A,#0FH,CONTINUE;有键按下则做进一步的判断 AJMP SCAN;无键按下继续扫描CONTINUE:CLR EA;有键按下驱动蜂鸣器SETB P1.7ACALL DELAY2CLR P1.7SETB EAMOV R4,#02H;扫描行数送入R4中MOV A,#0FEHLINE:MOV DPTR,#1FFCHMOV R2,A;行号送R2MOVX @DPTR,A;置PA0为低电平INC DPTRMOVX A,@DPTRANL A,#0FHCJNE A,#0FH,FIND;判断第一行是否有键按下MOV A,R2RL ADJNZ R4,LINESJMP SCAN;无键按下继续扫描FIND:MOV R3,A列号存入R3中MOV A,R2CJNE A,#0FEH,LINE2;判断是否是第一行有键按下LINE1:MOV A,R3;第一行有键按下CJNE A,#0EH,L1R2;判断是哪个按键按下L1R1:MOV R0,#01H;有波形键按下键按下MOV R1,#01H;波形标志1MOV R7,#00HCLR TR1CLR TR0SETB TR0SJMP SCANL1R2:CJNE A,#0DH,L1R3MOV R0,#01H;有波形键按下键按下MOV R1,#02H;方波标志MOV R7,#00HCLR TR0CLR TR1SETB TR1SJMP SCANL1R3:MOV R0,#01H;有波形键按下键按下MOV R1,#03H;三角波标志MOV R7,#00HCLR TR1CLR TR0SETB TR0AJMP SCANLINE2:MOV A,R3;第二行有键按下CJNE A,#0EH,L2R2L2R1:CJNE R0,#01H,NONE1;有波形时才能进行频率增减操作CJNE R6,#00H,START1;没有减到最小频率值时继续减否则减频操作失败 AJMP NONE1START1:DEC R6;减频MOV A,R6MOV DPTR,#TABLE3MOVC A,@A+DPTRMOV TH0,A;重置计数初值NONE1:AJMP DISPLAYL2R2:CJNE A,#0DH,L2R3CJNE R0,#01H,NONE2;有波形时才能进行频率增减操作CJNE R6,#0EH,START2;没有增到最大频率值时继续增否则增频操作失败 AJMP NONE2START2:INC R6;增频MOV A,R6MOV DPTR,#TABLE3MOVC A,@A+DPTRMOV TH0,A;重置计数初值NONE2:AJMP DISPLAYL2R3:CJNE A,#0BH,L2R4;显示波形周期值MOV F,#01HAJMP DISPLAYL2R4:MOV F,#00H;显示波形频率值AJMP DISPLAY2.显示部分显示部分硬件图:开发板上设置了6位8段数码管,采用动态扫描方式连接,各位数码管的A~DP互联后经拨码开关S1后由P0口控制,数码管的COM分别经拨码开关S2后由P10~P15控制。

(完整word版)51单片机函数信号发生器.doc

(完整word版)51单片机函数信号发生器.doc

基于 51 单片机的函数信号发生器设计报告队员 1姓名:杨颉学号: 2专业:电子信息科学与技术队员 2姓名:王鼎鸿学号: 2专业:电子信息科学与技术基于 51 单片机的函数信号发生器摘要本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A 转换器 DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。

通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602 显示其各自的类型以及数值,系统大致包括信号发生部分、数/ 模转换部分以及液晶显示部分三部分,其中尤其对数 / 模转换部分和波形产生和变化部分进行详细论述。

关键词:单片机 AT89S52、DAC0832、液晶 1602目录1.系统设计1.1 设计要求1.2 方案设计与论证 1.2 方案设计与论证1.2.1信号发生电路方案论证1.2.2单片机的选择论证1.2.3显示方案论证1.2.4键盘方案论证1.3总体系统设计1.4 硬件实现及单元电路设计1.4.1单片机最小系统的设计1.4.2波形产生模块设计1.4.3显示模块的设计1.4.4键盘模块的设计1.5 软件设计流程1.6 源程序2.输出波形的种类与频率的测试2.1 测试仪器及测试说明2.2 测试结果3、附录3.1参考文献3.2附图1、系统设计经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A 转换器 DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

1.1 、设计要求1> 、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率1.2 方案设计与论证1.2.1信号发生电路方案论证方案一:通过单片机控制D/A,输出四种波形。

基于51单片机的简易信号发生器

基于51单片机的简易信号发生器

/****************简易信号发生器****************************程序功能:输出正弦波、锯齿波、方波、三角波涉及芯片:TLC5615**********************************************************/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit din=P3^0;sbit scl=P3^1;sbit cs1=P3^2;sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;//sbit w2= P1^0;uchar code sine_tab[256]={//输出电压从0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab, 0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,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,//输出电压从最大值到0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba, 0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d, 0x89,0x86,0x83,0x80,//输出电压从0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55, 0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b, 0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e, 0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,//输出电压从最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20, 0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45, 0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72, 0x76,0x79,0x7c,0x80};uchar bdata date; //位寻址sbit date7=date^7;sbit date6=date^6;sbit date5=date^5;sbit date4=date^4;sbit date3=date^3;sbit date2=date^2;sbit date1=date^1;sbit date0=date^0;void delay(uint t){while(t--);}void write_sip5615(uchar k) {date=k;din=date7;scl=0;scl=1;din=date6;scl=0;scl=1;din=date5;scl=0;scl=1;din=date4;scl=0;scl=1;din=date3;scl=0;scl=1;din=date2;scl=0;scl=1;din=date1;scl=0;scl=1;din=date0;scl=0;}void write_5615(uint k){k<<=2;cs1=0;write_sip5615(k>>8);//送高八位write_sip5615(k);//送低八位cs1=1;}void main(){uint k1=0,k2=0,k3=0,k4=0,i=0,j=0,x=0,z,p;while(1){/* w2=0;delay(500);w2=1;delay(500); */if(key1==0)//按键1检测{k1=1;k2=0,k3=0,k4=0;while(!key1);}if(key2==0) //按键2检测{k2=1;k3=0,k1=0,k4=0;while(!key2);}if(key3==0)//按键3检测{k3=1;k1=0,k2=0,k4=0;while(!key1);}if(key4==0)//按键4检测{k4=1;k1=0,k2=0,k3=0;while(!key2);}if(k1==1)//正弦波write_5615(sine_tab[i]);i++;delay(100);if(i==256)i=0;}if(k2==1)//锯齿波{write_5615(j);j++;delay(100);if(j==250)j=0;}if(k3==1)//方波(次处用单片机的I/O效果更好){write_5615(10);delay(10000);write_5615(200);delay(10000);}if(k4==1)//三角波{for(z=0;z<301;z++){delay(50);write_5615(z);if(z==300){for(p=300;p>0;p--){if(p==0)break;write_5615(p);delay(50);}}}}}}。

基于51单片机的信号发生器

基于51单片机的信号发生器
6
哈尔滨工业大学(威海)课程设计报告
图 3-3 DAC0832 与单片机的接口电路
图 3-4 键盘和单片机的连接电路图
3.6 显示电路
(1)运算放大电路 运算放大器型号为 UA741,它是一种高增益运算放大器,用于军事、工业和商
7
哈尔滨工业大学(威海)课程设计报告
业应用。这类单片硅整集成电路器件提供输出短路保护和闭锁自由运作。 运算放大器与 DAC0832 接口电路如图 3-5 所示。
信号发生器是一种经常使用的设备,若按照传统的设计方法,由纯粹的物理 器件构成,存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较 大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求。研 究设计出一种具有频率稳定、准确,波形质量好,便携性好等特点的波形发生器 来满足工业领域对信号源的要求,具有较好的市场前景。
(1)电流稳定时间 1us; (2)可单缓冲、双缓冲或直接数字输入; (3)单一电源供电(+5V~+15V); (4)低功耗,200mW。 DAC0832 结构: (1)D0~D7:8 位数据输入线,TTL 电平,有效时间应大于 90ns(否则锁 存器的数据会出错);
5
哈尔滨工业大学(威海)课程设计报告
CS
VCC
WR1 ILE(BY1/BY2)
GND
WR2
DI3
XFER
DI2
DI4
DI1
DI5
DI0
DI6
VREF
DI7
RFB
IOUT2
GND
IOUT1
20 19 18 17 16 15 14 13 12 11
U3
A
DAC0832
B OP1P

基于单片机的信号发生器(完整电路,程序)

基于单片机的信号发生器(完整电路,程序)

电子和信息工程学院综合实验课程报告实验名称:基于单片机的信号发生器的设计和实现班级:200808XX学号:200808XXXX姓名:何XX指导教师:安XX时间:2011-5-4至2011-5-11摘要本文以STC89C51单片机为核心设计了一个低频函数信号发生器。

信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。

波形和频率的改变通过软件控制,幅度的改变通过硬件实现。

介绍了波形的生成原理、硬件电路和软件部分的设计原理。

本系统可以产生最高频率798.6HZ的波形。

该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。

关键词:低频信号发生器;单片机;D /A转换;1设计选题及任务设计题目:基于单片机的信号发生器的设计和实现任务和要求:设计一个由单片机控制的信号发生器。

运用单片机系统控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波等。

信号发生器所产生的波形的频率、幅度均可调节。

并可通过软件任意改变信号的波形。

基本要求:1. 产生三种以上波形。

如正弦波、三角波、矩形波等。

2.最大频率不低于500Hz。

并且频率可按一定规律调节,如周期按1T,2T,3T,4T或1T,2T,4T,8T变化。

3.幅度可调,峰峰值在0——5V之间变化。

扩展要求:产生更多的频率和波形。

2系统概述2.1方案论证和比较2.1.1总体方案:方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。

但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。

方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。

方案三:使用集成信号发生器发生芯片,例如AD9854,它可以生成最高几十MHZ的波形。

--基于51单片机的简易函数信号发生器的设计与分析

--基于51单片机的简易函数信号发生器的设计与分析

基于51单片机的简易函数信号发生器的设计与分析郭 辉(阜阳师范学院信息工程学院,安徽阜阳,236037)摘要:函数信号发生器设计与分析是单片机实践中的一重要实验。

本文采用Proteus 对函数信号发生器的原理图进行设计,并通过Keil 软件编程验证该设计的可行性,通过调节按键,该简易函数信号发生器可以正确输出正弦波、锯齿波、梯形波、矩形波,并可以通过按键对相应波形的频率进行调节,最终通过Proteus 制作出该电路的PCB 原理图。

本设计对单片机项目设计与实现具有一定的指导意义。

关键词:信号发生器;AT89C51;Proteus ;Keil ;PCB 中图分类号:TP368.1 文献标识码:BDesign and analysis of a simple function signal generator based on 51 single chip microcomputerGuo Hui(College of Information Engineering,Fuyang Teachers' College,Fuyang Anhui,236037)Abstract :This paper uses the principle of figure Proteus function signal generator is designed,and the feasibility of the design is verified by Keil software programming,by adjusting the key,the simple function signal generator can output sine wave,Ju Chibo,trapezoidal wave,rectangular wave,and can be adjusted through the key corresponding to the frequency of the waveform, eventually produced by Proteus PCB principle diagram of the circuit.Keywords :signal generator;AT89C51;Proteus;Keil;PCB 0 引言Proteus 软件为英国Labcenter electronics 公司开发的EDA 工具软件。

基于51单片机的函数信号发生器

基于51单片机的函数信号发生器

基于51单片机的函数信号发生器
一、任务
设计并制作一台基于51单片机的函数信号发生器,使之能产生正弦波、方波和三角波信号,且不能使用专用集成函数发生器芯片。

二、要求
系统框图:
1.基本要求
1)信号发生器能产生正弦波、方波和三角波三种周期性波形;
2)输出信号频率在100Hz~1kHz范围内可调;
3)输出信号波形无明显失真;
2.发挥部分
1)将输出信号频率范围扩展为10Hz~10kHz,输出信号频率可分段调节:在10Hz~
10kHz范围内步进间隔为100Hz;
2)在1k 负载条件下,输出正弦波信号的电压峰-峰值V opp在0~5V范围内即可;
3)可实时显示输出信号的类型、幅度、频率和频率步进值;
4)其他。

三、说明
设计报告正文应包括系统总体框图、核心电路原理图、主要流程图和主要的测试结果。

完整的电路原理图、重要的源程序和完整的测试结果可用附件给出。

四、评分标准
注:请大家于五一收假的晚上之前把你们所需要的元件清单拿过来,我们好统一购买元器件。

基于51单片机的 正弦信号发生器的设计

基于51单片机的 正弦信号发生器的设计

西安文理学院课程设计报告第一章系统设计单片机采用程序设计方法产生锯齿经过考虑,我们确定方案如下:利用AT89S52将数字信号转换成模拟信转换器DAC0832波、正弦波、矩形波三种波形,再通过D/A号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

1.1 设计要求1)、利用单片机采用软件设计方法产生三种波型 2)、三种波形可通过键盘选择)、波形频率可调3)、需显示波形的种类及其平率41.2方案设计与论信号发生电路方案论证1.2.1,此方案电路简单、成本低。

:通过单片机控制D/A方案一,压控振荡器搭接的IC145152 :使用传统的锁相频率合成方法。

通过芯片方案二锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

是精密高频波形产生电MAX038MAX038芯片组成的电路输出波形。

用方案三:利路,能够产生准确的三角波、方波和正弦波三种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

总体系统设计1.3该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显页1 第西安文理学院课程设计报告)为系统的总体框图1示的方案。

将设计任务分解为按键电路、液晶显示电路等块。

图(1)总体方块图图(1.4硬件实现及单元电路设计单片机最小系统的设计1.4.1的单片机,因此,这种芯片构成的最小系统简单﹑可ROM/EPROM89C51是片内有单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即靠。

用80C51单片机最小系统所示。

由于集成度的限制,最小应用系统只能用) 89C51可,如图(2 作一些小型的控制单元。

其应用特点:口线。

(1) 有可供用户使用的大量I/O(2) 内部存储器容量有限。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要欧阳光明(2021.03.07)本文以STC89C51单片机为核心设计了一个低频函数信号产生器。

信号产生器采取数字波形合成技术,通过硬件电路和软件法度相结合,可输出自界说波形,如正弦波、方波、三角波、三角波、梯形涉及其他任意波形,波形的频率和幅度在一定规模内可任意修改。

波形和频率的修改通过软件控制,幅度的修改通过硬件实现。

介绍了波形的生成原理、硬件电路和软件部分的设计原理。

本系统可以产生最高频率798.6HZ的波形。

该信号产生器具有体积小、价格低、性能稳定、功能齐全的优点。

关键词:低频信号产生器;单片机;D /A转换;1设计选题及任务设计题目:基于单片机的信号产生器的设计与实现任务与要求:设计一个由单片机控制的信号产生器。

运用单片机系统控制产生多种波形,这些波形包含方波、三角波、锯齿波、正弦波等。

信号产生器所产生的波形的频率、幅度均可调节。

并可通过软件任意修改信号的波形。

基本要求:1. 产生三种以上波形。

如正弦波、三角波、矩形波等。

2.最年夜频率不低于500Hz。

并且频率可按一定规律调节,如周期按1T,2T,3T,4T或1T,2T,4T,8T变更。

3.幅度可调,峰峰值在0——5V之间变更。

扩展要求:产生更多的频率和波形。

2系统概述2.1计划论证和比较2.1.1总体计划:计划一:采取模拟电路搭建函数信号产生器,它可以同时产生方波、三角波、正弦波。

可是这种模块产生的不克不及产生任意的波形(例如梯形波),并且频率调节很不便利。

计划二:采取锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该计划性能良好,但难以达到输出频率笼盖系数的要求,且电路庞杂。

计划三:使用集成信号产生器产生芯片,例如AD9854,它可以生成最高几十MHZ的波形。

可是该计划也不克不及产生任意波形(例如梯形波),并且价格昂贵。

计划四:采取AT89C51单片机和DAC0832数模转换器生成波形,加上一个低通滤波器,生成的波形比较纯洁。

它的特点是可产生任意波形,频率容易调节,频率能达到设计的500HZ以上。

性能高,在低频规模内稳定性好、操纵便利、体积小、耗电少。

经比较,计划四既可满足课程设计的基本要求又能充分阐扬其优势,电路简单,易控制,性价比高,所以采取该计划.2.1.2修改幅度计划:计划一:可以将送给DA的数字量乘以一个系数,这样就可以修改DA输出电流的幅度,从而修改输出电压;可是这样做有很严重的问题,单片机在做乘法运算时需要很长的时间,这样的话输出波形的频率就会很低,达不到至少500HZ的要求;并且该计划的输出电压做不到连续可调,当DA的输入数字量比较小时,输出的波形失真就会比较严重。

计划二:将输出电压通过一个运算放年夜器的放年夜。

这样还有个优点是幅度连续可调。

经比较,计划二既可满足课程设计的基本要求,并且电路也挺简单。

2.2工作原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的办法来获得所需要的波形。

89C51单片机自己就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、按时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及、数模转换及波形输出、放年夜电路等部分,即可构成所需的波形产生器,其信号产生器构成系统框图如下图所示。

系统框图89C51是整个波形产生器的核心部分,通过法度的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。

当数字信号电路达到转换电路,将其转换成模拟信号也就是所需要的输出波形。

波形ROM表是将信号一个周期等间距地别离成64个点,贮存在单片机得RON内。

具体ROM表是通过MATLAB生成的,例如正弦表,MATLAB生成的法度如下:x=0:2*pi/64:2*pi; y=round(sin(x)*127)+1283单位电路设计与阐发3.1.1主控电路设计中主要采取STC89C51型单片机,它具有如下优点:(1)拥有完善的外部扩展总线,通过这些总线可便利地扩展外围单位、外围接口等。

(2)该单片机内部拥有4K字节的FLASH ROM法度存储器空间和256字节的RAM数据存储空间,完全可以满足法度的要求。

由于该芯片可电擦写,故可重复使用。

如果更改法度内容,可将芯片拿下重新烧写。

(3)该单片机与工业标准的MCS-51型机的指令集和输出引脚兼容。

中断系统是使处理器具有对外界异步事件的处理能力而设置的。

傍边央处理器CPU正在处理某件事的时候外界产生了紧急事件,要求CPU暂停以后的工作,转而去处理这个紧急事件。

在波形产生器中,用两个开光直接与外部中断0和外部中断1的管脚相连,其中S1开光用来修改波形,S2开光用来修改频率。

在法度主函数中,我们写了个死循环一直输出一个默认的波形,当S1或S2按下又抬起时,法度会暂时跳出死循环,进入中断处理法度,从而对波形和频率进行修改。

时钟电路。

由于频率较年夜时,三角波、正弦波、方波等波中每一点延时时间为几微秒,故延时时间还要加上指令时间即可获得指定频率的波形,该电路用11.0592MHz晶振。

主控电路图3.1.2 数/模转换电路由于单片机产生的是数字信号,要想获得所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格昂贵、接口简单、转换控制容易并具有8位辩白率的数模转换器DAC0832。

DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。

但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对辩白率为单位增减,是准模拟量的输出。

DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。

根据对DAC0832的数据锁存器和DAC寄存器的不合的控制方法,DAC0832有三种工作方法:直通方法、单缓冲方法和双缓冲方法。

本设计选用直通方法。

DAC0832的数据口和单片机的P0口相连。

CSDA:片选信号输入线(选通数据锁存器),低电平有效;WR:数据锁存器写选通输入线,负脉冲(脉宽应年夜于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;数模转换电路3.1.3运算放年夜电路和低通滤波电路LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连.第一级运算放年夜器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放年夜器的作用是将V1通过反向放年夜电路(R2/R1)倍。

题目要求输出的电压在05V可调,而V1的电压年夜约是5V,所以R1选择5K的电阻,R2选择10K的电位器,这样最年夜的输出电压为5*(10/2)=10,最小电压为0,可以实现题目要求的05V。

在第二个运算放年夜器的输出端连了一个低通滤波器。

如果不加低通滤波器,也能够生成波形,可是产生的信号中毛刺很多,加一个低通滤波器不但起到的滤波的作用,还起到了平滑的作用。

低通滤波器的截止频率F=1/(2*pi*R3*C6),这里我们选择R3 为100欧姆电阻,C6为104电容,截止频率F=16KHZ。

实验标明,此时的输出波形效果不错。

3.1.4 串口通信电路通用异步收发器(UART)是一种串行接口,一般微处理器中都包含这种外设接口。

异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。

如果再加入一个合适的电平转换器MAX232,串口就能能用在RS232和RS485等网络中实现通信,或者与计算机的COM端口连接。

串口只需两根信号线(RX和TX)即可实现,并且只要两端器件都采取同样的位格式和波特率,那么它们无需其它任何对方的信息就可以胜利传输数据。

串口通信电路图3.2系统软件设计软件设计上,根据功能分了几个模块编程。

模块主要有:主法度模块、外部中断0模块,外部中断1模块。

主法度:主法度先是进行一些初始化的工作,然后根据波形标记a,b,c,d,e 的值进入相应的while 循环。

这样写的好处是输出的波形频率可以790多HZ。

在while循环中,单片机根据地址标记位不断低查表,然后把查得的值赋给DAC0832的数据口,然后地址标记位加一,并判断地址标记位是否即是64,如果是就置0再往下执行,如果不是直接往下执行。

然后根据频率标记位进行相应的延时。

主法度流程图中断办事法度:本法度中两个外部中断辨别起到了控制波形和频率的作用。

在法度中还加入了消抖部分。

4装置调试及丈量数据阐发4.1调试过程;1.欠亨电,用万用表根据电路图仔细检查各线路连接是否正常。

2.首先是调试单片机部分,DA和运算放年夜器芯片不接。

用STC_ISP_V483软件通过串口下法度。

看是否可以正常下法度。

3.当可以正常下法度时,给51单片机下一个让所有I/0口一会儿输入0,延时,再输出1,以此类推。

用万用表丈量各I/O口得电压是不是一会儿高,一会儿低。

4.安上DA和运算放年夜器芯片,给单片机下一个输出正弦波的测试法度,通过示波器看输出是否正常。

5.给单片机下一个完整的法度,辨别按下S1,看波形是否修改。

按下S2,看频率是否修改。

4.2频率的丈量数据:单位:HZ4.3呈现的问题与解决的办法:1.调试单片机的串口时,发明不克不及正常的下法度。

我想可能是单片机坏了借了一块学习板测试了一下单片机芯片,发明可以正常下载。

这说明很可能是MAX232的电路出了问题。

我仔细检查了电路图,又上网查了下其他的MAX232的电路图,发明我的电路图和他人的不一样。

我是依照郭天翔的那本《新概念51单片机C语言教程入门、提高、开发、拓展全》第130页的串口电路画的图,电路图中MAX232的TIOU1接串口的第3脚。

而其他书上有些电路图却是MAX232的TIOU1接到了串口的第2脚。

于是我将MAX232的TIOU1接串口的第2脚,再下法度,终于可以正常下载了。

2.刚开始写的测试法度输出的波形失真很年夜。

我想可能是波形的ROM内外的数据值过小,招致DA输出的误差很年夜。

因而卧将波形的ROM内外的数据值调年夜,在测试时发明波形变得好多了。

3.调试波形的时候我发明矩形波的失真比较年夜。

我想到可能是低通滤波器的截止频率太低了,因而我将RC低通滤波器的电阻由1K换成了100欧姆,效果好了很多。

4.4系统仿真波形:矩形波锯齿波正弦波4.5效果阐发:由 4.2的频率理论值与实际值,可知频率在T,2T,3T,4T,5T,6T,7T,8T 上频率误差很小。

最终的波形输出效果也很不错。

相关文档
最新文档