首页 低频信号发生器设计论文

低频信号发生器设计论文

举报
开通vip

低频信号发生器设计论文低频信号发生器设计论文 毕业设计报告(论文) 报告(论文)题目:基于单片机的低频 信号发生器的设计 作者所在系部: 电子工程系 作者所在专业: 电子信息工程 作者所在班级: B08212 作 者 姓 名 : 高永斌 作 者 学 号 : 20084021205 指导教师姓名: 韦雪洁 完 成 时 间 : 2012年6月15日 北华航天工业学院教务处制 北华航天工业学院 毕业设计(论文)任务书(理工类) 学生姓名: 高永斌 专 业: 电子信息工程 班 级: B08212 学 号:20084021205 指导...

低频信号发生器设计论文
低频信号发生器 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 毕业设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 (论文) 报告(论文)题目:基于单片机的低频 信号发生器的设计 作者所在系部: 电子工程系 作者所在专业: 电子信息工程 作者所在班级: B08212 作 者 姓 名 : 高永斌 作 者 学 号 : 20084021205 指导教师姓名: 韦雪洁 完 成 时 间 : 2012年6月15日 北华航天工业学院教务处制 北华航天工业学院 毕业设计(论文)任务书(理工类) 学生姓名: 高永斌 专 业: 电子信息工程 班 级: B08212 学 号:20084021205 指导教师: 韦雪洁 职 称: 讲师 完成时间: 2012.6.15 毕业设计,论文,题目: 基于单片机的低频信号发生器的设计 理论研究, , 纵向课题, , 教师科研 注:请直课 题 横向课题, , 应用研究, , 接在所属题目来源 题目类型 项目括号教师自拟课题,?, 应用设计,?, 内打“?” 学生自拟课题, , 其 他, , 总体设计要求及技术要点: 基本设计要求: 1、设计一个基于51单片机的低频信号发生器。其中包括波形选择~电压调节~频率调节等功能。 2、完成功能设计~完成51单片机C语言程序设计。 3、利用Proteus软件实现功能仿真。 较高设计要求: 完成硬件电路的连接~功能调试。 设计要点: 1、设计一个基于51单片机的低频信号发生器, 2、完成电路设计~以及Proteus实现仿真, 3、完成51单片机C语言程序设计。 工作环境及技术条件: 计算机~51单片机 时间进度安排: 第七学期第六周 根据学生选择情况~完成双向选择~下达毕业设计任务书, 第七学期六,十五周 教师指导学生查阅文献~撰写开题报告~准备外文译文、文 献综述, 第七学期第十六周 论证学生的开题报告~确定能否开始毕业设计, 第八学期一,十五周 学生进行毕业设计~完成毕业设计所有文档。答辩委员会验收, 第八学期第十六周 毕业设计答辩~评定成绩~评选优秀毕业设计(论文)~汇总上报, 第八学期第十七周 系、教研室进行毕业设计总结~汇总上报教务处, 第八学期第十八周 毕业设计资料整理归档。 指导教师签字: 年 月 日 教研室主任意见: 教研室主任签字: 年 月 日 北华航天工业学院 本科生毕业设计(论文)原创性及知识产权声明 本人郑重声明:所呈交的毕业设计,论文, 基于单片机的低频信号发生器的设计 是本人在指导教师的指导下~独立进行研究工作取得的成果。除文中已经注明引用的内容外~本设计,论文,不含任何其他个人或集体已经发表或撰写过的作品或成果。对本设计,论文,的研究做出重要贡献的个人和集体~均已在文中以明确方式标明。因本毕业设计,论文,引起的法律结果完全由本人承担。 本毕业设计,论文,成果归北华航天工业学院所有。本人遵循北华航天工业学院有关毕业设计,论文,的相关 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ~提交毕业设计,论文,的印刷本和电子版本。本人同意北华航天工业学院有权保存毕业设计,论文,的印刷本和电子版~并提供目录检索与阅览服务,可以采用影印、缩印、数字化或其它复制手段保存论文,在不以营利为目的的前提下~可以公布非涉密毕业设计,论文,的部分或全部内容。 特此声明 毕业设计,论文,作者: 指导教师: 年 月 日 年 月 日 北华航天工业学院毕业论文 摘 要 本系统是基于AT89C51单片机的数字式低频信号发生器。采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM358)、按键和8位数码管等。通过按键控制可产生方波、三角波、正弦波等,同时用数码管指示其对应的频率,信号幅度和频率都是可以按要求控制的。文中简要介绍了DAC0832数模转换器的结构原理和使用方法,AT89C51的基础理论,以及与设计电路有关的各种芯片。该信号源的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。 关键词 单片机 信号发生器 D/A转换器 运放电路 I 北华航天工业学院毕业论文 Abstract The system is based on the AT89C51single-chip digital low frequency signal generator. Using AT89C51 SCM as the control core, the external use of digital / analog converting circuit( DAC0832), amplifier circuit (LM358), keys and 8 digital tube. Through the control button to generate square wave, triangle wave, sine wave and so on, at the same time, digital tube indicating the corresponding frequency, the signal amplitude and frequency can be controlled according to requirements. This paper briefly introduces the DAC0832 converter structure principle and method of use, the basic theories of AT89C51, as well as with the circuit design is related to a variety of chip. The signal source is characterized by: small volume, low price, stable performance, convenient, complete function. Key words Single chip computer Signal generator The digital / analog converter Amplifier circuit II 北华航天工业学院毕业论文 目 录 第1章 绪论 ............................................................... 1 1.1 选题背景及其意义 ..................................................... 1 1.2 单片机概述 ........................................................... 1 1.3 信号发生器概述 ....................................................... 2 1.4 研究题目及其意义 ..................................................... 2 1.5 本论文主要研究的内容 ................................................. 3 第2章 信号发生器 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计与选择 ........................................... 4 2.1 方案设计与选择 ....................................................... 4 2.2 设计原理简介 ......................................................... 4 2.3 设计功能 ............................................................. 6 第3章 主要电路元器件介绍 ................................................. 7 3.1 AT89C51单片机介绍 ................................................... 7 3.1.1 单片机简介 ....................................................... 7 3.1.2 单片机内部结构概述 ............................................... 8 3.1.3 管脚功能说明 ..................................................... 8 3.2 DAC0832简介 ......................................................... 9 3.2.1 DAC0832的介绍 .................................................... 9 3.2.2 DAC0832的管脚功能 ................................................ 9 3.2.3 DAC0832内部结构及功能 ........................................... 10 3.3 数码显示管 .......................................................... 11 3.3.1 数码管原理及分类 ................................................ 11 3.3.2 数码管的工作方式 ................................................ 12 3.4 LM358简介 .......................................................... 14 3.4.1 LM358的介绍 .................................................... 14 3.4.2 LM358的特点 .................................................... 15 第4章 单元电路的硬件设计 ............................................... 16 4.1 总体硬件设计 ........................................................ 16 4.2 单片机引脚分配 ...................................................... 17 4.2 单片机外围电路介绍 .................................................. 17 4.3.1 时钟电路 ........................................................ 17 4.3.2 复位电路 ........................................................ 18 4.3.3 键盘接口电路 .................................................... 19 4.3.4 数模转换电路 .................................................... 19 4.3.5 幅度控制电路 .................................................... 20 4.3.6 LED显示电路 ..................................................... 21 III 北华航天工业学院毕业论文 第5章 系统软件设计 ..................................................... 22 5.1程序流程图 .......................................................... 22 5.2软件整体设计 ........................................................ 22 5.3程序模块功能设计 .................................................... 23 5.3.1 系统初始化设计 .................................................. 23 5.3.2 键盘扫描程序与处理程序设计 ...................................... 23 5.3.3 正弦波的产生 .................................................... 25 5.3.4 锯齿波的产生 .................................................... 26 5.3.5 方波的产生 ...................................................... 27 5.3.6 三角波的产生 .................................................... 28 5.4 软件仿真 ............................................................ 29 第6章 结论 ............................................................. 30 致 谢 .................................................................. 31 参考文献 .................................................................. 32 附 录 .................................................................. 33 主要原器件清单 ............................................................ 33 系统电路图 ................................................................ 34 35 软件程序 .................................................................. IV 基于单片机的低频信号发生器的设计 第1章 绪论 1.1 选题背景及其意义 波形发生器也称函数信号发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。 信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。因此需要选择其它的方法来解决此类问题,我们想到了通过单片机来实现所要求的功能,即采用单片机AT89C51还有数模转换DAC0832、运算放大器,此种方法硬件要求简单,编程容易,同时能够实现所要求的功能。 1.2 单片机概述 [3]单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。 由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成复杂的而对体积要求严格的控制设备当中。 INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单 1 片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。 汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作~单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 1.3 信号发生器概述 [1] 信号发生器可以构成独立的信号源,也可以是高性能网络分析仪、频谱分析仪以及自动检测设备的组成部分。信号发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应的系统检测过程大大简化,降低检测费用并且极大的提高了检测精度。信号发生器的总体趋势将向着高频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向发展。目前,市场上的信号发生器多种多样,一般按照频带分为以下几种:(1)超高频:频率范围为 1MHZ 以上,可达几十兆赫兹。(2)高频:几百 KHZ 到几百 MHZ。(3)低频:频率范围为几十HZ 到几百KHZ。(4)超低频:频率范围为零点几赫兹到几百赫兹。超高频信号发生器产生波形一般用LC振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,及RC振荡电路,通过改变电阻和电容值来改变频率。用以上原理设计的信号发生器,其输出波一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格比较贵,一般在几百元左右。在实际应用中,超低频和高频波一般是不用的。采用单片机 AT89C51,加上一片 DAC0832 就可以做成一个简单的信号发生器,加上按键电路、显示电路及放大电路,就可以实现频率幅值可调。这样的信号发生器体积小,价格便宜,耗电少,频率适中,便于携带。 1.4 研究题目及其意义 [2] 信号发生器是一种经常使用的设备,由纯粹物理器件构成的,传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好等特点的波形发生器具有较好的市场前景。以满足工业领域对信号源的要求。 本次试验实现利用单片机AT89C51和8位D/A转换芯片DAC0832 共同实现方波、锯齿波、三角波、正弦波这四种常用波形的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。并且可以通 2 过数码管和键盘显示模块,键盘可以实现对几种波形的切换。 1.5 本论文主要研究的内容 本设计采用89C51及其外围扩展系统,软件方面主要是应用C语言设计程序。系统以89C51单片机为核心,配置相应的外设及接口电路,用C语言开发,组成一个多功能信号发生系统。同时,本系统中任何一部分电路模块均可移植于实用开发系统的设计中,电路设计具有实用性。 本设计将完成以下几个方面的工作: (1)选芯片,尽量满足一般工业控制要求、以增强其实用性。 (2)原理图设计在保证正确的前提下,尽量采用典型的电路设计。 (3)固化于单片机芯片中的软件采用模块设计,层次清楚,具有上电复位及初始化功能,具有很好的软件开发框架。 (4)掌握单片机仿真软件Proteus7.0的使用。为此,论文包括以下内容: 一 绪论。主要介绍单片机发展概况和信号发生器的概述,为以后几章的介绍奠定基础。 二 系统总体方案设计。本章主要考虑系统性能和功能。包括两个主要内容:总体方案设计与设计的功能。其中总体设计方案包括考虑到多个符合条件的方案设计,并且对这几个方案进行比较,包括性能,价格,实用性等,最终确定下最优的设计方案。系统设计功能包括设计所完成的基本功能。 三 系统各元器件的介绍。本章对电路中所使用的器件功能进行了详细的介绍。 四 系统硬件设计。本章对各功能模块进行了大体的介绍,更好的理解所设计的电路图,理解各功能模块实现的功能。 五 系统软件设计。对软件设计部分作了详细的介绍,各程序模块的实现作了介绍。 六 结论。对设计进行自我的总结。 3 第2章 信号发生器方案设计与选择 信号发生器是指产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、波形信号、脉冲信号和随机信号发生器等四大类。本文利用单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,再通过D/A 转换器DAC0832 把数字信号转变为模拟信号,经LM358 放大输出到示波器,与此同时外接8位LED显示输出信号的类型和频率。 2.1 方案设计与选择 信号发生器的设计方案可用多种方案来实现。在设计前对各种方案进行比较得到最优的涉及方案: 采用软硬件结合法,此波形发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。辅以键盘控制、LED显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如利用单片机AT89C51和8位D/A转换芯片 DAC0832共同实现正弦波、方波、三角波和锯齿波这四种常见波形的发生,并且可以接受外部按键来切换波形,调节频率和幅值。 此方案利用单片机构成的应用系统有较高的可靠性,系统的扩展和系统的配置灵活方便。容易构成各种规模的应用系统,且应用系统有较高的软硬件利用参数。单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。因此选本方案作为设计的方案。 2.2 设计原理简介 该信号发生器原理框图如图2-1,总体原理为:利用AT89C51单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过C语言对单片机的编程即可产生相应的波形信号,并可以通过键盘进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。 4 DAC0832复位键 AT89C51 单片机 数码管显示 键盘 图2-1 信号发生器原理框图 本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A 转化及LED 显示。其各个模块的工作原理如下: (1)键盘模块是用于控制信号输入的类型频率,当按键按下时,可以通过单片机编程读取闭合的键号,实现相应的信号输出。其步骤主要是a、判断是否有键按下;b、去抖动,延时100ms 左右;c、识别被按下的键号;d、处理,实现功能。 (2)复位电路是为单片机复位使用,使单片机接口初始化;89C51 等CMOS51 系列单片机的复位引脚RET 是施密特触发输入脚,内部有一个上拉低电阻,当振荡器起振以后,在RST 引脚上输出2个机械周期以上的高电平,器件便进入复位状态开始,此时ALE、PSEN、P0、P1、P2、P4 输出高电平,RST 上输入返回低电平以后,便退出复位状态开始工作。该方案采用的是人工开关复位,在系统运行时,按一下开关,就在RST端出现一段高电平,使器件复位。 (3)D/A 转换也称为数模转换,是把数字量变换成模拟量的线性电路。单片机产生的数字信号通过DAC0832转化成模拟信号,输出相应的电流值,通过LM358 集成运算放大器可以取出模拟量的电压值,最后利用示波器获得输出的模拟信号的波形;衡量数模转换的性能指标有分辨率、转换时间、精度、线性度等。 (4)时钟信号是产生单片机工作的时钟信号,控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度。89C51内部有一个可控的反相放大器,引脚XTAL1、XTAL2为反相放大器输入端和输出端,在XTAL1、XTAL2 上外接12MHZ 晶振和30pF 电容便组成振荡器。时钟信号常用于CPU 定时和计数。 (5)LED 显示器用由若干个发光二极管按一定的规律排列而成,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光用于与显示相关输出波形的信息,包括信号的类型和频率。 5 2.3 设计功能 (1) 按键GW、SW、BW、QW、WW分别控制信号频率的个位、十位、百位、千位、万位 按键BX控制波形的转换选择 按键ZKBZ、ZKBJ分别控制方波占空比的加减 按键FW控制电路的复位 滑动变阻器控制输出电压大小,控制波形的幅度 (2)本方案输出利用8位LED显示器,该显示器为共阴极,输入段选码低电平有效,用于显示输出信号的类型和频率,如1KHz正弦波,显示为1.01000。根据设计要求,我们在系统启动时,还要在LED中显示“年级-专业.学号”2秒钟,即显示“08-212.05”。 (3)利用DAC0832 数模转换芯片实现信号的转换,并通过集成运算放大器将信号 放大,输出信号能够在Proteus软件中的示波器中显示。 (4)信号频率范围要求:1—1KHz。 (5)输出信号幅度:0,5V。 6 第3章 主要电路元器件介绍 3.1 AT89C51单片机介绍 3.1.1 单片机简介 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and [5]Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 提供以下标准功能:4k字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。其外形及引脚排列如图3-1 所示。 图3-1 AT89C51 引脚图 7 3.1.2 单片机内部结构概述 典型的MCS-51单片机芯片集成了以下几个基本组成部分。 1 一个8位的CPU 2 128B或256B单元内数据存储器(RAM) 3 4KB或8KB片内程序存储器(ROM或EPROM) 4 4个8位并行I/O接口P0~P3。 5 两个定时/计数器。 6 5个中断源的中断管理控制系统。 7 一个全双工串行I/O口UART(通用异步接收、发送器) 8 一个片内振荡器和时钟产生电路。 3.1.3 管脚功能说明 VCC:电源,接+5V GND:接地 P0口:是一个8位漏极开路输出型双向 I/O 端口。作为输出端口时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 P1口:P1口是一个带有内部上拉电阻的8位双向 I/O 端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高 电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P2口:P2口是一个带有内部上拉电阻的8位双向 I/O 端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行 MOVX @DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行 MOVX @RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的 P2寄存器的内容),在整个访问期间不会改变。 P3口:P3口是一个带有内部上拉电阻的8位双向 I/O 端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被 8 外部信号拉低的引脚会输出一个电流RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 PROGALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地 PROG址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSENPSEN:外部程序存储器选通信号()是外部程序存储器选通信号。当AT89C51 PSEN从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数 PSEN据存储器时,将不被激活。 EAEA/VPP:访问外部程序存储器控制信号。必须接GND。为了执行内部程序指令,EAEA应该接VCC。在flash编程期间,也接收12伏VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 3.2 DAC0832简介 3.2.1 DAC0832的介绍 [6]DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。所以这个芯片的应用很广泛, D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。 3.2.2 DAC0832的管脚功能 D0,D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错); 9 ILE:数据锁存允许控制信号输入线,高电平有效; CS:片选信号输入线(选通数据锁存器),低电平有效; WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存; XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、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:数字信号地 3.2.3 DAC0832内部结构及功能 [8]DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE; XFER第二级锁存器称为DAC寄存器,它的锁存信号为传输控制信号。因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两级锁存器还可以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。DAC0832逻辑框图和引脚排列如图3-2所示 图3-2 DAC0832逻辑框图和引脚排列 10 WRLECS11 图3.2.1中LE为高电平、和为低电平时,为高电平,输入寄存器的输出 WRLE11跟随输入而变化;此后,当由低变高时,为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变化而变化。对第二级锁存器来说, WRLEXFER22和同时为低电平时,为高电平,DAC寄存器的输出跟随其输入而变化; WRLE22此后,当由低变高时,变为低电平,将输入寄存器的资料锁存到DAC寄存器中。 3.3 数码显示管 3.3.1 数码管原理及分类 LED发光器件一般常用的有两类:数码管和点阵。常用的数码管一般为8字型数码管,分为A、B、C、D、E、F、G、DP八段,其中DP为小数点。数码管常用的有10根管脚,每一段有一个管脚,另外两根管脚为一个数码管的公共端。从尺寸上分,LED数码管的种类很多,常用的有0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0等。一般小于1.0的为单管芯,1.2,1.5为双管芯,1.8以上的为3个以上管芯,因而它们的供电电压要求不同,一般每个管芯的压降为2.1V左右。通常,0.8以下采用5V供电,1.0,2.3采用12V供电,3.0以上的选择更高电压供电。从电路上分,数码管又可分为共阴极和共阳极两种。结构分别如图3-3,3-4所示。 图3-3共阴极图 图3-4共阳极图 图3-5管脚图 其中:图3-5为管脚图,从a—g管脚输入不同的字段码,可显示不同的数字或字符(其字形码见表3-1)。可见共阴极和共阳极的字段码互为反码 。 11 表3-1 字段码表 显示字符 共阴极字码段 共阳极字码段 显示字符 共阴极字码段 共阳极字码段 0 3FH C0H C 39H C6H 1 06H F9H D 5EH A1H 2 5BH A4H E 79H 86H 3 4FH B0H F 71H 8EH 4 66H 99H P 73H 8CH 5 6DH 92H U 3EH C1H 6 7DH 82H T 31H CEH 7 07H F8H Y 6EH 91H 8 7FH 80H L 38H C7H 9 6FH 90H 8 FFH 00H A 77H 88H “灭” 00 FFH B 7CH 83H „„ „„ „„ 3.3.2 数码管的工作方式 显示器的工作方式分为静态显示方式和动态显示方式两种。 静态显示方式就是显示器在显示一个字符时,相应的发光二极管恒定的导通或截止,例如a、b、c、d、e、f 导通,g 截止时显示“0”,这种使显示器显示字符的字形数据常称为段数据。静态显示方式的每一个七段显示器,需要由一个8 位并行口控制。优点是显示稳定,提高了工作效率,缺点是位数较多时显示口随之增加。 动态显示方式是一位一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数可以实现亮度较高较稳定的显示,如显示器的位数不大于8 位,则控制显示器公共极的电位只需要一个8 位口(位数据口),控制字形也需要一个8 位口(段数据口)。 1(LED静态显示 所谓静态显示方式,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。静态显示时,较小的电流能得到较高的亮度。这是由于显示器的各位相互独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止(如图3-6所示)。当显示器位数很少(仅一、二位)时,采用静态显示方式是合适的。当位数较多时,用静态显示所需的I/O口太多,占用太多的硬件资源。故在位数较多时往往采用动态显示方式。 LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别 12 与I/O口线相连。要显示字符,直接在I/O线上输出相应的字段码。 I/O(1)I/O(1)I/O(2)I/O(2) a b c d e f g dpa b c d e f g dpa b c d e f g dpa b c d e f g dp 图3-6 LED静态显示 2(LED动态显示方式 LED动态显示是将所有的数码管的段选线并接在一起,用一个I/O口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O口线控制。如图3-7所示。 I/O(1)I/O(1) D3D3D2D2D1D1D0D0 I/O(2)I/O(2) 图3-7 LED动态扫描 设数码管为共阳极,它的工作过程为:第一步使右边第一个数码管的公共端D0为1,其余的数码管的公共端为0。同时在I/O(1)上送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端D1为1,其余的数码管的公共端为0,同时在I/O(1)上送右边第二个数码管的字段码。这时,只 13 有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的了。这就是动态显示的原理。而这个循环周期对于计算机来说很容易实现。所以在单片机中经常用到动态显示。 四、LED显示器与单片机的接口 LED显示器从译码方式上有硬件译码方式和软件译码方式;从显示方式上有静态显示方式和动态显示方式,在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。 3.4 LM358简介 3.4.1 LM358的介绍 LM358是常用的双运放,这里我们介绍一下它的一些资料。 简介: LM358 里面包括有两个高增益、独立的、内部频率补偿的双运放, 适用于电压范围很宽的单电源,而且也适用于双电源工作方式,它的应用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运放的地方使用。LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC 增益 部件和其他所有可用单电源供电的使用运算放大器的场合。LM358 的封装形式有塑封8引线双列直插式和贴片式。内部结构图如图3-8所示。 14 图3-8 LM358引脚结构图 3.4.2 LM358的特点 . 内部频率补偿 . 低输入偏流 . 低输入失调电压和失调电流 . 共模输入电压范围宽,包括接地 . 差模输入电压范围宽,等于电源电压范围 . 直流电压增益高(约100dB) . 单位增益频带宽(约1MHz) . 电源电压范围宽:单电源(3—30V); . 双电源(?1.5 —?15V) . 低功耗电流,适合于电池供电 . 输出电压摆幅大(0 至Vcc-1.5V) 15 第4章 单元电路的硬件设计 4.1 总体硬件设计 单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元(如ROM、I/O、定时/计数器等)容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计适当的电路。二是系统配置,即按照功能要求配置外围设备如显示器、D/A转换等,要设计合适的电路。系统的扩展和模块设计应遵循下列原则: (1)尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。 (2)系统的扩展与外围设备配置的水平应充分满足应用系统的功能要求。 (3)硬件结构应结合应用软件方案一并考虑。硬件结果与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件来实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,其响应时间要比直接用硬件响应来的长,而且占用CPU时间。所以,选择软件方案时,要考虑到这些因素[12]。 (4)可靠性及抗干扰性设计是硬件系统设计不可缺少的部分,它包括芯片、器件选择,去耦滤波等。 (5)单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,解决的办法是增加驱动能力,增设线驱动器或减少芯片功耗,降低总线负载。 (6)系统的扩展及各功能模块的设计在满足系统功能要求的基础上,应适当留有余地,以备将来修改、扩展之需。 (7)在考虑硬件总体结构的同时要注意通用性的问题。 根据以上原则,进行硬件设计。系统采用较为普及的89C51单片机作为系统的核心。它不但容易实现设计指标,而且还有较好的性价比。 (1)程序存贮器 89C51内部自带8K的ROM,512B的RAM,所以不需要对其扩展存储器。 (2)键盘接口 矩阵式键盘适用于按键数量较多的场合,系统采用了行列式键盘设计即矩阵键盘,用I/O线组成行、列结构,按键设置在行列的交点上,2×4的行列结构可构成8个键的键盘。因此,在按键数量较多时,可以节省I/O线。按键的识别方法有两种,一种为扫描法,另一种为线反转法。此设计采用了行列式及与之相适应的行列扫描法。 (3)数码管驱动 本设计实现了89C51的I/O口对2×4键盘和8位数码管显示的控制。 (4)D/A转换 本设计D/A转换部分采用DAC0832芯片. (5)信号变换部分 对信号的变换部分采用四运放集成芯片LM358,它采用8脚双列直插塑料封装,它 16 的内部包含两组形式完全相同的运算放大器。 (6)可靠性方面 在使用应用系统时,可能会受到多种干扰的侵袭,直接影响到系统的可靠性,因此,本系统适当加入去耦电容,以减少干扰,确保精度。 4.2 单片机引脚分配 XTAL1、XTAL2:外接电路,产生时钟信号; RST:外接复位电路; P0:外接数模转换与放大电路,波形信号输出; P1:外接矩阵键盘; P2:LED显示器段选码; P3:LED显示器位选码; 信号幅度调节由DAC0832的VREF接口控制。 4.2 单片机外围电路介绍 4.3.1 时钟电路 AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶休或陶瓷谐振器一起构成自激振荡器,振荡电路参见图4-1。 外接石英晶体(或陶瓷振器)及电容C1, C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1, C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,这里选择使用石英晶休,我们的电容使用30pF。如使用陶瓷谐振器的话,应选择40pF士10pF的容值的电容。 也可以采用外部时钟。采用外部时钟的电路的情况时,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。 图4-1 时钟振荡电路 17 4.3.2 复位电路 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC,0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。 图4-2 复位电路 18 4.3.3 键盘接口电路 本系统键盘结构如图4-3示。 图4-3 系统键盘实现 工作原理如下: 1(检测键盘上是否有键按下:将行线送入低电平,列线送入高电平。读入P1口的状态来判别。其具体过程如下:P1口输出0FH,即所有行线置成高电平,所有列线置成低电平,然后将P1口状态读入与0FH比较。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。 2(识别键盘中哪一个键按下:确认有键按下后,保存行扫描时有键按下时的状态X 。P1口输出F0H,进行列扫描,保存列扫描状态Y,取出键值Z=X|Y.例如第一行第一列有键按下,那么行扫描读入的状态为00001110,列扫描读入的状态为11100000,最后键值Z=11101110=EEH,然后转去执行相应的服务程序。 4.3.4 数模转换电路 由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。连接电路如图4-4所示。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放LM358使之成为电压型输出。 根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计选用直通方式。 DAC0832的数据口和单片机的P0口相连。 19 CSDA:片选信号输入线(选通数据锁存器),低电平有效; WR:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存; 图4-4 数模转换放大电路 4.3.5 幅度控制电路 如图4-5所示,在DAC0832的VREF端接入一个变阻器,这样就可以对输出波形幅度连续可调。其幅度调节原理为: 由D/A的模拟输出公式。当与B为常量时,改变Vr的大小可以相应改变,即改变波形的幅值。由电路图4.3.8可以看出是由外部电源提供一个+5 V的电压,这里通过串联一个滑动变阻器R1。通过改变滑动变阻器R1 的大小改变Vr当Vr线性变化时也就实现了波形幅值的连续可调。 图4-5 幅度控制电路 20 4.3.6 LED显示电路 如图4-6所示在LED显示屏上显示出所调的频率、波形代码。 本机显示采用软件译码动态显示,系统显示电路如图4.3.9所示。采用软件译码动态显示的理由如下:1)如果用静态显示,单片机的接口资源肯定不够用,那么还要进行接口的扩展,增加了系统的复杂度;2)如果要制成印刷线路板,得占相当大一块面积;3)另外,采用动态显示,可以明显的降低功耗,因为每一时刻只有一个LED发光,其功耗为静态显示的1,8。一个LED最大电流为120mA,如用静态显示,8个LED就耗电流960mA,那么变压器就得选32V,32W,价格提高近一倍,稳压块得选7805C(Im=1A),这种管是椭圆壳,在印刷线路板上也得占相当大的面积。综上分析,采用动态显示才是最经济的方案。 在显示的时候,只要把显示的字码输送到P2口,再经过74LS373进行数据锁存,P3口作为位选控制信号。由于采用的是共阴极数码管,当需要显示哪一位的时候,只要在相应的位选控制信号输出低电平就行。例如,要在第一个数码管显示P,那么在P2口就要输出73H字段码,同时P3口输出FEH位选码。 图4-6 LED显示电路 21 第5章 系统软件设计 5.1程序流程图 首先对程序初始化,静态显示08-212.05两秒,然后判断是否有键值按下,若有键值按下则计算相关参数,一方面利用中断定时和查询查表输出波形,另一方面送段选口和位选口数据使LED显示相关波形类型和频率,最后反馈回去构成循环,判断按键相关信息。 其程序框图如图5-1所示。 开 始 显示08-212.05 2秒 系统初始化 按键是否按下 计算相关参数 定时中断 送显示端口 查询选择波形 LED显示 波形输出 -1 软件设计程序流程图 图5 5.2软件整体设计 本系统的软件包括以下几个程序模块: (1)初始化程序; (2)显示程序; (3)键盘扫描程序与处理程序; (4)定时器0服务程序; (5)正弦波发生程序及其服务程序; 22 (6)三角波发生程序; (7)方波发生程序; (8)锯齿波发生程序。 5.3程序模块功能设计 5.3.1 系统初始化设计 复位程序完成如下工作: 1.显示2秒的08-212.05初始界面; 2.初始频率设置为888HZ; 3.将频率值转换成定时器的初值; 4.置定时器0工作于方式1,即16位定时器方式,送入定时器0定时初值,启动定时器0工作; 5.显示初始频率和产生波形的类型; 6.转键盘扫描程序。 5.3.2 键盘扫描程序与处理程序设计 键盘采用矩阵式键盘(如表5-1所示),由软件产生相应编码,再根据相应编码调用相应的子程序。编码产生原理:P1口低四位表示行,高四位表示列。键盘所在的行和所在的列用0表示,其它的行和列用1表示。如第一行第一列GW编码值为(11101110)2=0xee, 第二行第三列ZKBJ编码值为(10111101)2=0xbd。 表5-1 键盘处理程序 键值 对应处理程序 0x7d key1键选择发波类型(1为正弦波,2为三角波,3为方波) 0xee key2个位频率调整(GW) 0xde Key3十位频率调整(SW) 0xbe Key4百位频率调整(BW) 0x7e Key5千位频率调整(QW) 0xed Key6万位频率调整(WW) 0xdd Key7占空比增大调整(ZKBZ) 0xbd Key8占空比减小调整(ZKBJ) 23 键盘扫描源程序如下: void judge(void) { unsigned char X,Y,Z; P1 = 0xff; P1 = 0x0f; //先对P1置数行扫描 if(P1 != 0x0f) //判断是否有键按下 { delay10ms(); //延时,软件去干扰 if(P1 != 0x0f) //确认按键按下X = P1; { X = P1; //保存行扫描时有键按下时状态 P1 = 0xf0; //列扫描 Y = P1; //保存列扫描时有键按下时状态 Z = X | Y; //取出键值 switch ( Z ) //判断键值(那一个键按下) { case 0x7d: key1(); break; case 0xee: key2(); break; //对键值赋值 case 0xde: key3(); break; case 0xbe: key4(); break; case 0x7e: key5(); break; case 0xed: key6(); break; case 0xdd: key7(); break; case 0xbd: key8(); break; } } } } 24 5.3.3 正弦波的产生 图5-2 正弦波的仿真 正弦波波形设计通过查表指令得出。 正弦程序如下: #include main() { int n,i=0,j,k; float y=0, a=3.1415926,b=0,c=2.5000,d=0; for(n=0;n<=64;n++) { y=2.5*sin(a*n/128)+2.5; b=y; //b,y为当前幅度值 d=b-c; //d为递增率 j=d/0.0196; //j为数字递增率,0.0196为δ k=128+j; //k为数字量 printf(“%d,%f,%f,%d,%d\n”,i,y,d,j,k); i++; } } 25 5.3.4 锯齿波的产生 图5-3 锯齿波的仿真 锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同,所以用延时法,来产生锯齿波。 锯齿波程序 else if(choice == 4) //锯齿波 { if(e <= 255) { P0 = 255 - e; } else { P0=0; } e++; } 26 5.3.5 方波的产生 图5-4 方波的仿真 方波发生程序运用延时的方法实现,只用一个主程序即可,因为产生一个方波只需要 高低两个数,所以程序比较简单。要给一个频率,再计算所需的延时即可。 方波程序如下: else if(choice == 3 ) // 方波 { k = zk * 256 / 100; d ++; if(d <= k) { P0 = 0x00; } else P0 = 0xff; } 27 5.3.6 三角波的产生 图5-5 三角波的仿真 三角波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后再用同样逼近方法,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的三角波。三角波发生原理与锯齿波类似,只是高低两个延时的常数不同,所以用延时法,来产生三角波。 三角波程序如下: else if(choice == 2 ) //三角波 { if(c <= 128) { P0 = c; } else { P0 = 255 - c; } c ++; } 28 5.4 软件仿真 在protues中绘制电路图,加载单片机程序,有如下仿真: (1)不同波形的仿真,如图5.6 图5-6不同波形的仿真 (2)不同频率的波形,以正弦波为例,如图5.7 如图5-7不同频率的波形仿真 (3)改变滑动变阻器来改变波形的幅值,以正弦波为例,如图5.8 图5-8不同幅值的波形仿真 29 第6章 结论 基于单片机的低频信号发生器设计,该课题的设计目的是充分运用大学期间所学的专 业知识,考察现在正在使用的信号发生器的基本功能,完成一个基本的实际系统的设计全 过程。关键是这个实际系统设计的过程,在整个过程中我可以充分发挥单片机知识。特别 是这个信号发生器的设计中涉及到一个典型的控制过程。通过单片机控制一个模数转换器 DAC0832 产生所需要的电流,然后使用运算放大器 LM358可以将其电流输出线性地转换成电压输出,通过程序的控制,可以产生一系列有规律的波形。这样一个信号发生装置在控制领域有相当广泛的应用范围。 此设计方案硬件较为简单,主要是由单片机跟 DAC0832两个芯片构成,连线也较简便。键盘电路用的独立未编码结构,八个键分别控制波形及频率。软件程序方面较为复杂 一点,此方案主要是靠程序的控制,主要由4个波形产生的子程序、显示程序还有频率调节、占空比调节, 加上有承上启下作用的主程序构成,程序思路还是比较清晰。其中正弦波和三角波的程序较为繁琐,因为是通过查表指令产生的,所以要列出个含有较多字符的表格。 当然还有存在不足的地方,比如方波波形有点失真、频率较高时LED显示出错频率较低波形失真度较大等,显示电路跟键盘电路有待进一步改进。 30 致 谢 本文研究工作是在我的导师韦雪洁老师的精心指导下完成的。韦老师平日里工作繁多,但在我做毕业设计的每个阶段,都给予我耐心的指导和帮助。可以说,没有韦老师的耐心指导和帮助,我是不可能顺利完成我的毕业设计的。另外,韦老师严谨的治学态度以及对待学生极端负责的精神,给我留下很深的印象,我不仅学到了扎实、宽广的专业知识,并将积极影响我今后的学习和工作。在今后的学习工作中,我将铭记恩师对我的教诲和鼓励,尽自己最大的努力取得更好的成绩。 在此我要向我的导师韦雪洁老师致以最衷心的感谢和深深的敬意~ 31 参考文献 [1] 谭浩强.C 程序设计. 北京:清华大学出版社,2002 [2] 李华主编.MCS-51系列单片机实用接口技术.北京:北京航空航天出版社,1993 [3] 丁向荣,谢俊,王彩申. 单片机C 语言编程与实践. 北京:电子工业出版社,2009.8 [4] 杜华.任意波形发生器及应用[J].国外电子测量技术,2005.1:38,40. [5] 吕能元,孙育才,杨峰编著.MCS-51单片微型计算机.北京:科学出版社,1993 [6] 程朗.基于 8051 单片机的双通道波形发生器的设计与实现[J].计算机工程与应 用,2004.8 电子测量技术基础[M].西安: 西安电子科技大学出版社, 2006 [7] 张永瑞. [8] 李叶紫. MCS-51 单片机应用教程[M].北京:清华大学出版社,2004 [9] 张洪润,易涛编著.单片机应用技术教程 (第二版).北京:清华大学出版社,2003 [10] 求是科技编著.单片机典型模块设计实例导航.北京:人民邮电出版社,2004 32 附 录 附录1 主要原器件清单 Resistors --------- 1: R1=100 2: R2=100k 3: R3=1k 4: RV=10k Capacitors ---------- 1: C1=C2= C3=30pF 2: C4=0.1uF Integrated Circuits ------------------- 1: U1 AT89C51 2: U2 DAC0832 3: U3 LM358 4: U4 74LS373 Miscellaneous ------------- 1: RN1=10k 2: X1=12MHz 33 附录2 系统电路图 34 附录3 软件程序 #include #include #include #define uchar unsigned char uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0---9数字共阴极 uchar code tab1[8]={0x3f,0x7f,0x40,0x5b,0x06,0xdb,0x3f,0x6d};// 08-212.05共阴极 uchar code tosin[256]={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,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,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,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 b=0,c=0,d=0,e=0,i,k,tl,th; int ww=0,qw=0,bw=8,sw=8,gw=8,zkgw=0,zksw=5;//ww为万位数字,qw为千位数字,bw 为百位数字, //sw为十位数字,gw为个位数字,zkgw为占空比 个位数字,zksw为占空比十位数字 35 int t,f,m,choice=1,zk=50; //t为时间变量,f为频率变量,choice为波形类型 选择变量,zk为占空比变量,默认占空比为50% void delay100ms() //延时100ms程序 { unsigned char i,j; for(i=200;i>0;i--) for(j=248;j>0;j--); } void chushihua(void)//初始化显示 08-212.05 { P3=0xfe; P2=tab1[0]; for(i=0;i<=60;i++); P3=0xfd; P2=tab1[1]; for(i=0;i<=60;i++); P3=0xfb; P2=tab1[2]; for(i=0;i<=60;i++); P3=0xfb;//小数点显示 P2=0x00; for(i=0;i<=60;i++); P3=0xf7; P2=tab1[3]; for(i=0;i<=60;i++); P3=0xef; P2=tab1[4]; for(i=0;i<=60;i++); P3=0xdf; P2=tab1[5]; for(i=0;i<=60;i++); P3=0xbf; P2=tab1[6]; for(i=0;i<=60;i++); P3=0x7f; P2=tab1[7]; 36 for(i=0;i<=60;i++); } /*,键选择发波类型,1为正弦波,2为三角波,3为方波*/ void key1(void) { if(choice<4) choice=choice+1; else choice=1;} /*个位频率调整*/ void key2(void) { if(gw<9) gw=gw+1; else gw=0;} /*十位频率调整*/ void key3(void) {if(sw<9) sw=sw+1; else sw=0;} /*百位频率调整*/ void key4(void) { if(bw<9) bw=bw+1; else bw=0;} /*千位频率调整*/ void key5(void) { if(qw<9) qw=qw+1; else qw=0;} 37 /*万位频率调整*/ void key6(void) { if(ww<5) ww=ww+1; else ww=0;} /*方波占空比加大*/ void key7(void) {if(zk<100) zk=zk+1; else zk=0;} /*方波占空比减小*/ void key8(void) { if(zk>=1) zk=zk-1; else zk=0; } /*计算显示数字*/ void jisuan(void) {TR0=0;//关闭定时器 f=100000*ww+1000*qw+100*bw+10*sw+gw; t=1000000/f; th=-t/256; tl=-t%256; ww=f/10000; f=f%10000; qw=f/1000; f=f%1000; bw=f/100; f=f%100; sw=f/10; gw=f%10; 38 zkgw=zk%10; zksw=zk/10; TR0=1;} /*显示*/ void display (void) { P3=0xfb; P2=tab[choice]; for(i=0;i<=60;i++); P3=0xfb; P2=0x80;//小数点显示 for(i=0;i<=60;i++); P3=0xf7; P2=tab[ww]; for(i=0;i<=60;i++); P3=0xef; P2=tab[qw]; for(i=0;i<=60;i++); P3=0xdf; P2=tab[bw]; for(i=0;i<=60;i++); P3=0xbf; P2=tab[sw]; for(i=0;i<=60;i++); P3=0x7f; P2=tab[gw]; for(i=0;i<=60;i++); if(choice==3){ P3=0xfd; P2=tab[zkgw]; for(i=0;i<=60;i++); P3=0xfe; P2=tab[zksw]; for(i=0;i<=60;i++); P3=0xfd; P2=0x80;//小数点显示 for(i=0;i<=60;i++); 39 }} /*键盘扫描*/ void judge(void) { { unsigned char X,Y,Z; P1=0xff; P1=0x0f; //先对P3置数 行扫描 if(P1!=0x0f) //判断是否有键按下 {delay100ms(); //延时,软件去干扰 if(P1!=0x0f) //确认按键按下X = P1; { X=P1; //保存行扫描时有键按下时状态 P1=0xf0; //列扫描 Y=P1; //保存列扫描时有键按下时状态 Z=X|Y; //取出键值 switch ( Z ) //判断键值(那一个键按下) { case 0x7d: key1(); break; case 0xee: key2(); break; //对键值赋值 case 0xde: key3(); break; case 0xbe: key4(); break; case 0x7e: key5(); break; case 0xed: key6(); break; case 0xdd: key7(); break; case 0xbd: key8(); break; }}} }} void main(void) {int n; for(n=0;n<600;n++){ chushihua(); } TMOD=0X01; TR0=1; th=-t/256; tl=-t%156; TH0=th; TL0=tl; 40 ET0=1; EA=1; while(1) {jisuan(); for(i=0;i<=50;i++); display(); judge(); } } void time0_int(void) interrupt 1 //中断服务程序 { TR0=0; if(choice==1) { P0=tosin[b]; //正弦波 b++; } else if(choice==2) //三角波 {if(c<=128)P0=c; else P0=255-c; c++; } else if(choice==3) // 方波 {k=zk*256/100; d++; if(d<=k)P0=0x00; else P0=0xff;} else if(choice==4) //锯齿波 {if(e<=255)P0=255-e; else P0=0; e++; } TH0=th; TL0=tl; TR0=1; } 41 北华航天工业学院 本科毕业设计(论文)成绩单 姓名 高永斌 班级 B08212 学号 20084021205 入学时间 2008.9 系别 电子工程系 专业 电子信息工程 指导教师 韦雪洁 职称 讲师 设计(论文)起止时间 2011.3.19~2012.6.15 设计(论基于单片机的低频信号发生器的设计 文)题目 指导 教师 评语 成绩1 指导教师签名 年 月 日 评阅 验收 小组 评语 成绩2 评阅人签名 年 月 日 答辩 小组 评语 成绩3 答辩小组负责人签名 年 月 日 综合 评定 答辩委员会主任签字: 单位(公章) 成绩 年 月 日 注:综合评定成绩=成绩1*0.3+成绩2*0.3+成绩3*0.4 42
本文档为【低频信号发生器设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633423
暂无简介~
格式:doc
大小:452KB
软件:Word
页数:0
分类:工学
上传时间:2017-10-08
浏览量:17