基于AT89C52单片机的低频信号发生器_第1页
基于AT89C52单片机的低频信号发生器_第2页
基于AT89C52单片机的低频信号发生器_第3页
基于AT89C52单片机的低频信号发生器_第4页
基于AT89C52单片机的低频信号发生器_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要 密级: 摘要信号发生器是一种应用广泛的信号源,它经常应用在自动控制系统电、子技术实验等科研领域。目前, 有很多的信号发生器构成方法,例如采用专用的信号发生芯片max038、采用dds(direct2digital synthesis)型的任意波发生器、以及传统的awg等。该可调低频信号发生器的设计以单片机(at89c52)作为核心控制系统,由晶体振荡电路,地址发生电路,波形产生电路,运算放大电路,数字模拟转换电路组成。由于输出波形的频率较低,所以决定使用at89c52作为控制电路,用中断查表法形成波形的数据输出,再用d/a转换器输出需要的波形信号。该信号发生器可以输出正弦波,方波,三角波

2、三种波形,可提供输出频率从1hz-10khz的方波以及频率从1hz-5000hz的正弦波(三角波)。该设计适用于初学者将其作为一学习板使用,系统价格低廉,功能实用。关键词:可调低频信号发生器;at89c52; 正弦波;方波;三角波abstractdesign of  adjustable low-frequency signal generator based on the mcuabstractsignal generator is a staple signal source ,which is widely used in automatic control system, t

3、he experiment of electronic technology and other scientific research field .at present, the signal generator has many methods to design, such as the dedicated chip max038, the signal generator based on dds (direct2digital synthesis)as well as the traditional, such as awg.the adjustable low-frequency

4、 signal generator consists of the microcontroller at89c52, the crystal circuit, the address maker circuit, the waveforms maker circuit, the operational amplifiers circuit and the transformation circuit between analog signals and digital signals. for the output signals are low frequency, we choose th

5、e microcontroller at89c52 which use the interrupt lookup method to output the waveform data. the signal generator can output three waves including sine wave, square wave, triangle wave. the range of frequency is 1hz2khz. the design can be used as a developed target board by beginners, and the cost o

6、f the system is inexpensive, nevertheless, the function is applied.key words: signal generator; at89c51;frequency of output; sine wave; square wave; triangle wave.目录目录摘要abstractii第一章 绪 论11.1低频信号发生器的介绍11.2单片机的发展及简要介绍11.3 at89c52芯片的介绍21.4 tlc7528数模转换器的介绍7第二章 单片机的仿真软件的应用82.1 proteus isis软件的应用介绍82.2 kei

7、l软件的应用介绍9第三章 可调低频信号发生器的设计103.1 信号发生器设计的基本要求103.2 信号发生器的电路设计与仿真103.2.1硬件设计部分:103.2.2 软件设计部分:113.2.3电路仿真:153.3 信号发生器的实物制作213.3.1 protel dxp制版:213.3.3 测试与调试233.3.4 心得体会24参考文献25致谢26第一章 绪论第一章 绪 论1.1低频信号发生器的介绍随着电子测量以及很多部门对各种信号发生器的广泛需要以及电子技术的快速发展,促使信号发生器性能提高,种类增多。尤其随着70年代微处理器的崭露头角,更促使信号发生器向着智能化、自动化方向发展。现在,

8、微处理器运用在许多信号发生器上,因而这些信号发生器具备了自校、自检、诊断自动故障和形成自动波形和修正等功能,能够和控制计算机以及其他的测量仪器方便的一起构成自动测试系统。当前信号发生器总的发展是向着低功耗、高频率精度、宽频率覆盖、多功能、智能化和自动化方向发展。在工程教育,科学研究及生产实践中,如教学实验、工业过程控制、材料试验、动态分析、生物医学、机械振动试验等领域,低频信号发生器常常会有用武之地。而在我们一些科学研究中,以及日常生活中,方波和正弦波、矩形波信号是常用的基本测试信号。譬如在电视机、示波器等仪器中,为了利用荧光屏显示图像,让电子能够按照一定得规律运动,常用到方波产生器作为时基电

9、路。信号发生器作为一种通用的电子设备,在科研、测控、通讯生产等领域都得到了非常广泛的运用。 但市面上能看到的信号发生器在带宽、波形种类、频率精度及程控方面都已经不能够满足许多方面实际应用的各种要求。加之各类功能的半导体集成芯片的迅速发展,使我们研制一种宽频带、功耗低,能产生多种波形并具有程控等低频的信号发生器成为迫切的需求。该设计课题的研究和制作全面说明对低频信号发生器要有一个全面的理解掌握、对低频信号的发生原理要非常了解,以及对低频信号发生器工作流程要有一定的了解:要熟练联接调试波形的设定,单片机(52单片机,显示电路),d/a转换,连接通信,显示和各模块等各个部分,能够正确的掌握常规芯片的

10、使用方法、掌握简单低频信号发生器应用系统软件的设计方案,进一步提高我们在信号处理方面的实际操作能力。1.2单片机的发展及简要介绍随着社会的发展,家电智能化给大家的生活带来了革命性的变化。在我们的生活的周围,单片机的运用可见,如冰箱、洗衣机、电脑外围芯片、防盗器和工业控制器等。单片机以其强大的控制能力已经被广泛的运用于诸多领域,配以各种接口传感器能够实现系统的智能化。无论是在工业制造领域、医疗领域,还是在国防军事领域、航天航空领域,微控制器都起着非常重要的作用。从最初的8位控制器到现在的16位、32位控制器都还有很强劲的发展和应用空间。那到底什么是单片机呢?所谓“单片机”,单片机就是在半导体硅片

11、上合成了微处理器(cpu)、存储器(ram,rom,eprom)和各种输入输出接口(定时器/计数器,并行i/o口,串行口,模拟数字转换器以及脉宽调制器pwm等),这样的一块集成电路芯片具备了一台计算机的属性,因此被称为单片机。在单片机刚面世的时候,其结构单一,功能较差,但经过20多年的迅猛发展,单片机的结构已经变得十分的精妙,集成度也提高了好几个数量级,功能更是当年无法相提并论的。在国际上,多把单片机称为微控制器mcu,由于在使用中,通常是它处于测控系统的中心地位并嵌入其中,所以我们又把单片机称为嵌入式控制器emcu。在中国,我们习惯于把它称为“单片机”,在本课程设计中使用的是at89c52。

12、1.3 at89c52芯片的介绍(1)主要性能 :与mcs-51单片机产品兼容、8k字节的在系统可编程flash存储器、一千次的擦写周期、全静态操作:0hz24mhz、三级加密程序存储器、三十二个可编程i/o口线、三个16位定时器/计数器以及八个中断源、全双工uart串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。(2)功能特性:at89c52是一种低功率消耗、性能较高cmos8位微控制器,具备8k在系统可编程flash 存储器。使用atmel公司高密度非易失性存储器高技术制作,可以与工业80c51产品指令和引脚全部兼容片上。flash能够允许程序存储器

13、在系统可编程执行,亦适合于常规编程器。在单芯片上,拥有灵巧的8位cpu和在系统可编程flash,使得at89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89c52具有以下标准功能:8k字节flash,256字节ram,32 位i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。此外,at89c52 可降低到0hz静态逻辑操作,支持2种软件可抉择节电模式。空闲模式时,cpu 不再工作,却允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保留下来,振荡器被冻结,单片机所有工作都停止

14、,直到下一个中断开始或者有硬件复位为止。(3)管脚说明:图1-1 at89c52管脚分布·vcc:供电电压,·gnd:接地。 ·p0口:p0口作为一个8位漏级开路双向的i/o口,每脚可以吸纳8ttl门电流。当p1口的管脚第一次写1时,被视为输入高阻。p0可以用于外部程序或者数据存储器,它可以被定义为数据或者地址的第八位。在fiash编程时,p0 口被视为为原码输入口,当fiash开始校验时,p0输出原码,此时p0外部一定被拉高。·p1口:p1口是内部提供的8位上拉电阻的双向i/o口,p1口缓冲器能收到输出4ttl门电流。p1口管脚写入1后,可作为输入,其

15、管脚被内部上拉为高电平, p1口被外部下拉为低电平的时候,将输出电流,这是由于内部上拉的原因。在flash编程和校验时,p1口被认为是第八位地址接收。 ·p2口:p2口是一个8位内部上拉电阻的双向i/o口,p1口缓冲器可收到或者输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉为高电平,且作为输入。作为输入,p2口的管脚将被外部拉低的时侯,将输出电流。这是由于内部上拉的原因。p2口在用于外部程序存储器或者是16位地址外部数据存储器进行操作时,p2口输出地址作为高八位。在给出地址“1”时,它有内部上拉的优点,当对外部八位地址数据存储器进行读写操作时,p2口输出它的特殊功能寄存

16、器上的内容。p2口在flash编程和校验的时候,接收信号作为高八位地址信号和控制信号。 ·p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,p3口缓冲器可接收输出4个ttl门电流。当p3口写入“1”后,被内部上拉为高电平,并且作用于输入。作为输入,因为外部下拉为低电平,p3口将输出电流(ill),这是由于上拉的原因。 ·p3口也可作为at89c51的一些特殊功能口。·p3口管脚备选功能: ·p3.0 rxd(串行输入口)·p3.1 txd(串行输出口)·p3.2 /int0(外部中断0)·p3.3 /int1(外部中断1

17、)·p3.4 t0(记时器0外部输入)·p3.5 t1(记时器1外部输入)·p3.6 /wr(外部数据存储器写选通)·p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。·rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。·ale/prog:当访问外部存储空间时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期之中,此引脚作用于输入编程脉冲。在平时,ale端以一定的频率周期输出正脉冲函数,此频率为振荡器频率的六分之一。因此它可用于对外部输出的脉冲或用于定时

18、作用的目的。然而值得注意的是:每当用作外部数据存储的时候,它将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上复位。此时, ale只是在执行movx,movc指令是ale时才能够起作用。此外,该引脚被略微拉高。若是微处理器在外部执行状态ale为禁止,那么置位无效。·psen:外部程序存储器的选通信号。在由外部程序存储空间取指期间,每个机器周期是两次psen才有效。但在访问外部数据存储器时,这两次有效的psen信号都将不能够实现。·ea/vpp:当ea保持低电平时,不管是否有内部的程序存储空间,那么在此期间外部程序存储空间(0000h-ffffh)。注意当加密方

19、式是1时,ea将内部定为reset;当ea端保持高电平时,此间内部程序存储空间。在flash编程期间,此引脚也可以用作施加12v编程电源。·xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。·xtal2:来自反向振荡器的输出。(4)复位电路:mcs-52 单片机复位电路是指单片机的初始化操作。单片机启运开始工作时,都需要先经过复位,其作用是使cpu和系统中其他配置器件处于一个确定的初始状态,并从这个状态开始执行命令。因而,复位是一个非常重要的操作方式。但单片机自己是不能自动执行复位的,必须配合恰当的外部电路才可以实现。复位功能:复位电路的基本功能:系统上电

20、时提供复位功能,一直到系统电源稳定后,去除复位信号。为保险起见,电源稳定后必须经一定的延时才可以撤销复位的信号,以防电源开关或电源插头分-合过程中导致的抖动而对复位功能产生影响。单片机的复位是由外部的复位电路来控制的。片内复位电路是通过复位引脚rst复位电路与一个斯密特触发器相连,斯密特触发器用来达到抑制噪声的目的,在每个机器周期它的输出由复位电路采样一次。复位电路通常运用上电自动复位以及按钮复位两种方式。单片机复位后的状态:单片机的复位操作使单片机达到初始化的状态,其中包括使得程序计数器pc0000h,这说明程序从0000h地址开始运行。单片机工作后,片内ram为任意值,运行中的复位操作不会

21、更改片内ram区中的数据,21个特殊功能寄存器在复位之后的数据为确定值,见表1。 值得注意的是,记住在复位后的一些特殊功能寄存器的主要状态,对于理解单片机的初态,减少相关的应用程序中的初始化是非常必要的。 说明:表中符号*为随机状态;表1-1 寄存器复位后状态表特殊功能寄存器初始状态特殊功能寄存器初始状态abpswspdpldphp0p3ipie00h00h00h07h00h00hffh*00000b0*00000btmodtconth0tl0th1tl1sbufsconpcon00h00h00h00h00h00h不定00h0*bpsw00h,表示选寄存器0组为工作寄存器组; sp07h,说明

22、堆栈指针指向的是片内ram 07h字节存储空间,依据堆栈操作的先加后压原则,第一个被压入的数据写入到08h单元中;po-p3ffh,则代表向各端口线都已经写入1,此时,各端口的作用既可用于输入又可用于输出 。ip×××00000b,则表明各个中断源是等级低的优先级; ie0××00000b,则表明各个中断均已经被关闭;系统复位是任何微机系统执行的初始化步骤,使控制芯片整体回到默认的硬件状态下。由reset引脚来控制的52单片机复位,此引脚与高电平相连超过24个振荡周期后,52单片机便可以进入芯片内部复位状态,并且可以在此状态下一直等待,一直至r

23、eset引脚转为低电平以后,才校验ea引脚是高电平还是低电平,如果为高电平则运行芯片内部程序的代码,若为低电平则会执行外部程序的代码。在系统复位后52单片机将一些其内部的重要寄存器设置为特定的数值,至于内部ram的数据则保持不变。(5)晶振电路: 晶振是晶体振荡器的简称,在电路方面它可以等效成一个电容和一个电阻并联再串联一个电容的二端口网络,电学上这个电路有两个谐振点,以频率的高低分把其中较高的频率称为并联谐振,较低的频率称为串联谐振。at89c52单片机内部有一个高增益反相放大器,用于构成振荡器。引脚xtal2和xtal1分别是此放大器的输出端和输入端。作为反馈器件的片外晶体谐振器与该放大器

24、一起构成一个自激振荡器。电容c2和c1和外接晶体谐振器一起构成并联谐振电路,接在放大器的反馈回路中。虽然对外接电容的值没有非常严格的要求,但震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性会由电容的大小影响。所以,此电路系统的晶体振荡器的值为12mhz,电容的种类应尽量选择陶瓷电容,电容值大概30f。在电路板焊接时,电容和晶体振荡器应尽可能安装得靠近单片机芯片,这样做是为了减少寄生电容,更好地保证震荡器可靠稳定地工作。负载电容值是晶振的一个重要的参数,为了得到晶振标称的谐振频率,我们可以选择与负载电容值相等的并联电容。1.4 tlc7528数模转换器的介绍tlc7528是8位双路数

25、字-模拟转换器,它具有单独的片内数据锁存器,它的特点包括非常严密的dac至dac一致性。信号通过公共输入口传送到两个dac数据锁存器中的任意一个。输入控制端daca/dacb决定哪一个dac被使用。该元件的装载周期和随机存取存储器的写周期很相似,可以非常方便地与大多数输出端口和通用微处理器总线相接口。在最高有效位变化期间内,分段高阶位可以使得闪变最小,该变化期间内的闪变脉冲最强大。 tlc7528功耗小于15 mw,工作电源为515 v。2或4象限乘法功能使这种器件成为许多微处理器控制的信号控制应用和增益设置的良好选择。它可以工作在电压方式,产生的不是电流输出而是电压输出。第二章 单片机的仿真

26、软件的应用第二章 单片机的仿真软件的应用2.1 proteus isis软件的应用介绍proteus具有和其他eda工具一样的原理图编辑、电路仿真功能及印刷电路板(pcb)设计,最大的特色是它的电路仿真的可视化和交互化,通过proteus软件的vsm(虚拟仿真模式),用户可以对单片机及外围元器件、数字电路、模拟电路、模数混合电路等电子线路进行系统仿真。proteus软件由isis和ares两部分构成,其中ares是一款强大的pcb布线编辑软件,isis是一款便捷的电子系统原理设计和仿真平台软件。proteus isis软件的特点是:第一,提供软件调试功能。在硬件仿真系统中可以观察各个变量、寄存

27、器等的当前状态,同时具备单步、全速、设置断点等调试功能,因此在该软件的仿真系统中,可以支持第三方的软件编译和调试环境,如keil c51 uvision2等软件,并且也具备这些功能。第二,支持主流单片机系统的仿真。目前单片机 的类型有: 8051系列, pic12系列,68000系列,pic16系列,pic18系列,z80系列,avr系列,hc11系列以及各种外围芯片。第三,实现了单片机仿真和spice电路仿真相结合,数字电路仿真、具有模拟电路仿真、单片机及其外围电路组成的系统的仿真、12c调试器、spi调试器、rs232动态仿真、键盘和lcd系统仿真的功能;有各种虚拟仪器,如示波器,逻辑分析

28、仪、信号发生器等。第四,具有强大的原理图绘制功能。总之,该软件是一款集spice和单片机分析于一身的仿真软件,功能非常强大。在此介绍proteus isis软件的一些基本操作和工作环境。基本操作:进入proteus isis 双击桌面上的isis 7 professional 图标或者单击屏幕下方的 “开始”“程序”“proteus 7 professional”“isis 7 professional”,进入proteus isis集成环境。在进入之后开始依照自己的设计将元器件找到,完成原理图。其工作界面如下图所示: 图2-1 proteus isis的工作界面2.2 keil软件的应用介绍

29、 keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面,下面仅介绍该软件的简单的应用。使用步骤:1.创建工程(作用是管理文件进行编译),工程的后缀名为.uv2。2.选择芯片的型号(本设计中用at89c52)。3.创建源文件,即用c语言编写程序,文件的后缀名为.c。4.将原文件添加到工程中。5.最后将生成的16进制文件(.hex文件)加载到原理图中,即可检测仿真结果第三章 可调低频信号发

30、生器的设计第三章 可调低频信号发生器的设计3.1 信号发生器设计的基本要求设计并制作一台函数信号发生器,能实现以下基本要求:第一,能产生方波、正弦波、三角波三种波形,其具体的波形有按键选择。第二,波形无明显失真;第三, 频率范围为1hz1000hz。3.2 信号发生器的电路设计与仿真3.2.1硬件设计部分: 图3-1信号发生器设计的系统结构框图如图所示,p3.0-p3.2接三个控制键,其中t1为频率增加键,t2为频率减小键,t3为正弦波和三角波的转化键。p1口输出波形数据,经过dac0832进 行数模转化得到波形。 图3-2初始化子程序流程图该程序的主要功能是设置定时器的初始值,工作模式,开中

31、断和开定时器。当定时器计到极限时就要产生中断,即输出一波形数据。 图3-3键扫描子程序流程图 图3-4波形数据产生子程序流程图在键扫描子程序中,其任务是检查三个键是否按下来执行其功能。三个键分别用于频率增加、减小和选择正弦波或三角波;在波形数据产生子程序是定时器t1的中断程序,即当定时器计数溢出时就要产生中断,此时单片机按次序将波形数据表中的波形数据一一送至dac0832进行数模转化。3.2.2 软件设计部分:#include "reg51.h" #define uchar unsigned char#define uint unsigned int#define key

32、p3#define dataout p1uchar code sin_tab256= / 正弦波数据表(256个数字); 0x80,0x83,0x85,0x88,0x8a,0x8d,0x8f,0x92,0x94,0x97,0x99,0x9b,0x9e,0xa0,0xa3,0xa5,0xa7,0xaa,0xac,0xae,0xb1,0xb3,0xb5,0xb7,0xb9,0xbb,0xbd,0xbf,0xc1,0xc3,0xc5,0xc7 0xc9,0xcb,0xcc,0xce,0xd0,0xd1,0xd3,0xd4,0xd6,0xd7,0xd8,0xda,0xdb,0xdc,0xdd,0xde

33、,0xdf,0xe0,0xe1,0xe2,0xe3,0xe3,0xe4,0xe4,0xe5,0xe5,0xe6,0xe6,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6,0xe5,0xe5,0xe4,0xe4,0xe3,0xe3,0xe2,0xe1,0xe0,0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd8,0xd7,0xd6,0xd4,0xd3,0xd1,0xd0,0xce,0xcc,0xcb,0xc9,0xc7,0xc5,0xc3,0xc1,0xbf,0xbd,0xbb,0xb9,0xb7,0xb5,0xb3,0xb1

34、,0xae,0xac,0xaa,0xa7,0xa5,0xa3,0xa0,0x9e,0x9b,0x99,0x97,0x94,0x92,0x8f,0x8d,0x8a,0x88,0x85,0x83,0x80,0x7d,0x7b,0x78,0x76,0x73,0x71,0x6e,0x6c,0x69,0x67,0x65,0x62,0x60,0x5d,0x5b,0x59,0x56,0x54,0x52,0x4f,0x4d,0x4b,0x49,0x47,0x45,0x43,0x41,0x3f,0x3d,0x3b,0x39,0x37,0x35,0x34,0x32,0x30,0x2f,0x2d,0x2c,0x2a

35、,0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b,0x1b,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1a,0x1a,0x1a,0x1b,0x1b,0x1c,0x1c,0x1d,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,0x2c,0x2d,0x2f,0x30,0x32,0x34,0x35,0x37,0x39,0x3b,0x3d

36、,0x3f,0x41,0x43,0x45,0x47,0x49,0x4b,0x4d,0x4f,0x52,0x54,0x56,0x59,0x5b,0x5d,0x60,0x62,0x65,0x67,0x69, 0x6c,0x6e,0x71,0x73,0x76,0x78,0x7b,0x7d,;uchar code thr_tab256= / 三角波数据表(256个数字); 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0

37、x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0

38、xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0

39、x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0

40、x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,;/*/uint data thhl=65535; /t1的16位定时

41、器初值;uchar data keyword,n=0; /键值存放,查表指针;bdata sinthr;sbit sin_thr=sinthr0; /正弦波或三角波标志(1为正弦波,0为三角波);sbit ww=key7; /方波输出口;/*键扫描子函数*/keyscan()keyword=key&0x07;if (keyword!=0x07)while(key&0x07)!=0x07); /等待释放 switch(keyword) case 6:if(thhl>=65235)thhl=65535;elsethhl=thhl+255;break;case 5:if(thh

42、l<=500)thhl=0;elsethhl=thhl-255;break;case 3:sin_thr=sin_thr;break;default:break; /*初始化函数*/clearmen()key=0xff,dataout=0x00;thhl=65279; /按键输入状态,波形输出为0;th1=thhl/256;tl1=thhl%256; /装定时初值(t1用); tmod=0x10;et1=1;tr1=1;ea=1; /方式1为16位定时模式,t1中断 允许,开定时器,开总中断;/*主函数*/main()clearmen();while(1)keyscan();/*t1中断

43、函数*/void time_intt1(void)interrupt 3ea=0;tr1=0;th1=thhl/256;tl1=thhl%256;tr1=1;if(sin_thr)dataout=sin_tabn;elsedataout=thr_tabn;if(n>=255)n=0;elsen+;ww=ww;ea=1;/*程序结束*/3.2.3电路仿真:图3-5电路原理图(2)仿真结果:在仿真的过程中,软件清晰的显示了调频的各个过程,如截图所示。图3-6至图3-11均是本信号源可得到的部分频率(全部的频率可通过调节得到),图3-6是本设计可得的最大的频率,下面以图3-6为例,计算一下其误

44、差:该信号源所用的芯片的机器周期为1us(系统时钟为12mhz),定时器的初值是65279,当定时器计到65535时会溢出,即中断产生。由于方波是由p3.7产生,所以其周期是1us*256*2=512 us。而三角波(正弦波)是由数据表得到,每个数据表中含256个数据,一次中断取出一个,所以其周期是1us*256*256=65.536ms。观察图3-6得到方波的周期是550us左右,频率约为1800hz,三角波(正弦波)的周期是70 ms左右,频率约为14hz.比较二者的数值可知结果几乎相等,所以证实了该设计较为精确。按键1和2分别对应于频率增加和减小,按键3用于转化波形。图3-6至图3-11

45、显示了频率的逐渐变化,图3-12显示了在按键3按下,三角波和正弦波相互转化的一个瞬间,具体的调节过程可在测试中显示。图3-6三角波和正弦波图3-7频率增大 图3-8频率再增大图3-9频率进一步增大图3-10方波和正弦波图3-11方波和正弦波频率增大图3-12波形的转换 随着频率要求进一步的增大,以上的频率已经达不到要求。只有通过吧正弦表及三角表中的数字个数减少,并且把初始化函数中的初值变大为65534,这样周期变短,使得波形频率变大。变大后的方波频率可达10khz,正弦波和三角波频率可达5000hz左右。改动的正弦表(16个数字):sin_tab16= 0x80,0xae,0xce,0xe2,

46、0xe7,0xdb,0xc1,0x9e,0x76,0x4f,0x30,0x1d,0x19,0x24,0x3d,0x60,;改动的三角表(16个数字):thr_tab64= 0x80,0x90,0xa0,0xb0,0xbf, 0xaf,0x9f,0x8f,0x7f,0x6f,0x5f,0x4f,0x40,0x50,0x60,0x70,;改动后的仿真波形如下图所示: 图3-13修改后的方波和三角波图3-14修改后的方波和正弦波3.3 信号发生器的实物制作表3-1 元件清单名称规格型号数量名称规格型号数量单片机at89c521电阻1k1晶振12mhz110k1排阻1数模转换器tlc7528cn1电容

47、22uf1按键430pf2复位键1 1042isp口1 100uf1电源1led-red13.3.1 protel dxp制版:protel dxp是目前最受欢迎的电子线路设计软件,利用它可以方便地设计各种电路原理图和pcb图,并可以对电路板进行简单的仿真与分析。同时,该软件还附带了丰富的元件集成库,其中保存了每个元件的原理图符号、封装模型和其他模型等。protel dxp通过把工程管理、原理图设计、pcb设计、信号完整性分析等技术进行完美融合,为用户提供了全面的设计解决方案,使用户可以轻松进行各种复杂的电路板设计。以下是信号发生器的protel dxp制版过程的简要介绍:第一,创建设计工程:新建一个文件夹命名为signal,选择file>new>pcb project菜单,创建一个pcb project1.prjpcb的工程文件,选择file> save project菜单,打开save as对话框,将所创建的工程名为signal. prj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论