51单片机课程设计多功能信号发生器设计.doc

上传人:文库蛋蛋多 文档编号:4146105 上传时间:2023-04-07 格式:DOC 页数:36 大小:1.50MB
返回 下载 相关 举报
51单片机课程设计多功能信号发生器设计.doc_第1页
第1页 / 共36页
51单片机课程设计多功能信号发生器设计.doc_第2页
第2页 / 共36页
51单片机课程设计多功能信号发生器设计.doc_第3页
第3页 / 共36页
51单片机课程设计多功能信号发生器设计.doc_第4页
第4页 / 共36页
51单片机课程设计多功能信号发生器设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《51单片机课程设计多功能信号发生器设计.doc》由会员分享,可在线阅读,更多相关《51单片机课程设计多功能信号发生器设计.doc(36页珍藏版)》请在三一办公上搜索。

1、河南理工大学单片机应用与仿真训练设计报告多功能信号发生器设计姓 名: 王彦凯 王翱翔 专业班级: 电仪 09-03 指导老师: 王 莉 所在学院:电气工程与自动化学院2012年6月25 日摘要本设计是多功能信号发生器,以 AT89S52 单片机为核心,通过按键输入控制输出信号的类型、频率和幅值,采用 DA 转换芯片DAC0832输出相应的波形,同时以LED 显示器进行实时显示信号相关信息。我们采用 C 语言进行编程,可实现100-1Khz的方波,锯齿波,三角波和正弦波四种波形的产生,且波形的频率、幅值可通过按键调节,并显示在数码管上。而且,波形的幅值还可通过电位器实现无极调幅,增加了可选幅值范

2、围。经测试该设计方案线路优化,结构紧凑,性能优越,满足设计要求。关键字:单片机AT89S52,DAC0832,信号发生器目录第1章 概述11.1选题背景及其意义11.2 单片机概述11.3 信号发生器分类11.4 研究题目及其意义2第2章 信号发生器方案设计与选择32.1 方案的设计与选择32.2 设计原理简介32.3 设计功能5第3章 主要电路元器件介绍63.1 AT89S52单片机简介63.1.1 单片机简介63.1.2主要性能63.1.3 管脚功能说明73.2 DAC0832简介83.2.1 DAC0832的主要特性参数83.2.2 DAC0832结构83.2.3 DAC0832工作方式

3、93.3 数码显示管103.3.1 原理及分类103.3.2 显示器的工作方式103.3.3 数码管字型码11第4章 单元电路的硬件设计124.1 硬件原理框图124.2 单片机 AT89S52 系统的设计124.3 时钟电路134.4复位电路134.5数码管电路144.6 DAC0832模数转换电路154.7 LM324运放电路和低通滤波电路164.8 按键和波形指示LED电路17第5章 系统软件设计185.1软件开发环境简介185.1.1 Keil uVision4简介185.1.2 Proteus7.10 简介195.1.3 Keil 与Proteus 联合调试仿真195.2主程序205

4、.3按键处理程序215.4 数码管输出程序分析225.5 各种波形产生思路225.5.1 方波产生思路225.5.2 锯齿波产生思路225.5.3 三角波产生思路235.5.4 正弦波产生思路235.6 仿真的各种波形效果23第6章 课程设计体会24参考文献25致 谢26附1:源程序代码271.主程序272.头文件27附 2:系统原理图31附 3:实物效果图32第1章 概述1.1选题背景及其意义信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如方波、锯齿波、三角波、正弦波的电路被称为函数信号发生器。在通信、广播、电

5、视系统,在工业、农业、生物医学领域内,函数信号发生器在实验室和设备检测中具有十分广泛的用途。信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。一旦工作需

6、求功能有增加,则电路复杂程度会大大增加1.2 单片机概述单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机具有集成度高、系统结构简单、使用方便、实现模块化、可靠性高、处理功能强、速度快等特点,因为被广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1.3 信号发生器分类信号发生器是指产生所需参数的

7、电信号的仪器。因其应用广泛,种类繁多,特性各异,分类也不尽一致。按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号发生器等四大类;按频率覆盖范围分为低频信号发生器、高频信号发生器和微波信号发生器;按输出电平可调节范围和稳定度分为简易信号发生器、标准信号发生器和功率信号发生器;按频率改变的方式分为调谐式信号发生器、扫频式信号发生器、程控式信号发生器和频率合成式信号发生器等。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。1.4 研究题目及其意义信号发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较大、

8、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景。以满足工业领域对信号源的要求。本次试验实现利用单片机 AT89S52 和 8 位 D/A 转换芯片 DAC0832 共同实现方波、锯齿波、三角波、正弦波这四种常用波形的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输

9、出。并且可以通过数码管和键盘显示模块,键盘可以实现对几种波形的切换。第2章 信号发生器方案设计与选择信号发生器是指产生所需参数的电信号的仪器。按信号波形可分为正弦信号、波形信号、脉冲信号和随机信号发生器等四大类。本文利用单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过 D/A 转换器 DAC0832 把数字信号转变为模拟信号,经 LM324 放大输出到示波器,与此同时外接 8 位 LED 数码管显示输出信号的类型、频率和幅值。2.1 方案的设计与选择方案一:NE555数字芯片结合外围电路,组成波形发生器,能够产生,方波,三角波,锯齿波和正弦波,电路简单,而且,频率和幅

10、值都能调节,但是不能显示频率。方案二:采用单片函数发生器可产生正弦波、方波等,操作简单易行,用 D/A 转换器的输出来改变调节电压,可以实现数控调整频率,但产生信号的频率稳定度不高。方案三:利用芯片组成的电路输出波形,MAX038 是 MAXIM 公司生产的一个只需要很少外部元件的精密高频波形产生器,他能产生准确的高频正弦波、三角波、方波。输出频率和占空比可以通过调整电流、电压或电阻来分别地控制。所需的输出波形可由在 A0和 A1 输入端设置适当的代码来选择,且具有输出频率范围宽、波形稳定、失真小、使用方便等特点。方案四:采用 Atmel 公司的 AT89S52单片机编程方法实现,该方法的可以

11、通过编程的方法控制信号波形的频率和幅度,而在硬件电路不便的情况下,通过程序实现频率的变化和输出波形的选择,并同时在显示器显示相应的结果。方案一和二输出信号频率不够稳定;方案三成本高,程序复杂度高;方案四,软硬件结合,硬件成本低,软件起点低,优化型相对比较好,容易实现,且满足设计要求。综合考虑,我们采用了方案四,用 AT89S52 单片机设计多功能信号发生器,能够满足信号的频率稳定性和精度的准确行。2.2 设计原理简介该设计设计一个多功能信号发生器,我们采用的是 AT89S52 单片机用软件实现信号的输出。该单片机是一个微型计算机,包括中央处理器 CPU,RAM,ROM、I/O 接口电路、定时计

12、数器、串行通讯等,是波形设计的核心。该信号发生器原理框图如图 2.1,总体原理为:利用 AT89S52 单片机构造多功能信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过 C 语言对单片机的编程即可产生相应的波形信号,并可以通过键盘进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。图2-1 系统框图本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A 转化及 LED 显示。其各个模块的工作原理如下:1.复位电路是为单片机复位使用,使单片机接口初始化;89C51 等 CM

13、OS51 系列单片机的复位引脚 RET 是施密特触发输入脚,内部有一个上拉低电阻,当振荡器起振以后,在 RST 引脚上输出 2 个机器周期以上的高电平,器件变进入复位状态开始,此时 ALE、PSEN、P0、P1、P2、P4 输出高电平,RST 上输入返回低电平以后,变退出复位状态开始工作。该方案采用的是人工开关复位,在系统运行时,按一下开关,就在 RST 断出现一段高电平,使器件复位。2.时钟信号是产生单片机工作的时钟信号,控制着计算机的工作节奏,可以通过提高时钟频率来提高 CPU 的速度。AT89S52 内部有一个可控的反相放大器,引脚 XTAL1、XTAL2 为反相放大器输入端和输出端,在

14、 XTAL1、XTAL2 上外接 12MHZ 晶振和 30pF 电容便组成振荡器。时钟信号常用于 CPU 定时和计数。3.键盘模块是是用于控制信号输入的类型,当按键按下时,可以通过单片机编AT89S52单片机数/模准换器、DAC0832、LM324、运放放大、接口电路、键盘输入程读取闭合的键号,实现相应的信号输出。其步骤主要是a、判断是否有键按下;b、去抖动,延时 20ms 左右;c、识别被按下的键号;d、处理,实现功能。4.D/A 转换也称为数模转换,是把数字量变换成模拟量的线性电路。单片机产生的数字信号通过 DAC0832 转化成模拟信号,输出相应的电流值,通过LM324 集成运算放大器可

15、以取出模拟量得电压值,最后利用示波器获得输出的模拟信号的波形;衡量数模转换的性能指标有分辨率、转换时间、精度、线性度等。LED 显示器用由若干个发光二极管按一定的规律排列而成,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光用于是显示相关输出波形的信息,包括信号的类型、频率和幅值。2.3 设计功能1.产生方波、锯齿波、三角波、正弦波四种波形频率100HZ-1KHZ,按键可实现步进100HZ调节。2.产生-5V- +5V的幅值的波形信号,幅值调节可选按键步进0.1V,也可选择用电位器无极调节。3.显示采用 8 位 LED 显示器,前两位显示幅值;后四位显示频率。4.按键输入

16、采用8个按键实现输入,P00-P07。表 2.1按键功能及IO借口方波锯齿波三角波正弦波幅值加幅值减频率加频率减按键K8K7K1K2K6K3K5K4I/OP0.7P0.6P0.0P0.1P0.5P0.2P0.4P0.3第3章 主要电路元器件介绍3.1 AT89S52单片机简介3.1.1 单片机简介AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程

17、Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。其外形及引脚排列如图 3-1所示。 图 3-1 51单片机引脚图3.1.2主要性能 与MCS-51单片机产品兼容; 8K字节在系统可编程Flash存储器; 1000次擦写周期; 全静态操作:0Hz-33MHz; 三级加密程序存储器; 32个可编程I/O口线; 三个16位定时器/计数器; 六个中断源; 全双工UART串行通道; 低功耗空闲和掉电模式; 掉电后中断可唤醒; 看门狗定时器; 双数据指针; 掉电标识符。3.1.3 管脚功能说明 VCC:供电电压 46V 典型值 5V); GND:接地; RST:复位引脚输入高电平使

18、89C51 复位,返回低电平退出复位; EA/Vpp:运行方式时,EA为程序存储器选择信号,EA接地时 CPU 总是从外部存储器中取指令,EA接高电平时 CPU 可以从内部或外部取指令;FLASH 编程方式时,该引脚为编程电源输入端 Vpp(=5V 或 12V); PSEN:外部程序存储器读选通信号,CPU 从外部储存器取指令时,从PSEN引脚输出读选通信号(负脉冲); ALE/ PROG:运行方式时,ALE 为外部储存器低8位地址锁存信号,FLASH 编程方式时,该引脚为负脉冲输入端; XTAL1,XTAL2 为内部振荡器电路(反相放大器)的输入端和输出端,外接晶振电路; P0 口:P0 口

19、为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH进行校验时,P0 输出原码,此时 P0 外部必须被拉高; P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收;

20、 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号; P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O

21、口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89S52 的一些特殊功能口如表 3.1。表 3.1 引脚第二功能引脚第二功能P3.0RXD(串行输入口)P3.4T0(记时器 0 外部输入)P3.1TXD(串行输出口)P3.5T1(记时器 1 外部输入)P3.2/INT0(外部中断 0)P3.6/WR(外部数据存储器写选通)P3.3/INT1(外部中断 1)P3.7/RD(外部数据存储器读选通)3.2 DAC0832简介 DAC0832是8分

22、辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。3.2.1 DAC0832的主要特性参数* 分辨率为8位; * 电流稳定时间1us; * 可单缓冲、双缓冲或直接数字输入; * 只需在满量程下调整其线性度; * 单一电源供电(+5V+15V); * 低功耗,20mW。3.2.2 DAC0832结构* D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错); * ILE:数据锁存允许控制信号输入

23、线,高电平有效; * CS:片选信号输入线(选通数据锁存器),低电平有效; * WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存; 图 3-2 DAC0832的逻辑框图和引脚排列* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; * WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时

24、将数据锁存器的内容打入DAC寄存器并开始D/A转换。 * IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化; * IOUT2:电流输出端2,其值与IOUT1值之和为一常数; * Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; * Vcc:电源输入端,Vcc的范围为+5V+15V; * VREF:基准电压输入线,VREF的范围为-10V+10V; * AGND:模拟信号地 * DGND:数字信号地3.2.3 DAC0832工作方式单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟

25、量输出或几路模拟量异步输出的情形。 双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。 直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。3.3 数码显示管3.3.1 原理及分类一位 LED 显示器由 8 个发光二极管组成,其中 7 个发光二极管 a-h控制 7 个笔画段的亮或暗,另一位控制一个小数点的亮和暗

26、。LED 显示器有共阴极和共阳极 2 种形式,其结 图 3-3 数码管结构图 构如图3-3所示。共阳极显示器是发光二极管的阳极连接在一起,当需要显示某字符时,只需要将共阳极端接高电平,a-h 中某些位接低电平即可。共阴极显示器是发光二极管的阴极连接在一起,当需要显示某字符时,只需要将共阴极端接低电平,a-h 中某些位接高电平即可。3.3.2 显示器的工作方式显示器的工作方式分为静态显示方式和动态显示方式两种。 静态显示方式 静态显示方式就是显示器在显示一个字符时,相应的发光二极管恒定的导通或截止,例如 a、b、c、e、f 导通,g 截止时显示“0”,这种使显示器显示字符的字形数据常称为段数据。

27、静态显示方式的每一个七段显示器,需要由一个 8 位并行口控制。优点是显示稳定,提高了工作效率,缺点是位数较多时显示口随之增加。 动态显示方式动态显示方式是一位一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数可以实现亮度较高较稳定的显示,如显示器的位数不大于 8 位,则控制显示器公共极的电位只需要一个 8 位口(位数据口),控制字形也需要一个 8 位口(段数据口)。3.3.3 数码管字型码要使显示管显示不同的数字或者字符,需要使端口输出相应的字型码,显示器的字形与字码关系如表 3.1:表 3.

28、2 显示器字形与字型码对应关系表第4章 单元电路的硬件设计硬件电路的设计决定一个系统的的功能,是设计的基础所在,而一般设计的目标:可靠,简洁,高效,优化,好的硬件电路可以给程序的编写带来极大的优势,同时使可以很好的提高该信号设计的精度和灵敏度,使整个系统工作协调有序。4.1 硬件原理框图对于该低频信号发生器的设计,我们采用了以AT89S52单片机芯片作为核心处理器,编程实现各种不同类型信号的产生,最后通过 DA 转换输出到示波器。结构简单,思路仅仅有条,而根据设计的基本要求,我们又把其细分为不同的功能模块,各个功能模块相互联系,相互协调,通过单片机程序构成一个统一的整体,其整体电路原理框图如图

29、4-1 所示:键 盘输 入时钟复位AT89S52单片机8位数码管4个LEDDAC0832LM324电源(+5V、+12V、-12V)电源+12v、-12V图4-1硬件原理框图4.2 单片机 AT89S52 系统的设计AT89S52 单片机是该信号发生器的核心,具有 2 个定时器,32 个并行 I/O 口,1 个串行 I/O 口,5 个中断源。由于本设计功能复杂,数据处理精确,数据存储空间也足够,因为我们采用了片选法选择芯片,进行芯片的选择和地址的译码。在单片机最小最小系统中,单片机从 P0.0-P0.7 口接收来自按键的信号,并通过 P1.0-P1.7 口输出DAC0832的8位数据,通过 D

30、A 转换芯片最终由示波器显示输出波形;P2给锁存器74HC573送数据,P2分时送段信号和位信号。P3.7和P3.6分别控制送的是位还是段选信号。2个74HC573一个用来所存段选,另一个锁存位选。P3.5、P3.4、P3.3、P3.2分别是方波、锯齿波、三角波、正弦波的指示灯控制口。4.3 时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。在引脚XTAL1 和 XTAL2 外接晶体振荡器,构成了内部振荡方式。由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动时钟脉冲。晶振通常选用 6MHZ、12MHZ、24MHZ。本设计中时钟电路图如图4

31、-2,我们选择了12MHZ和晶振分别接引脚XTAL1和XTAL2,电容 C1,C2 均选择为 30pF,对振荡器的频率有稳定作用,当频率较大时,正弦波、方波、三角波及锯齿波中每一点的延时时间为几微妙,故延时时间还要加上指令时间才能获得较大的频率波形。图 4-2 时钟电路4.4复位电路复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。本设计选择了按键复位如图 4-3,在系统运行时,按一下按键,就在 RST 断出现

32、一段高电平,使器件复位。此时 ALE、PSEN、P0、图 4-2时钟电路图P1、P2、P4 输出高电平,RST 上输入返回低电平以后,变退出复位状态开始工作。图 4-3 复位电路4.5数码管电路本设计选择了 8 位共阴极数码管如图 4-4,它的 8 个发光二极管的阴极(二极管正端)连接在一起,通常公共阴极接低电平电平,其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。图 4-4 数码管电路显示电路用于显示信号的

33、波形种类和信号的频率,并且使系统能根据按键实时显示先关信息。该系统中添加 两个74LHC573 锁存器,用于驱动数码显示管,使其更易于控制,增加显示的准确性。利用 P3.6和P3.7 控制数码管的段选和位选。其中2位数码管显示幅值,4位数码管显示频率,幅值是以0.1V步进显示,频率是以100HZ步进显示。4.6 DAC0832模数转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分

34、组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计选用直通方式。DAC0832的数据口和单片机的P2口相连。CSDA:片选信号输入线(选通数据锁存器),低电平有效;WR:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时

35、将输入数据锁存;图 4-5 DAC0832电路系统硬件设计时考虑到要求波形的频率和幅值都可调,因此有两种方案方案一:用按键来输入相应的波形类型、频率和幅值,然后,由单片机通过程序实现波形类型、频率和幅值的改变。方案二:用按键选择波形类型,设置波形的频率,但是,通过电位器调节DAC0832的参考电压来实现幅值的可调。经过仔细分析发现,方案一实施起来比较困难,因为,在调节波形的频率的时候将会面临波形的点数问题,例如,一个三角波一个周期30个点,当设置的频率较低时,需要增加点数,不然波形将会失真严重,当频率较高时,为了满足频率的要求,一个周期内波形的点数又不能太多。同时,波形要实现幅值可调也要考虑点

36、数问题,当点数太多时,如果只有0.1V在这么小的幅值里以DAC0832的分辨率根本分不出30个点。综上所述,实现波形的幅值和频率可调都将同时影响波形一个周期内的点数,这是一个有些复杂的技术问题,相对来说,方案一通过按键实现这一功能有些复杂,不一定能实现,因此,硬件电路里综合考虑了两种方案。即系统电路既可以以方案一工作又能以方案二工作即波形频率可通过案件调节,波形幅值即可通过按键步进0.1V调节还能通过调节电位器调节DAC0832参考电压实现更多幅值的选择增加了系统的功能。选择方案只需通过一个跳线帽的位置来实现。4.7 LM324运放电路和低通滤波电路 图 4-6 LM324运放电路和低通滤波电

37、路LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连.第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。题目要求输出的电压在0-5V可调,而V1的电压大约是5V,所以R1选择5K的电阻,R2选择10K的电位器,这样最大的输出电压为5*(10/2)=10,最小电压为0,可以实现题目要求的0-5V。在第二个运算放大器的输出端连了一个低通滤波器。如果不加低通滤波器,也能够生成波形

38、,但是产生的信号中毛刺很多,加一个低通滤波器不仅起到的滤波的作用,还起到了平滑的作用。低通滤波器的截止频率F=1/(2*pi*R3*C6),这里我们选择R3 为100欧姆电阻,C6为104电容,截止频率F=16KHZ。实验表明,此时的输出波形效果不错。4.8 按键和波形指示LED电路图 4-7 波形指示LED和按键电路本系统有4中波形产生分别是:方波、锯齿波、三角波和正弦波。每种波形对应相应的LED灯,当选择方波模式时单片机的P3.5输出高电平DS1就亮了,显示出,现在的波形模式是方波,同理DS2-锯齿波,DS3三角波,DS4正弦波。由于需要实现波形、幅值和频率的可调,所以,通过8个按键实现输

39、入。4个按键是波形模式选择,4个按键分别是幅值加、减,频率加、减。其对应关系见下表。表4.1 按键功能及I/O情况方波锯齿波三角波正弦波幅值加幅值减频率加频率减按键K8K7K1K2K6K3K5K4I/OP0.7P0.6P0.0P0.1P0.5P0.2P0.4P0.3第5章 系统软件设计本程序主要分为5大块,主程序、按键处理程序、数码管输出程序、查表和计算定时程序、定时器0的中断服务程序。控制要求:设计制作一个多功能信号发生器,可以产生、方波、锯齿波和三角波。设计原理图,其中单片机通过软件对键盘输入的频率数值进行处理,处理结果送与D/A转换部分实现数/模转换,输出的电流再经过电流/电压转换环节,

40、进而形成模拟电压波形,最后经过过载保护电路输出。同时在数码管内显示该频率数值。波形的切换可以通过按键直接实现。基本要求:1.具有产生方波、锯齿波、三角波三种周期性波形的功能。2.输出波形的频率范围为100Hz1kHz;频率步进间隔100Hz。3.输出波形幅度范围05V,可按步进0.1V(峰-峰值)调整。4.具有显示输出波形的类型、周期和幅度的功能。扩展功能:本多功能信号发生器还能够产生频率可通过按键调节 的正弦波,其频率是100HZ-1KHZ。幅值调节可按键步进调节也可通过电位器无极调节。5.1软件开发环境简介5.1.1 Keil uVision4简介Keil C51是美国Keil Softw

41、are公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。优点:1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码

42、很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面5.1.2 Proteus7.10 简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片

43、机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。功能特点:

44、Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: 1原理布图 2PCB自动或人工布线 3SPICE电路仿真 革命性的特点 1互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。5.1.3 Keil 与Proteus 联合调试仿真把

45、Keil 与Proteus 联合调试将大大加快开发进度。用Proteus把硬件电路搭载出来,用keil写c程序,把写好要调试的程序下载到Proteus仿真的单片机里,然后,更改程序调试参数。在Proteus里边有示波器,可以用示波器查看程序的运行结果,不断调试,摘到达到满意的效果时在进行实物调试,这样不仅加快了调试的进程,而且使单片机的rom的擦写次数明显减少,增加了单片机的使用寿命。变量、数组、端口初始化函数初始化定时器T0初始化,开中断开始按键扫描波形模式选择加查表及定时器0定时时间计算频率幅值加减选择减给DAC0832值数码管显示指示LED显示5.2主程序 图 5-1主程序 流程图主程序

46、首先将需要初始化的部分进行初始化,然后负责循环执行按键扫描,数码管显示、指示LED显示和DA数据输出。这些过程都是以模块化的程序实现的,程序中有,按键扫描程序、数码管扫描显示程序、LED扫描显示程序、定时器定时计算程序、查表程序和DA数据输出程序,通过调用这些程序完成波形的产生,幅值和频率的改变。5.3按键处理程序程序位于函数keyscan()中,keyscan()函数位于主循环中,每循环一次调用一次,检测键盘是否按下,如果按下去延时抖动,然后检测到底是哪个按键按下,针对不同的按键按下采取不同的动作。因为按键采用的是扫描法,故需要注意消抖的处理,在此用软件法去抖动即可。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否保持着,如是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号