基于单片机波形记录器设计毕业设计.docx
《基于单片机波形记录器设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机波形记录器设计毕业设计.docx(50页珍藏版)》请在冰豆网上搜索。
基于单片机波形记录器设计毕业设计
基于单片机波形记录器设计毕业设计
第1章概述
1.1设计背景与研究现状
在实际的生产、科研等过程中,数据采集、数据压缩存储、波形分析与统计、图形绘制、频谱分析、波形组合运算、谐波分析、有效值计算、功率计算、三相对称性分析等对于工作的研究很重要,而所有这些必须建立在波形记录的前提下,传统的波形记录仪器,不是时间效率较差,就是价格昂贵,要求较高的购买力,难以满足一般的用户需要。
再如科研工作常常依赖波形记录仪记录、收集信息。
本章主要介绍了波形记录的背景与研究现状与课题意义。
随着微电子技术应用的迅猛发展,人们开始利用微处理器的数据存储和数据处理能力,并使之与A/D转换技术相结合来研制功能强大、结构轻巧、使用灵活方便、数据处理能力强的新型波形记录仪。
而波形记录仪广泛用于工业监测、地质勘测等方面。
如导弹飞行记录器用来记录导弹的运行状况,为导弹的评估好坏提供重要的数据;心电记录仪用于记录人体有异常感受时的心电图,为医生的诊断带来方便;在野外测图时,必须带有电子记录器,用于地形空间数据的采集;气象站需要自动记录降水的记录器,广泛用于汽车,飞机,轮船上的各种黑匣子也是记录器的一种;在地震的预测中也离不开波形记录仪。
对记录仪的性能要求不断提高,促使技术不断的进步,而微控技术的出现为数字式波形记录仪的发展带来了新的生机。
目前,国内的高性能的波形记录器的研究主要在信息数据采集及处理和数模信号的转换电路方面。
其主要方向是提高采样频率,如采用更高精度的A/D转换器件;提高数据转化速率以及多样的触发功能电路,如采用复杂的可编程逻辑器件或现场可编程门阵列等可编程器件作为核心部件实现高速数字的存储。
另一方面,采用计算机与软件结合的方法设计虚拟波形记录器。
目前许多虚拟仪器已经可以实现大部分的波形记录器功能,同时虚拟波形记录器的存储空间更大。
但是由于受到计算机接口总线速度的影响,其性能也受到一定的限制。
目前,市场上的波形记录器大多采用CPLD、FPGA等可编程器件作为核心部件实现高速数字存储,同时外带友好的人机交互界面,采用LCD显示,但随之而来的是成本的快速上升,市场价格昂贵,不适合广泛运用。
针对目前国内缺少结构简单,功能适中,造价低的波形记录器的情况,本文设计了一个基于51系列单片机控制的单片机波形记录器,用于记录如温度、湿度等缓慢变化信号波形。
通过信号采集,数据转换等过程将波形存储,通过接入示波器使波形得以复现。
1.2课题的意义
波形的记录和分析是许多实际工作的基础:
1.波形记录仪器是生产、科研和工程调试等工作必备的工具。
2.测试、实验中对测试对象的运行状态的波形记录与分析是测试与实验的重要手段和对实验结果进行评价的重要依据;
3.科研工作常常依赖波形记录仪记录、收集信息;事故分析更是离不开波形记录仪提供的依据。
因此该课题的设计具有实际意义,通过设计可以提高独立分析问题和解决问题的能力;可以培养创新意识和创新能力;可以增强个人理论分析、实验研究、文献查阅、计算机运用和文字表达等方面的能力;可以加深自己对理论知识的理解,以及实际操作的经验。
1.3本论文研究内容
本次设计的主要内容是学习和运用AT89S52单片机和8位D/A转换芯片DAC0832共同实现正弦波、方波、三角波、锯齿波这四种常见波形的发生。
并且可以接收外接键盘输入而在一定范围内改变频率。
通过该课题的设计掌握以AT89S52为核心的单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法。
同时掌握了函数发生器系统的设计流程。
软件方面主要是应用C语言设计程序。
该系统的软件可运行于WindowsXP环境下,硬件电路设计具有典型性。
同时本系统中任何一部分电路模块均可移植于实用开发系统的设计中,电路设计具有实用性。
第2章系统设计方案
2.1设计思路
本系统利用微机控制技术和数字存储技术,用于记录如温度、湿度等缓慢变化信号的波形。
它首先对模拟信号进行采样获得相应的数字信号并存储,存储器中储存的数据可用来在示波器的屏幕上重现信号波形,从而获得所需要的各种信号参数。
设计中采用自顶向下的方法,先确定系统的设计方案,再将系统划分为几个模块设计。
本章主要介绍了系统设计的主要功能,设计方案的确定和设计的主要思想。
2.2系统功能分析
根据系统设计的要求,系统的主要工作为被测信号的采样、存储和重现信号波形。
被测信号的采样、存储和重现信号波形过程如下:
1.被测信号的采样、存储输入的被测信号的大小是一个可变化的值,在进行A/D转换前,信号通过调理,以适合A/D转换器。
单片机在启动A/D转换时还需考虑到与信号的同步问题。
同时信号的采样次数和存储地址的分配也要求合理设计。
每完成一次采样,A/D转换器向单片机申请中断,单片机接受中断,转入中断处理。
在中断处理中保存采样数据。
2.重现信号波形:
波形重构是通过D/A转换器不断快速重复地把A/D转换过程中存储在数据存储器中的数字信号进行D/A转换,并按固定频率输出至通用模拟示波器完成的。
为了使呈现在示波器屏幕上的波形清晰无闪烁,D/A转换必须足够快。
通过初步的分析与思考,将本系统配合通用示波器,需实现如下功能:
1.采样存储的基本功能:
将通用示波器难以观察的单次变化的信号转换为周期性的重复信号,实现对单次变化的信号进行连续的观察;并且,系统中的RAM需设有掉电保护措施,系统即使经关机断电后还能随时再现原来的波形信号,达到了采样存储示波器的记忆功能效果。
2.慢扫描的基本功能:
缓慢变化的信号,先经慢速的A/D采样,然后再以几倍的速度进行D/A转换,使信号波形的时间轴得以压缩,压缩的效果等效于示波器扫描速度的减小,使通用示波器具备观察变化慢的信号的功能。
2.3总体设计思想
本设计采用单片机做控制器,系统的设计包括硬件的设计和软件的设计。
根据系统的结构框图,设计时将硬件分为四部分:
输入电路、键盘显示电路、控制存储电路和输出电路。
输入电路将待测模拟信号转变为数字量;键盘和显示电路用于选择、显示输入通道,启动采样和启动波形的输出;输出电路包括D/A转换电路以及双极性变换电路,用以将数字量变为模拟量;控制部分需要结合软件的设计,输出各种控制逻辑。
软件的设计也按模块划分为:
主程序设计和键盘扫描子程序的设计、A/D转换子程序的设计、D/A转换子程序的设计、LED显示子程序的设计、数据存储子程序和延时子程序的设计。
设计的程序主要的功能是实现键盘的控制与管理,控制波形的采样和存储以及波形的复现。
当然在设计时各个模块也不是完全独立,在每一步的设计中均需要综合考虑系统的性能,同时在设计系统的硬件时便着手软件的设计,注意了软硬件的配合。
2.4本章小结
本章主要通过方块图展示了系统的设计结构包括主机部分的设计,同时还设计了制作思路。
第3章硬件设计
3.1单片机概述
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。
其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。
因为简单可靠而性能不错获得了很大的好评。
尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到现在基于8051的单片机还在广泛的使用。
在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。
事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。
汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作。
单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多[13]。
3.1.1单片机AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
对于AT89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
AT89S52具有如下特点:
40个引脚,8kBytesFlash片内程序储存器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/0)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0HZ并通过软件设置省电模式。
空闲模式,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电式冻结振荡器而保存RAM的数据,停止芯片其他功能直至外中断激活或硬件复位[1][2][3]。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求,AT89S52引脚如图3-1所示。
主要功能特性:
·兼容Mcs-51指令系统·8K可反复擦写ISPFlashROM
·32个双向I/O口·4.5~5.5v工作电压
·3个16位可编程定时计数器·时钟频率0-33MHz
·全双工作UART穿行中断口线·256bit内部RAM
·2个外部中断源·低功耗空闲和省电模式
·中断唤醒省电模式·3级加密位
·看门狗(WDT)电路·软件设置空闲和省电功能
·灵活的ISP字节和分页编程·双数据寄存器指针
图3-1单片机引脚图
3.1.2复位电路
无论使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
手动按钮复位需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
AT89S52的上电复位,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?
F。
上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。
上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。
在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。
另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。
如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。
常用的上电或开关复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
单片机复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
在单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作。
实际应用中,复位操作有两种形式:
一种是上电复位,另一种是上电与按键均有效的复位。
上电复位只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。
上电复位要求接通电源后,单片机自动实现复位操作。
上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平逐渐下降。
只要RST引脚保持两个机器周期的高电平单片机就可以进行复位操作。
手动按钮复位需要人为在复位输入端RST上加入高电平,一般采用的办法是在RST端和正电源VCC之间接一个按钮。
当人为按下时,则VCC的+5V电平就会直接加到RST端[4][7]。
本设计用的上电与接键均有效的复位。
电路图如3-2所示:
图3-2复位电路图
3.1.3振荡特性
计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。
这个脉冲是由单片机控制器中的时序电路发出的。
单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作。
要给我们的计算机CPU提供时序,就需要相关的硬件电路,即振荡器和时钟电路。
89S52单片机内部有一个高增益反相放大器,这个反相放大器的作用就是用于构成振荡器用的,但要形成时钟,外部还需要加一些附加电路。
89S52单片机的时钟产生有以下两种方法:
内部时钟方式:
利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHz-12MHz之间选择。
为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。
外部时种方式:
此方式是利用外部振荡脉冲接入XTAL1或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。
由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。
对于CHMOS型的单片机(例如80C51),因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外时钟信号接到XTAL1而XTAL2悬空。
外接时钟信号通过一个二分频的触发器而成为内部时钟信号,要求高、低电平的持续时间都大于20ns,一般为频率低于12MHz的方波。
片内时钟发生器就是上述的二分频触发器,它向芯片提供了一个2节拍的时钟信号。
前面已提到,计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。
由于指令的字节数不同,取这些指令所需要的时间也就不同,即使是字节数相同的指令,由于执行操作有较大的差别,不同的指令执行时间也不一定相同,即所需的拍节数不同。
为了便于对CPU时序进行分析,一般按指令的执行过程规定了几个周期
时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。
时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频,关断控制信号用于单片机的功耗管理可关闭时钟振荡器,也可关闭CPU的时钟,降低单片机的功耗。
时钟电路:
单片机的时钟信号通常有两种方式生产:
一是内部时钟方式,二是外部时钟方式。
本设计采用内部时钟方式,在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2脚外接石英晶体(简称晶振),就构成了自己震荡器并在单片机内部产生时钟脉冲信号。
图3-3振荡电路图
图3-3中电容器的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF,晶振Y1的振荡频率范围在1.2~12MHz和6MHz.本设计采用12MHz晶振,电容值为30pF。
在电路总体设计中,先从片内程序储存器取指还是从内部程序储存器取指的选择信号。
当EA\Vpp接高电平时,先从片内程序存储器读取指令,读完4KB后,自动改为片外取指。
若EA\Vpp接低电平,则所有指令均从片外程序存储器读取。
ALE脚用于输出允许地址所存信号。
PSEN脚用于外部程序存储器选通信号,在对外部程序存储器取指操作时此引脚置低电平有效。
在执行片内程序存储器取指时PESN脚无效。
本设计无片外程序储存区扩展,所以将EA\Vpp接高电平,ALE及PSEN脚悬空。
3.2液晶显示电路
在本毕业设计中,波形的显示是采用简单的液晶LCD1602显示屏。
LCD(LiquidCrystalDisplay)是液晶显示器英文名称的缩写,液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特性,达到白底黑字或黑底白字显示的目的。
液晶显示器具有功耗低、抗干扰能力强等优点。
3.2.1LCD1602功能介绍
LCD1602也被称作1602字符型液晶。
它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个
或者
等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔,每行之间也有也有间隔,这样则起到了字符间距和行间距的作用,也正因为如此,它不能显示图形。
LCD1602是指显示的内容为
,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
LCD1602实物图如图3-4所示,LCD1602引脚图如图3-5所示。
图3-4LCD1602实物图
图3-5LCD1602引脚图
目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
3.2.2LCD1602性能参数
LCD1602的主要技术参数及应用配置如表3-1所示。
表3-1芯片的主要技术参数及应用配置
显示容量:
16×2个字符
芯片工作电压:
4.5~5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(WXH)mm
LCD1602的管脚排列如图3-6所示,它共有16个引脚,各引脚功能如表3-2所示。
详细说明如下:
(1)VSS:
电源地;
(2)VDD:
电源正极;
(3)VL:
液晶显示偏压信号,对比度调整端,接地时最高,接正电源最低,可接10K,电位器调整;
(4)RS:
寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器;
(5)R/W:
读/写选择端,高电平读操作,低电平写操作;
(6)E使能信号,当E端由高电平跳变成低电平时,液晶模块执行命令;
(7)BLA背光源正极;BLK背光源负极;
(8)D0~D7数据端口。
图3-6LCD1602的管脚排列
表3-2LCD1602管脚功能及说明
编号
符号
引脚说明
1
VSS
电源地
2
VDD
电源正极
3
VL
液晶显示偏压信号
4
RS
数据/命令选择端(H/L)
5
R/W
读/写选择端(H/L)
6
E
使能信号
7
D0
DataI/O
8
D1
DataI/O
9
D2
DataI/O
10
D3
DataI/O
11
D4
DataI/O
12
D5
DataI/O
13
D6
DataI/O
14
D7
DataI/O
15
BLA
背光源正
16
BLK
背光源负
LCD1602的主要技术参数如表3-3所示。
表3-3LCD1602A主要技术参数
指令码
功能
0
0
1
1
1
0
0
0
设置16*2显示,5*7点阵,8位数据接口
LCD1602显示模式如表3-4所示。
表3-4LCD1602显示模式
指令码
功能
0
0
0
0
1
D
C
B
D=1开显示D=0关显示