西南交通大学城轨供电本-简易函数发生器课程设计_第1页
西南交通大学城轨供电本-简易函数发生器课程设计_第2页
西南交通大学城轨供电本-简易函数发生器课程设计_第3页
西南交通大学城轨供电本-简易函数发生器课程设计_第4页
西南交通大学城轨供电本-简易函数发生器课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

课程名称:电子技术课程设计设计题目: 简易函数发生器 院 系: 电气工程系 专 业: 城轨供电本 年 级: xxxxxx 姓 名: xxxx x 学 号: xxxxxxxxxx 指导教师: 关海川 西南交通大学峨眉校区2016 年 06 月 16 日西南交通大学本科课程设计(论文) 第28页课 程 设 计 任 务 书专 业 城轨供电 姓 名 学 号 开题日期: 2016 年 03 月 01 日 完成日期: 2016 年 06月 16 日题 目 简易函数发生器 一、 设计的目的 信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 二、设计的内容及要求1) 采用MCS51作为主控芯片; 2) 采用D/A转换和放大处理,输出信号; 3) 要求能输出方波、三角波、锯齿波和正弦波4种信号,频率可调,学会将本学期学习的单片机与实际问题进行结合并得出自己的体会。 ,学会将本学期学习的单片机与实际问题进行结合并得出自己的体会。 4)学会请教老师与能力更好的同学,进行讨论研究,并做出自己的设计。 三、指导教师评语 四、成 绩 指导教师 (签章) 2016 年 06 月 16 日承 诺本人郑重承诺:所呈交的设计(论文)是本人在导师的指导下独立进行设计(研究)所取得的成果,除文中特别加以标注引用的内容外,本文不包含任何其他个人或集体已经发表或撰写的设计(研究)成果。对本设计(研究)做出贡献的个人和集体,均已在文中以明确方式标明。如被发现设计(论文)中存在抄袭、造假等学术不端行为,本人愿承担一切后果。 学生签名:2016 年 06月 16日摘 要信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 本文通过在单片机的外围加上键盘,控制波形的种类和输出频率的大小,加上L示波器显示出相应信息。单片机输出为数字信号,于是在输出端用DAC0832进行D/A转换,再通过两级运放对波形进行调整。最终在示波器上显示出来。 关键词:信号发生器 AT89C51 D/A转换 波形调整 AbstractSignal generator is also called source or oscillator. It has been widely used in production practice or the field of science and technology. Now, the price of the special waveform generator is not economic and some expensive. While the function signal generator based on AT89C51 can satisfy this requirement. As we know, it can be represented with trigonometric function equation for kinds of waveform curve. The one can produce various waveform, such as triangle wave, sawtooth wave, rectangle wave, square wave and sine wave is often called function signal generator. Function signal generator is broad-spectrum in circuit experiment and test equipment. It can control the type and the output frequency of the waveform when the microcontroller are equipped with the keyboard. Also when it coupled with the LED it can be displayed. It can be sure that it is digital signal that come from the microcontroller. So we should add the DAC0832 on the output side for D/A conversion. With the two levels of op-amp we can adjust waveform. Finally display on the oscilloscope. Keywords:signal generator, AT89C51, D/A conversion,wave adjust目录第一章 绪论1第二章 系统的主要功能说明22.1系统的主要功能22.2波形介绍22.2.1正弦波22.2.2方波22.2.3锯齿波32.2.4三角波32.3系统的设计思路4第三章 元器件介绍53.1单片机AT89C5153.1.1基本组成53.2数模转换器DAC083273.3示波器显示103.4其他元器件说明11第四章 硬件设计124.1工作原理124.2单片机及外围电路设计124.3输入模块设计134.3.1独立式按键134.3.2 矩阵式键盘134.5显示模块设计154.6系统硬件设计图16第五章 软件设计185.1程序分析185.2程序流程图185.3程序设计19小结与体会33II 第一章 绪论 波形发生器亦称为函数发生器,作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。按其信号波形可分为正弦信号发生器、函数信号发生器、脉冲信号发生器、随机信号发生器四大类。众所周知,在实验以及一些科学研究中常用到的一些基本测试信号,如在示波器、电视机等仪器中,用作时基电路的锯齿波以及在实验中常被用作信号源,观察波形失真情况等的正弦波都可以由函数信号发生器产生。除此之外,函数信号发生器在其他领域如同喜、广播、工业等领域内也有很重要作用。目前,市场上常见的波形发生器多为纯硬件搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。 信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学、地震模拟震动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求有增加,则电路复杂程度会大大增加。当今是科学技术及仪器设备高度智能化飞速发展的信息社会,电子技术的进步,给人们带来了根本性的转变。现代电子领域中,单片机的应用正在不断的走向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪器具有高可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得以极为广泛的应用。并走入家庭,从洗衣机、微波炉到音响、汽车,处处可见其应用。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。第二章 系统的主要功能说明2.1系统的主要功能 该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。函数信号发生器内部器件主要有单片机AT89C51,电源,键盘模块显示模块构成。 该系统不但满足了课程设计题目的基本要求,而且增设了LED波形指示灯,数码管频率显示器等原件,使操作更简单,使用界面更人性化。2.2波形介绍2.2.1正弦波正弦信号可用如下形式表示f (t)=Asin(t+ ) (1)其中,A 为振幅, 是角频率, 为初相位。正弦函数为一周期信号如下图1所示:图1 正弦波2.2.2方波方波函数是我们常用且所熟知的简单波形函数,做脉冲等,其表示形式如下: (2)方波波形如下:图2 图形当方波下半段幅值为0时,就为矩形波,一个原理,所以不再赘述矩形波。2.2.3锯齿波锯齿波如图3所示:图3 锯齿波图形2.2.4三角波三角波波形如下图所示:图42.3系统的设计思路 第三章 元器件介绍3.1单片机AT89C513.1.1基本组成AT89C51内部结构AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚说明: 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后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0)单片机引脚图3.2数模转换器DAC0832 DAC0832是一个8位的D/A转换器,为DAC0830的一种。DAC0832内部主要由8为输入寄存器、8位DAC寄存器、8位D/A转换器和控制逻辑电路组成。由于DAC0832与单片机接口方便,其转换与控制较易实现,所以在实际工作中有其重要的作用,使用的也较为频繁。其内部结构及引脚图如图所示。 DAC0832的内部结构 DAC0832的引脚图 DAC0832是D/A转换器的一类,属电流型,所以后要跟着I/V转换。数字输入端可以有单缓冲、双缓冲或直通方式输入。当引脚、直接接地时,ILE接电源,DAC0832处于直通工作方式。这种状态下,有输入就立即有输出,处理方式简单,但只能通过独立的I/O接口连接。当连接ILE、和引脚,使得两锁存器分别工作在直通与受控状态,或者两个同事被控制,则DAC0832处于单缓冲工作方式1。只要数据DAC0832写入8位输入锁存器,就立即开始转换。双缓冲方式即将对8位DAC寄存器与对锁存器的控制分开进行,占用的I/O口相对较大。DAC0832结构:(1) D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);(2) ILE:数据锁存允许控制信号输入线,高电平有效;(3)CS:片选信号输入线(选通数据锁存器),低电平有效;(4)WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;(5)XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;(6) WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。(7)IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;(8)IOUT2:电流输出端2,其值与IOUT1值之和为一常数;(9)Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;(10) Vcc:电源输入端,Vcc的范围为+5V+15V;(11) VREF:基准电压输入线,VREF的范围为-10V+10V;(12) AGND:模拟信号地(13 )DGND:数字信号地3.3示波器显示下图即为Proteus的示波器,下图中右下脚带有波形的为示波器原理图,其中A和B分别为示波器的channel1(ch1)和channel2(ch2)输入口,想用ch1就接A,同理,想用ch2就接B。 我们调试示波器时,会有这样的经验,波形水平漂移,一般首先判断是否触发信号的问题。示波器只是简单地显示与触发时间相关的采样内容,它不停的触发,每次触发时,它都会采样待测波形,将点放在屏幕上,不会试图在各点之间画线。如果触发器和输入波形是稳定的,则一组点会紧密排列成一根与待测信号近似的波形曲线;如果由于垂直噪声或时序抖动等问题,触发时间或波形是不稳定的,屏幕就会显示一组点的漂移。3.4其他元器件说明晶振电路使用12MHZ的晶体振荡器,30PF的电容。复位电路采用10UF的电容,10K的电阻。波形指示区采用四个绿色LED灯。频率显示器电路中除3个7段数码管外还使用了3个三极管。波形信号的放大电路上采用了两个放大器。主要元器件列表:原件名称备注元件名称备注单片机AT89C51LED灯数模转换器DAC0832运算放大器锁存器74LS373三极管NPN并行接口芯片8255A晶振12MH示波器7段数码管共阴极第四章 硬件设计4.1工作原理 本系统由单片机AT89C51对不同的模块进行统一调配控制以达到设计目的。首先是输入模块,为节省引脚,此处设计为矩阵键盘。软件选用反转法扫描。此功能由P口控制。数据读入后,经单片机程序分析,分别控制三个输出部分:.四个LED灯,通过其亮灭显示当前输出的波形类型,此功能由P3.0、P3.1、P3.3、P3.4四个引脚控制;三个共阴极数码显示管,用以显示当前波形的频率。示波器。P0口分时复用,控制数码管显示后对数模转换器DAC0832输出波形数据,信号经放大电路放大,然后送至示波器显示。外围原件此处省略不讲,软件部分见下章。4.2单片机及外围电路设计如图所示,晶振频率为12MHz,电容C1、C2均为10uF。复位电路中,电容C3的作用是在按钮按下时储存电能,电阻R11用作在按钮断开时保护电路。P3.2口接高电平和按钮,用来实现外部中断的下降沿触发。4.3输入模块设计输入以按键方式输入,在51单片机中,按键方式有两种:独立式按键和矩阵式按键。4.3.1独立式按键独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。4.3.2 矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。 特点:占用I/O端线较少; 软件结构教复杂。适用于按键较多的场合。 矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平。只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平。然而,第2行为低电平时,能否肯定是8号键按下呢? 回答是否定的,因为9、10、11号键按下,同样会使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察8号键按下时的工作过程,当第0列处于低电平时,第2行处于低电平,而第1、2、3列处于低电平时,第2行却处在高电平,由此可判定按下的键应是第2行与第0列的交叉点,即8号键。 为节省接口,键盘设计为4*4矩阵键盘,通过P1口的高四位和低四位分别对键盘的行和列进行扫描,从而检测出按下的键。4.5显示模块设计波形选择此处为设计要求外的第二处创新点,为了告诉操作者示波器当前显示波的波形,我采用了四个LED灯对相应的波形进行指示,通过观察灯的亮灭就能加以区分。波形显示此处是整个系统的第二核心,当P0口对频率显示信号输出完毕后,数模转换器开关打开,P0开始为其输送波形信号。输入的信号经功率放大器放大后送至示波器显示。4.6系统硬件设计图第五章 软件设计5.1程序分析本设计采用简单方便的C语言编写程序。为了使编程时思路清晰,采用模块化的编写方式,即分功能编写子程序,再由主函数根据需要依次调用。按照思路,程序进入主函数后需先对要用到的外部中断和定时计数器进行初始化,然后进入波形输出的无限循环中,在此过程中由中断系统对输出进行控制,首先程序控制P1口扫描键盘,重新输入波形和频率的信息,输入的数据经程序处理后输出数据送至LED波形指示灯和数码管频率显示器对输入信息进行显示。之后P0口为数模转换器输送波形数据,使示波器显示波形。5.2程序流程图5.3程序设计包括主函数初始化程序:延时程序:因为C语言编写的程序必须经过编译才能应用于单片机,而不同的语句编译后指令的周期不确定,故延时函数不宜使用简单的for语句或while语句。本处使用单片机的定时计数器计时,在很大程度上提高了延时时间的精准性。 键盘输入程序:本处使用键盘的扫描方法为反转法,其原理是给端口赋值两次,通过检测两次的结果而得到按键的信息。例如:1.给P1口赋值0x0f,即00001111,假设第一个键按下了,则这时P1口的实际值为00001110; 2.给P1口再赋值0xf0,即11110000,如果第一个键按下了,则这时P1口的实际值为11100000; 3.把两次P1口的实际值相加得11101110,即0xee。 由此我们便得到了按下第一个键时所对应的数值0xee,以此类推可得出其他15个按键对应的数值,有了这种对应关系,矩阵键盘编程问题也就解决了,也就是程序的算法已经有了。波形函数具体程序如下:#include#include#define DAC0832 XBYTE0x0200#define sled1 XBYTE0x0100#define sled2 XBYTE0x0101#define sled3 XBYTE0x0102#define sled XBYTE0x0103#define uchar unsigned char#define uint unsigned intuchar input();uint f;sbit p30=P30;sbit p31=P31;sbit p33=P33;sbit p34=P34;sbit p35=P35;sbit p36=P36;sbit p37=P37;uchar old; uchar a4;uchar k=0;uchar code smg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x3e,0x00; uchar code table=0xe7,0xeb,0xed,0xee,0xd7,0xdb,0xdd,0xde,0xb7,0xbb,0xbd,0xbe,0x77,0x7b,0x7d,0x7e; uchar code table2= 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, 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,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, 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,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;void chushihua()/初始化 sled=0x80;IT0=1; EX0=1; EA=1; PX0=1; TMOD=0x20; TR1=1; void delay()/延时 while(!TF1); TF1=0; void delayms(uint j)uchar mm; while(j-) for(mm=0;mm216;mm+); void xshz(uchar h,uchar m,uchar p)/显示子程序 sled1=smgh; sled2=smgm; sled3=smgp; void xsh()/显示 if(k=3) xshz(a0,a1,a2); if(k=2) xshz(12,a0,a1); if(k=1) xshz(12,12,a0); if(k=0) xshz(10,0,11); uchar input() /输入 uchar hang,lie,rr;rr=0; P1=0xf0; if(P1&0xf0)!=0xf0) delayms(20); if(P1&0xf0)!=0xf0) hang=P1&0xf0; P1=0x0f; lie=P1&0x0f; rr=hang+lie; if(rr=table0) return(33); else if(rr=table1) return(44); else if(rr=table4) return(1); else if(rr=table5) return(2); else if(rr=table2) return(55); else if(rr=table3) return(66); else if(rr=table6) return(3); else if(rr=table7) return(0); else if(rr=table8) return(4); else if(rr=table9) return(5); else if(rr=table10) return(6); else if(rr=table11) return(11); else if(rr=table12) return(7); else if(rr=table13) return(8); else if(rr=table14) return(9); else if(rr=table15) return(22); else return(12); void fang()/方波 uchar i; DAC0832=0; for(i=0;i128;i+) delay(); DAC0832=0xff; for(i=0;i128;i+) delay(); void jvchi()/锯齿波 unsigned char x; for(x=0;x255;x+) DAC0832=x; delay();void tran()/三角波 unsigned char y; for(y=0;y0;y-) DAC0832=y; delay(); void sin()/正弦波 unsigned char mm; for(mm=0;mm255;mm+) DAC0832=table2mm;delay();void zhongduan() interrupt 0 /中断 uchar e,f=0; f=0; k=0; while(input()=12); a0=input(); if(a0=33) p30=0;p31=1;

温馨提示

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

评论

0/150

提交评论