收藏 分享(赏)

基于51单片机的函数发生器设计.doc

上传人:精品资料 文档编号:10875696 上传时间:2020-01-16 格式:DOC 页数:62 大小:2.03MB
下载 相关 举报
基于51单片机的函数发生器设计.doc_第1页
第1页 / 共62页
基于51单片机的函数发生器设计.doc_第2页
第2页 / 共62页
基于51单片机的函数发生器设计.doc_第3页
第3页 / 共62页
基于51单片机的函数发生器设计.doc_第4页
第4页 / 共62页
基于51单片机的函数发生器设计.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、 课程设计报告课 程 名 称 51 单片机 设 计 题 目 基于 51 单片机的函数发生器的设计与制作系 部 名 称 机械电子工程学院 专 业 班 级 2013 级电子信息工程(2)班 姓 名 段绍敏、徐敏、李观生 学 号 134520、13452040、134520 成 绩 指 导 教 师 胡子健 2016 年 9 月2摘 要函数发生器主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。本次设计的主要目的就是为了学习基于单片机的函数发生器的工作原理,设计出一个低频的函数发生器。从事本次设计不仅可以让我对函数发生器的原理有更深的了解,而且也对单片机的知识有更深的掌握。

2、单片机有很多种类,而且制作函数发生器的方案繁多,本次设计是以AT89C51单片机为核心,选用DAC0832为数模转换芯片,并辅以必要的模拟电路,设计出了一个基于AT89C51单片机的函数信号发生器。其设计内容主要包括单片机最小系统的设计、DA转换模块的设计、键盘控制模块的设计及LCD显示模块的设计。其中DA转换模块包括2块DAC0832芯片和OP07运放电路,第一块DA芯片的输出作为第二块DA芯片的参考电压,而第一块DA芯片的2.5V参考电压由MC1403芯片的输出来提供;键盘控制模块采用3个按键来选择波形类型及调节频率、幅值;显示模块则采用LCD1602来显示波形类型、频率及幅值;最终将设计

3、好的函数发生器的输出接上示波器,在示波器上显示实际输出的波形。本设计最终能达到预期的效果,能实现电压步进0.1V,方波能够任意调节占空比以及在LCD1602上显示波形类型、电压和频率,并且可以通过示波器来观察其输出的波形。【关键词】AT89C51 单片机 DAC0832 LCD1602 按键3目 录前 言 .5第一章 单片机概述 .6第一节 单片机的发展历史及趋势 .6第二节 AT89C51 单片机结构简介 7一、AT89C51 的基本特性 7二、AT89C51 单片机的外部引脚介绍 8第三节 本章小结 .10第二章 方案选择 .11第一节 波形生成方案 .11第二节 频率改变方案 .12第三

4、节 本章小结 .13第三章 系统硬件设计 .14第一节 各模块硬件设计 .14一、系统总体设计 .14二、单片机最小系统设计 .15三、8 位 DA 转换器 DAC0832.16四、2.5V 基准电压模块设计 20五、系统显示功能设计 .20六、系统按键功能设计 .24第二节 本章小结 .25第四章 系统软件设计 .27第一节 Keil C51 开发环境简介 27一、Keil uVision3 环境介绍 27二、利用 Keil uVision3 创建新项目 .28第二节 系统软件流程设计 .29一、系统软件总体设计 .29二、子系统软件设计 .30三、系统详细流程 .32第三节 本章小结 .3

5、3第五章 设计成果 .34第一节 实物展示和性能说明 .34一、系统设计的实物整体 .34二、液晶显示模块 .35三、示波器显示模块 .37第二节 本章小结 .39结 论 .40致 谢 .41参考文献 .42附 录 .43一、英文原文: .434二、英文翻译: .46三、工程设计图纸: .48四、源程序: .495前 言本次设计的主要是学习基于单片机的函数发生器的工作原理,制作出一个低频的函数信号发生器。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。函数发生器作为一种通用的电子仪器,在生产、科研、测控、

6、通讯等领域都得到了广泛的应用。但市面上能看到的此类仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。我们长期使用的信号发生器,大部分是由模拟电路构成的,这类仪器作为信号源,频率可达上百MHz,在高频范围内其频率稳定性高、可调性好。但用于低频信号输出时,它所需要的RC值很大,参数准确度难以保证。而且其体积大,损耗也大。前人研制了采用8031单片机及程序存储器构成的最小系统组成的数字式低频信号发生器,它在低频范围内性能好,但是体积较大,价格较贵。随着大规模集成电路技术的发展,集成度不断提高,使得微型机的速度和性能大为提高,可靠性增加,成本降低。MCS-51就是将具有存储程

7、序、处理数据以及与外设交换信息的功能电路集成在一块芯片中,并符合一定系统结构而构成的单片机。单片机有很多种类,而且制作函数发生器的方案繁多,本次设计是以AT89C51单片机为核心,选用DAC0832为数模转换芯片,并辅以必要的模拟电路,设计出了一个基于AT89C51单片机的函数信号发生器。其设计内容主要包括单片机最小系统的设计、DA转换模块的设计、键盘控制模块的设计及LCD显示模块的设计。其中DA转换模块包括2块DAC0832芯片和OP07运放电路,第一块DA芯片的输出作为第二块DA芯片的参考电压,而第一块DA芯片的2.5V参考电压由MC1403芯片的输出来提供;键盘控制模块采用3个按键来选择

8、波形类型及调节频率、幅值;显示模块则采用LCD1602来显示波形类型、频率及幅值;最终将设计好的函数发生器的输出接上示波器,在示波器上显示实际输出的波形。本设计最终能达到预期的效果,能实现电压步进 0.1V,方波能够任意调节占空比以及在 LCD1602 上显示波形类型、电压和频率,并且可以通过示波器来观察其输出的波形。6第一章 单片机概述单片机的全称是单片微型计算机(Single Chip Microcomputer) ,国际上统称为微控制器(Micro Controller Unit,MCU) 。它把组成微型计算机的各功能部件(中央处理器(CPU) 、随机存取存储器(RAM) 、只读存储器(

9、ROM) 、可编程存储器(EPROM) 、并行及串行输入/输出(I/O)接口电路、定时器/计数器、中断控制器等)集成在一块半导体芯片上,构成一个完整的微型计算机。在进行一个具体的单片机应用系统开发之前,需要对单片机的硬件资源配置和体系结构有较深入的了解。本章将对 AT89C51 单片机的基础内容作较详细的讲解。第一节 单片机的发展历史及趋势单片机出现的历史并不长,但发展十分迅猛。它的产生与发展和微处理器的产生和发展大体相同,自 1971 年 Intel 公司首先推出 4 位微处理器以来,它的发展到目前为止大致可分为 4 个阶段:一、 单片机发展的初级阶段(20 世纪 70 年代初70 年代中期

10、) 。1971 年 11 月 Intel 公司首先设计出集成度为 2000 只晶体管/片的 4 位微处理器 Intel 4004,并配有 RAM、ROM 和移位寄存器,构成了第一台 MCS-4微处理器。随后又设计出了 8 位微处理器 Intel8008,在此期间 Fairchild公司也设计出了 8 位微处理器 F8。这些微处理器虽然还不是真正的单片机,但从此拉开了研制单片机的序幕。二、 低性能单片机阶段(20 世纪 70 年代中期80 年代初期) 。以 1976 年 Intel 公司推出的 MCS-48 系列为代表,采用将 8 位 CPU、8 位并行 I/O 端口、8 位定时器/计数器、RA

11、M 和 ROM 等集成在一块半导体芯片上的单片结构,虽然其寻址范围有限,也没有串行 I/O 端口,RAM、ROM 容量小,7中断系统也较简单,但功能可满足一般工业控制和智能化仪表等的需要。这种采用将 CPU 与计算机外围电路集成到一块芯片上的技术,标志着单片机的诞生。从而导致了计算机领域中开始出现两大分支:通用计算机系统和嵌入式系统。三、 高性能单片机阶段(20 世纪 80 年代初期90 年代初期) 。这一阶段推出的 8 位单片机普遍带有串行口,有多级中断处理系统,多个 16 位定时器/计数器。片内 RAM、ROM 的容量加大,寻址范围可达 64KB,个别片内还带有 A/D 转换接口。这一阶段

12、中最具典型性的产品为 1980 年Intel 公司推出的 MCS-51 系列单片机,其他代表产品有 Motorola 公司的6801 和 Zilog 公司的 Z8 等。这类单片机的运算速度大幅度提高,增加了外围电路功能,强化了智能控制的特征,拓宽了单片机的应用范围,使之能用于智能终端、局域网络的接口等。因而,它是目前国内外单片机产品的主流,各制造公司还在不断的改进和发展它。四、8 位单片机巩固发展阶段及 16 位、32 位单片机不断推出阶段(20世纪 90 年代至今) 。此阶段单片机在集成度、功能、速度、可靠性、应用领域等方面向更高水平发展。如:CPU 的位数有 8 位、16 位、32 位,而

13、结构上采用双 CPU 结构或内部流水线结构,以提高处理能力和运算速度;时钟频率高达 20MHz 甚至更高,使指令执行速度相对加快;提高新型的串口总线结构,为系统的扩展和配置打下了良好的基础;增加新的特殊功能部件,如监视定时器 WDT、DMA传输、PWM 输出、可编程计数阵列 PCA、调制解调器、通信控制器、浮点运算单元等;半导体制造工艺的不断进步,使芯片向高集成度、低功耗方向发展。此阶段单片机内集成的功能越来越强大,并朝着片上系统方向发展,单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等各方面得到大量应用。随着技术的进步,早期的 8 位中、低档单

14、片机逐渐被淘汰,但 8 位单片机并没有消失,尤其是 51 系列单片机不仅没有消失,反而还呈现快速发展的趋势。目前,单片机正朝着高性能和多品种方向发展,将进一步向着 CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方向发展。8第二节 AT89C51 单片机结构简介一、AT89C51 的基本特性AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,

15、与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 单片机有 40 个管脚,分成两排,每一排各有 20 个脚,其中左下角标有箭头的为第 1 脚,然后按逆时针方向依次为第 2 脚、第 3 脚第 40脚。在 40 个管脚中,其中有 32 个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这 32 个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做

16、“P1.0”。AT89C51 单片机的主要特性:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 二、AT89C51 单片机的外部引脚介绍AT89C51 单片机的外部引脚的排列及名称如图 1.1 所示:图 1.1 所示管脚9描述如下:VCC:提供掉电空闲正常工作电压。GND:接地。 P0 口:P0 口是开漏双向口,可以写为 1 使其状态为悬浮用作高阻输

17、入。 P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出 1。P1口:P1口是带内部上拉的双向 I/O口,向P1 口写入1时,P1 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。其中P1.0用作定时/计数器2的外部计数输入/时钟输出;P1.1用作定时 /计数器2重装载 /捕捉/方向控制。图 1.1 AT89C51 单片机的外部引脚图P2口:P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在

18、访问外部程序存储器和外部数据时,分别作为地址高位字节和16位地址(MOVX DPTR),此时通过内部强上拉传送1。当使用8位寻址方式(MOVRi)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。10P3口:P3口是带内部上拉的双向I/O口。向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流,P3口还具有以下特殊功能:RxD(P3.0):串行输入口TxD(P3.1):串行输出口INT0(P3.2):外部中断0INT1(P3.3):外部中断T0(P3.4):定时器0外部输入T1(P3.5):定时器1外部输入WR(P3.6):

19、外部数据存储器写信号RD(P3.7):外部数据存储器读信号RST:当晶振在运行中只要复位管脚出现 2 个机器周期高电平即可复位。内部有扩散电阻连接到 Vss,仅需要外接一个电容到 Vcc 即可实现上电复位。ALE:地址锁存使能,在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE 输出信号恒定为 1/6 振荡频率。并可用作外部时钟或定时,注意每次访问外部数据时一个 ALE 脉冲将被忽略。ALE 可以通过置位SFR 的 auxlilary.0 禁止,置位后 ALE 只能在执行 MOVX 指令时被激活。PSEN:当执行外部程序存储器代码时,PSEN每个机器周期被激活两次.在访问外部数

20、据存储器时PSEN无效,访问内部程序存储器时PSEN无效。EA/VPP:在访问整个外部程序存储器时 EA 必须外部置低,如果 EA 为高时将执行内部程序,除非程序计数器包含大于片内 FLASH 的地址。该引脚在对FLASH 编程时提供 5V/12V 编程电压(Vpp),如果保密位 1 已编程 EA 在复位时由内部锁存。XTAL1:反相振荡放大器输入和内部时钟发生电路输入。XTAL2:来自反向振荡器的输出。第三节 本章小结本章第一节主要介绍了单片机的发展历史及未来趋势,让我们对单片机有了一个初步的了解。第二节比较详细地描述了 AT89C51 单片机的结构特性及引脚功能,为学习下一章打下了坚实的基

21、础。11第二章 方案选择函数发生器一般是指能自动产生正弦波、方波、三角波的电压波形的电路或者仪器。其波形产生方法有单片机控制 DA 技术、直接数字合成等;电路形式可以采用由运放及分离元件构成,也可以采用单片集成函数发生器。本章将讨论采用何种方法设计函数发生器。第一节 波形生成方案函数发生器在科学实验、电子测量、自动控制、设备检测、无线通讯等领域有着广泛的应用。信号发生器的基本功能是可以提供符合一定技术指标要求的电信号,其波形、频率、幅值均可以调节。实现信号发生器电路的方案很多,其特点也不同,主要有模拟电路实现方案、数字电路实现方案和模数混合实现的方案。1、 采用单片机控制技术实现的信号发生器该

22、方案的主要思路是采用编程的方法来产生希望得到的波形,用户将要输出的波形预先存储在半导体存储器中,在需要某种波形时将储存在存储器中的数据依次读出来,经过数模转换、滤波等处理后,输出该波形的信号。该方案优点是输出信号的频率稳定,抗干扰能力强,实现任意波形的信号容易,可通过外置按键或键盘来设定所需要产生信号源的类型和频率,还可以通过显示器显示出波形的相关信息。不足之处是由于单片机的处理数据的速度有限,当产生频率比较高的信号时,输出波形的质量将下降。2、利用直接数字频率合成(DDS)集成芯片实现的信号发生器随着大规模集成电路制作技术的发展,采用直接数字频率合成技术实现的信号产生集成芯片应用越来越广泛。

23、DDS 集成芯片内部主要由相位累加器、波形存储器、高速 D/A 转换器等环节组成,在时钟脉冲的控制下,相位累加12器对输入的频率控制字不断进行累加得到相应的相位码,同时相位码序列作为地址信号去寻址波形存储器进行相位码到幅度码的转换,并输出不同的幅度编码。这一系列不同的幅度编码经过 D/A 转换器得到相应的阶梯电压信号,最后经过低通滤波器平滑,即可输出相应的信号。一般集成 DDS 芯片内部时钟脉冲的频率固定,其相位累加器位数也不变,所以只需改变频率控制字即可实现输出信号频率的变化。利用 DDS 集成电路设计的信号发生器具有输出频率高,频率稳定度高,输出频率分辨率高,易于实现全数字控制等优点,是目

24、前设计高精度、高性能信号发生器的首选方案。目前典型的 DDS 集成芯片有 AD9850、AD9851、AD9852 和 AD9834 等。3、 利用专用函数发生器集成电路实现的信号发生器利用集成函数发生器专用芯片可以方便的实现多种波形的输出,而且外围电路简单,调试容易。例如早期的函数发生器集成芯片有ICL8038、BA205、XR2206/2207/2209 等,这些芯片的不足时输出信号的频率不高,最大仅有几百 kHz,调节方式不灵活,频率和脉冲信号的占空比不能独立调节。MAX038 是美国 MAXIM 公司推出的新一代单片函数信号发生器,MAX038 内部含有精密带隙电压参考、鉴相器和 TT

25、L 同步输出,可以采用较少的外部元件构成一台高频函数发生器,也可单独用作电压控制振荡器、频率调制器、脉宽调制器、锁相环、频率合成器和 FSK 信号发生器,它的主要特点有:0.1Hz20MHz 的输出频率调节范围,350:1 的扫频范围,10%90%的占空比调节范围,可以输出正弦波、方波、矩形波、三角波、锯齿波等波形,且频率和占空比调节互不影响,是目前较为理想的函数发生器集成芯片。4、采用分立器件组成的信号发生器过去传统的信号发生一般采用这种方式,该方案一般采用集成运算放大器外加电阻、电容等元件,构成方波、三角波发生器,然后将三角波信号或方波信号转换成正弦波信号输出;也可以直接采用 RC 正弦波

26、信号发生器产生正弦波信号。该方案的缺点是输出信号频率较低,输出的波形质量差,输出频率调节范围小,电路复杂且体积大。 综合考虑成本、复杂程度、技术要求等各种因素,选择了单片机控制双 DA 技术完成频率的改变这种方案。第二节 频率改变方案13方案一:单片机控制 DA 产生波形均是由查表产生,查表频率的改变可导致送至 DA 的数据端得点与点之间的距离变化,点与点距离的变化后,波形的周期将发生变化,也就是波形的频率改变了。因此控制单片机的查表频率即可实现频率的步进。其优点是能够很方便的改变频率;其缺点是对单片机查表频率的精度要求较高,且随着频率增高而提高。方案二:单片机控制计数器的初值。其优点是解除了

27、单片机对查表频率精度的要求;其缺点是当 DA 的输出频率高于 100Hz 时,每改变一个计数频率引起输出频率的增加或者减少的频率都大于 100Hz。对计数器的位数要求较高(至少需要 10 位) ,且由于受到 VCO 的振荡频率的影响输出频率失真度增加。综合方案一和方案二的优缺点,本文采用了在低频时控制单片机的查表频率从而改变输出频率,在高频时改变计数器的计数初值来改变频率的方法从而较完美地实现要求。第三节 本章小结本章主要介绍了本设计的具体方案,本设计采用双 DA 技术来生成波形,在频率控制方面,本设计采用控制单片机查表的频率和改变计数器的计数初值相结合的方法。14第三章 系统硬件设计硬件设计

28、是系统设计非常重要的一部分,这关系到系统能否正常运行,每一个模块的设计都关系到整体。本章将详细地介绍系统各个模块的设计,包括单片机最小系统、DA 转换模块、液晶显示模块和按键控制模块等。第一节 各模块硬件设计一、系统总体设计本设计总体框图如图 3.1 所示:图 3.1 系统总体框图系统总体款图主要包括以下几个部分:15单片机部分:本设计选用 AT89C51 单片机作为控制核心。DA 转换部分:本设计采用 2 块 DAC0832 芯片,其中一块的输出用于另一块 DA的基准基准电压部分:第一块 DA 的 2.5V 基准电压通过 MC1403 芯片来实现。显示部分:本设计采用 LCD1602 来显示

29、波形的类型、幅值的大小、频率的大小。键盘部分:本设计采用 3 个独立按键来控制波形类型的选择、幅值大小的改变及频率大小的改变。二、单片机最小系统设计本设计以 AT89C51 单片机为核心,要使 AT89C51 单片机正常工作,必须满足它的基本条件,这就是最小工作系统,如图 3.2 所示:图 3.2 AT89C51 单片机最小系统最小工作系统包括如下几部分:电源:单片机使用的是 5V 电源,其中正极接 40 引脚(Vcc) ,负极接 20 引脚(GND) 。晶振电路:晶振是晶体振荡器的简称,单片机是一种时序电路,必须提供脉冲信号才能正常工作。AT89C51 单片机内部有一个用于构成振荡器的高增益

30、反相放大器。引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放16大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为 11.0592MHz,电容值约为 30F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。单片机内部已经集成了振荡器;使用晶体振荡器,接 18(XTAL2

31、) 、19(XTAL1)脚。只要买来晶振、电容,按图接上即可。复位电路:单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使 CPU 和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从 0000H 地址单元开始执行。单片机冷启动后,片内RAM 为随机值,运行中的复位操作不改变片内 RAM 区中的内容,21 个特殊功能寄存器复位后的状态为确定值,见表 3.1。 表 3.1 寄存器复位后状态表特殊功能寄存器 初始状态 特殊功能寄存器 初始

32、状态ABPSWSPDPLDPHP0P3IPIE00H00H00H07H00H00HFFH*00000B0*00000BTMODTCONTH0TL0TH1TL1SBUFSCONPCON00H00H00H00H00H00H不定00H0*B按图中画法连好 9 脚(RST) ,单片机即可上电初始化。复位电路的工作原理是:通电时,电容两端相当于是短路,于是 RST 引脚上为高电平,然后电源通过电阻对电容充电,RST 端电压慢慢下降,降到一定程度,即为低电平,时间不少于 5ms。复位后单片机才开始正常工作。EA 引脚:31 引脚一般接到正电源端。17三、8 位 DA 转换器 DAC0832DAC0832

33、芯片引脚介绍 1DAC0832 是双列直插式 8 位 D/A 转换器。能完成数字量输入到模拟量(电流)输出的转换。图 3.3 和图 3.4 分别为 DAC0832 的引脚图和内部结构图。其主要参数如下:分辨率为 8 位,转换时间为 1s,满量程误差为1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与 TTL 兼容。从图 4 中可见,在 DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为 ILE,第二级锁存器称为 DAC 寄存器,它的锁存信号也称为通道控制信号/XFER。图 3.3 中,当 ILE 为高电平,片选信号/CS 和写信号/W

34、R1 为低电平时,输入寄存器控制信号为 1,这种情况下,输入寄存器的输出随输入而变化。此后,当/WR1 由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据 DB 的变化而变化。对第二级锁存来说,传送控制信号/XFER 和写信号/WR2 同时为低电平时,二级锁存控制信号为高电平,8 位的 DAC 寄存器的输出随输入而变化,此后,当/WR2 由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到 DAC 寄存器中。图 3.3 DAC0832 引脚图图 3.3 中其余各引脚的功能定义如下:18(1)、DI7DI0:8 位的数据输入端,D

35、I7 为最高位。(2)、IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。(3)、IOUT2:模拟电流输出端 2,IOUT2 与 IOUT1 的和为一个常数,即IOUT1IOUT2常数。(4)、RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB 端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)、VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至 255 的数字量转化出来的模拟量电压值的幅度,VREF 范

36、围为(+10-10)V。VREF 端与 D/A 内部 T 形电阻网络相连。(6)、VCC:芯片供电电压,范围为(+515)V。(7)、AGND:模拟量地,即模拟电路接地端。(8)、DGND:数字量地。图 3.4 DAC0832 内部结构图DAC0832 的工作方式 2DAC0832 可处于三种不同的工作方式:(1)直通方式 :当 ILE 接高电平,CS、WR1、WR2 和 XFER 都接数字地时,DAC 处于直通方式,8 位数字量一旦到达 DI7DI0 输入端,就立即加到 8 位D/A 转换器,被转换成模拟量。例如在构成波形发生器的场合,就要用到这种19方式,即把要产生基本波形的数据存在 RO

37、M 中,连续取出送到 DAC 去转换成电压信号。(2)单缓冲方式 :只要把两个寄存器中的任何一个接成直通方式,而用另一个锁存器数据,DAC 就可处于单缓冲工作方式。一般的做法是将 WR2 和XFER 都接地,使 DAC 寄存器处于直通方式,另外把 ILE 接高电平,CS 接端口地址译码信号,WR1 接 CPU 的 WR 信号,这样就可以通过一条 MOVX 指令,选中该端口,使 CS 和 WR1 有效,启动 D/A 转换。(3)双缓冲方式 :主要在以下两种情况下需要用双缓冲方式的 D/A 转换。需在程序的控制下,先把转换的数据输入输入缓存器,然后在某个时刻再启动 D/A 转换。这样,可先选中 C

38、S 端口,把数据写入输入寄存器;再选中 XFER端口,把输入寄存器内容写入 DAC 寄存器,实现 D/A 转换。在需要同步进行D/A 转换的多路 DAC 系统中,采用双缓冲方式,可以在不同的时刻把要转换的数据打入各 DAC 的输入寄存器,然后由一个转换命令同时启动多个 DAC 转换。先用 3 条输出指令选择 3 个端口,分别将数据写入各 DAC 的输入寄存器,当数据准备就绪后,再执行一次写操作,使 XFER 变低同时选通 3 个 D/A 的 DAC寄存器,实现同步转换。DAC0832 与单片机连接及外围电路的设计 3图 3.5 第一片 DAC0832 外接转换电路20图 3.6 第二片 DAC

39、0832 外接转换电路本次函数发生器的设计采用双 AD 技术。即用第一片 DAC0832 芯片的输出作为第二片 DAC0832 的基准电压,通过改变单片机对第一片 DAC0832 的输入来改变其输出,从而改变第二片 DAC0832 的基准电压,从而控制第二片DAC0832 的输出电流,由此可见,幅值的大小可由单片机来控制。同样单片机也与第二片 DAC0832 相连接,通过单片机查表频率的改变和定时器初值的改变来控制波形频率的大小。由于 DAC0832 是电流输出型,在输出端需接一个电流电压转换电路和一个负电压转换为正电压转换电路即可输出 0Vref 的电压值。其电路图如图 3.5、图 3.6

40、所示:四、2.5V 基准电压模块设计本设计采用 MC1403 芯片实现 2.5V 电压基准,其引脚图如图 3.7 所示:21图 3.7 MC1403 引脚图MC1403 是低压基准芯片。一般用作 812bit 的 D/A 芯片的基准电压等一些需要基本精准的基准电压的场合。输出电压:2.5V/-25mV,输入电压范围:4.5V40V,输出电流:10mA。因为输出是固定的,所以电路很简单。就是 Vin接电源输入,GND 接底,Vout 加一个 0.1uf1uf 的电容就可以了。Vout 一般用作 812bit 的 D/A 芯片的基准电压。五、系统显示功能设计本设计采用 LCD1602 来显示波形的

41、类型、幅值及频率。LCD1602 液晶显示模块,它可以显示两行,每行 16 个字符,采用单+5V 电源供电,外围电路配置简单。LCD1602 管脚如图 3.8 所示:图 3.8 接口管脚功能表如表 3.2 所示:图 3.8 LCD1602 芯片管脚图表 3.2 LCD1602 管脚功能表引脚号 符号 状态 功能1 Vss 电源地2 Vdd 电源+5V3 V0 对比度控制端4 RS 输入 寄存器选择225 R/W 输入 读、写操作6 E 输入 使能信号7 DB 三态 数据总线8 DB 三态 数据总线9 DB 三态 数据总线10 DB 三态 数据总线11 DB 三态 数据总线12 DB 三态 数据

42、总线13 DB 三态 数据总线14 DB 三态 数据总线15 LEDA 输入 背光+5V16 LEDK 输入 背地光LCD1602 主要管脚介绍:V0:液晶显示器对比度调整端,接地电源时对比度最高,对比度过高时会产生鬼影 ,使用时可以通过一个 10K 的电位器调整对比度。RS:寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。R/W:读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W共同为低电平时可以写入指令或者显示地址;当 RS 为高电平 R/W 为高电平R/W 为低电平时可以写入数据。E:使能端,当 E 端由高电平跳变成低电平时,液晶模块执行指令。LCD16

43、02 控制指令:LCD1602 有 11 个控制指令,如表 3.3 所示:表 3.3 LCD1602 指令对应功能表指令 功能清屏 清 DDRAM 和 AC 值归位 AC=0,光标、画面回 HOME 位输入方式设置 设置光标、画面移动方式显示开关控制 设置显示、光标及闪烁开、关光标、画面位移 光标、画面移动,不影响 DDRAM功能设置 工作方式设置CGRAM 地址设置 设置 CGRAM 地址。A5A0=03FH23DDRAM 地址设置 DDRAM 地址设置读 BF 及 AC 值 读忙标志 BF 值呵地址计时器 AC 值写数据 数据写入 DDRAM 或 CGRAM 内读数据 从 DDRRAM 或

44、 CGRAM清屏指令表如表 3.4 所示:表 3.4 LCD1602 清屏指令表RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 0 1显示开关控制如表 3.5 所示:表 3.5 显示开关控制表RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 1 D C B功能:设置显示、光标及闪烁开、关;其中:D 表示显示开关:D=1 为开,D=0 为关。C 表示光标开关:C=1 为开,C=0 为关。B 表示闪烁开关:B=1 为开,B=0 为关。光标、画面位移控制如表 3.6 所示:表 3.6 LCD

45、1602 光标、画面位移控制表RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L * *功能:光标、画面移动,不影响 DDRAM。其中:S/C=1:画面平移一个字符位;S/C=0:光标平移一个字符位;R/L=1:右移;R/L=0:左移。功能设置如表 3.7 所示:表 3.7 LCD1602 功能设计表RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0240 0 0 0 1 DL N F * *功能:工作方式设置(初始化指令)其中:DL=1,8 位数据接口;DL=0,四位数据接口;N=1,两行显示;N=0,

46、一行显示;F=1,5 10 点阵字符;F=0,5 7 点阵字符。读写控制时序如表 3.8 所示:表 3.8 LCD1602 读写控制时序RS R/W E 功能0 0 下降沿 写指令代码0 1 高电平 读忙标志和 AC 码1 0 下降沿 写数据1 1 高电平 读数据LCD1602 与单片机连接图如下:图 3.9 LCD1602 与单片机连接电路图六、系统按键功能设计此信号发生器采用三个按键与 LCD1602 配合使用来调节输出信号的各个参数。如图 3.10 所示,三个按键分别赋予的意义为:“+”键、 “”键、功能键。25“ + ” 键 功能键“ ” 键图 3.10 按键分布与功能图“功能键”是选

47、择输出波形需要调节的参数, “+”键和“”键则是增加或者减小输出波形幅值或频率。操作时必须观察 LCD1602 上显示的内容再按键来调节相应参数。LCD1602 上显示的内容如图 3.11 所示。(1)G:M“+”键和“”键调节输出波形类型,改变的是 mode 的值(方波为 0,三角波为 1,正弦波为 2) 。(2)G:F “+”键和“”键调节输出信号频率,改变的是定时器的值。(3)G:A “+”键和“”键调节输出信号幅值,改变的是 A 的值(0.05.0V, 步进为 0.1V) 。m o d e : F S Z A : x . x v M 、 A 、 F F : x x x x x H z图

48、 3.11 LCD1602 显示内容示意图说明:按动“功能键”会使 G 的值在 0、1、2 之间循环切换。第二节 本章小结本章是本文的核心内容,其详细地介绍了该系统硬件设计的具体方案,26对各硬件模块以及调试过程中遇到的问题及解决方法作了比较系统的阐述。其中硬件设计方面包括单片机最小系统的设计、按键的设计、液晶显示模块的设计、DA 转换模块的设计及基准电压的设计等。在本次硬件调试过程中主要遇到两个问题:第一个问题是由于焊接技术比较生疏,造成在焊接完电路板后出现短路问题。因为没有通过 PCB 制板,而是由自己直接搭的电路,所以在焊接过程中用到了很多导线来连接,导线越多则越容易焊接错误。比如出现短

49、路、短路以及线跟线之间的干扰等一系列问题。这些问题都可能导致整个电路不通电。在开始调试的时候发现将 USB 电源接口通过数据线接入电脑的 USB 接口后电路板上的电源指示灯并不亮,当时想到可能是由于短路或者断路造成的,后来通过万用表一一排查发现原来是 USB 电源接口那里焊接短路,于是用吸焊器将那里的锡吸出并重新焊接,问题终于得到解决。第二个问题是液晶上显示乱码。通过网上查询后知道液晶显示乱码可能有两个原因:一是软件延时问题,二是线路干扰问题。我试着编了一个简单的液晶测试程序,通过改变延时时间的大小(从 100us 到 1s)发现液晶仍然显示乱码,因此我认为问题不是出在这里,所以我把注意力放在了线路上。经过半天的检查,发现液晶的使能端口和读写指令端口的导线裸露处相连了,所以造成了干扰。通过将两根导线分开并重新焊接后问题得到了解决,液晶正常显示

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报