单片机课程设计-波形发生器Word文档格式.doc

上传人:聆听****声音 文档编号:3663611 上传时间:2023-05-02 格式:DOC 页数:27 大小:3.72MB
下载 相关 举报
单片机课程设计-波形发生器Word文档格式.doc_第1页
第1页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第2页
第2页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第3页
第3页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第4页
第4页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第5页
第5页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第6页
第6页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第7页
第7页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第8页
第8页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第9页
第9页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第10页
第10页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第11页
第11页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第12页
第12页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第13页
第13页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第14页
第14页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第15页
第15页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第16页
第16页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第17页
第17页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第18页
第18页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第19页
第19页 / 共27页
单片机课程设计-波形发生器Word文档格式.doc_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计-波形发生器Word文档格式.doc

《单片机课程设计-波形发生器Word文档格式.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-波形发生器Word文档格式.doc(27页珍藏版)》请在冰点文库上搜索。

单片机课程设计-波形发生器Word文档格式.doc

在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)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。

波形发生器软件的开发正使波形数据的输入变得更加方便和容易。

波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。

同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。

从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。

目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。

(2)与VXI资源结合。

目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。

由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。

在民用方面,VXI模块远远不如台式仪器更为方便。

(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。

不过现在新的台式仪器的形态,和几年前的己有很大的不同。

这些新一代台式仪器具有多种特性,可以执行多种功能。

而且外形尺寸与价格,都比过去的类似产品减少了一半。

早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。

变得操作越来越简单而输出波形的能力越来越强。

波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的操作性越好。

2.设计要求

2.1设计内容

设计一个波形发生器,能产生三角波、方波、正弦波。

用按键来选择波形输出(A按键输出三角波,B按键输出方波,C按键输出正弦波),调节电位器能改变输出波形的频率。

并用四位LED显示,第1位显示目前输出什么波形,后3位显示频率值,即经A/D转换后得到的数字值。

2.2设计目的

1.了解波形发生器及键盘扫描的基本方法

2.掌握软硬件的相互配合和相互作用的关系

3.硬件设计

3.1设计方案

3.1.1系统总体框图:

8255A

单片机

键盘输入

示波器

DAC0832

数码管显示

ADC0809

电位器

系统框图

使用51单片机来控制8255输入输出,键盘输入和七段数码管显示由8255控制,按A选择三角波代码为A,按B选择方波代码为B,按下C选择正弦波代码为C。

通过软件程序来判断是哪种波形,由DAC0832产生波形。

通过ADC0809,将模拟量转换成数字量,数字量可作为软件中的参数,通过电位器调节模拟量而改变数字量从而改变波形频率。

波形的频率可以通过一系列的算法计算出显示在数码管上。

3.28255芯片

8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各口功能可由软件选择,使用灵活,通用性强。

8255可作为单片机与多种外设连接时的中间接口电路。

  8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:

与CPU连接部分、与外设连接部分、控制部分。

  1)与CPU连接部分

  根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。

由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。

此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。

各信号的引脚编号如下:

  

(1)数据总线DB:

编号为D0~D7,用于8255与CPU传送8位数据。

  

(2)地址总线AB:

编号为A0~A1,用于选择A、B、C口与控制寄存器。

  (3)控制总线CB:

片选信号、复位信号RST、写信号、读信号。

当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。

  2)与外设接口部分

  根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。

各通道的引脚编号如下:

  

(1)A口:

编号为PA0~PA7,用于8255向外设输入输出8位并行数据。

  

(2)B口:

编号为PB0~PB7,用于8255向外设输入输出8位并行数据。

  (3)C口:

编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。

  3)控制器

  8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。

如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:

  

(1)A组控制器:

控制A口与上C口的输入与输出。

  

(2)B组控制器:

控制B口与下C口的输入与输出。

 

8255管脚

特性

  

(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.

  

(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;

B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.

引脚功能

  RESET:

复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

  CS:

芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;

/CS=1时,8255无法与CPU做数据传输.

  RD:

读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

  WR:

写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。

  D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

  8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。

  方式0————基本输入输出方式;

方式1————选通输入/出方式;

方式2————双向选通输入/输出方式;

  PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

工作于三种方式中的任何一种;

  PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

不能工作于方式二;

  PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

'

不能工作于方式一或二。

  A1,A0:

地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.

  当A1=0,A0=0时,PA口被选择;

  当A1=0,A0=1时,PB口被选择;

  当A1=1,A0=0时,PC口被选择;

  当A1=1.A0=1时,控制寄存器被选择.

3.3DAC0832芯片

D0~D7:

8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

  *ILE:

数据锁存允许控制信号输入线,高电平有效;

  *CS:

片选信号输入线(选通数据锁存器),低电平有效;

  *WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

  *XFER:

数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

  *WR2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

由WR2、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.4ADC0809芯片

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

是目前国内应用最广泛的8位通用A/D芯片

1.主要特性

  1)8路输入通道,8位A/D转换器,即分辨率为8位。

  2)具有转换起停控制端。

  3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时) 

  4)单个+5V电源供电

  5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

  6)工作温度范围为-40~+85摄氏度

  7)低功耗,约15mW。

2.内部结构

  ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

3.外部特性(引脚功能)

  ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。

下面说明各引脚功能。

  IN0~IN7:

8路模拟量输入端。

  2-1~2-8:

8位数字量输出端。

  ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路

  ALE:

地址锁存允许信号,输入,高电平有效。

  START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

  EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

  OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  REF(+)、REF(-):

基准电压。

  Vcc:

电源,单一+5V。

  GND:

地。

ADC0809的工作过程

  首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

  转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。

数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。

为此可采用下述三种方式。

  

(1)定时传送方式

  对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。

例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。

可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

  

(2)查询方式

  A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。

因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。

  (3)中断方式

  把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

  不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。

首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

3.551单片机原理结构

  MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:

8051引脚

lP0.0~P0.7P0口8位双向口线(在引脚的39~32号端子)。

  lP1.0~P1.7P1口8位双向口线(在引脚的1~8号端子)。

  lP2.0~P2.7P2口8位双向口线(在引脚的21~28号端子)。

  lP3.0~P3.7P3口8位双向口线(在引脚的10~17号端子)。

  这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达方式来写的,相信你也能够理解。

四个I/O口:

P0口有三个功能

  1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)

  2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

  3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口

  只做I/O口使用:

其内部有上拉电阻。

P2口有两个功能

  1、扩展外部存储器时,当作地址总线使用

  2、做一般I/O口使用,其内部有上拉电阻;

P3口有两个功能

  除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

  有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,

  即:

编程脉冲:

30脚(ALE/PROG)

  编程电压(25V):

31脚(EA/Vpp)

3.6硬件原理图

见附录

单片机的P0口:

双向三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个TTL负载..

P2口:

是8位准双向I/O口,在访问外部存储时,它可以作为高8位地址总线送出高8位地址.

当P0口做地址总线的低8位时,需要通过一个74LS373进行锁存,再通过74LS138译码器进行译码输出来控制各个功能模块.

CS8255接F228H,CS0809接F230H,CS0832接F218H.

DAC0832模块用来产生波形,将数字量转换成模拟量输出,连接到示波器上.DI0到DI7接P0口,此时P0口作为数据总线直接与DI0到DI7相连接.

ADC0809模块用于产生一个数字量来作延时参数,通过调节电位器来改变参数的值就可以改变时间,

8255键盘扫描显示模块,用来显示波形代码以及波形周期.PB作输入口,PC和PA作输出口,PA口地址为F228H,PB口地址为F229H,PC口地址为F22AH.PB口用来判断是否有键按下.PC口与译码器相连,译码用来作位选,PA口用来作段选.

4软件设计

4.1系统软件框图设计

开始

8255初始化

NO

扫描第二行

有键按下

YES

判断键值

DA转换输出波形

主程序框图

DECA

显示波形

开启DA转换

A=#00H

A压栈

开启AD转换

查询P3.0等待转换完成

使用转换的值作延时参数

扫描键盘判断

A出栈

Y

有新的波形命令

其他波形

有新的波形输出命令

A等于#0

计算显示频率

INCA

返回再次执行

A等于#44H

三角波框图

A=#255

R2=#50H

显示波形代码

A=#0H

使用转换量作延时参数

DECR2

R2等于#25

R2等于0

N

方波框图

注:

R2是用来记数,每产生25个方波测一次频率.

压栈

R5=0

频率算法设计

A=R5

显示三位频率值

出栈

返回

使用转换值作延时参数

频率计算

查表操作

正弦波

显示计算频率

R5用来查表.

框图说明:

主程序:

先进行8255的初始化,然后扫描键盘第二行,判断是否有键值按下

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

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2