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

下载本文档

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

文档简介

本科生毕业设计(论文)( 2011届 )题 目: 信号发生器的制作 专 业: 电子信息工程 学生姓名: 学号: 指导教师: 职称: 合作导师: 职称: 完成时间: 2011 年 3 月 29 日 成 绩: 本科毕业设计(论文)正文目 录摘要1英文摘要11 引言11.1 选题背景和意义11.2 国内外研究现状、发展动态21.2.1 信号发生器的发展历史21.2.2 信号发生器的发展特点22 总体设计方案32.1 设计思想32.1.1 设计内容及要求32.1.2 方案选择与论证32.2 方案的结构模块划分42.2.1 各功能模块介绍43 硬件电路的设计53.1 主控电路及主控芯片的选择53.2 时钟电路设计83.3 复位电路的设计83.3.1 复位功能93.3.2 复位后的状态93.4 最小应用系统的设计103.5 按键电路设计113.5.1 人机交互接口的设计113.5.2 键盘设计需要解决的几个问题113.5.3 按键的确认113.5.4 重键与连击的处理113.5.5 按键防抖动技术113.6 LCD显示模块的设计133.7 D/A 转化电路和I/V电路的设计133.7.1 DAC0832管脚功能介绍143.7.2 D/A转换器的性能指标:153.7.3 I/V 转换电路154 软件设计164.1 主程序164.2 定时器0服务程序174.3 外部中断服务程序184.4 LCD液晶显示程序195 软硬件联合调试结果196 结束语217 参考文献21附录122附录222信号发生器的制作信号发生器的制作 电子信息工程专业 指导老师:)摘要:在科学研究、工程教育及生产实践中,常常需要用到低频信号发生器。信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。本系统采用AT89C51单片机作为数据处理及控制核心,利用键盘选择波形和调节频率,液晶显示所得波形名称和频率值,DAC0832控制输出波形参考幅值构成的发生器可产生方波、三角波、正弦波等波形,具有线路简单、结构紧凑等优点。关键词:AT89C51;DAC0832;液晶显示;键盘控制The production of signal generatorJianwei Pan(07226536) Director:Gengjun Zhu()(Dept.of Science &Engineering,Zhejiang Normal University Xingzhi Collega)Abstract:In scientific research, engineering education and practice of production, often need to use low-frequency signal generator. Signal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc.The system uses AT89C51 MCU as the core of data processing and control, use the keyboard to select the waveform and adjust the frequency, liquid crystal display name and frequency from the waveform, DAC0832 control the composition of output waveform reference generator can produce amplitude square wave, triangle wave, sine wave, etc. Waveform, with simple lines, compact structure, etc.Key Words:AT89C51;DAC0832;LCD display; keyboard control 1 引言1.1 选题背景和意义随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。 但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。1.2 国内外研究现状、发展动态1.2.1 信号发生器的发展历史目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源,而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单的波形。 90 年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和 HP1776A波形发生软件组成。HP8770A实际上也只能产生8 中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的DDS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent的产品 33220A能够产生 17 种波形,最高频率可达到 20M,2005 年的产品N6030A 能够产生高达 500MHz 的频率,采样的频率可达 1.25GHz。由上面的产品可以看出,函数波形发生器发展很快。 1.2.2 信号发生器的发展特点而近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 v=f (t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic ,Visual C 等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。 (2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。 (3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。2 总体设计方案2.1 设计思想由于要求达到模拟信号波形发生,因此要由D/A转换芯片来完成此项任务,由基准电路来实现输出波形的幅度可调,通过电位器调节波形的变化。经过数模转换电路输出的信号为电流形式,因此需要加电流/电压转换电路来改变输出信号的形式。2.1.1 设计内容及要求主要功能:产生方波、三角波、正弦波信号。技术指标:可输出方波、三角波、正弦波,频率可调。频率范围:正弦波频率范围为10Hz-100Hz,步进10Hz;三角波频率范围为50HZ-500Hz,步进50Hz;方波频率范围为200Hz-2000Hz,步进200Hz。幅值范围:5V不变。设计要求:用液晶显示屏显示当前的波形名称和频率;用键盘选择波形类型和改变频率2.1.2 方案选择与论证函数信号发生器的实现方法通常有以下几种:方案一:用分立元件组成的函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试。方案二:可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。方案三:利用单片集成芯片的函数发生器,能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国马克西姆公司开发了新一代函数信号发生器ICMAX038,它克服了上述方案二中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。MAX038频率高、精度好,因此它被称为高频精密函数信号发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。方案四:利用专用直接数字合成芯片的函数发生器,能产生任意波形并达到很高的频率,但成本较高。方案五:采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉,且价格较高。方案六:采用AT89C51单片机和DAC0832数模转换器相结合的电路来产生波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少,适合学生毕业设计。经比较,方案六既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。2.2 方案的结构模块划分本次设计所研究的就是用单片机将某种波形所对应的数字量进行输出,再通过D/A转换器转换输出一组连续变化的5V的电压脉冲值,同时再通过液晶显示部分显示其频率值和波形名称。在设计时分块来做,分为D/A转换,单片机系统,键盘控制和液晶显示4个主要模块,最后通过联调仿真,做出电路板成品,从而简化人机交互的问题,具体设计模块如图2-1所示。AT89C51LCD键盘控制DAC0832运放输出时钟电路复位电路 图2-1 系统总框图2.2.1 各功能模块介绍:单片机最小系统:包括时钟电路和复位电路键盘控制电路:用按键来控制输出波形的种类和调节频率D/A转换电路: 单片机把待转换的数字量输送到DAC0832来把数字信号转换为模拟信号。显示电路:采用液晶显示器显示波形的名称和频率系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗,考虑单片机部分功耗的大小,选择合适的器件以及参数。3 硬件电路的设计3.1 主控电路及主控芯片的选择单片机即单片微型计算机(Single CHip Microcomputer)是把组成微型计算机的各种功能部件,包括中央处理单元(CPU)、随机存储器(RAM)、程序存储器(ROM)、定时器/计数器及输入输出接口等部件都集成在一块芯片上。是一种集成度高、性价比优越、质量小、体积小的微型计算机。单片机按其使用目的可以分为通用和专用两种类型。通用单片机是一种基本芯片,内部功能及资源丰富,性能全面,适应性强,可覆盖多种用途。用户可以根据需要设计成各种不同的单片机控制系统,即有一个再设计的过程。专用型单片机在设计时已对系统结构进行了简化,对软、硬件进行了优化,可靠性高,成本低,但是这类单片机功能单一,通常是针对某一特定的产品。本设计应采用通用型单片机。随着半导体集成工艺的不断发展,单片机也正朝着CMOS化、低功耗、体积小、大容量、高性能低价格和外围电路内装化等几个方向发展。在单片机家族中,Intel公司推出的MCS-51系列中的80C51是其中的佼佼者。MCS-51系列单片机是8位单片机中应用范围最广的一类单片机。近几年来,许多单片机开发厂商也推出了许多基于80C51单片机内核的扩展型单片机,产品在保持与51单片机兼容的基础上改善了很多特性,性能各异。常用的单片机有很多种:Intel8051和8751系列、Motorola的MC6801系列、Atmel的AT89系列、台湾Winbond(华邦)W7和W78系列、荷兰PHilips的51LPC和LPC900系列、ZILOG的Z8系列等。本设计中最终选用了ATMEL公司的AT89C51单片机。AT89C51单片机是美国ATMEL公司推出的低功耗/低电压、高性能的8位单片机,片内含4KBFlasH程序存储器,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,该存储器的全称为闪速可编程可擦除只读存储器(FPEROM,FlasH Programmable and Erasable Read Only Memory),其输出引脚和指令系统与标准MCS-51系统兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚图如图3-1所示. 图3-1 AT89C51与AT89C2051引脚图管脚说明如下描述:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C51的主要功能特性:(1) 工作电压为45.5 V,工作频率为022 MHz;(2)片内振荡器和时钟(CLOCK)电路;(3) 128*8位供存储数据的片内RAM;(4) 32根可编程I/O线;(5) 2个16位定时器/计数器;(6) 具有6个中断源;(7) 可编程全双工串行口;(8) 具有多种封装方式;(9) 程序存储器可扩展至64KB(ROM), 数据存储器可扩展至64KB(RAM)。AT89C51单片机功能强大、编程灵活、可靠性与性价比高,易于采购,便于使用与实验,可以达到设计要求,并且为系统再拓展留有空间,适用于许多较为复杂的控制应用场合。3.2 时钟电路设计时钟电路是单片机系统的心脏,它控制着单片机的工作节奏。单片机虽然内部有振荡电路,但要形成时钟,必须外部附加电路。时钟电路是单片机工作的时间基准,决定单片机工作的速度。MCS-51系列的时钟有两种产生方式:内部时钟方式,利用芯片内部的振荡电路和外部方式。本设计中选用内部时钟方式。电路如图3-2所示,MCS-51系列单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1为反相器的输入端,引脚XTAL2为输出端。放大器与作为反馈元件的片外石英晶体振荡器一起构成了一个自激振荡器。本设计使用的石英晶体振荡器的频率为11.0592MHz,电容的主要作用是帮助振荡器起振和稳定电路,其值的大小对振荡频率有少许影响,本设计中选择C1和C2电容值为30pf。图3-2 时钟电路3.3 复位电路的设计MCS-51单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。图3-3 复位电路3.3.1 复位功能复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图3-4(a))和按钮复位(如图3-4(b)两种方式。图3-4 RC复位电路3.3.2 复位后的状态单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值。PSW00H,表明选寄存器0组为工作寄存器组; SP07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出 。IP00000B,表明各个中断源处于低优先级; IE000000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。3.4 最小应用系统的设计单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.下面给出一个51单片机的最小系统电路图,如图3-5。在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器。单片机结合简单的晶体振荡电路和复位电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控、监控的重要组成部分。图3-5 最小系统电路图3.5 按键电路设计3.5.1 人机交互接口的设计所谓人机交互接口,是指人与计算机之间建立联系、交互信息的输入/输出设备的接口。这些输入/输出设备主要有键盘、显示器和打印机等。他们是计算机应用系统中必不可少的输入、输出设备,是控制系统与操作人员之间的交互窗口。一个安全可靠的控制系统必须具有方便的交互功能。操作人员可以通过系统显示的内容,及时掌握生产情况,并可通过键盘输入数据,传递命令,对计算机应用系统进行人工干扰,使其随时能按照操作人员的意图工作。3.5.2 键盘设计需要解决的几个问题键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种类型。编码键盘能自动识别按下的键并产生相应代码,以并行或串行方式发给CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。非编码键盘则是通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用9。键盘是计算机应用系统中的一个重要组成部分,设计时必须解决下述一些问题。3.5.3 按键的确认键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,若高电平表示断开,那么低电平键闭合。所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。3.5.4 重键与连击的处理实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。为消除重键的影响,编制程序时可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。 3.5.5 按键防抖动技术键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。这种做法,工作可靠,且节省机时。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用RS触发器或单稳态电路。如图3-6所示。软件消抖则是利用延时来跳过抖动过程。图3-6 单稳态硬件消抖电路键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线,示例如图3-7所示。矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如44的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。对矩阵键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。图3-7 独立式键盘本设计由于按键数量较少,为节省单片机的内部资源,故采用了独立式接法如图3-8所示。当某一个按键按下之后,都会产生一个低电平的中断信号,根据每个键的功能定义执行相应的操作。各个键的功能定义如下:第一个键用来切换波形的输出方式,第二个键和第三个键用来调节频率大小,分别为频率加和频率减,第四个键用来确认输出。图3-8 按键电路3.6 LCD显示模块的设计通过液晶1602显示输出的波形、频率,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P2.2P.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。电路如图3-9所示。 图 3-9 LCD液晶显示电路3.7 D/A 转化电路和I/V电路的设计 DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带输入数字锁存器。DAC0832与单片机接成数据直接写入方式,当单片机把一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。利用D/A转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。DAC0832主要性能:输入的数字量为8位;采用CMOS工艺,所有引脚的逻辑电平与TTL兼容;数据输入可以采用双缓冲、单缓冲和直通方式;转换时间:1us;精度:1LSB;分辨率:8位;单一电源:515V,功耗20mw;参考电压:-10+10V;DAC0832内部结构:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。 3.7.1 DAC0832管脚功能介绍DAC0832管脚如图3-10所示图3-10 DAC0832管脚图(1) DI7DI0:8位的数据输入端,DI7为最高位。(2) IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3) IOUT2:模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。(4) RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5) VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6) Vcc:芯片供电电压,范围为(+5 15)V。(7) AGND:模拟量地,即模拟电路接地端。(8) DGND:数字量地。 当WR2和XFER同时有效时,8位DAC寄存器端为高电平“1”,此时DAC寄存器的输出端Q跟随输入端D也就是输入寄存器Q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器Q端的状态则锁存到第二级8位DAC寄存器中,以便第三级8位DAC转换器进行D/A转换。一般情况下为了简化接口电路,可以把和直接接地,使第二级8位DAC寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片DAC0832芯片,构成多个DAC0832同步输出电路,程序简单化,但是电路线路连接比较复杂。根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。DAC0832主要是用于波形的数据的传送,是本题目电路中的主要芯片3.7.2 D/A转换器的性能指标:1.分辨率:输出模拟电压应能区分02n-1共2n个输入数字量。表示方法:(1)用输入二进制数的位数表示;如8位。(2) 用输出模拟电压的最小值与最大值的比值表示。指最小输出电压和最大输出电压之比。DAC0808的分辨率为1/256。2精度:DAC实际输出电压与理想的输出电压的偏差。 DAC0808的最大满刻度偏差为+1LSB 。3线性度:DAC实际传输特性曲线与理想的传输特性曲线的偏差。 DAC0808的最大误差为+0.19% 。4温度灵敏度:在输入不变的情况下,输出模拟电压随温度变化产生的变化量。一般用满刻度输出条件下温度每升高1,输出电压变化的百分数作为温度系数。3.7.3 I/V 转换电路DAC0832为电流输出型转换器,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。如图3-11所示为一种用两级运算放大器组成的模拟电压输出电路。从第一个运放输出为单极性模拟电压,从第二个运放输出为双极性模拟电压。如果参考电压为+5V,则点a输出电压为0-5V,点b输出电压为5V。 图3-11 D/A、I/V转换电路4 软件设计应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。一个优秀的应用系统的应具有下列特点:(1)根据软件功能要求,将系统软件分成若干个独立的部分。设计出软件的总体结构,使其结构清晰、流程合理。(2)要树立结构化程序设计风格,各功能程序模块化、子程序化。既便于调试、链接,又便于移植、修改。(3)建立正确的数学模型。即根据功能要求,描述各个输入和输出变量之间的数学关系,它是关系到系统好坏的重要因素。(4)为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。(5)要合理分配系统资源,包括ROM、RAM、定时数器、中断资源等。(6)注意在程序的有关位置处写上功能注释,提高程序的可读性。(7)加强软件抗干扰设计,它是提高系统应用可靠性的有利措施。4.1 主程序初始化程序将程序中所用的变量、数组、端口等进行初始化,使得变量能够上电复位为初始化的数值,然后进行定时器和中断的初始化。初始化完成后开中断,并进入主循环等中断,主程序流程如图4-1所示。b2a1变量、数组、端口初始化函数初始化定时器T0、T1初始化,开中断开始键盘扫描波形模式波形模式选择频率加频率液晶显示调频选择频率减图 4-1 主程序流程图4.2 定时器0服务程序定时器0中断服务程序主要是用于控制输出波形的频率,不同波形的输出频率以及步进都不一样,然而定时器的定时时间都一样,这就要求在程序中分别设定各种波形频率变换的中间值,需要根据波形来调试,选择合适的值,使输出波形达到频率要求。在此设计中设定了waveTH和waveTL这两组数组作为波形频率的中间值。uchar code waveTH= 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, /正弦波频率调整中间值0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde,/三角波频率调整中间值0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c;4.3 外部中断服务程序外部中断服务程序主要包括判断需要输出的波形,然后查找该波形数组对映的数据,将得到的数据送到DAC0832。输出的数字量均采用一个周期取8个点,利用线性关系以及正弦函数算出各个点,存放在内存中,用指针指向内存首址,取第一个数给DAdata,然后输出到0832,接着内存地址加1,延时一段时间,再取下一个数输出,这样一直下去,直到读完8个数,并依次输出每一个点,就可得到方波、正弦波以及三角波。利用键盘菜单选择,模式1、2、3时就有对应的波形产生。三角波、正弦波以及码表如下:uchar code triangle_tab=0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff,0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80,0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00;uchar code sine_tab256=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,

温馨提示

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

评论

0/150

提交评论