本科论文-基于单片机的函数信号发生器的设计与仿真.doc_第1页
本科论文-基于单片机的函数信号发生器的设计与仿真.doc_第2页
本科论文-基于单片机的函数信号发生器的设计与仿真.doc_第3页
本科论文-基于单片机的函数信号发生器的设计与仿真.doc_第4页
本科论文-基于单片机的函数信号发生器的设计与仿真.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计(论 文)论文题目: 基于单片机的信号发生器设计 所属系部: 自动化工程学院指导教师: 晁林 职称: 讲师学生姓名: 张鑫 学号: 11604115专业: 生产过程自动化西安航空职业技术学院制毕业设计(论文)任务书题目: 基于单片机的信号发生器设计任务与要求: 1、能够产生常见的信号波形,如方波,正弦波,三角波, 且频率可控。 2、产生的信号波形从能够从示波器显示出来。时间:2013年 9月1日 至 2013 年 11月 1 日 共 8周所属系部: 自动化工程学院学生姓名: 张鑫 学 号:11604115专业: 生产过程自动化指导单位或教研室: 生产过程自动化教研室指导教师: 晁林 职 称: 讲师 西安航空职业技术学院制 1.毕业设计(论文)进度计划表日 期工 作 内 容执 行 情 况指导教师签 字9月1日至10日领取设计题目,材料的收集准备阶段9月11日至20日初步设计阶段9月21日至10月1日提高部分设计阶段10月2日至11日设计完成调试10月12日至15日总体设计完成10月16日至20日计算机上调试成功10月21日至30日完成设计并提交论文教师对进度计划实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一。摘 要 本系统利用单片机80c51采用程序设计方法产生方波、正弦波、三角波三种波形,再通过D/A转换器将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。 关键词:单片机80c51;D/A转换器;数/模转换器;液晶显示24 Abstractthis 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 detailKey word; capitalize;D/A conversion module目录 1 引言.1 1.1单片机概述.2 1.2信号发生器概述.2 1.3研究报告.22方案的设计与选择.2 2.1方案的比较.3 2.2设计原理.3 2.3设计思想.4 2.4设计功能.43硬件设计.5 3.1硬件原理框图.5 3.2主控电路.5 3.3数模转换电路.6 3.4按键接口电路.6 3.5时钟电路.7 3.6显示电路.74软件设计.7 4.1程序流程图与仿真图.7 结论.15 答谢.16 参考文献.16 1. 引言1.1单片机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的1,2。1.2信号发生器的分类范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器1,2。1.3研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出 2. 方案的设计与选择2.1 方案的比较方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省3,4。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。80C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将80C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。输出滤波放大D/A转换器接口电路80C51单片机图2-1信号发生器原理框图 如图2.1所示80C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。2.3 设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率。(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为,用单片机的定时器产生,其表示式为: 。如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为: (2.1)定时时间常数为: (2.2) (2.3)MOD32表示除32取余数(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为: 其中 (2.4) 其中 (2.5)那么对应着存放在计算机里的这一点的数据为: (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1TAB4为起始地址的存储器中。2.4 设计功能本方案利用8255A扩展8个独立式按键,6个LED显示器。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3” 号键代表锯齿波输出。 “S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。利用DAC0832实现频率可调的信号源。频率范围:10Hz,100Hz,500Hz,1000Hz。输出波形幅度为05V。3. 硬件设计3.1硬件原理图 硬件原理方框图如图3.1所示。显示电路放大电路 单片机数/模转换电路键盘电路波形输出复位电路图3-1 硬件原理框图如图3.1所示80C51单片机为硬件系统的核心,单片机对键盘扫描读入键值确定波形与频率,通过显示电路显示频率值,通过数模转换器放大电路输出波形,通过示波器可以观察波形与频率,复位电路用于系统复位重启。3.2主控电路图3-2 主控电路图如图3.2所示,80C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8255A的信号控制端,用于控制其信号的输入、输出。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8255A的PB口输出,并在数码管上显示出来。3.3电路 数/模转换由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。图3-3 数模转换电路由图3.3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V。若P0口向其送的数据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,vout = - 5V.当输出电压为- 5V时,可得:vout = +5V,所以输出波形的电压变化范围为- 5V+ 5V. 故可推得当P0所送数据为80H时,Vout为0V6。公式如右所示:3.4 按键接口电路图3-4 按键接口电路图3.4为键盘接口电路的原理图,图中键盘和8255A的PA口相连,80C51的P0口和8255A的D0口相连,80C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出。 “S3”号键代表锯齿波输出,“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号73.5 时钟电路8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3.5所示。图3-5 时钟电路如图3.5所示电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器选择频率为12MHz的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形9。3.6 显示电路图3-6 LED显示电路如图3.6所示显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用LED数码管显示器。而且LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据10。4. 软件设计4.1 程序流程图本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。按下复位键后系统对8255A初始化,再通过键盘按钮确认频率与波形选择。首先判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。 开始主程序流程图:80c51初始化10hz N100hz N Y根据频率值置新的时间常数显示频率值 中断设置开中断1khz锯齿波三角波方波正弦波500hz N YYYN NY NYYY图4-1 主程序流程图如图4.1所示,在程序开始运行之后,首先是对8255A进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。下面说明主程序流程图的程序实现:1.开始:ORG 0000H 程序开始执行,首先觉得跳转到主程序AJM MAINORG 000BH 定时器0中断入口地址,跳转到中断服务程序LJMP TC0ORG 0030H2.8255A初始化:MOV DPTR,#7F00H 指向8255A命令字端口地址MOV A,#06H 设置A口为输入,B口、C口为输出MOVX DPTR,A 命令字(8255A初始化)3.判断信号频率:MOV DPTR,#7F01H 指向A口地址MOVX A,DPTR ;读入A口的开关数据JNB ACC.4,K10H 判断是否“4键”,是则转输出10Hz信号,不符合则返回JNB ACC.5,K100H 判断是否“5键”,是则转输100Hz信号,不符合则返回JNB ACC.6,K500H 判断是否“6键”,是则转输出500Hz信号,不符合则返回JNB ACC.7,K1K 判断是否“7键”,是则转输出1KHz信号,不符合则返回AJMP MAIN 无键按下则返回等待4.根据频率值置新的时间常数,以显示10HZ 为例,其他原理相同不做论述:K10H:MOV 30H,#00H 显示10HzMOV 31H,#00H 初始化显示缓冲段MOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00H 写定时器工作方式 MOV TL0,#15H 置新的时间常数MOV TH0,#9EHAJMP PD5.显示频率值,下面以显示10HZ 为例,其他原理相同不做论述:K10H:MOV 30H,#00H 显示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 调用显示子程序6.显示子程序:LED1: MOV R3,#06H 设置6个LED显示MOV R2,#01H 选通第一位LED数据MOV R1,#30H 送显示缓冲区首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位选通数据送AMOVX DPTR,A 位选通数据送C口RL A 通下一位MOV R2,A 位选通数据送R2中保存MOV A, R1 取键值MOV DPTR,#TAB 送LED显示软件译码表首址MOVC A,A+DPTR 查表求出键值显示的段码MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段码送显示LCALL LOOP1 调延时子程序INC R1 指向下一位显示缓冲区地址DJNZ R3,GN1 循环显示6个LEDRET7.中断设置开中断:GN: SETB TR0 启动定时器SETB ET0 开定时器0中断SETB EA 开总中断8判断波形:PD:JNB ACC.0,KE0 “0”号键按下,若是则转方波输出JNB ACC.1,KE1 “1”号键按下,若是则转正弦方波输出JNB ACC.2,KE2 “2”号键按下,若是则转三角波输出JNB ACC.3,KE3 “3”号键按下,若是则转锯齿波输出LJMP PD 无键按下则返回等待波形子程序的流程图:方波?发出D/A转换值查表求出数据正弦波?发出D/A转换值查表求出数据三角波?发出D/A转换值查表求出数据锯齿波发出D/A转换值查表求出数据返回中断服务程序开始YYNNNY图4-2 子程序流程图如图4.2所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。下面说明子程序流程图的程序实现:1.中断服务程序开始:LJMP TC0 绝对跳转到中断服务程序2.判断是否是方波及处理方法:TC0:CJNE R7,#00H,TC1 判断是否是方波,不是则跳转MOV DPTR,#TAB1 送方波数据表首址MOV A,R6 发送数据寄存器MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL13.判断是否是正弦波及处理方法:TC1:CJNE R7,#01H,TC2 判断是否是正弦波,不是则跳转MOV DPTR,#TAB2 送正弦波数据表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL14.判断是否是三角波及处理方法:TC2:CJNE R7,#02H,QL1 判断是否是三角波,不是则跳转MOV DPTR,#TAB3 送三角波数据表首址MOV A,R6MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL15.判断是否是锯齿波及处理方法:TC3:CJNE R7,#03H,QL1 判断是否是锯齿波,不是则跳转MOV DPTR,#TAB4 送锯齿波数据表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00H四种波形的仿真波形图如下:在仿真环境下,运行仿真软件,按要求操作键盘将会出现如下波形图,各个波形的仿真图有四种不同的频率,在此不一一列出波形图。图4-3方波如图4.3方波图,横坐标为时间轴每小格表示1.33ms,纵坐标为幅值轴每小格为1.00mv。当“S0”键按下是将产生方波,键“S4”“S7”决定方波的频率。“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号。图4-4正弦波如图4.4正弦波图,横坐标为时间轴每小格表示1.33ms纵坐标为幅值轴每小格为1.00mv。当“S1”键按下是将产生正弦波,键“S4”“S7”决定正弦波的频率。“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号。图4-5三角波如图4.5三角波图,横坐标为时间轴每小格表示1.33ms纵坐标为幅值轴每小格为1.00mv。当“S2”键按下是将产生三角波,键“S4”“S7”决定三角波的频率。“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号。图4-6锯齿波如图4.6锯齿图,横坐标为时间轴每小格表示1.33ms纵坐标为幅值轴每小格为1.00mv。当“S3”键按下是将产生锯齿波,键“S4”“S7”决定锯齿波的频率。“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号。5. 结束语基于单片机的函数信号发生器的设计与仿真已全部完成,所设计的函数信号发生器有一定的实用价值和经济价值。能按预期的效果通过按键“S0”“S3”实现了方波,正弦波,三角波,锯齿波四种波形切换,键“S4”“S7”决定锯齿波的频率,波形标准美观频率稳定可调。并且在数码管上显示出波形的频率。在函数信号发生器系统的4个模块中,最重要的是主控模块,其它还有显示模块,按键模块,信号输出模块。各模块完成后,将它们组合成完整的函数信号发生器系统。在设计过程中还需改进的地方是在频率的选择上,频率选择只能是10HZ、100HZ、500HZ、1000HZ,理想情况下频率选择应该更加精确。本文所用的汇编语言为机器语言,相对来说复杂难懂,移植性差,可读性差,但是代码效率高,其本质作用在于直接控制硬件,因而会受到硬件环境的限制,因此做系统是编程语言的选择尤为重要西安航空职业技术学院 毕业设计论文谢辞 毕业设计,也许是我大学生涯交上的最后一个作业了。想借这次机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富是我生命中不可或缺的一部分。我的毕业设计指导老师晁林,能以一位学者的风范来容谅我的粗心和无知,给我不厌其烦的悉心指导。在此,特向他道声谢谢。虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段每一字都有我的劳动。当看着自己两个月的成果,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。

温馨提示

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

评论

0/150

提交评论