当前位置:文档之家› 基于单片机设计的简易信号发生器

基于单片机设计的简易信号发生器

基于单片机设计的简易信号发生器
基于单片机设计的简易信号发生器

辽东学院信息技术学院

《可编程逻辑器件原理及应用》教学实习报告

简易信号发生器

学生姓名:杨刚

学号: 0915110619

班级: B1106

专业:电子信息工程

指导教师:张俊芳

2014年07月

简易信号发生器

1引言

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。它能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器。

本设计采用FPGA来设计制作多功能信号发生器。该信号发生器可以产生锯齿波、三角波、方波等波形。

2 FPGA简介

FPGA(Field-Programmable Gate Array)即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

与传统们阵列和掩模可编程门阵列(MPGA)相比,FPGA具有很多的优点,传统门阵列可以用来设计任何电路,但是只能在工厂中一次性编程,而且还需要针对该电路的特定的掩模。FPGA是标准通用器件。使用其代替MPGA,可以将设计时间由几个月缩短至几小时,并且使设计更加简单,从而减少了错误修改和设计指标变更的花费。

FPGA器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:可编程快CLB(Configurable Logic Blocks)、可编程I/O模块IOB(Input Block)和可编程内部连线PI(Programmable Interconnect)。CLB在器件中排列为阵列,周围有环形内部连线,IOB分布在四周的管脚上。

FPGA也存在缺点,FPGA中,每个可编程的点都有电阻和电容。电阻和电容的使用

减慢了信号的传输速度,所以FPGA的速度比传统门阵列要低,而且,FPGA中互联延迟是不可预测的。

FPGA的基本特点主要有:

一、采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

二、FPGA可做其它全定制或半定制ASIC电路的中试样片。

三、FPGA内部有丰富的触发器和I/O引脚。

四、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

五、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

使用FPGA时,可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA 加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

3 VHDL & Verilog简介

VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)是一种用来描述数字系统行为和结构的硬件描述语言,被广泛的运用于描述和仿真各种数字系统,小到几个门,大到许多复杂集成电路相连的系统。

VHDL诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(Library Based)的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的FPGA器件中去,从而

实现可编程的专用集成电路(ASIC)的设计。

Verilog也是一种流行的硬件描述语言,他是由工业界开发的,1984年,Verilog作为一种私用的硬件描述语言,由Gateway Design Automation公司给出,1988年,Synopsis公司为Verilog开发了综合工具。1995年,Verilog成为IEEE的一个标准。Verilog 适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。

VHDL的语法是基于ADA语言的,而Verilog的语法是基于C语言的。由于是基于C 语言,所以它更容易掌握,但是VHDL语言在设计和描述大型系统时具有突出优势。目前两种语言各占一半市场份额,两种语言都可以满足数字系统设计者的需求。

本设计中采用VHDL语言进行设计。

4 设计工具简介

本次设计是基于Altera公司的QuartusII软件。

Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII支持Altera的IP核,包含了LPM/MegaFuction宏功能模块库,使用它,可以简化设计的复杂性,加快设计速度。QuartusII平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。此外,QuartusII通过和DSP Builder工具与

Matlab/SIMULINK相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统级设计、嵌入式软件设计、可编程逻辑设计于一体,是一种综性的开发平台。

5 系统设计

基于VHDL语言设计一个多功能信号发生器,通过选择输入信号,可以输出递增锯齿波、递减锯齿波、三角波、方波等四种信号。信号发生器的控制模块可以选用数据选择器实现,4种信号的数据选择可以使用4选1数据选择器实现。

5.1 VHDL程序语言基本设计

一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路,或者是一个计数器,也可以是一个CPU,一般情况下,一个完整的VHDL语言程序至少包括实体、结构体和程序包三个部分。实体给出电路单元的外部输入输出接口信号和引用信息,结构体给出了电路单元的内部结构和信号的行为特点,程序包定义在设计结构体和实体中将用到的常数、数据类型、子程序和设计好的电路单元等。

第一部分是程序包,程序包是用VHDL语言编写的共享文件,定义在设计结构体和实体中将要用到的常数、数据类型、子程序和设计好的电路单元等,放在文件目录名称为IEEE的程序包库中。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

第二部分是程序的实体,定义电路单元的输入/输出引脚名称。程序的实体名称可以任意取,但必须与VHDL程序的文件名称相同。实体的标示符是ENTITY,实体以ENTITY 开头,以END结束。

ENTITY fulladder IS

PORT(a,b,Ci:in std_logic;

Co,s: out std_logic_vector(7 downto 0));

END fulladder;

其中,定义了a,b, Ci为输入信号引脚,定义Co,s为输出信号引脚。

第三部分是程序的结构体,具体描述电路的内部结构和逻辑功能。结构体有三种描述方式,分别是行为(BEHA VIOR)描述方式、数据流(DATAFLOW)描述方式和结构描述方式。其中数据流描述方式又被称为寄存器(RTL)描述方式。结构体以表示ARCHITECHTURE开头,以END结尾。结构体的名称可以任取。

architecture behav of fulladder is

BEGIN

s<=a xor b xor Ci;

Co<=(a and b)or(a and Ci)or(b and Ci);

END fulladder

上面程序段中结构体的描述方式属于程序流描述方式。

以上三段程序是一个完整的VHDL程序段,实现的功能是一位全加器。

5.2 波形发生器设计

采用DDS技术可以很方便地产生各种高质量的波形。DDS技术是从相位概念出发之结合成所需要波形的一种频率合成技术。以正弦波为例,首先要按照一定的采样点数将正弦波形一个周期的数据信息存于ROM表中,表中包含着一个周期正弦波的数字幅度信息,每个地址对应正弦波中0到360度范围内的一个相位点的幅度值,查找表时即是把输入的地址相位信息映射成正弦波幅度的数字量信号,通过设置的输出端口输出。在实物设计中,可以使用D/A接口来实现波形信号的输出。

为简化设计过程,本设计并未采用DDS技术,而是采用描点输出的方式,实现波形发生器的设计。程序中设置一个波形的起始点,经过比较、计算得出波形的其他数值,将这些点依次连续输出,从而实现波形的仿真。以递增锯齿波为例,首先定义初始点为

tmp=“00000000”;在时钟上升沿到来时,执行tmp<=tmp+1;语句,同时将tmp输出,当tmp=“11111111”;时,将tmp值清零,执行下一个循环。

在本设计中,采用QuartusII软件仿真,所以可以通过波形文件直观的反映出输出的数字量的变化情况,以达到波形输出的仿真。

设计中分别对四种波形进行编程,编译无误后,封装生成模块文件,以供在后面的顶层电路设计中使用。

图5-1 四种波形封装图块

本设计中设置了四种波形,分别是递增锯齿波、递减锯齿波、三角波、方波。四种波

形通过一个4选1数据选择器来实现选择性输出。

5.3 四选一数据选择器设计

可以采用集成四选一数据选择器CT54153/CT74153,也可以使用软件编程生成模

块的方式实现数据四选一的功能。在本设计中采用后者,程序中,为每一种波形分配一个

通道,并为之赋予一唯一的代码,当在sel端输入不同的代码时,被选中的通道打开,响

应的波形发生模块产生波形。

entity mux41 is

port(sel:in std_logic_vector(2 downto 0);--定义输入端口sel

d1,d2,d3,d4: in std_logic_vector(7 downto 0);--定义输入端口d1,d2,d3,d4

q: out std_logic_vector(7 downto 0));--定义输出端口

end mux41;

architecture behav of mux41 is

begin

process(sel)

begin

case sel is

when "001"=>q<=d1;

when "011"=>q<=d3;

when "100"=>q<=d4;

when others=>null;

end case;

end process; 图5-2四选一数据选择器封装图块

end behav;

以上为四选一数据选择器程序段,其中sel端口为外部输入选择信号,d1,d2,d3,d4分

别连接四个波形发生模块,以二进制形式给sel幅值,选择相应的通道。q为输出端口,将波形信息的数字代码输出。

5.4 程序设计

图5-3 系统流程图

5.5 主要函数语句分析

在程序设计中,主要使用的函数语句有两种:If-else语句和case-when语句。这两种语句也是VHDL程序设计中常用的语句。二者都属于流程控制语句。流程控制语句通过条件控制开关决定是否执行一条或几条语句或重复执行一条或几条语句或跳过一条或几条语句。

IF语句是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语句。IF语句的语句结构有以下三种:

IF 条件句Then -- 第一种IF语句结构

顺序语句

END IF

IF 条件句Then -- 第二种IF语句结构

顺序语句

ELSE

顺序语句

END IF

IF 条件句Then -- 第三种IF语句结构

顺序语句

ELSIF 条件句Then

顺序语句

...

ELSE

顺序语句

END IF

CASE语句根据满足的条件直接选择多项顺序语句中的一项执行,CASE语句的结构如下:

CASE 表达式IS

When 选择值=> 顺序语句

When 选择值=> 顺序语句

...

END CASE

当执行到CASE语句时,首先计算表达式的值,然后根据条件句中与之相同的选择值。执行对应的顺序语句,最后结束CASE语句。表达式可以是一个整数类型或枚举类型的值,也可以是由这些数据类型的值构成的数组。

5.6 系统顶层文件

将上述5个模块(递增锯齿波sawtooth_adder、递减锯齿波sawtooth_minus、三角波triangle、方波square、4选1数据选择器mux41)封装成为模块文件,供顶层电路调用。可以得到以下顶层文件电路:

图5-4 系统顶层电路图

6系统仿真

通过选择不同的sel值,可以实现不同的波形输出。仿真中reset复位信号一直置高电平,即没有仿真复位情况。

输入的选择信号为1时,信号发生器顶层电路的仿真输出波形为递增锯齿波。输出的波形线性递增。

图6-1 递增锯齿波仿真波形

输入的选择信号为2时,信号发生器顶层电路的仿真输出波形为递减锯齿波。输出的波形线性递减。

图6-2 递减锯齿波仿真波形

输入的选择信号为3时,信号发生器顶层电路的仿真输出波形为三角波。输出的波形线性减小到最小值0后,再线性增加。

图6-3 三角波仿真波形

输入的选择信号为4时,信号发生器顶层电路的仿真输出波形为方波。输出的波形为周期性的全0或全1。(在仿真中,只有将CLK信号频率取得很高的时候,才可以清晰地看出仿真效果。)

图6-4 方波仿真波形

7 设计总结

7.1 小结

FPGA是当前数字系统设计领域比较火热的一种工具,它可以大大缩短设计需要的时间,降低成本的同时也提高了系统的稳定性。使用VHDL语言描述硬件系统使得FPGA 技术有了更广阔的应用领域。本设计使用了基于Altera公司的FPGA系列,采用Altera公司提供的系统开发工具Quartus II软件进行了系统的设计和仿真。数字信号发生器在实验室以及工业场所都被大量使用着,本系统即实现了可以输出四种波形的简易多功能波形发生器,仿真结果证明,该设计正确有效,可以作为制作实物的理论依据。但由于设计者能力有限,本系统仍然有着很多可改进的地方,比如可以升级为输出频率、幅值可调的波形,或者输出任意波形以更贴近实际情况。

7.2 心得体会

对FPGA一直都有着浓厚的兴趣,借做课设的机会,认真的研究了一下这门科学。发现FPGA技术比我想象中的要有很大的难度。里面有很多的思想来源于信息电子技术里面的基本知识,包括门电路的概念以及寄存器传送的基本知识。VHDL语言与C语言有很大的不同,但是C语言的编程思想也可以移植到VHDL语言中,尤其是一些逻辑算法的设计,需要有很强的C语言编程功底。学习一门知识要从最基本的体系架构开始,倘若一开始就从

顶层设计入手,就会造成很多基本原理、基本概念上的偏差,甚至会拖延学习设计的时间,事倍功半。虽然课设完成了,但是我意识到,我对FPGA技术仅仅只是停留在入门的阶段,想要有更大的发展,更深入的研究,还需要更多的努力与实践。

参考文献

[1] 蒋小燕,俞伟钧.EDA技术及VHDL.南京:东南大学出版社.2008年12月.

[2] 李国丽,朱维勇.EDA与数字系统设计.北京:机械工业出版.2005年3月.

[3] 江国强.EDA技术与实验.北京:电子工业出版社.2005年1月.

[4] 欧伟明.基于MCU、FPGA、RTOS的电子系统设计方法与实例.北京:北京航空航天大学出版社.2007年4月.

[5] Charles H.Roth,Jr、Lizy Kurian John著,金明录译.数字系统设计与VHDL.北京:电子工业出版社.2008年8月

附录

附录一:递增锯齿波程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; --程序包

entity sawtooth_adder is

port(clk,reset:in std_logic; --定义clk、reset为输入信号q:out std_logic_vector(7 downto 0)); --定义q为输出信号end sawtooth_adder; --实体

architecture behav of sawtooth_adder is

begin

process(clk,reset) --定义进程

variable tmp:std_logic_vector(7 downto 0); --定义变量,8位

begin

if reset='0'then --如果复位信号为0,tmp为0 tmp:="00000000";

elsif rising_edge(clk) then --捕捉时钟上升沿

if tmp="11111111"then --如果tmp递增至最大,增归零

tmp:="00000000";

else --否则,tmp继续递增

tmp:=tmp+1;

end if;

end if;

q<=tmp; --q等于变量tmp

end process; --进程结束

end behav; --结构体结束

附录二:递减锯齿波程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity sawtooth_minus is

port(clk,reset:in std_logic;

q:out std_logic_vector(7 downto 0));

end sawtooth_minus;

architecture behav of sawtooth_minus is

begin

process(clk,reset)

variable tmp:std_logic_vector(7 downto 0);

begin

if reset='0'then

tmp:="11111111";

elsif rising_edge(clk) then

if tmp="00000000"then

tmp:="11111111";

else

tmp:=tmp-1;

end if;

end if;

q<=tmp;

end process;

end behav;

附录三:三角波程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; --程序包

entity triangle is --定义三角波实体port(clk,reset:in std_logic;

q:out std_logic_vector(7 downto 0));

end triangle;

architecture behav of triangle is --定义三角波结构体

begin

process(clk,reset) --进程开始

variable tmp:std_logic_vector(7 downto 0); --定义中间变量tmp、a

variable a:std_logic;

begin

if reset='0'then --复位信号设置

tmp:="00000000";

elsif rising_edge(clk) then --捕捉时钟信号上升沿

if a='0'then --a=0时依次输出三角波上升沿if tmp="11111110"then

tmp:="11111111";

a:='1';

else

tmp:=tmp+1;

end if;

else --a=1时依次输出三角波下降沿if tmp="00000001"then

tmp:="00000000";

a:='0';

else

tmp:=tmp-1;

end if;

end if;

end if;

q<=tmp; --输出信号q=tmp

end process;

end behav; --结构体结束

附录四:方波程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity square is

port(clk,reset: in std_logic;

q:out std_logic_vector(7 downto 0));

end square;

architecture behav of square is

signal a:std_logic;

begin

process(clk,reset)

variable tmp:std_logic_vector(7 downto 0);

begin

if reset='0'then

a<='0';

elsif rising_edge(clk) then

if tmp="11111111"then

tmp:="00000000";

else tmp:=tmp+1;

end if;

if tmp<="10000000"then

a<='1';

else

a<='0';

end if;

end if;

end process;

process(clk,a)

begin

if rising_edge(clk)then

if a='1' then

q<="11111111";

else

q<="00000000";

end if;

end if;

end process;

end behav;

附录五:四选一数据选择器程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; --程序包

entity mux41 is --定义实体

port(sel:in std_logic_vector(2 downto 0); --信号选择端口sel

d1,d2,d3,d4: in std_logic_vector(7 downto 0); --d1d2d3d4分别连接四个波形发生模块q: out std_logic_vector(7 downto 0)); --定义输出信号端口end mux41;

architecture behav of mux41 is --结构体

begin

process(sel)

begin

case sel is --case when语句进行信号位的选择

when "001"=>q<=d1;

when "010"=>q<=d2;

when "011"=>q<=d3;

when "100"=>q<=d4;

when others=>null;

end case;

end process; --进程结束

end behav; --结构体结束

信号发生器毕业设计

信号发生器的设计与制作 系别:机电系专业:应用电子技术届:07届姓名:张海峰 摘要 本系统以AD8951集成块为核心器件,AT89C51集成块为辅助控制器件,制作一种函数信号发生器,制作成本较低。适合学生学习电子技术测量使用。AD9851是AD公司生产的最高时钟为125 MHz、采用先进的CMOS技术的直接频率合成器,主要由可编程DDS系统、高性能模数变换器(DAC)和高速比较器3部分构成,能实现全数字编程控制的频率合成。 关键词AD9851,AT89C51,波形,原理图,常用接法

ABSTRACT 5 The system AD8951 integrated block as the core device, AT89C51 Manifold for auxiliary control devices, production of a function signal generator to produce low cost. Suitable for students to learn the use of electronic technology measurement. AD9851 is a AD produced a maximum clock of 125 MHz, using advanced CMOS technology, the direct frequency synthesizer, mainly by the programmable DDS systems, high-performance module converter (DAC) and high-speed comparator three parts, to achieve full Digital program-controlled frequency synthesizer. Key words AD9851, AT89C51, waveforms, schematics, Common Connection

信号发生器的设计方案综述【文献综述】

文献综述 电子信息工程 信号发生器的设计方案综述 摘要:本文首先介绍了信号发生器的背景与应用,然后提出了基于直接数字频率合成(DDS)技术的信号发生器实现,概述了DDS的概念及基本结构,介绍了基于FPGA、单片机及专用芯片的信号发生器实现方案,最后对这些方案给出笔者的评价。 关键词:DSP BUILDER;数字移相信号发生器;DDS 1引言 在当今社会,信号发生器作为电子领域中的最基本、最普通、最广泛的仪器之一,是工科类电子工程师进行信号仿真实验的最佳工具。而信号发生器是指能产生测试信号的仪器,它主要用于产生被测电路所需特定参数的电测试信号。 本文设计的数字移相信号发生器通过移相技术在数控、数字信号处理机、工业控翻、自动控制等各个领域得以应用[1]。 2 DDS概述 直接数字频率合成DDS(Direct Digital Frequency Synthesizer)是一种采用数字化技术、通过控制相位的变化速度、直接产生各种不同频率信号的新型频率合成技术,标志着第三代频率合成技术的出现。它是把一系列数字量形式的信号通过数模转换器(DAC)转换成模拟量形式的信号[2]。目前使用的最广的一种DDS方式是利用高速存储器作查找表。然后通过高速DAC输出已经用数字形式存入的正弦波。具有频率切换时间短,频率分辨率高,频率稳定度高。输出信号的频率和相位可快速程控交换、输出相位连续、容易实现频率、相位和幅度的数控调制等优点[3]。 图1 DDS基本结构 DDS是以数控的方式产生频率、相位和幅度可以控制的正弦波,如图1所示为基本DDS结构,由

相位累加器、相位调制器、正弦ROM查找表、D/A构成[4]。相位累加器是整个DDS的核心,它由一个累加器和一个N位相位寄存器组成,每来一个时钟脉冲,相位寄存器以相位步长M增加,相位寄存器的输出与相位控制字相加,完成相位累加运算,其结果作为正弦查找表的地址,正弦ROM查找表内部存有一个完整周期正弦波数字幅度信息,每个查找表地址对应正弦波中o。~360。范围的一个相位点,查找表把输入的地址信息映射成正弦波幅度信号,通过D/A输出,经低通滤波器后,即可得一纯净的正弦波。 而所谓的移相,就是指两路同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为相位的移动。两路信号的相位不同,便存在相位差,简称相差[5]。两路信号的相位差用相位字来控制,只要相位字不同,就可得到两路不同相位的移相信号。 3 基于DDS的数字移相系统设计 3.1基于FPGA的实现 传统使用FPGA的数字信号处理系统的设计,首先需要用仿真软件进行建模仿真,得到预想中的仿真结果后。再根据仿真过程和结果,使用硬件描述语言创建硬件工程,最后完成硬件仿真。整个过程漫长而繁杂,尤其困难的是仿真过程不够直观.一旦遇到问题无法及时准确地确定问题所在。而DSP Builder作为一个面向DSP开发的系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级和RTL 级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势[5]。DSP Builder依赖于MathWorks 公司的数学分析工具Matlab/ Simulink ,DSP Builder允许设计者在Matlab 中完成算法设计,在Simulink 软件中完成系统集成,通过SignalCompiler模块生成Q uart usII 软件中可以使用的硬件描述语言(V HDL) 文件,它提供了QuartusII软件和MA TLAB/ Simulink工具之间的接口,通过DSP Builder 、SOPC Builder 、Quart usII 软件构筑的一套从系统算法分析到FPGA 芯片实现的完整设计平台[6]。 3.2基于单片机的实现 基于单片机的信号发生器其核心内容是单片机的主程序,主程序对整个设计起着总控作用[7]。设计方案如图2所示.系统在程序控制下,先读取P3口决定波形信号类别,然后由Po口输出数据,经D/A转换后放大、滤波输出.波形频率在线调整是通过读取P2口上的拨码开关的编码,并根据该编码产生的数字量,在PO口输出一个数据后立即产生一个对应时长的延时时间来实现.幅度调整是通过接在DAC上的滑动变阻器来改变D/A转换的参考电压来实现[8]。

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(完整word版)基于单片机的信号发生器开题报告

内蒙古工业大学本科生毕业设计(论文)开题报告

注:表格根据所填内容可进行调整,可多页。 一、设计总体方案 利用AT89S52 单片机采用程序设计方法产生锯齿波,正弦波,矩形波,方波四种波形,再通过D/A 转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控四种波形的类型,频率变化,最终输出显示其各自的类型及数值

图4.1 硬件原理框图 二.硬件各单元电路方案设计与选择 1、单片机的选择 方案一:AT89S52芯片中只有一路模拟输出或几路模拟信号非同步输出,这种情况下CPU对DAC0832 执行一次写操作,则把一个数据直接写入DAC寄存器,DAC0832的输出模拟信号随之对应变化。输出波形稳定,精度高,滤波好,抗干扰效果好,连接简单,性价比高。 方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵 方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。 以上两种方案综合考虑,选择方案一 2.键盘设计方案比较 方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。 方案二:独立式键盘。独立式键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。 以上两种方案综合考虑,选择方案二。 3、D/A转换部分

DSP任意波形信号发生器毕业设计

目录 摘 要 (2) Abstract (3) 1 绪论 (4) 1.1概述 (4) 1.2选题的目的、意义 (4) 1.3 选题的背景 (5) 1.4 本文所研究的内容 (6) 2 波形信号发生器的原理及方案选择 (7) 2.1任意波形信号发生器的原理 (7) 2.1.1 直接模拟法 (7) 2.1.2 直接数字法 (7) 2.2 任意波形发生器的设计方案 (9) 2.2.1 查表法 (9) 2.2.2计算法 (9) 2.2.3传统方法 (10) 3 基于DSP 5416的任意波形信号发生器的软件设计 (12) 3.1 TMS320C5416的开发流程 (12) 3.2软件开发环境 (13) 3.3任意波形信号发生器的软件编程 (14) 3.3.1 计算法实现波形输出 (14) 3.3.2 D/A转换 (15) 3.3.3波形控制及软件设计流程图 (16) 3.4参数的设定 (18) 4 基于DSP 5416的任意波形信号发生器的硬件设计 (20) 4.1 TMS320VC5416开发板 (20) 4.2 TMS320VC5416实验箱的连接 (23) 4.3 波形信号发生器的硬件测试过程 (23) 5 任意波形信号发生器展望 (28) 结束语 (29) 致谢 (30) 参考文献 (31)

摘 要 任意波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。 随着无线电应用领域的扩展,针对广播、电视、雷达、通信的专用信号发生器获得了长足的发展,表现在载波调制方式的多样化,从调幅、调频、调相到脉冲调制。如果采用多台信号发生器获得测量信号显然是很不方便的。因此需要任意波形发生器(Arbitrary Waveform Generator,AWG),使其能够产生任意频率的载频信号和多种载波调制信号。 目前我国已经开始研制任意波形发生器,并取得了可喜的成果。但总的来说,我国任意波形发生器还没有形成真正的产业。并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。 本文主要工作分为以下几个方面:首先,介绍研制任意波形信号发生器的目的、意义、背景,以及利用CCS仿真工具用软件实现任意波形信号发生器的的过程 ;之后,对硬件的连接及测试结果作介绍;最后,简要的对任意波形信号发生器的未来作一下展望。 关键词:DSP,任意波形信号发生器,DDS

信号发生器设计(附仿真)

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 信号发生器设计 一、设计任务 设计一信号发生器,能产生方波、三角波和正弦波并进行仿真。 二、设计要求 基本性能指标:(1)频率范围100Hz~1kHz;(2)输出电压:方波U p-p≤24V,三角波U p-p =6V,正弦波U p-p>1V。 扩展性能指标:频率范围分段设置10Hz~100Hz, 100Hz~1kHz,1kHz~10kHz;波形特性方波t r<30u s(1kHz,最大输出时),三角波r△<2%,正弦波r~<5%。 三、设计方案 信号发生器设计方案有多种,图1是先产生方波、三角波,再将三角波转换为正弦波的组成框图。 图1 信号发生器组成框图 主要原理是:由迟滞比较器和积分器构成方波——三角波产生电路,三角波在经过差分放大器变换为正弦波。方波——三角波产生基本电路和差分放大器电路分别如图2和图4所示。 图2所示,是由滞回比较器和积分器首尾相接形成的正反馈闭环系统,则比较器A1输出的方波经积分器A2积分可得到三角波,三角波又触发比较器自动翻转形成方波,这样即可构成三角波、方波发生器。其工作原理如图3所示。

图2 方波和三角波产生电路 图3 比较器传输特性和波形 利用差分放大器的特点和传输特性,可以将频率较低的三角波变换为正弦波。其基本工作原理如图5所示。为了使输出波形更接近正弦波,设计时需注意:差分放大器的传输特性曲线越对称、线性区越窄越好;三角波的幅值V 应接近晶体管的截止电压值。 m 图4 三角波→正弦波变换电路

图5 三角波→正弦波变换关系 在图4中,RP 1调节三角波的幅度,RP 2 调整电路的对称性,并联电阻R E2 用来减小差 分放大器的线性区。C 1、C 2 、C 3 为隔直电容,C 4 为滤波电容,以滤除谐波分量,改善输出 波形。 波形发生器的性能指标: ①输出波形种类:基本波形为正弦波、方波和三角波。 ②频率范围:输出信号的频率范围一般分为若干波段,根据需要,可设置n个波段范围。 ③输出电压:一般指输出波形的峰-峰值U p-p。 ④波形特性:表征正弦波和三角波特性的参数是非线性失真系数r~和r△;表征方波特性的参数是上升时间t r。 四、电路仿真与分析

基于AD9850的信号发生器设计_毕业设计

基于AD9850的信号发生器设计 摘要 介绍ADI 公司出品的AD9850 芯片,给出芯片的引脚图和功能。并以单片机 AT89S52 为控制核心设计了一个串行控制方式的正弦信号发生器的可行性方案,给出了单片机AT89S52 与AD9850 连接电路图和调试通过的源程序以供参考。直接数字合成(DDS)是一种重要的频率合成技术,具有分辨率高、频率变换快等优点,在雷达及通讯等领域有着广泛的应用前景。系统采用AD9850为频率合成器,以单片机为进程控制和任务调度的核心,设计了一个信号发生器。实现了输出频率在10Hz~1MHz范围可调,输出信号频率稳定度优于10-3的正弦波、方波和三角波信号。正弦波信号的电压峰峰值V opp能在0~5V范围内步进调节,步进间隔达0.1v,所有输出信号无明显失真,且带负载能力强。该电路设计方案正确可行,频率容易控制,操作简单灵活,且具有广阔的应用前景。 关键词:信号发生器;直接数字频率合成;AD9850芯片;AT89S52单片机

Abstract On the basis of direct digital synthesis(DDS)principle, a signal generator was designed , using AT89S52 single chip machine as control device and adopting AD9850 type DDS device .Hardware design parameters were given .The system can output sine wave ,square wave with wide frequency stability and good waveform .The signal generator has stronger market competitiveness , with wide development prospect ,in frequency modulation technology and radio communication technology fields. Key words: signal generator ;direct digital synthsis;AD9850;AT89S52

单片机课程设计 简易计算器的设计

目录 摘要 (1) 绪论 (1) 1.设计要求及功能分析 (1) 1.1 设计要求 (1) 1.2 基本功能 (2) 2.设计方案 (2) 2.1 硬件部分设计方案 (2) 2.1.1 单片机部分 (2) 2.1.2 按键部分 (2) 2.1.3 显示部分 (2) 2.2 软件部分设计方案 (2) 3.系统的硬件总体设计 (4) 3.1 系统的总体硬件设计 (4) 3.2 键盘连接电路 (4) 3.3 显示屏连接电路 (5) 3.4 单片机芯片AT89C51 (6) 3.5 外接电路 (7) 4.系统的软件总体设计 (8) 4.1 键盘识别程序设计 (8) 4.2 显示程序 (11) 4.3 运算程序 (11) 5.元器件清单及程序清单 (12) 5.1 元器件清单 (12) 5.2 程序清单 (12) 6.软件仿真 (18) 6.1 仿真验证 (18) 6.2 性能分析 (20) 6.3 出现故障及其原因 (20) 6.4 解决方法 (20) 结论 (20) 参考文献 (21) 致谢 (21) 附录PCB图 (22)

简易计算器的设计 学生:李飞马鹏超舒宏超 指导老师:王孝俭 摘要:单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 关键词:单片机、计算器、控制电路、仿真。 绪论 设计要求掌握数码管移位动态扫描显示的编程方法,掌握矩阵扫描的编程方法,掌握数据在内部运算的编程方法。设计任务实现最大8位正整数加、减、乘、除,具备清零、等于功能,16个按键功能依次为:数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除。 1.设计要求及功能分析 1.1设计要求: 本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。 1.2基本功能: 首先,计算器可现实8位数字,开机运行时,只有数码管最低位显示为“0”,其他位全部不显示;

基于51单片机的函数信号发生器的设计

龙源期刊网 https://www.doczj.com/doc/8312535188.html, 基于51单片机的函数信号发生器的设计 作者:朱兆旭 来源:《数字技术与应用》2017年第02期 摘要:本文所设计的系统是采用AT89C51单片机和D/A转换器件DAC0832产生所需不 同信号的低频信号源,AT89C51 单片机作为主体,采用D/A转换电路、运放电路、按键和LCD液晶显示电路等,按下按键控制生成方波、三角波、正弦波,同时用LCD显示相应的波形,输出波形的周期可以用程序改变,具有线路简单、结构紧凑、性能优越等特点。 关键词:51单片机;模数转换器;信号发生器 中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2017)02-0011-01 1 前言 波形发生器,是一种作为测试用的信号源,是当下很多电子设计要用到的仪器。现如今是科学技术和设备高速智能化发展的科技信息社会,集成电路发展迅猛,集成电路能简单地生成各式各样的波形发生器,将其他信号波形发生器于用集成电路实现的信号波形发生器进行对比,波形质量、幅度和频率稳定性等性能指标,集成电路实现的信号波形发生器都胜过一筹,随着单片机应用技术的不断成长和完善,导致传统控制与检测技术更加快捷方便。 2 系统设计思路 文章基于单片机信号发生器设计,产生正弦波、方波、三角波,连接示波器,将生成的波形显示在示波器上。按照对作品的设计研究,编写程序,来实现各种波形的频率和幅值数值与要求相匹配,然后把该程序导入到程序存储器里面。 当程序运行时,一旦收到外界发出的指令,要求设备输出相应的波形时,设备会调用对应波形发生程序以及中断服务子程序,D/A转换器和运放器随之处理信号,然后设备的端口输出该信号。其中,KEY0为复位键,KEY1的作用是选择频率的步进值,KEY2的作用是增加频 率或增加频率的步进值,KEY3的作用是减小频率或减小频率的步进值,KEY4的作用是选择三种波形。103为可调电阻,用于幅值的调节。自锁开关起到电源开关的作用。启动电源,程序运行的时候,选择正弦波,红色LED灯亮起;选择方波,黄色LED灯亮起;选择三角波,绿色LED灯亮起。函数信号发生器频率最高可达到100Hz,最低可达到10Hz,步进值0.1- 10Hz,幅值最高可到3.5V。系统框图如图1所示。 3 软件设计

任意信号发生器毕业设计开题报告书

苏州科技学院 毕业设计开题报告 设计题目任意信号发生器的硬件设计(基于89C51实现)院系电子与信息工程学院 专业电子信息工程 班级电子0911 学生姓名XXXXXXX 学号 设计地点 指导教师 2013 年3月31 日

设计题目:任意信号发生器的硬件设计(基于89C51实现)课题目的、意义及相关研究动态: 一、课题目的: 信号发生器是一种能产生模拟电压波形的设备,这些波形能够校验电子电路的设计。信号发生器广泛用于电子电路、自动控制系统和教学实验等领域,它是一种可以产生正弦波,方波,三角波等函数波形的一起,其频率范围约为几毫赫到几十兆赫,在工业生产和科研中利用信号发生器输出的信号,可以对元器件的性能鉴定,在多数电路传递网络中,电容与电感组合电路,电容与电阻组合电路及信号调制器的频率,相位的检测中都可以得到广泛的应用。因此,研究信号发生器也是一个很重要的发展方向。 常用的信号发生器绝大部分是由模拟电路构成的,但这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而本课题设计的函数信号发生器,由单片机构成具有结构简单,价格便宜等特点将成为数字量信号发生器的发展趋势。 本课题采用的是以89c51为核心,结合 DAC0832实现程控一般波形的低频信号输出,他的一些主要技术特性基本瞒住一般使用的需要,并且它具有功能丰富,性能稳定,价格便宜,操作方便等特点,具有一定的推广作用。 二、课题意义: (1)任意信号发生器主要在实验中用于信号源,是电子电路等各种实验必不可少的实验设备之一,掌握任意信号发生器的工作原理至关重要。 (2)任意信号发生器能产生某些特定的周期性时间任意波形(正波、方波、三角波)信号,频率范围可从几个微赫到几十兆赫任意信号发生器在电路实验和设备检测中具有十分广泛的用途。 (3)本课题主要研究开发一个基于51单片机的实验用任意信号发生器,不但成本较低而精度较高,最重要的是开发简单易于调试,具有一定社会价值和经济价值。 (4)任意信号发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也可以是高新能的网络分析仪,频谱仪以及自动测试装备的组成部分,任意信号发生器的关键技术是多种高性能仪器的支撑技术,因为它是能够提高质量的精密信号源及扫描源,可使相应系统的检测过程大大简化,降低检测费用并且提高检测精度。

基于51单片机的信号发生器设计报告

基于51单片机的信号发生器设计报告 二零一四年十二月十一日

摘要 根据题目要求以及结合实际情况,本文采用一种以AT89C51单片机为核心所构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的频率可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。本设计经过测试,性能和各项指标基本满足题目要求。 关键词:信号发生器 DAC0832芯片 LM358运放 89C51芯片

目录 摘要...................................................................... 目录...................................................................... 第一章绪论................................................................. 1.1单片机概述........................................................... 1.2信号发生器的概述和分类.............................................. 1.3问题重述及要求....................................................... 第二章方案的设计与选择................................................... 2.1方案的比较........................................................... 2.2设计原理 ............................................................. 2.3设计思想 ............................................................. 2.4实际功能 ............................................................. 第三章硬件设计............................................................ 3.1硬件原理框图......................................................... 3.2主控电路 ............................................................. 3.3数、模转换电路....................................................... 3.4按键接口电路......................................................... 3.5时钟电路 ............................................................. 3.6显示电路 ............................................................. 第四章软件设计............................................................ 4.1程序流程图........................................................... 参考文献.................................................................... 附录1 电路原理图 .......................................................... 附录2 源程序............................................................... 附录3 器件清单......................................................

单片机设计简易计算器

简易计算器 Simply Calculator 1 设计思想 此计算器有键盘部分、单片机、显示部分三部分组成,键盘部分主要完成输入功能;单片机主要完成数据处理功能,包括确定按键,完成运算,以及输出数据;显示器部分主要完成单片机输出的显示。 本设计的思路是利用单片机性能好,稳定性强的优点来实现系统的运行。设计大致可以分为三个步骤:第一步,硬件的选取和设计;第二步,程序的设计和调试;第三步,Protues 系统仿真。 硬件是设计的骨骼,不仅关系到设计总体方向的确定,还要综合考虑节能,环保,以及稳定性和经济性等各种因素。因此需要花费大量的时间。硬件的选取最为重要,包括选用的芯片,显示设备的选取,输入设备的选取等。本设计是通过单片机来实现的,因此选用了ATMEGA16单片机作为主体,输入设备选用矩阵键盘。程序是硬件的灵魂,是实现设计的中心环节。本设计使用的程序语言是C语言,在“ICC AVR”中运行,调试,直到运行出正确结果,然后输出后缀名为.HEX格式的文件,以备在Protues中仿真使用。程序是设计的关键,程序的调试需要大量的时间,耐心,还够要有足的细心才能成功。本设计中就出现了大量的错误,经过认真修改,最终才能运行出正确结果。最后的系统仿真是设计是否成功的验证,是设计不可缺少的重要环节。这就要求能掌握Protues的一些基本操作。2原理分析 矩阵键盘的扫描 —

》 图矩阵键盘图 如图所示,单片机的8个I/O口和矩阵键盘相连,用8个I/O口来控制矩阵键盘的16个按键是非常有意思的,首先我们设置单片机的PD0—PD7为输出,且PD0—PD3依次设置为低电平,而PD4—PD7设置为高电平,然后我们设置PD4—PD7为输入,而PD0—PD3仍然为输出,假如此时M1键按下,则PD0与PD4相连,因为PD0是低电平,而PD4是输入,所以PD4会被拉为低电平,同理,如果M2被按下,则PD5会被拉低,M3按下,PD6会被拉低,M4按下,PD7被拉低。这是判断有无键盘按下的过程,当我们判断是那一个键盘按下时,我们首先设置8个I/O口为输出,输出为FE,即,PD0为低电平,其他全为高电平,然后我们设置PD4—PD7为输入,如果M1被按下,则PD4会比被拉为低电平,此时会变成EE,同理可以知道M2被按下时会变为DE,M3被按下时会变为BE,M4被按下时会变为7E。同理我们可以设置8个I/O口输出FD来检测M5—M8是否被按下,设置8个I/O口输出FC来来检测M9—M12,设置8个I/O口输出F7来检测M13—M16,如果M1—M4没有被按下,就继续检测M4—M8,一次类推,就可以检测出16个按键了。在这次设计中,16个按键M1—M16所对应检测值分别为:EE,DE,BE,7E,ED,DD,BD,7D,EB,DB,BB,7B,E7,D7,B7,77。 数字显示与计算 本次设计选用的显示器是1602液晶显示器,此液晶显示器能显示32个字符,VSS接地,VDD接电源正极,E为时使能信号,R/W为读写选择端(H/L),RS为数据/命令选择端(H/L),D0—D7为数据I/O口。 首先我们初始化液晶显示器,然后显示出第一个被按下的数,并且使光标右移,如果有第二个数按下,则据继续显示,以此类推,然后把所有显示出来的数换算成一个数,如果按下“+”号,则显示出“+”,并且同理显示出“+”号后面按下的数字,然后调用加子程序,运算出结果,如果按下的是“-”,则调用减子程序,如果按下“*”,则调用乘子程序,如果按下“/”,则调用除子程序。然后再调用显示结果子程序,显示出结果。 《

基于某DSP的任意信号发生器设计汇总情况

数字信号处理(DSP) 综合设计性实验报告 学院:电子信息工程学院 班级:通信0708 指导教师:高海林 学生:原凌云07211253 张丽康07211256

北京交通大学电工电子教学基地 2004年12月28日 目录 一、设计任务 (3) 二、实验目的 (3) 三、设计内容 (3) 四、实验原理 (4) 五、程序设计 (6) 1、程序源代码 2、实验截图和结果 六、实验总结 (22) 七、参考资料 (23)

一、设计任务书 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。信号发生器在现代工程中应用非常广泛。在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。 使用DSP 和D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。本设计要求采用DSP及其D/A转换器产生上述各种信号波形。 二、实验目的 (1)了解产生信号的两种方法及各自的优缺点。 (2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。 (3)掌握5402DSK CODECC(A/D、D/A)的工作原理和初始化过程。(4)掌握使用指针访问片上ROM中正弦查找表的方法。

三、设计内容 使用DSP 产生300—4000HZ 的正弦信号,要求使用查表法,测量产生的信号波形的频率和幅度,并且频率可变、幅度可变、直流分量可变。用软件CCS5000编程实现,并硬件(DSK 板或示波器)连接进行功能演示。 使用计算法产生余弦波分量。 发挥部分: (1)使用DSP 产生300—4000HZ 的方波、锯齿波和三角波。 (2)使用现有程序,实现不改变源程序,频率和幅度自动可调。 四、实验原理 产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。计算法可以使用泰勒级数展开法进行计算,也可以使用差分方程进行迭代计算或者直接使用三角函数进行计算。计算结果可以边计算边输出,也可以先计算后输出。 正弦函数和余弦函数的泰勒级数数学表达式为: =x sin ΛΛ+--+-+-+---)! 12()1(!9!7!5!31 219753n x x x x x x n n ,x ?),(∞-∞∈ =x cos ΛΛ+-+-+-+-)! 2()1(!8!6!4!2128 642n x x x x x n n ,x ?),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。 或使用下面递归的差分方程进行计算。 y [n ]=A*y [n -1]-y [n -2] 其中:A=2cos(x ),x =2πF/F S 。F —信号频率,

信号发生器的设计实现

电子电路综合设计 总结报告 设计选题 ——信号发生器的设计实现 姓名:*** 学号:*** 班级:*** 指导老师:*** 2012

摘要 本综合实验利用555芯片、CD4518、MF10和LM324等集成电路来产生各种信号的数据,利用555芯片与电阻、电容组成无稳态多谐振荡电路,其产生脉冲信号由CD4518做分频实现方波信号,再经低通滤波成为正弦信号,再有积分电路变为锯齿波。此所形成的信号发生器,信号产生的种类、频率、幅值均为可调,信号的种类、频率可通过按键来改变,幅度可以通过电位器来调节。信号的最高频率应该达到500Hz以上,可用的频率应三个以上,T,2T,3T或T,2T,4T均可。信号的种类应三种以上,必须产生正弦波、方波,幅度可在1~5V之间调节。在此过程中,综合的运用多科学相关知识进行了初步工程设计。

设计选题: 信号发生器的设计实现 设计任务要求: 信号发生器形成的信号产生的种类、频率、幅值均为可调,信号的种类、频率可通过按键来改变,幅度可以通过电位器来调节。信号的最高频率应该达到500Hz以上,可用的频率应三个以上,T,2T,3T 或T,2T,4T均可。信号的种类应三种以上,必须产生正弦波、方波,幅度可在1~5V之间调节。 正文 方案设计与论证 做本设计时考虑了三种设计方案,具体如下: 方案一 实现首先由单片机通过I/O输出波形的数字信号,之后DA变换器接受数字信号后将其变换为模拟信号,再由运算放大器将DA输出的信号进行放大。利用单片机的I/O接收按键信号,实现波形变换、频率转换功能。

基本设计原理框图(图1) 时钟电路 系统的时钟采用内部时钟产生的方式。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。晶振频率为11.0592MHz,两个配合晶振的电容为33pF。 复位电路 复位电路通常采用上电自动复位的方式。上电自动复位是通过外部复位电路的电容充电来实现的。 程序下载电路 STC89C51系列单片机支持ISP程序下载,为此,需要为系统设计ISP下载电路。系统采用MAX232来实现单片机的I/O口电平与RS232接口电平之间的转换,从而使系统与计算机串行接口直接通信,实现程序下载。 方案一的特点: 方案一实现系统既涉及到单片机及DA、运放的硬件系统设计,

单片机简易计算器课程设计

课程设计 题目名称简易计算器设计 课程名称单片机原理及应用 学生姓名 班级学号 2018年6 月20日

目录 一设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUES仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘; 执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。

三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。 四主程序流程图 程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图 五程序源代码 #include #include #include/* isdigit()函数*/ #include/* atoi()函数*/ #define uchar unsigned char #define uint unsigned int

简易信号发生器单片机课程设计报告

课程设计(论文)任务书 电气学院电力系统及其自动化专业12(1 )班 一、课程设计(论文)题目:简易信号发生器设计 二、课程设计(论文)工作自 2015年1 月12 日起至2015 年 1月16 日止。 三、课程设计(论文) 地点:电气学院机房 10-303 四、课程设计(论文)内容要求: 1.课程设计的目的 (1)综合运用单片机原理及应用相关课程的理论知识和实际应用知识,进行单片机应用系统电路及程序设计,从而使这些知识得到进一步的巩固,加深和发展;(2)熟悉和掌握单片机控制系统的设计方法,汇编语言程序设计及proteus 软件的使用; (3)通过查阅图书资料、以及书写课程设计报告可提高综合应用设计能力,培养独立分析问题和解决问题的能力。 2.课程设计的内容及任务 (1)可产生频率可调的正弦波(64个点)、方波、锯齿波或三角波。 (2)显示出仿真波形。 (3)通过按键选择输出波形的种类。 (4)在此基础上使输出波形的幅值可控。

3.课程设计说明书编写要求 (1)设计说明书用A4纸统一规格,论述清晰,字迹端正,应用资料应说明出处。(2)说明书内容应包括(装订次序):题目、目录、正文、设计总结、参考文献等。应阐述整个设计内容,要重点突出,图文并茂,文字通畅。 (3)报告内容应包括方案分析;方案对比;整体设计论述;硬件设计(电路接线,元器件说明,硬件资源分配);软件设计(软件流程,编程思想,程序注释,) 调试结果;收获与体会;附录(设计代码放在附录部分,必须加上合理的注释)(4) 学生签名: 2015年1月16 日 课程设计(论文)评审意见 (1)总体方案的选择是否正确;正确()、较正确()、基本正确()(2)程序仿真能满足基本要求;满足()、较满足()、基本满足()(3)设计功能是否完善;完善()、较完善()、基本完善()(4)元器件选择是否合理;合理()、较合理()、基本合理()(5)动手实践能力;强()、较强()、一般()(6)学习态度;好()、良好()、一般()(7)基础知识掌握程度;好()、良好()、一般()(8)回答问题是否正确;正确()、较正确()、基本正确()、不正确() (9)程序代码是否具有创新性;全部()、部分()、无() (10)书写整洁、条理清楚、格式规范;规范()、较规范()、一般()总评成绩优()、良()、中()、及格()、不及格() 评阅人:

相关主题
文本预览
相关文档 最新文档