安徽工程大学波形示波器.docx
- 文档编号:9699594
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:33
- 大小:400.42KB
安徽工程大学波形示波器.docx
《安徽工程大学波形示波器.docx》由会员分享,可在线阅读,更多相关《安徽工程大学波形示波器.docx(33页珍藏版)》请在冰豆网上搜索。
安徽工程大学波形示波器
安徽工程大学本科
课程设计说明书
专业:
计算机科学与技术
题目:
数字式波形发生器
学生姓名:
杨凯帆
指导教师:
谢永宁
2011年6月
前言
随着电子技术的飞速发展,单片机在生活中的应用越来越广泛。
各种基于单片机的一起设备应运而生。
单片机构成的仪器具有可靠性高,性价比高,便于操作等优点。
单片机的种种优点往往是有接口能力和处理外界信息的能力表现出来的。
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。
本次开发时在8086的平台上,利用AT89C51和DAC0832芯片利用系统内置的8255扩展接口连接电路实现的。
可产生方波、三角波,也可以根据内部程序设定的参考值调节波形的频率、幅值,利用开关控制相应的操作,具有线路简单、结构紧凑等优点。
前言………………………………………………………………………………………….1
目录…………………………………………………………………………………………
课程设计任务书……………………………………………………………………………
第一章系统总体设计思路
1.1波形形成原理…………………………………………………………………
1.2设计思路………………………………………………………………………
1.3设计操作………………………………………………………………………
第二章接口技术及相关芯片介绍
2.1AT89C51介绍………………………………………………………………
2.2AT89C51定时器介绍………………………………………………………
2.3ADC0832介绍………………………………………………………………
2.48255实验模块介绍…………………………………………………………
第三章实验电路图……………………………………………………………………
第四章详细设计
4.1主控模块……………………………………………………………………..
4.2调频模块……………………………………………………………………..
4.3调幅模块……………………………………………………………………..
4.4显示方波……………………………………………………………………..
4.5显示三角波……………………………………………………………………..
4.6计算模块……………………………………………………………………..
小结………………………………………………………………………………
参考文献…………………………………………………………………………
附录1:
实验电路图…………………………………………………………………
附录2:
源程序……………………………………………………………………
课程设计任务书
Ⅰ课程设计题目:
数字式波形发生器
Ⅱ原始资料
应用计算机技术,通过巧妙的软件设计和简易的硬件电路,实现数字式的波形发生器。
具有显示输出波形类型、及其粗调频率和幅度的功能。
基本要求:
、设计实验电路(要求利用实验仪的硬件资源)
、分析实验原理
、列出实验接线表
、采用汇编语言编写实验程序
、通过实验验证功能的实现
、编写课程设计说明书
Ⅲ原理:
1.方波形成原理
方波就是在一个波形输出周期内输出一个高电平和一个低电平,通常是每半个周期输出一个高电平,另半个周期输出低电平。
输出的高低电平的宽度由定时器B确定,定时器的初值由波形频率确定,即定时的时间是波形周期的一半。
先输出高电平并启动定时器,定时到则输出低电平并再次启动定时器,定时到则输出高电平并在启动定时器……。
2、三角波形成原理
可以用数学上分割的思想,将斜线分割成很多小段,每一小段用直线代替,这样三角波的上升沿和下降沿由很多个小阶梯构成,由于阶梯很多则阶梯就很小,看上去三角波的上升沿和下降沿可以近似为直线,那么这样的波形便可以近似为三角波。
按照这种原理,三角波的形成就可以转换成与方波类似的原理解决,即用定时输出,每个阶梯进行定时并输出对应的电平。
这里和方波不同的地方在每次定时完后不是在高低电平两者切换,而是输出的电平是按一定的步进值进行递增和递减。
指导老师(签字)
完成日期年月日
接受任务书学生签字
第一章系统总体设计思路
1.1波形形成原理
1、方波形成原理
方波就是在一个波形输出周期内输出一个高电平和一个低电平,通常是每半个周期输出一个高电平,另半个周期输出低电平。
如下图所示。
输出的高低电平的宽度由定时器B确定,定时器的初值由波形频率确定,即定时的时间是波形周期的一半。
先输出高电平并启动定时器,定时到则输出低电平并再次启动定时器,定时到则输出高电平并在启动定时器……。
2、三角波形成原理
可以用数学上分割的思想,将斜线分割成很多小段,每一小段用直线代替,这样三角波的上升沿和下降沿由很多个小阶梯构成,由于阶梯很多则阶梯就很小,看上去三角波的上升沿和下降沿可以近似为直线,那么这样的波形便可以近似为三角波。
看到的波形图放大后的波形图
按照这种原理,三角波的形成就可以转换成与方波类似的原理解决,即用定时输出,每个阶梯进行定时并输出对应的电平。
这里和方波不同的地方在每次定时完后不是在高低电平两者切换,而是输出的电平是按一定的步进值进行递增和递减。
1.2设计思路
由以上的波形形成原理可知系统需要定时器对输出的信息进行定时转换(如高低电平的转换,输出电平的逐渐变换)。
需要模数转换器实现不同电压到相应的输出信号的转换。
同时题目要求要能够进行基本的调节频率和幅度的功能,所以这还需要有修改相关的幅度,频率等参数的功能。
结合以前所做的实验以及对相关芯片的理解和认识,本次实验采用AT89C51与DAC0832,将各个控制开关接到8255,通过读取各口字的状态实现对系统的控制,包括显示波形的形状,频率,幅度等。
1.3操作设计
1.机器通电后程序全速运行后,系统处于初始状态,此时无任何信号输出,示
波器显示为初始状态。
2.用户按下不同的键,选择不同的操作。
P1.0控制调频,P1.1控制调幅,p1.2控制输出方波,p1.3控制输出三角波。
P1.4~P1.7用来控制选择字。
第二章接口技术及相关芯片介绍
本章主要是对AT89C51,89C51定时器介绍,DAC0832的介绍。
2.1AT89C51介绍
89C51引脚图
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
VCC:
供电电压。
GND:
接地。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
P0口:
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口也可作为AT89C51的一些特殊功能口。
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
2.2AT89C51定时器介绍
89C51单片机内有两个16位的定时器/计数器。
即定时器0(T0),定时器1(T1)。
AT89C51定时器结构
TMOD控制字及其意义:
模式说明:
定时器模式2
把TL0配置成一个可以自动恢复初值(初始常数自动重新装入)的8位计数器,TH0作为常数缓冲器,如图6-29所示。
TH0由软件预置值;当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中。
T0(或T1)结构—8位计数结构
方式2常用于定时控制。
例如希望每隔250us产生一个定时控制脉冲,则可以采用12MHz的振荡器,把TH0预置为6,并使C/T=0就能实现。
方式2还用作串行口波特率发生器。
定时器方式时间常数计算
设方式2工作时,定时时间为200us,时钟振荡频率为12MHz,计算:
1个机器周期为:
12×1/f=12×(1/12MHz)×10^6=1us
设时间常数为X,则(2^8-X)×1us=200us
X=2^8-200=56
化成十六进制数为:
X=38H
根据8位定时器/计数器特性,高8位F0H送至TH0;低5位0CH送TL0可用下列指令实现:
MOVTL0,#038H;低5位送TL0寄存器
MOVTH0,#038H;高8位送TH0寄存器
但要注意到方式二的最大定时为(2^8-0)=256us
2.3DAC0832的引脚及功能
DAC0832的引脚图
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:
分辨率为8位;电流稳定时间1us;
可单缓冲、双缓冲或直接数字输入;
只需在满量程下调整其线性度;
单一电源供电(+5V~+15V);
低功耗,200mW。
3DAC0832结构:
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns。
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:
数字信号地
4DAC0832的工作方式:
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式
2.48255实验模块介绍
8255A是为Intel公司的微处理器配套的通用可编程并行I/O接口芯片。
8255A有2个8位并行端口、2个4位并行端口,每个端口均能通过控制寄存器编程确定为全部输入、全部输出或其它指定功能。
8255A实验模块的片选信号已经连接,端口地址分别为:
PA口0FF28H;PB口0FF29H;
PC口0FF2AH;控制口0FF2BH。
第三章硬件电路图
按照实验程序实验接线如下:
1.K1~K7分别接P1.0~P1.7.
2.0832片选信号CS5接地址FF80H
3.AOUT,GND分别接示波器。
第四章详细设计
4.1主控模块
由上一部分分析,本系统主要有5个模块。
分别是主控程序,调频模块,调幅模块,显示方波,显示三角波。
主控模块:
为了使用户在运行程序直接选择显示方波或三角波而不是先进行参数设置时能看到波形,初始波形的幅度,频率参数。
因为程序较长,要进行长跳转。
ORG00H
LJMPSTART
ORG0030H
START:
MOVSP,#53H
CLREA
CLRTR0
MOV65H,#04FH;幅度初值
MOVR7,#06H;循环时间初值
MOVR5,#01H;循环次数初值
MOVR0,#0FFH
Main:
JBP1.0,tiaopin;p1.0口为1,转去执行调频子程序
JBP1.1,tiaofu;p1.1口为1,转去执行调幅子程序
JBP1.2,Jfangbo;p1.2口为1,转去执行显示方波
JBP1.3,JSanjiao;p1.3口为1,转去执行显示三角波
SJMPMain;不断的查询命令空
Jfangbo:
LJMPfangbo;
JSanjiao:
LJMPsanjiao;
4.2调频模块
本程序是让用户通过修改控制字来选择相应频率的参数。
;查询用户所选择的开关,计算出其所代表的数值,根据数值去查表,得出当前的频率。
;调频
tiaopin:
MOVA,#0H
MOV60H,#0H
JNBP1.4,Next11;P1.4口为0则直接跳到下一位
MOV60H,#01H
Next11:
MOVA,60H
RLA
MOV60H,A
JNBP1.5,Next12;P1.5
ADDA,#1H
MOV60H,A
Next12:
MOVA,60H
RLA
MOV60H,A
JNBP1.6,Next13;P1.6
ADDA,#01H
MOV60H,A
Next13:
MOVA,60H
RLA
MOV60H,A
JNBP1.7,Next14;P1.7
ADDA,#01H
MOV60H,A;60H存放的是频率的指针
Next14:
MOVDPTR,#PINLV;
MOVA,60H
MOVCA,@A+DPTR;读取表中第60H)位的频率值
MOVR7,A;R7中存放定时的时间
MOVDPTR,#COUNT
MOVA,60H
MOVCA,@A+DPTR
MOVR5,A;R5中存放循环次数
MOVDPTR,#SANCOUNT
MOVA,60H
MOVCA,@A+DPTR
MOVR2,A;R2中存放三角形的定时时间
JBP1.0,tiaopin;查询调频操作结束
LJMPMAIN
4.3调幅模块
本程序是让用户通过修改控制字来选择相应频率的参数。
;调幅
tiaofu:
MOVA,#0H
MOV62H,#0H
JNBP1.4,Next21;P1.4口为0则直接跳到下一位
MOV62H,#01H
Next21:
MOVA,62H
RLA
MOV62H,A
JNBP1.5,Next22;P1.5
ADDA,#1H
MOV62H,A
Next22:
MOVA,62H
RLA
MOV62H,A
JNBP1.6,Next23;P1.6
ADDA,#01H
MOV62H,A
Next23:
MOVA,62H
RLA
MOV62H,A
JNBP1.7,Next24;P1.7
ADDA,#01H
MOV62H,A
Next24:
MOVDPTR,#FUDU
MOVA,62H
MOVCA,@A+DPTR;R6中存放当前幅度值
MOVR6,A
MOV65H,A;62H存放的是幅度的指针
JBP1.1,tiaofu
LJMPMAIN
4.4显示方波
本模块实现方波的显示,根据方波的显示原理和已设定的频率、幅度,,利用8951的定时功能,预订的时间到时候,跳到相反的电平输出。
每半一个周期输出结束后要检查当前平p1.2是否是高电平(即是否要继续显示方波)。
如果为低电平则说明用户关闭了显示方波的功能返回,否则继续显示。
本处时钟频率采用的为12MH,定时器的延时采用的是模式2方式,但是根据计算模式2的最大的延时时间为(2^8-0)*震荡周期*12=256us,对于显示方波来说这个延时是不够的所以在单个延时的外部添加了延时次数(即为表COUNT)中数据,通过循环程序的方式实现延时时间的增长。
fangbo:
MOVR0,#00fH
MOVDPTR,#0FF80H
qian1:
MOVA,65H
MOVX@DPTR,A
MOVA,R5;
MOVR4,A
SHOW11:
CLRTF0
MOVTMOD,#02H;00000110定时器,10模式
MOVTH0,R7;设定定时初值
MOVTL0,R7
SETBTR0;启动定时器
LOP11:
JBCTF0,jianyi11;查询定时器溢出标示
SJMPLOP11
jianyi11:
DECR4;程序循环查询
MOVA,R4
JNZSHOW11;显示前半周期
JNBP1.2,WAN1;判断是否继续显示方波
MOVR0,#0FFH
MOVA,#0H
MOVDPTR,#0FF80H
MOVX@DPTR,A
MOVR1,#00FH
MOVA,R5
MOVR4,A
SHOW12:
CLRTR0
MOVTMOD,#02H;00000110定时器,10模式
MOVTH0,R7;设定定时初值
MOVTL0,R7
SETBTR0;开定时中断
LOP12:
JBCTF0,jianyi12;查询定时器溢出标示
SJMPLOP12
jianyi12:
DECR4;程序循环查询
MOVA,R4
JNZSHOW12;显示后半周期
djnzR1,hou1
JNBP1.2,WAN1;判断是否继续显示方波
SJMPfangbo
WAN1:
RET
4.5显示三角波
本模块实现三角波的显示,一些相似的地方,但又较方波复杂。
根据已设定的频率,将每半个周期分成一定的份数,利用AT89C51的定时功能,在每一小份内,预订的时间到时候,输出电平增加一个步长,同时要检查当前值是否小于幅值,小于则继续进行加运算输出。
当检测到当前值大于等于幅值后先查询P1.3是否为高电平(即是否继续显示三角波)。
如果为低电平则返回,否则继续显示。
在波形的后半周期则是每一个显示延时后减去一个步长,判断其与0的大小,大于则继续显示,小于等于则查询P1.3
;三角波的显示
Sanjiao:
MOVDPTR,#0FF80H
MOVR3,#0
LOP21:
MOVA,R3
MOVX@DPTR,A
SHOW21:
MOVTMOD,#02H;00000110定时器,10模式
MOVTH0,R2
MOVTL0,R2
SETBTR0
LOP23:
JBCTF0,jia21
SJMPLOP23
jia21:
INCR3
MOVA,R3
CJNEA,65H,LOP21
JNBP1.3,WAN2
LOP22:
MOVA,R3
MOVX@DPTR,A
SHOW22:
MOVTMOD,#02H;00000110定时器,10模式
MOVTH0,R2
MOVTL0,R2
SETBTR0
LOP24:
JBCTF0,jia22
SJMPLOP24
jia22:
DECR3
MOVA,R3
CJNEA,#0H,LOP22
JNBP1.3,WAN2
SJMPsanjiao
WAN2:
RET
4.6计算模块
实验中所设的幅度范围为1FH~FFH,频率范围为10HZ到2500HZ。
频率计算公式为:
t=1/f
t=count*(yanshi)
yanshi=(256-X)*机器周期*12
;表中数据
;*****************************************************
FUDU:
DB01H,01FH,02FH,03FH,04FH,05FH,06FH,07FH
DB08FH,09FH,0AFH,0BFH,0CFH,0DFH,0EFH,0FFH
PINLV:
DB06H,06H,6H,06H,06H,06H,06H,06H
DB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 工程 大学 波形 示波器