《低频双相函数信号发生器的设计论文.doc》由会员分享,可在线阅读,更多相关《低频双相函数信号发生器的设计论文.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.摘摘要要信号发生器是一种能产生模拟电压波形的设备,这些波形能够校验电子电路的设计。信号发生器广泛用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是 STM32 单片机构成的发生器,可产生三角波、方波、正弦波、锯齿波,波形的频率可用程序控制改变。此系统使用 STM32 部的 DAC 转换器,节约空间和成本。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。两路信号频率围从 1000Hz到 2000Hz 可调,步进值 1Hz,频率准确度不低于 3%,且每路信号频率和步进值单独程控可调;产生两路频率一样的正弦
2、信号,程控设置其相位差,可以在 0360 度变化,设置相位差的精度不大 10 度;产生的方波占空比在 1%99%围可调,设置分辨率不低于 1%。两路信号输出最大幅度不低于 2.5V,每路幅度单独程控可调,设置分辨率不低于 100mv;本信号发生器既可实现产生低频信号,也可实现产生高频信号,产生的信号为特定频率信号。关键词关键词:信号发生器,STM32,DDS,波形目目 录录.1/40第 1 章绪 论41.1课题背景41.2数字信号发生器简介4第 2 章 低频信号发生器的方案研究.52.1方案的构思与选择52.2方案的实现5第 3 章 硬件电路的设计.73.1系统总体框图与其结构分析.73.1.
3、1 系统框图展示.73.1.2 双向低频信号发生器的使用方法.73.2 硬件模块展示与分析.83.2.1 STM32 单片机模块简介.83.2.2 显示与控制模块.93.2.3 电源模块.10第 4 章波形产生与其软件设计.114.1 软件总体设计.114.2 波形产生.114.2.1 DDS数字法信号合成技术.114.2.2 矩形波.114.2.3 三角波.124.2.4 正弦波.134.2.5 锯齿波.14结论.16参考文献.17附录一 试验完整程序18附录二 实验成果展示38.2/40第 1 章绪 论1.1课题背景随着电子测量与其他部门对各类信号发生器的广泛需求与电子技术的迅速发展,促使
4、信号发生器种类增多,性能提高。尤其随着 70 年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机与其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育与生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以与一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视
5、机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市面上能看到的仪器在频率精度、带宽、波形种类与程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。1.2数字信号发生器简介数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之。二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。凡是产生测试信号的仪器,统
6、称信号源也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。在测试、研究或调整电子电路与设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。当测试系统的瞬态特性时,又需使用前沿时间、脉冲宽度和重复周期已知的矩形脉.3/40冲源。并且要求信号源输出信号的参数,如频率、波形、输出电压或功率等,能在一定围进行精确调整,有很好的稳定性,有输出指示。第第 2 2 章章 低频双相信号发生器的方案研究低频双相信号发生器的方案研究.4
7、/402.12.1总体方案构思与选择总体方案构思与选择波形发生器可以基于模拟技术,也可以基于数字技术。模拟发生器利用模拟硬件来产生简单的函数,并在需要指定频率的静态正弦波或方波时经常使用。而数字函数发生器采用直接数字综合技术,DAC,数字信号处理。根据设计要求,为实现发生仪应有的功能,选择使用单片机、定时器、DA 转换器作为信号发生部分,由真彩屏作为人机界面的设计思路。构思框图如下图所示。图 2-1-1 构思框图2.22.2 方案的实现方案的实现根据双向低频信号发生器的功能需要,我们选用 stm32 单片机。使用 STM32 减少了外拓替他芯片,提高了一起的系统可靠性,其计算能力更强,计算速度
8、更快,提高了波形实现的准确度。STM32 系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的 ARM Cortex-M3 核。按性能分成两个不同的系列:STM32F103“增强型”系列和 STM32F101“基图 2-2-1 STM32 单片机本型”系列。增强型系列时钟频率达到 72MHz,是同类产品中性能最高的产品;基本型时钟频率为 36MHz,以 16 位产品的价格得到比 16 位产品大幅提升的性能,是 16 位产品用户的最佳选择。两个系列都置 32K 到 128K 的闪存,不同的是 SRAM 的最大容量和外设接口的组合。时钟频率 72MHz 时,从闪存执行代 码,STM32 功
9、耗 36mA,是 32 位市场上功耗最低的产品,相当于 0.5mA/MHz。.5/40控制与显示界面选用的是 TFT2.4 寸的 LCD 液晶显示屏,与电子触摸屏。采用 2.4寸彩色液晶显示屏作为人机交互界面既美观,同时又能直接方便的调节对各通道各波形参数进行调节;在一种对外界完全隔离的环境下工作,不怕灰尘、水汽和油污,能适应各种恶劣环境;可以用任何物体来触摸,稳定性较好;四层结构造成其透光率较低;使用寿命相对较长;屏幕比较便宜;反应灵敏度也较好。第第 3 3 章章 硬件电路的设计硬件电路的设计.6/403.13.1系统总体框图与其结构分析系统总体框图与其结构分析3.1.13.1.1 系统框图
10、展示系统框图展示双向低频信号发生器系统主要由 CPU、定时器、两路 12 位 DA 转换器、控制与显示电路、供电电源等电路组成。系统总体框图如下图所示。图图 3-1-1-13-1-1-1 系统总体框图系统总体框图3.1.23.1.2 双向低频信号发生器的使用方法双向低频信号发生器的使用方法双向低频信号发生器通过 320*240 彩色触摸屏作为人机界面调节两路波形,波形幅度,波形频率以与方波的占空比和正弦波的相位差。如图 3-1-2-1 的显示与控制界面图,触摸通道一下方的开(即打开通道一),点按通道区域波形处,即可改变波形(依次由三角波,正弦波,方波,锯齿波进行循环调节);在确定波形以后,可点
11、按通道一的频率区进行图3-1-2-1显 示 与 控 制 界1000Hz2000Hz 的频率调节,其中每点按一次频率区依次对频率的千、百、十、个位进行上下调节(上下由调频处的上下按键改变);点按通道一的幅度区对幅度调节,每点按一次幅度值增加 0.1V;特别的对于方波触摸通道一的占空比处可改变方波的占空比大小(由 1%99%进行循环),每点按一次增加 1%;同样的方式对通道.7/40二各波形参数进行调节。另外在两路正弦波处于工作显示状态时,可点按相位差处对两路相位差进行调节(0360进行循环),每点按一次相位差增加 1。在各通道,各参数都确定以后,触摸左上方“输出”按键,即可输出所要求的波形。、3
12、.23.2 硬件模块展示与分析硬件模块展示与分析3.2.13.2.1 STM32STM32 单片机模块简介单片机模块简介STM32F103STM32F103 部主要配置:部主要配置:核:核:ARM32 位 Cortex-M3 CPU,最高工作频率 72MHz,1.25DMIPS/MHz。单周期乘法和硬件除法。存储器:存储器:片上集成 32-512KB 的 Flash 存储器。6-64KB 的 SRAM 存储器。时钟、复位和电源管理:时钟、复位和电源管理:2.0-3.6V 的电源供电和 I/O 接口的驱动电压。POR、PDR 和课编程的电压探测器(PVD)。4-16MHz 的晶振。嵌出厂前调校的
13、 8MHz RC 振荡电路。部 40 kHz 的 RC 振荡电路。用于 CPU 时钟的 PLL。带校准用于 RTC 的 32kHz 的晶振。低功耗:3 种低功耗模式:休眠,停止,待机模式。为 RTC 和备份寄存器供电的 VBAT。调试模式调试模式:串行调试(SWD)和 JTAG接口。图 3-2-1-1 STM32 最小系统DMADMA:12 通道 DMA 控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和 USART。2 2 个个 1 12 2 位位的的 u us s 级级的的 A/A/D D 转换器转换器(1 16 6通道):通道):A/D 测量围:0-3.6 V。双采样和保持能力
14、。片上集成一个温度传感器。2 2 通道通道 1212 位位 D/AD/A 转换器:转换器:STM32F103xC,STM32F103xD,STM32F103xE 独有。最多高达最多高达 112112 个的快速个的快速 I/OI/O 端口端口:根据型号的不同,有 26,37,51,80,和 112 的 I/O 端口,所有的端口都可以映射到 16 个外部中断向量。除了模拟输入,所有的都可以接受 5V 以的输入。.8/40最多多达最多多达 1111 个定时器:个定时器:4 个 16 位定时器,每个定时器有 4 个 IC/OC/PWM 或者脉冲计数器。2 个16 位的 6 通道高级控制定时器:最多 6
15、 个通道可用于 PWM 输出。2 个看门狗定时器(独立看门狗和窗口看门狗)。Systick 定时器:24 位倒计数器。2 个 16 位基本定时器用于驱动 DAC。最多多达最多多达 1313 个通信接口:个通信接口:2 个 IIC 接口(SMBus/PMBus)。5 个 USART 接口(ISO7816 接口,LIN,IrDA 兼容,调试控制)。3 个 SPI 接口(18 Mbit/s),两个和 IIS 复用。CAN 接口(2.0B)。USB 2.0 全速接口。SDIO 接口。3.2.23.2.2 显示与控制模块显示与控制模块液晶屏配置简介:液晶屏配置简介:1.模块名称2.4 寸 240 x32
16、0 全视角液晶显示模块 3.显示模式:TFT4.分辨率:240*3205.尺寸:42.72*60.26*2.1mm6.可视面积 37.72*49.96 mm7.点阵区 36.72*48.96mm8.接口类型:8080 8/16 位并口模式9.9.连接类型:COG+FPC图 3-2-2-1 液晶屏引脚配置10.视角:全视角电阻式触摸屏是一种传感器,它 将矩形区域中的触摸点(X,Y)的物理位置转换为代表 X坐标和 y 坐标的电压。很多 LCD 模块都采用了电阻式触摸屏,这种屏幕可以用四线,五线,七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。电阻式触摸屏基本上是薄膜加上玻璃的结构,当触摸时,薄
17、膜下层的 ITO 会接触到玻璃上层的 ITO,经由感应器传出一个讯息,再从控制器送到计算机端,藉由驱动程序转化到屏幕上的 X、Y 值,而完成点选的动作,并呈现在屏幕上。.9/40采用 2.4 寸彩色液晶显示屏作为人机交互界面既美观,同时又能直接方便的调节对各通道各波形参数进行调节;在一种对外界完全隔离的环境下工作,不怕灰尘、水汽和油污,能适应各种恶劣环境;可以用任何物体来触摸,稳定性较好,;四层结构造成其透光率较低;使用寿命相对较长;屏幕比较便宜;反应灵敏度也较好。3.2.33.2.3 电源模块电源模块STM32 的工作电压(VDD)为 2.03.6V。通过置的电压调节器提供所需的 1.8V
18、电源。当主电源 VDD 掉电后,通过 VBAT 脚为实时时钟(RTC)和备份寄存器提供电源。图 3-2-3-1图 3-2-3-2.10/40第第 4 4 章章波形产生与其软件设计波形产生与其软件设计4.14.1 软件总体设计软件总体设计应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。系统的软件包括以下几个程序模块:初始化程序;键盘扫描程序与处理程序;定时器 2 服务程序;正弦波、三角波、方波、锯齿波发生程序与其服务程序;中断处理程序等等。详细见附录 1。4.24.2 波形产生波形产生4.2.14.2.1 DDSDDS数字法信号合成技术数字法信号合成技术DDS技术是采
19、用直接数字合成(Direct Digital Synthesis)的方法实现信号产生。该技术具有频率转换速度快、频率分辨率高、易于控制的突出特点。直接数字合成技术近年来发展得很快,而要产生任意波形就必须采用直接数字很成技术。数字函数发生器图 4-2-1-1 DDS原理图采用直接数字综合DDS,DAC,数字信号处理,以与一个单周期存储缓冲器来产生信号。DDS技术依赖数字控制的方法,利用单基准时钟频率来实现一个模拟频率源。DDS能够实现高精度和高分辨率,高温度稳定度,高宽带,以与随机的和相位连续的频率切换。4.2.24.2.2 矩形波矩形波矩形波被广泛用于数字开关电路,矩形波电压只有两种状态,不是
20、高电平,就是低电平,所以电压比较器是它的重要组成部分;因为产生振荡,就是要求输出的两种状态自动地相互转换,所以电路中必须引入反馈;因为输出状态应按一定的时间间隔交替变化,即产生周期性变化,所以电路中要有延迟环节来确定每种状态维持的时间。.11/40方波函数是一种常用的波形函数,其表达式为:图 4-2-2-1 方波的波形图方波的函数如下:方波的函数如下:u32 ju_out(void)ha+;if(hazkb1)ak47=0;if(ha=4096)ha=0;return ak47;4.2.34.2.3 三角波三角波.三角波与锯齿波很相似,,主要用在 CRT 作显示器件的扫描电路中.如示波器,显像
21、管,显示器等.CRT 是由许多点组成的.要形成光栅就要有电子束轰击这些发光点.扫描电路分水平和垂直扫描两种.可以一行或一帧的对 CRT 进行扫描.电子束从第一行或帧的一端开始扫到另一端,马上返回扫第二行或第二帧,锯齿波的特点是电压渐渐增大然后又逐渐降低,正好适合用于扫描电路中。.12/40图4-2-3-1 三角波的波形图三角波的函数如下:三角波的函数如下:u32 san_out(void)if(debug=0)i=1;if(debug=4096)i=0;if(i=1)debug=debug+2;if(i=0)debug=debug-2;return debug;4.2.44.2.4 正弦波正弦
22、波正弦波即是频率成分最为单一的一种信号,因这种信号的波形是数学上的正弦曲线而得名。正弦信号与余弦信号,两者只是在相位上相差 2,可以统称为正弦信号。其一般形式为:f(t)=A sin(t+)式中,A为振幅,是角频率,为初.13/40相位。上述三量是正弦信号的三要素。它的波形见图 1。正弦信号是周期信号,其周期T与频率f与角频率 之间的关系为:正弦波函数如下:正弦波函数如下:u32 zheng_out(void)u32 value;if(no4096)mvp=0;return mvp;.15/40结结论论经过各组员的共同努力和老师的悉心指导,我们最终完成了我们的作品。作品性能总结如下:(1)两路
23、信号均可程控输出正弦波、方波、三角波和锯齿波;(2)两路信号输出最大幅度不低于 3.3V,每路幅度单独程控可调,设置分辨率不低于 100mv;(3)两路信号频率围从 1Hz 到 3000Hz 可调,步进值 1Hz,频率准确度不低于 3%,且每路信号频率和步进值单独程控可调;(4)产生两路频率一样的正弦信号,程控设置其相位差,可以在 0360 度变化,设置相位差的精度不大 10 度;(5)产生的方波占空比在 1%99%围可调,设置分辨率不低于 1%;在设计过程中,应用的知识有电路基础,模拟电子,数字电子,PROTEL99SE 等,回顾一下,我们回顾了以前学过的知识,使自己的专业视野有所拓展,也是
24、我们认识到学识有待提高,在设计和实验过程中,与同学相互协作,讨论研究,也提升了我们的团队精神。.16/40参考文献参考文献1 自美电子线路设计实验测试(第三版)M:华中科技大学.2000 年 7 月.2梓城实用电子电路设计与调试M:中国电力.2006.63丽,镇,厚军.基于 FPGA 的多波形信号发生器J.无线电工程,2OO5(7):46-484志轶,晶,靳煌.DDS 原理与在高速跳频系统中的应用J.船舶电子工程,2005,25(l):105嘉佳,志浩,王天麟一种基于 DDS 芯片 AD9959 的高精度信号发生器J.自动化仪表.2007(4):50-536徐爱钧,秀华.单片机高级语言 C51
25、 应用程序设计M.电子工业,1998.12-27世仓,柴任,胡新梅.一种新型两路正弦波信号发生器的研究J.科技学院报,2002(4):459-468朱立锋.传统的和基于 DDS 的 AWG 之间的区别J.国外电子测量技术,1996,(1):1219田新广,尔扬,邻书跃.DDS 幅度量化杂散信号的频谱研究J.通信学报,Vol.24,No.7,79-85,200.17/40附录一附录一实验完整程序:实验完整程序:#include stm32f10 x.h#include DAC.h#include stm32f10 x_it.h#include stm32f10 x_tim.h#include s
26、tm32f10 x_dac.h#include ili9320.h#include Touch.h#include stdio.h#include math.h#define PI 3.1415926u16 x,y;/触摸屏位置float zkb1=0;/占空比 1u32 zkx1=99;u8 zhan18;float zkb2=0;/占空比 2u32 zkx2=99;u8 zhan28;float A1=0.76;/调整幅值float A2=0.76;u8 tj=0;/调频位选择u8 tj2=0;u8 fuzhi18;/幅值显示u32 fx1=25;u8 fuzhi28;u32 fx2=25
27、;u32 ma=0;/选择波形u32 mb=0;u16 app=0;/通道选择u16 ban=0;u32 date4096;/波形存储u32 date24096;u32 pl1=1000;/频率u8 pin18;u32 pl2=1000;u8 pin28;float xwc1=2048;/相位差u32 xwx1=180;u8 xiang18;u16 h,k;/随机使用变量u16 a,a2,b,b2,c,c2,da,da2;u32 no=0,no2;/*函数声明*/void GPIO_Configuration(void);u32 san_out(void);u32 zheng_out(void
28、);u32 zheng2_out(void);u32 ju_out(void);u32 ju2_out(void);u32 awm_out(void);void x_out(void);void y_out(void);void m_out(void);void n_out(void);void x2_out(void);void y2_out(void);void m2_out(void);.18/40void n2_out(void);/*主函数*/int main(void)DAC_RCC_Configuration();DAC_GPIO_Configuration();dac_conf
29、ig();TIM_Configuration();NVIC_Configuration();TIM2_IRQHandler();SPI_Config();ili9320_Initializtion();ili9320_Clear(Red);GUI_Line(10,15,315,15,Black);GUI_Line(10,45,315,45,Black);GUI_Line(10,75,315,75,Black);GUI_Line(10,105,315,105,Black);GUI_Line(10,135,315,135,Black);GUI_Line(10,165,315,165,Black);
30、GUI_Line(10,195,315,195,Black);GUI_Line(10,225,315,225,Black);GUI_Line(10,15,10,225,Black);GUI_Line(110,15,110,225,Black);GUI_Line(215,15,215,165,Black);GUI_Line(215,195,215,225,Black);GUI_Line(315,15,315,225,Black);GUI_Line(180,165,180,195,Black);Putstr_color(36,48,幅度,24,Black,Blue,TRANSP);Putstr_c
31、olor(36,78,波形,24,Black,Blue,TRANSP);Putstr_color(36,108,频率,24,Black,Blue,TRANSP);Putstr_color(24,138,占空比,24,Black,Blue,TRANSP);Putstr_color(24,168,相位差,24,Black,Blue,TRANSP);Putstr_color(11,198,调节,24,Black,Blue,TRANSP);Putstr_color(61,198,确定,24,Black,Blue,TRANSP);Putstr_color(120,198,开关,24,Black,Yell
32、ow,TRANSP);Putstr_color(145,198,24,Black,Red,TRANSP);Putstr_color(252,168,上,24,Black,Blue,TRANSP);Putstr_color(225,198,开关,24,Black,Yellow,TRANSP);Putstr_color(250,198,24,Black,Red,TRANSP);Putstr_color(282,168,下,24,Black,Blue,TRANSP);Putstr_color(124,18,通道一,24,Black,Yellow,TRANSP);Putstr_color(224,18
33、,通道二,24,Black,Yellow,TRANSP);Putstr_color(36,18,输出,24,Black,Blue,TRANSP);Putstr_color(182,168,调频:,24,Black,Red,TRANSP);pin10=0 x31;pin11=0 x30;pin12=0 x30;pin13=0 x30;pin14=H;pin15=Z;pin20=0 x31;pin21=0 x30;pin22=0 x30;pin23=0 x30;pin24=H;pin25=Z;while(1).19/40 x=TPReadX();/触摸检测y=TPReadY();Putstr_co
34、lor(124,18,通道一,24,Black,Yellow,TRANSP);Putstr_color(224,18,通道二,24,Black,Yellow,TRANSP);/*通道 1*/*通道 1 选择开关*/if(x120&x198&y175&x198&y225)app=0;for(b=0;b61&x198&y120&x75&y4)ma=1;switch(ma)case 1:/三角波Putstr_color(124,78,三角波,24,Blue,Red,NORMAL);Putstr_color(115,108,pin1,24,Blue,Red,NORMAL);if(x120&x48&y3
35、3)fx1=1;A1=0.03;fuzhi10=(fx1)/10+0 x30;fuzhi11=.;fuzhi12=(fx1)%10+0 x30;fuzhi13=V;fuzhi14=0;Putstr_color(130,48,fuzhi1,24,Blue,Red,NORMAL);if(x115&x108&y252&x168&y0 x39)pin10=0 x30;if(x282&x168&y193)pin10=pin10-1;if(pin10252&x168&y0 x39)pin11=0 x30;if(x282&x168&y193)pin11=pin11-1;if(pin11252&x168&y0
36、 x39)pin12=0 x30;if(x282&x168&y193)pin12=pin12-1;if(pin12252&x168&y0 x39)pin13=0 x30;if(x282&x168&y193)pin13=pin13-1;.21/40if(pin13252&x168&y24&x18&y120&x48&y33)fx1=1;A1=0.03;fuzhi10=(fx1)/10+0 x30;fuzhi11=.;fuzhi12=(fx1)%10+0 x30;fuzhi13=V;fuzhi14=0;Putstr_color(130,48,fuzhi1,24,Blue,Red,NORMAL);if
37、(x115&x108&y252&x168&y0 x39)pin10=0 x30;if(x282&x168&y193)pin10=pin10-1;if(pin10252&x168&y0 x39)pin11=0 x30;if(x282&x168&y193)pin11=pin11-1;if(pin11252&x168&y0 x39)pin12=0 x30;if(x282&x168&y193)pin12=pin12-1;if(pin12252&x168&y0 x39)pin13=0 x30;if(x282&x168&y193)pin13=pin13-1;if(pin13252&x168&y115&x1
38、68&y360)xwx1=0;xwc1=0;xiang10=xwx1/100+0 x30;.23/40 xiang11=(xwx1%100)/10+0 x30;xiang12=xwx1%10+0 x30;Putstr_color(112,168,xiang1,24,Blue,Red,NORMAL);Putstr_color(157,168,16,Blue,Red,NORMAL);if(x24&x18&y120&x48&y33)fx1=1;A1=0.03;fuzhi10=(fx1)/10+0 x30;fuzhi11=.;fuzhi12=(fx1)%10+0 x30;fuzhi13=V;fuzhi
39、14=0;Putstr_color(120,48,fuzhi1,24,Blue,Red,NORMAL);if(x115&x108&y252&x168&y0 x39)pin10=0 x30;if(x282&x168&y193)pin10=pin10-1;if(pin10252&x168&y0 x39)pin11=0 x30;if(x282&x168&y193).24/40pin11=pin11-1;if(pin11252&x168&y0 x39)pin12=0 x30;if(x282&x168&y193)pin12=pin12-1;if(pin12252&x168&y0 x39)pin13=0
40、x30;if(x282&x168&y193)pin13=pin13-1;if(pin13252&x168&y120&x138&y4096)zkx1=99;zkb1=0;zhan10=zkx1/10+0 x30;zhan11=zkx1%10+0 x30;Putstr_color(140,138,zhan1,24,Blue,Red,NORMAL);Putstr_color(170,138,24,Blue,Red,NORMAL);if(x24&x18&y120&x48&y33)fx1=1;A1=0.03;fuzhi10=(fx1)/10+0 x30;fuzhi11=.;fuzhi12=(fx1)%1
41、0+0 x30;fuzhi13=V;fuzhi14=0;Putstr_color(120,48,fuzhi1,24,Blue,Red,NORMAL);if(x115&x108&y252&x168&y0 x39)pin10=0 x30;if(x282&x168&y193)pin10=pin10-1;if(pin10252&x168&y0 x39)pin11=0 x30;if(x282&x168&y193)pin11=pin11-1;if(pin11252&x168&y0 x39)pin12=0 x30;if(x282&x168&y193)pin12=pin12-1;if(pin12252&x16
42、8&y0 x39)pin13=0 x30;if(x282&x168&y193)pin13=pin13-1;if(pin13252&x168&y24&x18&y225&x198&y277&x198&y225)ban=0;for(b=0;b220&x75&y4)mb=1;switch(mb)case 1:Putstr_color(224,78,三角波,24,Blue,Red,NORMAL);Putstr_color(220,108,pin2,24,Blue,Red,NORMAL);if(x220&x48&y33)fx2=1;A2=0.03;fuzhi20=(fx2)/10+0 x30;fuzhi2
43、1=.;fuzhi22=(fx2)%10+0 x30;fuzhi23=V;fuzhi24=0;Putstr_color(220,48,fuzhi2,24,Blue,Red,NORMAL);if(x195&x108&y252&x168&y0 x39)pin20=0 x30;if(x282&x168&y193)pin20=pin20-1;if(pin20252&x168&y0 x39)pin21=0 x30;if(x282&x168&y193)pin21=pin21-1;if(pin21252&x168&y0 x39)pin22=0 x30;if(x282&x168&y193)pin22=pin2
44、2-1;if(pin22252&x168&y0 x39)pin23=0 x30;if(x282&x168&y193)pin23=pin23-1;if(pin23252&x168&y24&x18&y220&x48&y33)fx2=1;A2=0.03;fuzhi20=(fx2)/10+0 x30;fuzhi21=.;fuzhi22=(fx2)%10+0 x30;fuzhi23=V;.29/40fuzhi24=0;Putstr_color(220,48,fuzhi2,24,Blue,Red,NORMAL);if(x195&x108&y252&x168&y0 x39)pin20=0 x30;if(x2
45、82&x168&y193)pin20=pin20-1;if(pin20252&x168&y0 x39)pin21=0 x30;if(x282&x168&y193)pin21=pin21-1;if(pin21252&x168&y0 x39)pin22=0 x30;if(x282&x168&y193)pin22=pin22-1;if(pin22252&x168&y0 x39)pin23=0 x30;if(x282&x168&y193)pin23=pin23-1;if(pin23252&x168&y24&x18&y220&x48&y33)fx2=1;A2=0.03;fuzhi20=(fx2)/10+
46、0 x30;fuzhi21=.;fuzhi22=(fx2)%10+0 x30;fuzhi23=V;fuzhi24=0;Putstr_color(220,48,fuzhi2,24,Blue,Red,NORMAL);if(x195&x108&y252&x168&y0 x39)pin20=0 x30;if(x282&x168&y193)pin20=pin20-1;.31/40if(pin20252&x168&y0 x39)pin21=0 x30;if(x282&x168&y193)pin21=pin21-1;if(pin21252&x168&y0 x39)pin22=0 x30;if(x282&x1
47、68&y193)pin22=pin22-1;if(pin22252&x168&y0 x39)pin23=0 x30;if(x282&x168&y193)pin23=pin23-1;if(pin23252&x168&y220&x138&y4096)zkx2=99;zkb2=0;zhan20=zkx2/10+0 x30;zhan21=zkx2%10+0 x30;Putstr_color(238,138,zhan2,24,Blue,Red,NORMAL);Putstr_color(270,138,24,Blue,Red,NORMAL);if(x24&x18&y220&x48&y33)fx2=1;A2
48、=0.03;fuzhi20=(fx2)/10+0 x30;fuzhi21=.;fuzhi22=(fx2)%10+0 x30;fuzhi23=V;fuzhi24=0;Putstr_color(220,48,fuzhi2,24,Blue,Red,NORMAL);if(x195&x108&y252&x168&y0 x39)pin20=0 x30;if(x282&x168&y193)pin20=pin20-1;if(pin20252&x168&y0 x39)pin21=0 x30;if(x282&x168&y193)pin21=pin21-1;if(pin21252&x168&y0 x39)pin22
49、=0 x30;if(x282&x168&y193)pin22=pin22-1;if(pin22252&x168&y0 x39)pin23=0 x30;if(x282&x168&y193)pin23=pin23-1;if(pin23252&x168&y24&x18&y42)n2_out();break;/*波形表*/.34/40/*三角波函数*/u16 debug=0;u32 i;u32 san_out(void)if(debug=0)i=1;if(debug=4096)i=0;if(i=1)debug=debug+2;if(i=0)debug=debug-2;return debug;void
50、 y_out(void)for(a=0;a=4096;a+)datea=san_out();void y2_out(void)for(a2=0;a2=4096;a2+)date2a2=san_out();/*函数写正弦波*/u32 zheng_out(void)u32 value;if(no4096)value=sin(no+xwc1)*2*PI/4096)*2048+2048;no+;elseno=0;return value;void x_out(void)for(b=0;b=4096;b+)dateb=zheng_out();u32 zheng2_out(void)u32 value2;