毕业设计(论文)-基于51单片机函数信号发生器设计.doc_第1页
毕业设计(论文)-基于51单片机函数信号发生器设计.doc_第2页
毕业设计(论文)-基于51单片机函数信号发生器设计.doc_第3页
毕业设计(论文)-基于51单片机函数信号发生器设计.doc_第4页
毕业设计(论文)-基于51单片机函数信号发生器设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘摘 要要: : 本系统利用单片机 AT89S52 采用程序设计方法产生锯齿波、正弦波、 矩形波三种波形,再通过 D/A 转换器 DAC0832 将数字信号转换成模拟信号,滤 波放大,最终由示波器显示出来,能产 1Hz3kHz 的波形。通过键盘来控制三 种波形的类型选择、频率变化,并通过液晶屏 1602 显示其各自的类型以及数值, 系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤 其对数/模转换部分和波形产生和变化部分进行详细论述。 关键词关键词:单片机 AT89S52、DAC0832、液晶 1602 Abstract: this system capitalize on AT89s52,it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wave generate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile. In this system it can control wave form choosing, frequency, range,can have the sine wave, the square-wave, the triangular wave. Simultaneously may also take the frequency measurement frequency,and displays them through liquid crystal display of 1602. this design includes three modules. They are D/A conversion module, wave generate module and liquid crystal display of LED module. In this design, the wave generator into wave form module and D/A conversion module are discussed in detail. key word: AT89S52, DAC0832, liquid crystal 1602. 3 目录目录 1 1、 系统设计系统设计.4 1.1、设计要求.4 1.2、方案设计与论证.4 1.3、总体系统设计.6 1.4、硬件实现及单元电路设计.7 1.5 、软件设计流程.10 1.6、源程序.11 2 2、输出波形的种类与频率的测试、输出波形的种类与频率的测试.16 2.1、测量仪器及测试说明.16 2.2、测试过程.16 2.3、测试结果.18 3 3、设计心的及体会、设计心的及体会.19 4 4、附录、附录.19 4.1 参考文献.19 4.2 附图.19 4 1 1、系统设计系统设计 经过考虑,我们确定方案如下:利用 AT89S52 单片机采用程序设计方法产 生锯齿波、正弦波、矩形波三种波形,再通过 D/A 转换器 DAC0832 将数字信号 转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波 形的类型选择、频率变化,最终输出显示其各自的类型以及数值。 1.11.1、设计要求、设计要求 1)、利用单片机采用软件设计方法产生三种波形 2)、三种波形可通过键盘选择 3)、波形频率可调 4)、需显示波形的种类及其平率 1.21.2 方案设计与论证方案设计与论证 1.2.1 信号发生电路方案论证 方案一:通过单片机控制 D/A,输出三种波形。此方案输出的波形不够稳 定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片 IC145152,压控振荡器 搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波, 积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用 MAX038 芯片组成的电路输出波形。MAX038 是精密高频波形 产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案 成本高,程序复杂度高。 以上三种方案综合考虑,选择方案一。 1.2.2 单片机的选择论证 方案一:AT89S52 单片机是一种高性能 8 位单片微型计算机。它把构成计 算机的中央处理器 CPU、存储器、寄存器、I/O 接口制作在一块集成电路芯片 中,从而构成较为完整的计算机、而且其价格便宜。 5 方案二:C8051F005 单片机是完全集成的混合信号系统级芯片,具有与 8051 兼容的微控制器内核,与 MCS-51 指令集完全兼容。除了具有标准 8052 的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他 数字外设及功能部件,而且执行速度快。但其价格较贵 以上两种方案综合考虑,选择方案一 1.2.3 显示方案论证 方案一:采用 LED 数码管。LED 数码管由 8 个发光二极管组成,每只数 码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的 时间间隔小于 1/16s 时人眼感觉不到闪动,看到的是每只数码管常亮。使用数 码管显示编程较易,但要显示内容多,而且数码管不能显示字母。 方案二:采用 LCD 液晶显示器 1602。其功率小,效果明显,显示编程容 易控制,可以显示字母。 以上两种方案综合考虑,选择方案二。 1.2.4 键盘方案论证 方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩 阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈 高电平。当某一个键闭合时,该键所对应的行线和列线被短路。 方案二:编码式键盘。编码式键盘的按键触点接于 74LS148 芯片。当键盘 上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由 74LS148 输出。 以上两种方案综合考虑,选择方案一。 1.31.3 总体系统设计总体系统设计 该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系 统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显 6 示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模 块。图(1)为系统的总体框图 图(1) 总体方框图 1.41.4 硬件实现及单元电路设计硬件实现及单元电路设计 1.4.1 单片机最小系统的设计 89C51 是片内有 ROM/EPROM 的单片机,因此,这种芯片构成的最小系 统简单可靠。用 80C51 单片机构成最小应用系统时,只要将单片机接上时钟 电路和复位电路即可,如图(2) 89C51 单片机最小系统所示。由于集成度的 限制,最小应用系统只能用作一些小型的控制单元。其应用特点: (1)有可供用户使用的大量 I/O 口线。 (2)内部存储器容量有限。 (3)应用系统开发具有特殊性。 7 图(2) 89C51 单片机最小系统 1.4.2 波形产生模块设计 由单片机采用编程方法产生三种波形、通过 DA 转换模块 DAC0832 在进过滤 波放大之后输出。其电路图如下: 图(3)波形产生电路 如上图所示,单片机的 P0 口连接 DAC0832 的八位数据输入端,DAC0832 的输出 端接放大器,经过放大后输出所要的波形。DAC0832 的为八位数据并行输入的, 8 其结构图如下: 图(4)DAC0832 的内部结构 1.4.3 显示模块的设计 通过液晶 1602 显示输出的波形、频率,其电路图如下: 图(5)液晶显示 如上图所示,1602 的八位数据端接单片机的 P1 口,其三个使能端 9 RS、RW、E 分别接单片机的 P3.2P3.4。通过软件控制液晶屏可以显示波形的 种类以及波形的频率。 1.4.4 键盘显示模块的设计 本系统采用独立键盘,其连接电路图如下: 图(6)键盘 图中键盘独立键盘引出的八跟线分别接单片机的 P2 口,只用其第四列,因 此在程序初始化时 P2.7 脚给低电平。如图开关 3 用来切换输出波形、开关 7 和 8 用来调节频率的加减。当按开关 7 时输出波形的频率增加,按开关 8 时输 出波形的频率减小。 1.51.5 软件设计流程软件设计流程 本系统采用 AT89S52 单片机,用编程的方法来产生三种波形,并通过编程 来切换三种波形以及波形频率的改变。 具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增 减等。 软件调通后,通过编程器下载到 AT89S52 芯片中,然后插到系统中即可独 立完成所有的控制。 软件的流程图如下: 10 图(7)程序流程图 1.61.6 源程序源程序 #include #define uchar unsigned char #define uint unsigned int sbit lcdrw=P33; sbit lcdrs=P32; sbit lcde=P34; sbit d=P27; sbit s1=P20; sbit s2=P21; sbit s3=P22; sbit cs=P35; sbit wr=P36; uchar s1num,a,ys,j; uint fre; uchar code tosin256= 0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2, 0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5, 11 0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1, 0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5, 0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff, 0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd, 0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1, 0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda, 0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc, 0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99, 0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76, 0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51, 0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30, 0 x2e,0 x2b,0 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,0 x18,0 x16, 0 x15,0 x13,0 x11,0 x10,0 x0e,0 x0d,0 x0b,0 x0a,0 x09,0 x08,0 x07,0 x06, 0 x05,0 x04,0 x03,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x02,0 x02,0 x03,0 x04,0 x05, 0 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x0d,0 x0e,0 x10,0 x11,0 x13,0 x15, 0 x16,0 x18,0 x1a,0 x1c,0 x1e,0 x20,0 x22,0 x25,0 x27,0 x29,0 x2b,0 x2e, 0 x30,0 x33,0 x35,0 x38,0 x3a,0 x3d,0 x40,0 x43,0 x45,0 x48,0 x4c,0 x4e, 0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72, 0 x76,0 x79,0 x7c,0 x80 ;/*正弦波码 */ void delay(uint z)/延时子程序 uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-); void delay1(uint y) uint i; for(i=y;i0;i-); void write_com(uchar com) /1602 写指令 lcdrs=0; P1=com; delay(5); lcde=1; delay(5); lcde=0; void write_data(uchar date) /1602 数据 lcdrs=1; 12 P1=date; delay(5); lcde=1; delay(5); lcde=0; void init() /初始化 lcdrw=0; lcde=0; wr=0; cs=0; write_com(0 x38); write_com(0 x0c); write_com(0 x06); write_com(0 x01); write_com(0 x80+0 x00); write_data(0 x77); /写 wave: write_data(0 x61); write_data(0 x76); write_data(0 x65); write_data(0 x3a); write_com(0 x80+0 x40); /写 f: write_data(0 x66); write_data(0 x3a); void write_f(uint date) /写频率 uchar qian,bai,shi,ge; qian=date/1000; bai=date/100%10; shi=date/10%10; ge=date%10; write_com(0 x80+0 x42); write_data(0 x30+qian); write_data(0 x30+bai); write_data(0 x30+shi); write_data(0 x30+ge); write_data(0 x48); write_data(0 x5a); void xsf()/显示频率 if(s1num=1) 13 fre=(1000/(9+3*ys); write_f(fre); if(s1num=2) fre=(100000/(3*ys); write_f(fre); if(s1num=3) fre=(1000/(15+3*ys); write_f(fre); void keyscanf() d=0; if(s1=0) delay(5); if(s1=0) while(!s1); s1num+; if(s1num=1) ys=0; write_com(0 x80+0 x05); write_data(0 x73); /写 sine: write_data(0 x69); write_data(0 x6e); write_data(0 x65); write_data(0 x20); write_data(0 x20); if(s1num=2) ys=10; write_com(0 x80+0 x05); write_data(0 x73); /写 squrae write_data(0 x71); write_data(0 x75); 14 write_data(0 x61); write_data(0 x72); write_data(0 x65); if(s1num=3) ys=0; write_com(0 x80+0 x05); /train write_data(0 x74); write_data(0 x72); write_data(0 x61); write_data(0 x69); write_data(0 x6e); write_data(0 x20); if(s1num=4) s1num=0; P1=0; write_com(0 x80+0 x05); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_com(0 x80+0 x42); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); write_data(0 x20); if(s2=0) delay(5); if(s2=0) while(!s2); ys+; 15 if(s3=0) delay(5); if(s3=0) while(!s3); ys-; void main() init(); while(1) keyscanf(); if(s1num=1) /正弦波/ for(j=0;j255;j+) P0=tosinj; delay1(ys); if(s1num=2) /方波/ P0=0 xff; delay1(ys); P0=0; delay1(ys); if(s1num=3) /三角波/ if(a128) P0=a; delay1(ys); else P0=255-a; delay1(ys); 16 a+; if(!(s1 2 2、输出波形的种类与频率的测试输出波形的种类与频率的测试 2.12.1、测量仪器及测试说明、测量仪器及测试说明 测量仪器:稳压电源、示波器、数字万用表。测量仪器:稳压电源、示波器、数字万用表。 测量说明:正弦波、矩形波、三角波信号的输出,通过对独立键盘来实现 其的不同波形的输出以及其频率的改变。 2.22.2 测试过程测试过程 当程序下进去时经过初始化,液晶屏的上只显示当程序下进去时经过初始化,液晶屏的上只显示“wave:”和和“f:“,当,当 开关三按一下是此时输出波形为正弦波,按两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论