DAC0832波形发生器课程设计实验报告1
简易波形发生器的设计
XXXX学院课程设计报告课程名称:单片机课程设计院系:电气与信息工程学院专业班级:自动化09102班学生姓名: X X指导教师: X X X完成时间: 2012年6月10日报告成绩:简易波形发生器简易波形发生器是一种常用的信号源,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。
本系统能够准确产生方波、正弦波、锯齿波及三角波。
基于数模转换芯片DAC0832技术的简易波形发生器由六个部分组成:MCU模块、波形发生模块、静态LED 数码管显示模块、键盘输入模块、在线下载模块以及电源模块。
MCU模块采用STC89C51RC 单片机进行数据处理,波形发生模块采用DAC0832及LM324进行波形发生及变换,静态LED数码管显示模块利用3位八段共阳极数码管及3个74LS164显示当前波形频率,键盘模块采取外部中断方式扫描键值,在线下载模块选用MAX232芯片进行单片机程序下载,电源模块使用三端稳压器为系统提供能源。
运用Altium Designer软件绘制了单元电路以及总体电路图,借助Proteus仿真软件对电路进行了虚拟实验,通过仿真分析,满足了课题性能指标的要求,成功地实现了简易波形发生器的设计。
关键词波形发生器;DAC0832;STC89C51RC;静态显示Simple waveform generator is a common source, it is widely used in the experiment of electronic technology, automatic control system and other scientific fields. The system can accurately produce a square wave, sine wave, sawtooth wave and triangle wave. Based on the digital-analog conversion chip DAC0832 simple waveform generator consists of six parts: MCU module, waveform generator module, static LED digital display module, keyboard input module, the download module and power supply. The MCU STC89C51RC microcontroller is for data processing. The waveform generation module which made of DAC0832 and LM324 is used to generate waveform and transform. The static LED digital display module uses three eight out common anode digital and three 74LS164 to show the current waveform frequency. The keyboard module to take external interrupt the scan key. Download module use a MAX232 chip microcontroller program download. The power supply uses three-terminal regulator to provide energy for the system. Altium Designer were used to draw a unit circuit as well as the overall circuit. With Proteus simulation software to conduct virtual experiments on the circuit, simulation analysis, to meet the requirements of the subject of performance indicators, the successful implementation of a simple waveform generator design.Keywords waveform generator ;DAC0832;STC89C51RC; static LED digital display目录摘要 (I)Abstract (II)第一章简易波形发生器的方案设计 (1)1.1简易波形发生器的方案分析与比较 (1)1.1.1 基于数模转换芯片DAC0832的简易波形发生器的设计 (1)1.1.2 基于MAX038函数发生器的简易波形发生器的设计 (1)1.1.3 基于DDS波形发生技术的简易波形发生器的设计 (2)1.2 简易波形发生器的总体结构说明 (2)第二章简易波形发生器的电路设计 (3)2.1 MCU模块 (3)2.1.1 STC89C51RC单片机 (3)2.1.2 复位电路 (5)2.1.3 时钟电路 (5)2.2 DAC0832模块 (5)2.2.1 DAC0832芯片基本介绍 (6)2.2.2 DAC0832波形发生电路 (7)2.3 静态LED数码管显示模块 (7)2.3.1 移位寄存器74LS164 (7)2.3.2 静态显示电路 (8)2.4 键盘输入模块 (8)2.5 在线下载模块 (9)2.6 电源模块 (9)2.7 总体电路说明 (9)第三章简易波形发生器的程序设计 (10)3.1系统接口定义 (10)3.2 主程序 (10)3.3 外部总中断1中断服务程序 (11)第四章简易波形发生器仿真分析 (13)4.1初始界面 (13)4.2 波形发生仿真 (13)4.2.1 正弦波的仿真分析 (13)4.2.2 锯齿波发生仿真分析 (14)4.2.3 三角波发生仿真分析 (15)4.2.4 方波发生仿真分析 (17)总结 (19)参考文献 (20)致谢 (21)附录1:简易波形发生器原理图 (22)附录2:简易波形发生器Protues仿真图 (23)附录3:简易波形发生器元器件明细表 (24)附录4:简易波形发生器源程序 (25)第一章 简易波形发生器的方案设计简易波形发生器是一种常用的信号源,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。
单片机数模转换器DAC0832设计实验报告(附程序)
实验名称:数模转换器DAC0832设计实验学生姓名:xx 学号:xx 班级:测控xx班时间:课程名称:微机机原理及应用教师:成绩:一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O端口控制DAC0832实现数模转换的方法;二、实验内容1. 通过单片机I/O端口控制DAC0832实现数模转换,控制方式采用单缓冲方式,通过按键TRI/SIN选择输出,分别产生锯齿波、方波、正弦波。
1)绘制DAC0832与单片机接口电路原理图;2)参考PPT课件内容,设计程序,实现信号选择输出功能;2. 扩展功能:增加按键,通过按键控制调节输出信号的频率变化。
接口电路图设计参考下图所示:三、设计参考:正弦信号数据表:uchar code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,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,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,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,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,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x0 6,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,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6 f,0x72,0x76,0x79,0x7c,0x80};四.实验报告①实现调频功能的中断程序:void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++; //外部中断0触发一次,延时程序调用次数加1}②延时程序:void delay(){int i;for(i=0;i<10;i++){}} //延时子程序③锯齿波程序:#include<reg51.h>sbit MR=P2^7;void main (void){int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=num;for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:④正弦波程序#include<reg51.h>sbit MR=P2^7;void main (void){unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,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, 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,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,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,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x0 6,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,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=sine_tab[num];for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:⑤方波程序:#include<reg51.h>sbit MR=P2^7;void main (void){ int num;int j;MR=0;while(1){int b;for(num=0;num<=255;b++){if(num<128){ P1=0x00;for(j=0;j<counter;j++)//当counter小于128时,P1输出0x00对应低电平delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应高电平for(j=0;j<counter;j++)delay();}}}调频前:调频后:主程序#include<reg51.h>sbit MR=P2^7;sbit P2_0=P2^0;sbit P2_1=P2^1;int counter=0;//设置延时程序次数变量counter,调节频率unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,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, 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,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0 x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x5 1,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,0x 0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x0 0,0x00,0x00,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,0x 1e,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,0 x72,0x76,0x79,0x7c,0x80}; //正弦转换字符void delay(){int i;for(i=0;i<10;i++){}}//延时子程序void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++;//外部中断0触发一次,延时程序调用次数加1}void main(){int num;int j;EA=1;//中断总允许使能EX0=1;//外部中断0使能IT0=1;//外部中断0下降沿触发MR=0;//P2^7输出低电平,芯片正常工作while(1){if(P2_0==0&&P2_1==1) //P2_1为高电平,P2_0为低电平输出锯齿波{for(num=0;num<256;num++){P1=num; //P1直接输出numfor(j=0;j<counter;j++)delay(); //调用延时子程序}}if(P2_0==1&&P2_1==0)//P2_1为低电平,P2_0为高电平输出正弦波{P1=sine_tab[num];//P1端口输出正弦波字符数组for(j=0;j<counter;j++)delay(); //调用延时子程序}}if((P2_0==0&&P2_1==0)||(P2_0==1&&P2_1==1))//P2_1为低电平P2_0为低电平以及P2_1为高电平P2_0为高电平时输出矩形波for(num=0;num<256;num++){if(num<128)//当num小于128时,P1输出0x00对应低电平{P1=0x00;for(j=0;j<counter;j++)delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应低电平for(j=0;j<counter;j++)delay();}}}}五.总结在该实验的设计过程中,首先单独写出锯齿波、正弦波以及方波的程序,并写出延时程序以及外部中断0程序。
波形发生器——按键控制波形课程设计
波形发生器—按键控制波形课程设计(一)设计任务和要求-------------------------------------------2(二)系统方案(设计思路,用到的芯片及作用),画出系统框图及说明-------------------------------------------------------------2(三)设计方法——硬件设计,画出电路原理图及说明-3(四)设计方法——软件设计,画出程序流程图及说明,源程序清单和注释---------------------------------------------------------------4(五)系统调试----------------------------------------------------51.使用的主要仪器和仪表2.实验步骤3.整理性能测试数据和波形,并与设计要求比较分析4调试中出现的故障、原因及排除方法(六)设计结论----------------------------------------------------11(七)收获和体会-------------------------------------------------13(一)设计任务和要求利用DAC0832产生锯齿波、三角波和方波。
按“1”键产生锯齿波;按“2”键产生三角波;按“3”键产生方波。
(二)系统方案1.DAC0832的内部结构和外部引脚DAC0832的作用是将从CPU发来的数字信号转化为模拟信号2.8086CPU8086CPU主要用于产生数字信号。
设计思路:通过DAC0832的数模转化功能实现将离散信号转化为模拟信号,然后利用扫描法实现按键控制。
(三)设计方法——硬件设计,画出电路原理图及说明DAC08328086开关各个模块及其连接说明:主要分成两部分,输入部分和输出部分。
输入部分由8255和8个常开型开关来完成。
通过键盘输入数字赋给8086,然后根据8086的程序,调用不同的波形发生函数,输出离散信号给DAC0832进行数模转换。
波形发生器设计报告
波形发生器设计报告摘要本设计是以AT89C52为控制模块,控制DAC0832输出正弦波、方波、三角波,并利用倍频器输出波形的频率可达到1MHz。
关键词:AT89C52;DAC0832;倍频器;波形发生器。
设计任务:(1)能产生正弦波、方波、三角波;(2)频率、幅度可以设定;(3)输出频率能达到1MHZ。
发挥部分(自选)。
总体设计方案:该系统功能主要由AT89C52单片机通过相应的软件编程实现程序逻辑功能并结合相关的周围硬件电路而实现。
程序流程图-原理图本设计分为以下模块:一、控制模块二、键盘输入模块三、产生波形模块四、显示模块仿真波形一、三角波二、方波三、正弦波总结本次课程设计所用到的程序除LCD显示部分及DAC0832部分参考了其他的程序外全系独立编写,通过这一课程设计,使在课堂上所学习的单片机语言应用能力获得了大的提高,也极大的增强了编写调试程序和硬件连接的能力。
编程工作是一项繁重,系统的脑力劳动,需要编程者具有足够的耐心和毅力,耐心细致的工作态度和严谨务实的工作作风。
本次所编写的多功能波形发生器的源程序总共将近二百多行,系统庞大而且繁杂,在编写过程中,所遇到的问题非常多,整个编写过程就是一个不断面临问题,不断解决问题的过程,这一过程充满了挑战性,也充满了各种困难,但不断的追踪错误的来源也是很有趣味的一件事情。
出现了运行错误后,就处处添加显示代码,让LCD将它的运算过程中的数据显示出来,追踪错误的源头,最终会发现在运算过程的某一步上出现了异常,然后分析问题为什么会出在这里,找到程序中隐藏的逻辑错误并修改,找到错误的所在并解决掉是非常具有吸引力的。
通过这次课程设计使对单片机语言的理解和掌握上有了很大的进步,以前所了解的单片机语言仅限于一些片面的知识,通过这次编程,将这些零零碎碎的知识汇集起来,编写出了一个完整的系统,并且对单片机语言的应用能力有了极大的提高,对于硬件接口的问题也有了深刻的了解,体会到了单片机的独具一格的思想。
单片机实验DA转换器DAC0832的应用的报告
单片机应用技术课程报告实验名称D/A转换器DAC0832的应用实验时间2020年6月30 日学生姓名实验地点钉钉群线上同组人员专业班级1、实验目的(1)了解D/A转换与单片机的接口方法;(2)了解D/A转换芯片DAC0832的性能及编程方法(3)掌握D/A转换的程序设计方法。
2、任务设计要求(1)掌握实验原理,读懂实验线路图,了解所用到的元器件特性。
(2)会绘制电路原理图,会连接电路原理图。
(3)将编制的锯齿波、方波程序运行,用示波器观察波形。
使用STC89C51单片机、DAC0832芯片,设计一个波形发生器,能产生正弦波、方波、三角波、锯齿波,梯形波,要求通过编程实现不同波型的产生,通过按键实现不同波形输出的切换。
3、总体设计方案4、硬件电路设计5、软件程序设计#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x7fff]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5, 0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9, 0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6, 0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9, 0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9, 0xf8,0xf7,0xf6,0xf4,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9, 0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5, 0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d, 0x7a,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55, 0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31, 0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15, 0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04, 0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c, 0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b, 0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60, 0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};void delay()//延时程序{int i;for(i=0;i<1000;i++);}void panduan (void)//函数panduan用于扫描按键状态判断输出波形{if (k1==0){//按键消抖delay();if (k1==0)//通过赋值flag选择波形flag1=1;flag2=0;flag3=0;flag4=0;flag5=0;}if(k2==0){delay();if (k2==0)flag1=0;flag2=1;flag3=0;flag4=0;flag5=0;}if (k3==0){//补充程序flag1=0;flag2=0;flag3=1;flag4=0;flag5=0;。
DAC0832波形发生器课程设计实验报告
DAC0832波形发生器课程设计实验报告目录第1章系统设计方案 (2)1.1 设计思路 (2)1.2 方案比较与选择 (2)第2章系统硬件设计..................................................................................2. 2.1 主控制器电路 (2)2.2 数模转换电路 (3)第3章系统软件设计................................................................................ .6 3.1 系统整体流程...................................................................................... .6 3.2 数模转换程序...................................................................................... .6 第4章系统调试 (8)4.1 proteus的调试 (8)第5章结论与总结 (11)5.1 结论 (11)(系统总体设计与完成做一个总结,是客观的,主要包括:设计思路,设计过程,测试结果及完善改进的方向。
)5.2 总结 (11)(这是一个主观的总结,谈谈自己收获和不足等方面的内容。
)第1章系统设计方案1.1 设计思路(一)、课设需要各个波形的基本输出。
如输出矩形波、锯齿波,正弦波。
这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
然而为了实现100HZ的频率,终于发现,将总时间除了总步数,根据每步执行时间,算出延时时间,最终达到要求,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。
DAC0832波形发生器
目录1.概述 (2)1.1DAC0832设计波形发生器的历史背景和意义 (2)1.2DAC0832设计波形发生器的发展和现状 (2)2.课题方案设计 (3)2.1系统功能概述 (3)2.2方案的提出及论证 (3)方案一 (3)方案二 (3)方案三 (3)方案四 (4)3.系统硬件设计 (4)3.1 系统硬件总体设计概述 (4)3.2 系统各个模块的设计 (4)3.2.1 单片机系统模块 (4)3.2.2 晶振时钟模块 (7)3.2.3 复位电路模块 (8)3.2.3 数模转换模块 (9)3.2.4 运放模块 (10)4.软件设计流程 (10)4.1 系统总体控制功能图 (10)4.2 各波形的产生 (11)4.2.1 锯齿波的实现 (11)4.2.2 方波的实现 (11)4.2.3 三角波的实现 (12)4.2.4 正弦波的实现 (12)5.软硬件联调及调试结果 (13)5.1 硬件电路调试 (13)5.2 各功能模块软件调试 (13)5.2.1矩形波软件调试 (13)5.2.2锯齿波软件调试 (14)5.2.3正弦波软件调试 (14)5.2.4三角波软件调试 (15)5.2.5阶梯波软件调试 (15)5.3实物图 (16)结束语 (19)参考文献 (19)附录 (20)附录1 原理图 (20)附录2 PCB图 (21)附录3 C语言程序清单 (21)附录4 元器件清单 (25)1.概述1.1DAC0832设计波形发生器的历史背景和意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。
单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。
单片机正朝着面向多层次用户的多品种多规格方向发展。
基于单片机和DAC0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。
dac0832课程设计
dac0832课程设计一、课程目标知识目标:1. 让学生掌握 dac0832 芯片的基本原理和功能,了解其在数字信号处理中的应用。
2.使学生能够运用 dac0832 芯片进行模拟信号与数字信号之间的转换,理解转换过程中的关键技术。
3.让学生了解 dac0832 芯片的内部结构,掌握相关寄存器的配置方法。
技能目标:1. 培养学生动手实践能力,能够独立完成 dac0832 芯片的连接、编程和调试工作。
2. 提高学生的问题解决能力,使其在遇到 dac0832 相关问题时,能够运用所学知识进行分析和解决。
情感态度价值观目标:1. 培养学生对电子技术、数字信号处理等领域的兴趣,激发其探索精神。
2. 培养学生的团队协作意识,使其在课程实践过程中学会与他人合作,共同解决问题。
3. 引导学生认识到电子技术在日常生活和国家发展中的重要作用,培养其社会责任感。
课程性质:本课程为电子技术实践课程,旨在帮助学生将理论知识与实际应用相结合,提高学生的动手实践能力和问题解决能力。
学生特点:学生已具备一定的电子技术基础和编程能力,对 dac0832 芯片有一定了解,但实践经验不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强化实践环节,引导学生主动参与,培养其独立思考和解决问题的能力。
通过课程目标的分解和实现,使学生在知识、技能和情感态度价值观方面均取得明显的学习成果。
二、教学内容1. dac0832芯片基本原理及功能:介绍dac0832芯片的内部结构、工作原理、性能参数,使学生对其有全面的认识。
教材章节:第三章“DAC转换器”第2节“dac0832芯片”2. dac0832芯片的连接与编程:讲解dac0832芯片的引脚功能、连接方法以及编程技术,使学生能够实际操作和使用dac0832芯片。
教材章节:第三章“DAC转换器”第3节“dac0832芯片的连接与编程”3. 模拟信号与数字信号转换:分析dac0832芯片在模拟信号与数字信号转换过程中的关键技术,提高学生对转换过程的理解。
DAC0832波形发生器课程设计实验报告1
微机原理与接口技术课程设计报告书题目:DAC0832 波形发生器学院名称:湖南科技大学潇湘学院班级:电子信息工程001班指导老师:欧青立陈君宋芳学号:姓名:赵翔- 1 -潇湘学院电子信息001班学号:姓名:赵翔目录一、引言 (1)二、设计目的 (2)三、原理说明 (2)四、硬件设计 (4)五、设计原理 (6)六、程序编译 (7)1、输出方波子程序 (7)2、输出三角波子程序 (8)3、输出锯齿波子程序 (8)4、输出正弦波子程序 (9)5、输出梯形波的子程序 (10)6、主程序 (11)七、调试方法与结果 (15)八、心得体会 (16)- 2 - 一.引言波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。
由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。
测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。
它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。
本次课程设计使用的AT89C51单片机构成的发生器可产生三角波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。
此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。
二、设计目的1、掌握DAC0832与PC机的接口方法。
2、掌握D/A转换应用程序设计方法。
三、原理说明◆知识简介:DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。
基于DAC0832波形发生器
湖南科技大学课程设计(论文)题目基于DAC0832波形发生器二〇一二年一月一日目录目录I一、实验目的及任务- 1 -1.1 实验目的- 1 -1.2 实验任务- 1 -二、实验设备、实验分析- 1 -2.1 AEDK实验系统介绍- 1 -2.2 实验分析- 2 -三、设计方案- 2 -3.1 8255芯片简介- 2 -3.2 DAC0832芯片简介- 3 -3.3 设计原理- 4 -四、接线图电路原理图- 5 -五、程序流程图- 7 -5.1 子程序设计- 7 -5.2 总程序设计- 8 -六、调试方法及及实验结果- 9 -七、总结与体会- 9 -附录- 9 -源程序- 10 -致- 11 -参考文献- 12 -一、实验目的及任务1.1 实验目的1.掌握计算机应用系统特别是微机接口系统的设计。
2.掌握接口电路设计技术。
初步掌握电子设计软件Protel99使用。
3.掌握微机接口程序的编制与调试技术。
1.2 实验任务利用AEDK实验系统以及相关设备制作一个基于数/模转换器DAC0832的波形发生器,具备基本的功能。
二、实验设备、实验分析2.1 AEDK实验系统介绍2.1.1 系统组成AEDK8688ET微机教学实验系统是航虹高科技实业公司在继承8688T和8688TI微机教学实验机优点的基础上,广泛地吸取用户的使用意见和建议,结合8086188仿真技术,推出的新一代微机教学实验系统。
本实验系统由AEDK8688ET实验机外配计算机和其他一些附件及选配件组成该实验系统,既可以在无PC机的状态下独立运行,又可以接PC机通过串口或ISA总线运行。
在扩展功能上,可以通过实验机的25芯插座外接机电实验平台,做机电一体化实验。
系统硬件组成:主机:AEDK8688ET实验板附件:PC机缓冲驱动卡(UPCXT)、60芯联接电缆、RS-232通讯电缆、维修测试板(U88ETF)及联接电缆、硬导线一束、电源电缆。
选配件:专用电源、机电实验平台。
DAC0832波形发生器课程设计实验报告1
DAC的输出统造之阳早格格创做班级: 1221201博业:测控技能与仪器姓名:xxxxx教号:xxxxx指挥教授:周伟东华理工大教 2015年1月12日目录第1章系统安排规划 (2)1.1 安排思路 (2)1.2 规划比较与采用 (2)第2章系统硬件安排……………………………………………………………………….2.2.1 主统造器电路 (2)2.2 数模变更电路……………………………………………………………………………3第3章系统硬件安排…………………………………………………………………….. .6 3.1 系统完全过程………………………………………………………………………….. .63.2 数模变更步调………………………………………………………………………….. .6第4章系统调试 (8)4.1 proteus的调试 (8)第5章论断与归纳 (1)15.1 论断 (11)(系统总体安排与完毕搞一个归纳,是客瞅的,主要包罗:安排思路,安排历程,尝试截止及完备矫正的目标.)5.2 归纳 (11)(那是一个主瞅的归纳,道道自己支获战缺乏等圆里的真质.)第1章系统安排规划1.1 安排思路(一)、课设需要各个波形的基础输出.如输出矩形波、锯齿波,正弦波.那些波形的真止的简曲步调:正弦波的真止利害常贫苦的.它的真止历程是通过定义一些数据,而后真止时曲交输出定义的数据便不妨了.然而为了真止100HZ的频次,毕竟创造,将总时间除了总步数,根据每步真止时间,算出延常常间,最后达到央供,而后修一个表通过查表去举止输出,那样主要处事任务便降到了修表的历程中.那样搞的佳处正在于,查表所泯灭的时钟周期相共,那样输出的面与面之间的距离便相等了,输出的波形止将更趋于完好,天然更让咱们感触的下兴的是它输出波形的频次将近达到了100赫兹,不妨谦足咱们安排的扩展央供了.而三角波,则屡屡乏加1,当达到初值时,屡屡乏减1,算出延常常间,也便达到央供了,矩形波战锯齿波类似.(二)、那次搞的三种波形不妨相互变更,那个真止起去找了很多人最后创造,正在屡屡循环之初举止扫描,而正在每其中断出心处,对付中断劣先级举止设定,最后达到安排脚段.1.2 规划比较与采用规划一:采与模拟电路拆修函数旗号爆收器,它不妨共时爆收圆波、三角波、正弦波.然而是那种模块爆收的不克不迭爆收任性的波形(比圆梯形波),而且频次安排很不便当.规划二:采与锁相式频次合成器,利用锁相环,将压控振荡器(VCO)的输出频次锁定正在所需频次上,该规划本能良佳,然而易以达到输出频次覆盖系数的央供,且电路搀杂.规划三:使用集成旗号爆收器爆收芯片,比圆AD9854,它不妨死成最下几十MHZ的波形.然而是该规划也不克不迭爆收任性波形(比圆梯形波),而且代价下贵.规划四:采与AT89C51单片机战DAC0832数模变更器死成波形,加上一个矮通滤波器,死成的波形比较杂洁.它的特性是可爆收任性波形,频次简单安排,频次能达到安排的500HZ以上.本能下,正在矮频范畴内宁静性佳、支配便当、体积小、耗电少.经比较,规划四既可谦足课程安排的基础央供又能充散收挥其劣势,电路简朴,易统造,性价比下,所以采与该规划.第2章系统硬件安排2.1 主统造器电路89C52可编程并止交心芯片有三个输进输出端心,即A心、B 心战C心,对付应于引足PA7~PA0、PB7~PB0战PC7~PC0.其里里另有一个统造寄存器,即统造心.常常A心、B心动做输进输出的数据端心.C心动做统造或者状态疑息的端心,它正在办法字的统造下,不妨分成4位的端心,每个端心包罗一个4位锁存器.它们分别与端心A/B协共使用,不妨用做统造旗号输出或者动做状态旗号输进.89C52可编程并止交心芯片处事办法证明:办法0:基础输进/输出办法.适用于三个端心中的所有一个.每一个端心皆不妨用做输进或者输出.输出可被锁存,输进不克不迭锁存. 办法1:选通输进/输出办法.那时A心或者B心的8位中设线用做输进或者输出,C心的4条线中三条用做数据传输的联结旗号战中断哀供旗号.办法2:单背总线办法.惟有A心具备单背总线办法,8位中设线用做输进或者输出,此时C心的5条线用做通讯联结旗号战中断哀供旗号.◆本理框图:硬件安排2.2 数模变更电路由于单片机爆收的是数字旗号,要念得到所需要的波形,便要把数字旗号变更成模拟旗号,所以该文采用代价矮廉、交心简朴、变更统造简单并具备8位辨别率的数模变更器DAC0832.DAC0832主要由8位输进寄存器、8位DAC寄存器、8位D/A变更器以及输进统造电路四部分组成.然而本质上,DAC0832输出的电量也不是真真能连绝可调,而是以其千万于辨别率为单位删减,是准模拟量的输出.DAC0832是电流型输出,正在应用时中交运搁使之成为电压型输出.1、DAC0832的引足及功能:DAC0832是8辨别率的D/A变更集成芯片.与微处理器兼容.那个DA芯片以其代价矮廉、交心简朴、变更统造简单等便宜,正在单片机应用系统中得到广大的应用.D/A变更器由8位输进锁存器、8位DAC寄存器、8位D/A变更电路及变更统造电路形成.◆各引足功能证明:D0~D7:8位数据输进线,TTL电仄,灵验时间应大于90ns(可则锁存器的数据会堕落);ILE:数据锁存允许统造旗号输进线,下电仄灵验;CS:片选旗号输进线(选通数据锁存器),矮电仄灵验;WR1:数据锁存器写选通输进线,背脉冲(脉宽应大于500ns)灵验.由ILE、CS、WR1的逻辑拉拢爆收LE1,当LE1为下电通常,数据锁存器状态随输进数据线变更,LE1的背跳变时将输进数据锁存;XFER:数据传输统造旗号输进线,矮电仄灵验,背脉冲(脉宽应大于500ns)灵验;WR2:DAC寄存器选通输进线,背脉冲(脉宽应大于500ns)灵验.由WR2、XFER的逻辑拉拢爆收LE2,当LE2为下电通常,DAC寄存器的输出随寄存器的输进而变更,LE2的背跳变时将数据锁存器的真质挨进DAC寄存器并启初D/A变更.IOUT1:电流输出端1,其值随DAC寄存器的真质线性变更;IOUT2:电流输出端2,其值与IOUT1值之战为一常数;Rfb:反馈旗号输进线,改变Rfb端中交电阻值可安排变更谦量程粗度;Vcc:电源输进端,Vcc的范畴为+5V~+15V;VREF:基准电压输进线,VREF的范畴为-10V~+10V;AGND:模拟旗号天DGND:数字旗号天DAC0832三种数据输进办法:(1)单慢冲办法:即数据通过单沉慢冲后再支进D/A变更电路,真止二次写支配才搞完毕一次D/A变更.那种办法可正在D/A变更的共时,举止下一个数据的输进,可普及变更速率.更为要害的是,那种办法特天适用于央供共时输出多个模拟量的场合.此时,要用多片DAC0832组成模拟输出系统,每片对付应一个模拟量. (2)单慢冲办法:不需要多个模拟量共时输出时,可采与此种办法.此时二个寄存器之一处于曲通状态,输进数据只通过一级慢冲支进D/A变更电路.那种办法只需真止一次写支配,即可完毕D/A变更.(3)曲通办法:此时二个寄存器均处于曲通状态,果此要将、、战端皆交数字天,ILE交下电仄,使LE1、LE2均为下电仄,以致二个锁存寄存器共时处于搁止曲通状态,数据曲交支进D/A变更电路举止D/A变更.那种办法可用于一些不采与微机的统造系统中或者其余不须0832慢冲数据的情况.第3章系统硬件安排3.1 系统完全过程3.2 数模变更步调#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define DAC0832 P2#define ALL 65536#define Fosc 12000000uchar TH_0,TL_0,flag1,flag=0;uint FREQ=100,num;float temp;uchar code sin_num[]={0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,2,2,2,2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7,7,8,8,9,9,10, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21,22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35,36,37,38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56,57, 59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78,80, 81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102,104, 106,107, 109, 110, 112, 113, 115, 116, 118, 120, 121,123,124,126,128,129, 131, 132, 134, 135, 137, 139, 140, 142, 143, 145, 146,148, 149,151,153,154, 156, 157, 159, 160, 162, 163, 165, 166, 168, 169,171,172,174,175,177,178, 180, 181, 182, 184, 185, 187, 188, 189, 191, 192,194,195,196,198,199,200, 201, 203, 204, 205, 206, 208, 209, 210, 211, 213,214,215,216,217,218,219, 220, 221, 223, 224, 225, 226, 227, 228, 229, 230,230,231,232,233,234,235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 243,243,244,245,245,246,246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 251,252,252,253,253,253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255,255,255,255,255};sbit cs=P3^6;sbit change1=P3^2;sbit change2=P3^1;sbit change3=P3^0;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void init(){TMOD=0X01;temp=ALL-Fosc/12.0/256/FREQ;TH_0=(uint)temp/256;TL_0=(uint)temp%256;EA=1;EX0=1;IT0=1;ET0=1;TR0=1;}void changefreq(void){if(change==0){flag++; if(flag==4) {flag=0;num=0;}}TH_0=(uint)temp/256;TL_0=(uint)temp%256;}void sanjiaobo(void){for(num=0;num<255;num++){cs=0;DAC0832=num;cs=1;}for(num=255;num>0;--num){cs=0;DAC0832=num;cs=1;}}void fangbo(void){cs=0;DAC0832=0XFF;cs=1;for(num=0;num<255;num++);cs=0;DAC0832=0X00;cs=1;for(num=255;num>0;num--);}void juchibo(void){cs=0;DAC0832=++num;cs=1;}void zhengxianbo(void){for(num=0;num<255;num++){cs=0;DAC0832=sin_num[num];cs=1;}for(num=255;num>0;num--){cs=0;DAC0832=sin_num[num];cs=1;}}void ext0() interrupt 0{changefreq();}void timer0() interrupt 1{TH0=TH_0;TL0=TL_0;TR0=0;switch(flag){case 0: {sanjiaobo();TR0=1;break;}case 1: {fangbo();TR0=1;break;}case 2: {juchibo();TR0=1;break;}case 3: {zhengxianbo();TR0=1;break;}default: ;}}void main(){init();while(1);}第4章系统调试4.1 proteus的调试矩形波锯齿波正弦波第5章论断与归纳5.1 论断鉴于单片机的旗号爆收器安排,那个旗号爆收器的安排中波及到一个典型的统造历程.通过单片机统造一个数模变更器DAC0832爆收所需要的电流,而后使用运算搁大器LM324不妨将其电流输出线性天变更成电压输出,再将电压通过运算搁大器的搁大,不妨得到足够幅度的旗号.通历步调的统造,不妨爆收一系列有顺序的波形.有了大概思路后,尔便启初连交硬件电路.最先,尔先根据央供找佳了需要的本件,单片机AT89C52用做主统造模块;而后再连佳数模变更电路那一齐;再者把那二段拉拢正在所有,便完毕了一个简朴硬件电路.末尾根据连佳电路写出所需步调,运止乐成后产死Hex 文献.再用自己连佳的仿真图运止,如果运止仄常,便不妨得到咱们需要的波形.按键不妨切换波形战改变频次幅度的大小.虽然波形图基础不妨真止,然而电路图还存留一些问题.便搁大电路那块去道,尔部分只用了一个搁大器,反馈电路用的正背搁大,幅度安排不明隐.尔厥后便删大了搁大倍数,效验相比较佳了很多5.2 归纳课设启初的时间由于不体味,不知从何下脚,所以便上钩搜了很多闭于旗号爆收器的资料,并翻阅了一些相闭书籍籍.通过将近二周的单片机课程安排,毕竟完毕了尔的DAC输出统造的安排,基础达到安排央供,从心底里去道,仍旧很下兴的,然而下兴之余不克不迭不深思呀!正在本次安排的历程中,尔创造很多的问题,虽然往日还搞过那样的安排然而那次安排果然让尔少进了很多.对付于单片机安排,其硬件电路是比较简朴的,主假如办理步调安排的问题,而步调安排是一个很机动的物品,它反映了您办理问题的逻辑思维战革新本领,它才是一个安排的灵魂天圆.果此正在所有安排历程中大部分时间是用正在步调上头的.很多子步调是不妨借镜书籍本上的,然而何如贯串各身材步调才是闭键的问题天圆,那需要对付单片机的结构很认识.果此不妨道单片机的安排是硬件战硬件的分离,二者是稀不可分的.要安排一个乐成的电路,必须要有耐性,要有脆持的毅力.正在所有电路的安排历程中,泯灭时间最多的是各个单元电路的连交及电路的细节安排上,如正在多种规划的采用中,尔小心比较分解其本理以及可止的本果.那便央供咱们对付硬件系统中各组件部分有充分深进的明白战钻研,并能对付之机动应用.完毕那次安排后,尔正在书籍本表里知识的前提上又有了更深条理的明白.共时正在本次安排的历程中,尔还教会了下效用的查阅资料、使用功具书籍、利用搜集查找资料.尔创造,正在咱们所使用的书籍籍上有一些知识正在本质应用中本去本去不是格中理念,百般参数皆需要自己去安排.奇而还会逢到过失的资料局里,那便央供咱们应越收注沉试验关节.。
波形发生器报告
3、设计人机接口,实现波形与频率的选择。
具体设计内容如下:
1、计DAC0832的接线,用键盘输入要求的波形与频率。
2、至少产生三种波形。
3键盘与显示处理程序分为两种:
1)使用LED显示;
2)使用实验箱键盘。
二、设计原始资料
微型计算机原理与接口技术
三、设计完成后提交的文件和图表
课程设计任务书
题目波形发生器
系(部)信息工程系
专业自动化
班级自动化081
学生姓名王利静
学号*********
06月07日至06月10日共1周
指导教师(签字)
系主任(签字)
年月日
一、设计内容及要求
本实验设计一个由微机控制的多功能波形发生器。
具体设计要求如下。
1、使用DAC0832和CPU相连,用软件延时编制程序产生三角波、锯齿波、方波、正弦波,在DAC0832和OUT端用示波器观察波形。
见图3.3多功能波形发生器硬件结构示意程图
见图3.4 DAC0832的连接输出图
见图3.58255A的接线图
见图4.1主程序流程图
见图4.2三角波发生子程序流程图
见图4.3锯齿波发生子程序流程图
见图4.4方波发生子程序流程图
见图4.5正弦波发生子程序流程图
见图4.6使用说明图
四、进程安排
第一天:查资料,整理思路,
4.刘书明.高性能模数与数模转换器件.西安:西安电子科技大学出版社,2000.
1.计算说明书部分
软件系统的使用说明
所有开关的动作都将通过8255A写到AL寄存器中。K6到K3为频率调节开关,共可以调16倍频,对应低半字节,K6对应高位,K3对应低位。K10为三角波切换开关,K
单片机实验——利用DAC0832完成波形发生器
单片机实验——利用DAC0832完成波形发生器1.实验目的(1)掌握D/A转换器的基本原理和使用方法。
2.预习要点(1)D/A转换器的基本原理和使用方法。
3.实验设备计算机、单片机实验箱,示波器。
4.实验内容基本要求:利用实验板上的0832D/A芯片,将示波器连接到滤波电路后,通过程序产生周期为20ms的三角波。
扩展要求:利用实验板上的0832D/A芯片和电位器,将示波器连接到滤波电路后,通过程序产生周期或幅度可调的锯齿波。
实验7ORG 0000HAJMP MAIN;***********************************;主程序ORG 0030HMAIN:MOV DPTR,#4000H ;为DA分配地址,应接CS3CLR AUP:MOVX @DPTR,A ;上坡,A从0加到100,上坡时间为100*100us=10ms LCALL DELAYINC ACJNE A,#100,UPSJMP DOWNDOWN:MOVX @DPTR,A ;下坡,A从100减到0,下坡时间为100*100us=10ms LCALL DELAYDEC ACJNE A,#0,DOWNSJMP UP;************************************;延时100us (这个相信大家可以自己算了吧)DELAY:MOV R7,#02H ;这其实不是100ms,我用示波器调的时候发DEL1:MOV R6,#22 ;现当R6为22的时候周期比较接近20ms,所以DEL2:DJNZ R6,DEL2 ;就用了22,因为上面有些指令知行还需要时间DJNZ R7,DEL1RET;**************************************;其实如果用定时器的话我相信会更精确一些;尤其是方式2。
dac0832波形发生器的设计
课程设计课程名称:低频信号源的设计专业年级:电子信息工程082班学生姓名:学号: 200805070211实习时间: 2011年6月30至7月1日指导教师:填写时间:2011年7 月3日一、设计任务及意义本系统是基于AT89C52单片机的数字式简易低频信号发生器。
用程序实现方波、锯齿波、三角波等信号,并在Protues电子设计平台上对方案进行了仿真。
消除了传统信号发生器存在元器件分散性造成波形失真的弊端。
系统采用AT89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、按键电路。
通过按键控制可产生方波、锯齿波、正弦波。
波形的频率和幅度在一定范围内可任意改变,其设计简单、性能优良,可用于多种需要低频信号源的场所,具有一定的实用性。
二、设计方案选择及论证系统方案比较方案一:采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。
这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。
方案三:采用单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案三既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。
三、硬件设计系统总体框图设计本系统是以单片机AT89C51和8位D/A 转换芯片DAC0832共同实现正弦波,方波,锯齿波这三种常见波形的产生及显示相互切换的功能。
图3-1 系统总体框图 3.1单片机晶振电路对于MCS-51一般的晶振可以在1.2MHZ —12MHZ 之间选择,这是电容C 可以对应的选择10pf-30Pf 。
波形发生器实验报告
单片机课程设计报告波形发生器2014 年02 月23日1、用户需求1、产生三角波、方波、正弦波信号2、输出信号的频率和幅度可以通过按键来改变,,分析波形产生的最高频率。
2、设计任务基于AT89C51的波形发生器主要功能如下:(1)可以三产生角波、方波、正弦波信号并通过按键控制。
(2)输出信号的频率和幅度可以通过按键来改变,分析波形产生的最高频率。
(3)以单片机为核心,经过D/A转换和放大电路的处理,最后输出信号。
3、原理框图及说明根据设计任务,设计如下框图:图1、原理框图电源部分,为单片机提供5V稳压电源;8位按键提供给用户用来选择需要输出的波形,以及修改频率及方波占空比;数码管显示所选择的的波形代号,1代表正弦波,2代表方波,3代表锯齿波,4代表三角波;幅度调节电路用来调节输出波形的幅度;D/A转换及放大电路可以将数字信号转换成模拟信号输出我们所需要的波形;显示电路则是将波形显示在屏幕上。
89C51上电后,扫描P1口,判断是否有键按下,进行相应的操作。
根据原理框图,设计电路图如附件1.设置的3位按键分别为S1代表正弦波,S2代表方波,S3代表锯齿波,S4代表三角波,S5代表增加方波占空比,S6代表减小方波占空比,S7代表增加频率,S8代表减小频率。
4、主要电路说明、元件选择及参数计算简易函数信号发生器原件清单如下:4.1主控芯片单片机的介绍(1)AT89C51的引脚如图2.2所示。
AT89C51单片机的40个引脚可分为:电源引脚2根、时钟引脚两根、控制引脚4根、输入/输出引脚32根。
各引脚功能描述如下:(1)主电压引脚●V CC:电源端,正常工作时接+5V电源● V SS:接地端(2)时钟引脚●XTAL1:内部振荡电路的反相放大器的输入端,接外部晶振和微调电容的一端。
采用外部时钟电路时,对HMOS型工艺的单片机而言,此引脚应接地;对CHMOS型而言,此引脚应接外部时钟的输入端。
●内部振荡电路的反相放大器的输出端,接外部晶振和微调电容的另一端。
ADC0832模拟波形发生器实验报告
控制基础实验——模拟波形发生器成绩________课程名称:__ ___________学院(系):专业:班级:学号:学生姓名:分工任务:一、实验题目1、设计一个波形发生器,使能输出锯齿波、三角波、正弦波等。
2、在proteus仿真软件中连接单片机系统硬件图,在keil c51软件中编写并调试应用程序,使能在proteus中运行并达到预期效果。
二、实验目的1、学会DAC0832芯片的基本知识,并掌握使用方法。
2、掌握单片机最小系统的基本知识,能设计并完成一些简单应用。
3、掌握Proteus及Keil软件在51系列单片机中的使用及调试。
4、会根据实际功能,正确选择单片机功能接线,编制正确程序。
对实验结果能做出分析和解释,能写出符合规格的实验报告。
三、实验工具软件:Proteus单片机仿真软件、keil51,PC机。
四、实验内容掌握DAC0832芯片的使用方法,在Proteus仿真软件中连接好电路图,在Keil中编写程序,使得能够输出较规范的锯齿波、三角波、正弦波。
五、实验原理1、单片机工作原理:单片机是指一个集成在一块芯片上的完整计算机系统。
通过编程控制单片机的I/O端口、中断、定时器、寄存器等部件可以完成很多应用。
2、DAC0832的工作原理:DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
3、DAC0832引脚功能说明:DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2: 电流输出线。
其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线(+5v~+15v)Vref:基准电压输入线(-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.4、输出形式式:单极性(本实验需要)、双极性。
DAC0832实验报告
DAC0830/0831/0832是8位分辩率的D/A转换集成芯片,与微处理器完全兼容。
这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用这类D/A转换器由8位输入锁存器、8位DAC寄存器、八位D/A转换电路及转换控制电路构成。
DAC0832的应用特性与引脚功能DAC0830系列芯片是一种具有两个输入数据寄存器的8位DAC,是一个8位D/A转换器芯片,单电源供电,从+5V~+15V均可正常工作。
其主体部分为由T型状态。
而模拟开关控制标准电源在T型电阻网络所产生的电流。
输入的数字量通过两级缓冲器送到 D/A 转换电路。
通过对这两级缓冲器进行控制,可以实现直通、单缓冲、双缓冲三种工作方式。
1)DAC0832内部结构和引脚DAC0832的内部结构如图所示:DAC0832引脚如下图所示,它采用20线双列直插式封装,引脚功能如下:(1)D7~D0——转换数据输入。
(2)CS——片选信号(输入),低电平有效。
(3)ILE——数据锁存允许信号(输入),高电平有效。
(4)WR1——第一信号(输入),低电平有效。
该信号与ILE 信号共同控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1和XFER=0时,为输入寄存器直通方式;当ILE=1和WR1 =1时,为输入寄存器锁存方式。
(5) WR2 ——第2写信号(输入),低电平有效.该信号与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当 WR2=0和XFER=0时,为DAC寄存器直通方式; 当WR2=1和XFER=0时,为DAC寄存器锁存方式。
(6)XFER——数据传送控制信号(输入),低电平有效。
(7)Iout2——电流输出“1”。
当数据为全“1”时,输出电流最大;为全“0”时输出电流最小。
(8)Iout2——电流输出“2”。
DAC转换器的特性之一是:Iout1 +Iout2=常数。
(9)RFB——反馈电阻端即运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。
微机原理课程设计—dac0832波形发生器
二○一四~二○一五学年第一学期信息科学与工程学院自动化系课程设计报告课程名称:微机原理及应用课程设计班级:自动化1204班*名:**学号:************指导教师:***时间:2014.12.28题目:函数发生器1的设计1.设计任务用8086做控制器,利用DAC0832设计一个函数发生器,能分别产生方波、阶梯波(每阶梯1V)、锯齿波(正向或负向)和三角波,并利用按键选择(自行定义)输出波形同时将当前输出波形代号显示在LED上:0为方波、1为阶梯波、2为锯齿波、3为三角波。
2.设计要求波形输出幅值和频率不限(可根据需要考虑增加调频调幅功能),通过8255A 进行按键选择。
3.设计内容3.1系统方案的设计与选择:(1)数字按键的实现可以通过8255的输入输出端口,定义方式0工作方式,C 口低四位输入信号,B口输出信号,通过按键改变C口电平信号,使输入信号改变,并在在B口输出不同信号,在数码管上显示不同数字;(2)波形的产生则使用8086与DAC0832连接,通过8086给DAC0832输入不同数字信号,在DAC0832的输出端输出波形,波形的观察使用一个放大器连接模拟示波器显示。
3.2系统框图:3.3系统基本介绍:此方案是通过并行接口芯片8255A和8086计算机的硬件连接,并通过8086控制DAC0832产生波形相应波形,通过8255A输出信号控制数码管显示不同数字。
8255A的C端口有四个按键,按下相应的按键,使输入低电平。
①按下第一个按键显示数字0,在示波器上产生方波;②按下第二个按键显示数字1,产生阶梯波;③按下第三个按键显示数字3,产生锯齿波;④按下第四个按键显示数字4,产生三角波。
3.4模块功能介绍:8255A:D0~D7口与8086数据端连接,PB0~PB6与七段共阴极数码管相连接以显示数字,PC0~PC4连接四个按键,实现输入电平的改变。
A0、A1接地址线A1、A2,CS端连接74ls138的片选端。
基于DAC0832单片机的波形信号发生器的设计
摘要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
本设计使用AT89C51单片机和DAC0832,可产生三角波、方波、正弦波,波形的频率可用程序控制改变。
在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。
在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
关键词:信号发生器;单片机;DAC0832欢迎下载,希望能帮到您AbstractSignal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc. Currently used mostly signal generator is function generator, a special waveform generator is very expensive .This design is usage of the AT89s51 single-chip microcomputer and DAC0832, which can generate triangle wave, square wave, sine wave, the period of wave can be controlled by procedure, at outer circle spare part of the microcomputer, plus independence type keyboard , which can control wave’s frequency increase or decrease and the choice of wave-form, at the same time LED display frequency size. The output of the microcompute connect DAC0832 to carry on a DA conversion,again pass operation amplifier to put an end exportation wave-form. This design has advantage of simple circuit, tightly packed structure, cheap price, superior function etc.Keywords: signal generator; MCU; DAC083欢迎下载,希望能帮到您目录摘要 (I)Abstract.................................................................................................................... I I 绪论 .. (1)1.1 课题的研究背景和意义 (1)1.2 国内外研究现状 (2)1.3 设计要求 (3)第2章方案选择 (5)2.1 方案选择 (5)2.2 主控模块的选择 (5)2.3 本章小结 (5)第3章硬件电路的设计 (6)3.1 系统的总体设计方案 (6)3.2 单元电路的设计 (7)3.2.1 采样模块及原理 (7)3.2.2 按键电路 (8)3.2.3 显示电路 (11)3.2.4 D/A电路 (12)3.2.5 流压转换电路 (12)3.2.6 单片机与DAC0832的连接 (13)3.3 本章小结 (14)第4章软件设计 (15)4.1 软件的总体设计 (15)4.2 频率改变与波形输出流程图 (16)4.3 频率程序设计 (17)4.4 键盘扫描程序与处理程序 (18)4.5 1602显示程序 (18)4.6 本章小结 (18)第5章系统调试 (19)结论 (20)致谢 (21)附录1 译文 (23)附录2 英文参考资料 (25)附录3 原理图 (28)附录4 源程序 (29)欢迎下载,希望能帮到您绪论1.1 课题的研究背景和意义信号发生器作为一种通用的信号源发生器仪器,早在20年代电子设备刚出现时它就产生了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DAC的输出控制班级: 1221201专业:测控技术与仪器姓名: xxxxx学号: xxxxx指导老师:**东华理工大学 2015年1月12日目录第1章系统设计方案 (2)1.1 设计思路 (2)1.2 方案比较与选择 (2)第2章系统硬件设计……………………………………………………………………….2.2.1 主控制器电路 (2)2.2 数模转换电路 (3)第3章系统软件设计…………………………………………………………………….. .63.1 系统整体流程………………………………………………………………………….. .63.2 数模转换程序………………………………………………………………………….. .6第4章系统调试 (8)4.1 proteus的调试 (8)第5章结论与总结 (11)5.1 结论 (11)(系统总体设计与完成做一个总结,是客观的,主要包括:设计思路,设计过程,测试结果及完善改进的方向。
)5.2 总结 (11)(这是一个主观的总结,谈谈自己收获和不足等方面的内容。
)第1章系统设计方案1.1 设计思路(一)、课设需要各个波形的基本输出。
如输出矩形波、锯齿波,正弦波。
这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
然而为了实现100HZ的频率,终于发现,将总时间除了总步数,根据每步执行时间,算出延时时间,最终达到要求,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。
这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了100赫兹,能够满足我们设计的扩展要求了。
而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,矩形波和锯齿波类似。
(二)、这次做的三种波形可以相互转换,这个实现起来找了很多人最终发现,在每次循环之初进行扫描,而在每个中断入口处,对中断优先级进行设定,最终达到设计目的。
1.2 方案比较与选择方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。
但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:使用集成信号发生器发生芯片,例如AD9854,它可以生成最高几十MHZ的波形。
但是该方案也不能产生任意波形(例如梯形波),并且价格昂贵。
方案四:采用AT89C51单片机和DAC0832数模转换器生成波形,加上一个低通滤波器,生成的波形比较纯净。
它的特点是可产生任意波形,频率容易调节,频率能达到设计的500HZ以上。
性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案四既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案.第2章系统硬件设计2.1 主控制器电路89C52可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。
其内部还有一个控制寄存器,即控制口。
通常A口、B口作为输入输出的数据端口。
C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。
它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
89C52可编程并行接口芯片工作方式说明:方式0:基本输入/输出方式。
适用于三个端口中的任何一个。
每一个端口都可以用作输入或输出。
输出可被锁存,输入不能锁存。
方式1:选通输入/输出方式。
这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。
方式2:双向总线方式。
只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。
原理框图:硬件设计2.2 数模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。
DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。
但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。
DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。
1、DAC0832的引脚及功能:DAC0832是8分辨率的D/A转换集成芯片。
与微处理器兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
各引脚功能说明:D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地DAC0832三种数据输入方式:(1)双缓冲方式:即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。
这种方式可在D/A转换的同时,进行下一个数据的输入,可提高转换速率。
更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。
此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。
(2)单缓冲方式:不需要多个模拟量同时输出时,可采用此种方式。
此时两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入D/A转换电路。
这种方式只需执行一次写操作,即可完成D/A转换。
(3)直通方式:此时两个寄存器均处于直通状态,因此要将、、和端都接数字地,ILE接高电平,使LE1、LE2均为高电平,致使两个锁存寄存器同时处于放行直通状态,数据直接送入D/A转换电路进行D/A转换。
这种方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。
第3章系统软件设计3.1 系统整体流程3.2 数模转换程序#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define DAC0832 P2#define ALL 65536#define Fosc 12000000uchar TH_0,TL_0,flag1,flag=0;uint FREQ=100,num;float temp;uchar code sin_num[]={0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,2, 2, 2,2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7,7, 8, 8, 9, 9,10, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21,22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37,38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56,57, 59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78,80, 81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102,104, 106,107, 109, 110, 112, 113, 115, 116, 118, 120, 121, 123, 124, 126, 128,129, 131, 132, 134, 135, 137, 139,140, 142, 143, 145, 146,148, 149, 151, 153, 154, 156, 157, 159, 160, 162, 163,165, 166, 168, 169, 171, 172, 174, 175, 177, 178, 180, 181, 182, 184, 185, 187,188, 189, 191, 192, 194, 195, 196, 198, 199, 200, 201, 203, 204, 205, 206, 208,209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 224, 225, 226,227, 228, 229, 230, 230, 231, 232, 233, 234, 235, 236, 237, 237, 238, 239, 240,240, 241, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249,250, 250, 251, 251, 251,252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 254,255, 255, 255, 255, 255, 255, 255, 255, 255 };sbit cs=P3^6;sbit change1=P3^2;sbit change2=P3^1;sbit change3=P3^0;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void init(){TMOD=0X01;temp=ALL-Fosc/12.0/256/FREQ;TH_0=(uint)temp/256;TL_0=(uint)temp%256;EA=1;EX0=1;IT0=1;ET0=1;TR0=1;}void changefreq(void){if(change==0){flag++; if(flag==4) {flag=0;num=0;}}TH_0=(uint)temp/256;TL_0=(uint)temp%256;}void sanjiaobo(void){for(num=0;num<255;num++){cs=0;DAC0832=num;cs=1;}for(num=255;num>0;--num){cs=0;DAC0832=num;cs=1;}}void fangbo(void){cs=0;DAC0832=0XFF;cs=1;for(num=0;num<255;num++);cs=0;DAC0832=0X00;cs=1;for(num=255;num>0;num--);}void juchibo(void){cs=0;DAC0832=++num;cs=1;}void zhengxianbo(void){for(num=0;num<255;num++){cs=0;DAC0832=sin_num[num];cs=1;}for(num=255;num>0;num--){cs=0;DAC0832=sin_num[num];cs=1;}}void ext0() interrupt 0{changefreq();}void timer0() interrupt 1{TH0=TH_0;TL0=TL_0;TR0=0;switch(flag){case 0: {sanjiaobo();TR0=1;break;}case 1: {fangbo();TR0=1;break;}case 2: {juchibo();TR0=1;break;}case 3: {zhengxianbo();TR0=1;break;}default: ;}}void main(){init();while(1);}第4章系统调试4.1 proteus的调试矩形波锯齿波正弦波第5章结论与总结5.1 结论基于单片机的信号发生器设计,这个信号发生器的设计中涉及到一个典型的控制过程。