单片机波形信号发生器.doc_第1页
单片机波形信号发生器.doc_第2页
单片机波形信号发生器.doc_第3页
单片机波形信号发生器.doc_第4页
单片机波形信号发生器.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

课程设计 题目:波形信号发生器 专业:电子信息工程 班级: 10级(2)班 学号: 20101851046 姓名: 指导老师: 摘 要本文主要用AT89C51 单片机与DAC0832构成的函数信号发生器,可产生方波、三角波、正弦波,具有线路简单、结构紧凑、性能优越等特点。本函数信号发生器可以由程序控制改波形的周期,以及不同波形的切换。用ADC0809实时对其波形电压测量。输出波形的幅值可以在05V可以调节。对于输出电压的控制,主要是用UA741放大器对其信号放大来实现的。输出波形幅值的大小,由ua741接负反馈电阻来调节,从而达到了输出波形幅值在0-5V可调。对于显示部分,本设计采用四位共阳数码管实时显示当前波形的频率,以及在按键的切换下可以显示测量的波形的电压幅值。文章给出了源代码,并通过proteus软件仿真测试,然后画出PROTEL原理图和PCB板图。对应着PCB板图焊接实物电路,并下载程序做硬件调试。用示波器观察其波形。最终其性能指标达到了设计要求。关键词:单片机;DAC0832;ADC0809;放大器;信号发生器。 目录第一章绪论11.1单片机概述11.2信号发生器的分类11.3研究内容1第二章方案的设计与选择22.1方案与比较22.2设计原理22.3设计思想32.4设计功能4第三章硬件设计53.1硬件原理框图53.2主控电路63.3显示电路63.4数/模转换电路73.5放大、分频电路83.6模/数转换电路103.7按键、复位、时钟电路12第四章软件设计144.1主程序流程图144.2中断程序流程图154.3程序代码15第五章PROTEUS软件仿真235.1仿真电路图235.2波形仿真245.3放大电路仿真255.4分频电路仿真265.5电压测量仿真27第六章PROTEL画原理图和PCB图286.1PROTEL原理图286.2PCB图29第七章焊接硬件并调式307.1焊接硬件307.2调试硬件31致谢32心得体会33元件清单34参考文献35III第一章 绪论1.1 单片机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的。1.2 信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。1.3 研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、方波、正弦波的发生。根据设计的要求,对各种波形的频率进行程序的编写,通过放大器来调幅,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。第二章 方案的设计与选择122.1 方案与比较方案一:采用单片函数发生器(如ICL8038),ICL8038可同时产生正弦波、方波等,而且方法简单易行,用运算放大器改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。频率调节也不能直接由程序控制。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器 RAM、只读存储器 ROM、接口电路、I/O 定时器/计数器以及串行通讯接口等,只要将 89C51 再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图 2.1 所示。89C51 是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。2.3 设计思想(1)向DAC0832送对应的数字量就能得到相应的模拟信号。(2)将一个周期的信号分离成 256 个点(按 X 轴等分),每两点之间的时间间隔为T,用单片机向ADC0832推送数组得到函数信号。T作为调频的延时,嵌入在256个数据之间。改变T就能调节波形的频率。(3)方波的模拟产生:l 数字量为0x00时推入DAC0832输出为低电平l 数字量为0xff时推入DAC0832输出为高电平(方波便于对频率的测量,也取256个数据。这与三角波,正弦波数据表统一。所以三种波形的频率一样。(4)三角波模拟信号由D/A转换器的模拟量输出:向DAC0832送数据0255后,再送数据2550的连续数据就能够得上一个周期的完整三角波。因为只取256个数据点,所以波形前半只取0255中的奇数(128个数);波形后半周期只取2550的偶数部分(128个数)。由此较准确的取下了256个数据。(5)正弦波的模拟信号由 D/A 转换器的模拟量输出的计算公式为:Y=(A/2sint)+A/2 (其中 A=VREF)t=NT (N=1256) 那么对应着存放在计算机里的这一点的数据为:正弦函数DA数据表,可以用“VsinTab正弦波表生成器”生成所需要的数据表。如图2.3所示。图2.3(6)一个周期被分离成 256 个点,对应的三种波形的256个数据存分别放在以fangboTAB256,sanjiaoboTAB256,zhengxianboTAB256为起始地址的存储器中。(7)ADC0832转换得到的模拟量为电流输出,Iout1+Iout2为常数。电流很微弱,必须通过放大器放大。本设计中采用2个ua741,一个ua741对其信号放大,但是电压现在是负值。不能达到输出电压为0-5V可调的设计要求。所以还得加一个ua741作为反向器,得到正压值。对于设计中的输出电压0-5V可调,可以采用调节放大器的负反馈电阻来实现调幅。(8)实时函数信号的幅值测量:本设计是通过ADC0809放大器输出端口的信号幅值电压的测量。因为产生的信号不是直流,是属于高频信号。所以得加三极管和一个RC滤波电路对其测量幅值。2.4 设计功能(1)本方案有4个独立式按键,4位 LED 共阳数码管显示器。其中“S1”号键单片机复位,“S2”号键波形输出切换,“S3”号键调节输出波形的频率,“S4”号键测量电压幅值。4位 LED 共阳数码管用来显示当前波形的频率和电压的幅值。(2)DAC0832产生需要的函数信号,ADC0809测量函数信号实时幅值。(3)74LS74把单片机ALE端口2MHZ信号4分频为500K,作为ADC0809的时钟信号。(4)用一个ua741把DAC0832的Iout1与Iout2电流输出端口的信号的放大,用另一个ua741作为反向器,把前一级放大了的信号反向,把幅值变成正值。(4)频率范围:30210Hz。(5)输出波形幅度为 05V。第三章 硬件设计33.1 硬件原理框图硬件原理方框图如图 3.1 所示。3.2 主控电路AT89C51 单处机内部设置两个16 位可编程的定时器/计数器 T0 和 T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用中断来控制数码管的动态扫描。这样可以达到不失真的产生函数信号波形。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C51 点亮一样数码管,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着点关闭当前位数码管亮下一位数码管,如此循环达到动态扫描的显示功能。AT89C51从P2口接收来自键盘的信号。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号并且存储相应的键值。按下S0时,单片机复位。按下S1时,输出波形切换。按下S2时,输出波形调整。按下S3时,测量输出波形电压幅值。3.3 显示电路在本设计中,采用4位数码管来显示频率和电压。由PNP三极管驱动可以获得高亮度的显示。当产生一个周期的波形需要把256个数组推送到DAC0832中,数据量大,所以不能产生很高的频率。用4位的数码管就够用。显示接口如图 3.3所示。图 3.33.4 数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。DAC0832引脚功能说明:DI0DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2: 电流输出线。其值与Iout1之和为一常数Rfb:反馈信号输入线,芯片内部有反馈电阻。Vcc:电源输入线 (+5v+15v)。Vref:基准电压输入线 (-10v+10v)。AGND:模拟地。DGND:数字地。在本设计中,采用的是直通模式。因为接口简单。占用单片机口接口少。当数据送入DAC0832立即转换。电路图如图3.4所示。图3.43.5 放大、分频电路l 放大电路741放大器输出入脚位图图3.51在本设计中用到了两个ua741如图3.52。第1级放大器,用于信号的放大。第2级放大器,用于信号的反向,从而得到正电压。图3.52第一级放大器(U5)输出电压的计算公式为:第一级反向器(U6)输出电为:VOUT2=-VOUT1l 4分频电路74LS74芯片由两个独立的上升沿触发的维持阻塞D触发器组成。引脚功能说明:图3.611CP、2CP:时钟输入端1D、2D:数据输入端1Q、2Q、1/Q、2/Q:输出端CLR1、CLR2:直接复位端(低电平有效)PR1、PR2:直接置位端(低电平有效)功能表:图3.62在本设计需要一个4分频电路,中如图3.63所示。就可以得到一个4分频电路。实际设计中将用来把单片机ALE引角上的信号(2MHZ)分为500KHZ用来提供ADC0809的时钟。图3.633.6 模/数转换电路l ADC0809概述ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。l 主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。2)具有转换起停控制端。3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时)4)单个+5V电源供电5)模拟输入电压范围0+5V,不需零点和满刻度校准。6)工作温度范围为-40+85摄氏度7)低功耗,约15mW。l 外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图3.71所示。下面说明各引脚功能。图3.71IN0IN7:8路模拟量输入端。2-12-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:地。l ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。l 转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据口,供单片机接收。在本设计中,因为单片机的资源有限。为了节约单片机接口,所以采用第一种定时传送方式。ADC0809的OE端直接接高电平,当数据转换完成立即送到数据口。单片机每隔一定的时间来读取数据口的数据。如图3.72所示。ADC0809在本设计中是用来对输出的波形的实时电压的测量的作用。其转换测量的公式:X就是我们需要计算出来的当前的电压值。5代表5伏的基准电压。28是ADC0809的转换分辨率。P3是针对我的当前设计写的,就是ADC0809数据总线的数据。图3.723.7 按键、复位、时钟电路l 键盘电路本设计中采用的是3个独立的功能按键。S2用来切换现在产生的波形。当没有按下S2时信号发生器产生方波信号。第一次按下S2时,将切换成三角波信号。第二次按下S2时,将切换产生正弦波信号。第三次按下S2时,又产生方波信号。这样一直循环。S3用来调节输出的函数信号的频率。当没有按下S3时,产生的函数信号最高。当按下S3时,波形频率降低,同时还要对应向LED显示缓冲区给定一个频率值提供当前频率显示所需要的数据。S3按7次一个循环。当第7次按下时恢复到最高频率输出。S4用来启动对输出的函数信号的电压值的测量。当S4没有按下时,单片机只向DAC0832送波形数据表和显示当前波形的频率。按下S4后,单片机除了向DAC0832送波形数据表外,还要每隔一小段时间对读取ADC0809转换的电压值,并且换算出来,送给LED显示当前电压。此时不再显示当前波形的频率。图3.7l 复位电路单片机的复位是靠外部电路实现的,在时钟电器工作以后,只要在RESET端加上大于10MS的高电平,单片机便能实现复位。若RESET保持高电平,单片机循环复位。单片机一般要求在上电时,或者按复位键时复位。所以复位电路又分为上电复位和按键复位两种。在本设计中用到的就是按键复位。如图3.91所示。图3.91l 时钟电路单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟。晶体在1.212MHZ选择。时钟电路如图3.92所示。其中C2,C3起稳定振荡的作用,电容选一般633PF。图3.92第四章 软件设计44.1 主程序流程图4.2 中断程序流程图4.3 程序代码#include reg51.h#define uchar unsigned char#define DA P1/DAC0832数据口#define AD P3/ADC0809数据口#define LED_DATA P0/LED显示数据口sbitbaiwei=P27;/定义数码管阳级控制脚(百位)sbitshiwei=P26;/定义数码管阳级控制脚(十位)sbitgewei=P25;/定义数码管阳级控制脚(个位)sbittiaobo=P24;/波形切换sbittiaopin=P23;/调频sbitdianya=P22;/测电压sbit START=P21;/启动ADuchar a=0,b=0,c=0,i=0,l=0,n=0;code uchar celiang1ma10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/带小点段码code uchar celiang2ma10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/不带小点段码/共阳 0 12 3 45 6 7 8 9data uchardianyaTAB2=0x24,0x90; /电压值存数组code ucharpinlv18=0xa4,0xf9,0xb0, /213 不同频率下的显示数据0xf9,0xc0,0xf8, /1070xff,0xf8,0xf9, /710xff,0x92,0xb0, /530xff,0x99,0xb0, /430xff,0xb0,0x82;/36/*方波数据表*/code ucharfangboTAB256=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;/*三角波数据表*/code ucharsanjiaoboTAB256=0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xDA,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,0xff,0xfd,0xfb,0xf9,0xf7,0xf5,0xf3,0xf1,0xef,0xed,0xeb,0xe9,0xe7,0xe5,0xe3,0xe1,0xdf,0xdd,0xdb,0xd9,0xd7,0xd5,0xd3,0xd1,0xcf,0xcd,0xcb,0xc9,0xc7,0xc5,0xc3,0xc1,0xbf,0xbd,0xbb,0xb9,0xb7,0xb5,0xb3,0xb1,0xaf,0xad,0xab,0xa9,0xa7,0xa5,0xa3,0xa1,0x9f,0x9d,0x9b,0x99,0x97,0x95,0x93,0x91,0x8f,0x8d,0x8b,0x89,0x87,0x85,0x83,0x81,0x7f,0x7d,0x7b,0x79,0x77,0x75,0x73,0x71,0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61,0x5f,0x5d,0x5b,0x59,0x57,0x55,0x53,0x51,0x4f,0x4d,0x4b,0x49,0x47,0x45,0x43,0x41,0x3f,0x3d,0x3b,0x39,0x37,0x35,0x33,0x31,0x2f,0x2d,0x2b,0x29,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x11,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x03,0x01;/*正弦波数据表*/codeucharzhengxianboTAB256=0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xDA,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xDA,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c;/*短延时函数*/voiddelayms(uchar t) uchar i; while(t-) for (i=0;i2) a=0; if(tiaopin=0) delayms(10);/按键消抖 if(tiaopin=0) while(!tiaopin);/松手检测 b=b+3; if(b15) b=0; if(dianya=0) delayms(10);/按键消抖 if(dianya=0) while(!dianya);/松手检测 c=c+1; if(c1) c=0; /*测量电压函数*/voidcedianya() dianyaTAB0=celiang1ma(AD*50/255)/10;/测量转换电压数据的个位dianyaTAB1=celiang2ma(AD*50/255)%10;/测量转换电压数据的小数位 /*中断显示函数*/void timer0(void) interrupt 1 using 1 /中断程序入口n+; if(c=0) /未按下测电压按键switch(n) case 1: gewei=0; /关个位 LED_DATA=pinlvb;/送段码baiwei=1; /选通百位 break; case 2: baiwei=0; /关百位 LED_DATA=pinlvb+1; /送段码shiwei=1; /选通十位break; case 3: shiwei=0; /关十位 LED_DATA=pinlvb+2; /送段码gewei=1; /选通个位 n=0;break; if(c=1) /按下测电压按键 baiwei=0; /关百位cedianya(); /调用测电压子函数switch(n) case 1: gewei=0; /关个位 LED_DATA=dianyaTAB0; /送段码shiwei=1; /选通十位break; case 2: shiwei=0; /关十位 LED_DATA=dianyaTAB1; /送段码gewei=1; /选通个位 n=0;break; TH0=(65536-5000)/256;/定时器重赋初值5ms TL0=(65536-5000)%256;/*主函数*/void main(void) TMOD=0X01;/定时器1模式1TH0=(65536-5000)/256;/定时器初值5ms TL0=(65536-5000)%256;EA=1;/开启总中断ET0=1;/开启T0定时中断TR0=1;/启动定时while(1) anjian(); /调用按键扫描子程序switch(a) case 0: START=0;/给start低电平 for(i=0;i255;i+) /循环送255个方波数据 DA=fangboTABi; l=b;/延时-调频while(l-); DA=fangboTABi; l=b;/延时-调频while(l-); START=1; /给start高电平break; case 1: START=0;/给start低电平 for(i=0;i255;i+) /循环送255个方波数据 DA=sanjiaoboTABi; l=b; /延时-调频while(l-); DA=sanjiaoboTABi;/送第256个方波数据 l=b; while(l-); /延时-调频 START=1; /给start高电平break; case 2: START=0; /给start低电平 for(i=0;i255;i+) /循环送255个方波数据 DA=zhengxianboTABi; l=b; /延时-调频while(l-); DA=zhengxianboTABi;/送第256个方波数据 l=b; while(l-); /延时-调频 START=1; /给start高电平break; default: break; 第五章 Proteus软件仿真55.1 仿真电路图5.2 波形仿真l 方波仿真方波波形如图5.22所示。图5.22l 三角波仿真按下第一次S1键,生成三角波波形,如图5.23所示。图5.23l 正弦波仿真按下第二次S1键,生成正弦波波形如图5.24所示。图5.245.3 放大电路仿真放大电路与DAC0832接口电路如图5.31所示。图5.31用示波器A通道测量DAC0832的Iout2电流输出口波形。用示波器B通道测量ua741的6脚的电压波形。用示波器C通道测量ua741的6脚的电压波形。实际测得:A通道为微弱的脉冲电流。B通道为方波,电压为0 -5V。(放大器正常)C通道为方波,电压为0 5V。(反向器正常)其波形如图5.32所示。图5.325.4 分频电路仿真l 对单片机ALE口信号频率用频率计测量如图5.41所示。图5.41其值为晶振(12MHZ)的1/6。所以为2MHZ。l 74LS74分频原理74LS74是个双D触发器,把其中的一个D触发器的Q非输出端接到D输入端,时钟信号输入端CLOCK接时钟输入信号,这样每来一次CLOCK脉冲,D触发器的状态就会翻转一次,每两次CLOCK脉冲就会使D触发器输出一个完整的正方波,这就实现了2分频。把同一片74LS74上的两路D触发器串联起来,其中一个D触发器的输出作为另一个D触发器的时钟信

温馨提示

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

评论

0/150

提交评论