本站APP,内容更劲爆

凤凰在线电影下载

类型:4408万达影院手机 地区: 日韩 年份:2020-07-09

剧情介绍

简易频率特性测试仪(E题)摘要:该简易频率特性测试仪采用STM32F103ZET6核心板,主要由自制正交扫描信号源、RLC被测网络、乘法器、低通滤波等功能模块组成;测试数据包含信号的幅频特性及相频特性,于彩屏TFT上显示。本系统利用高速DDS(AD9854)模块实现信号发生电路,能输出双端口的正交信号,并可控制设置其幅值与频率。被测网络采用RLC串联谐振电路,达到要求的网络通带中心频率。将DDS产生的正交信号和被测网络信号通过乘法器AD835模块,经LTC1564低通滤波,利用单片机上的片上AD进行采样,最终在彩屏上显示输出,完成对信号的幅频和相频的简单测试。关键词:STM32;DDS;乘法器;滤波;TFTAbstract:Thesimplefrequencytesterisbasedonhigh-performanceSTM32F103ZET6controller,anditmainlyconsistsofself-maidsignalgenerator,RLCnetwork,multipliers,low-passfilterandotherfunctionblocks.Thetestdatacontainsamplitude-frequencycharacteristicsandphase-frequencycharacteristics,andwillbedisplayedonTFT.Thesystemuseshigh-speedDDS(AD9854)blockassignalcircuit,generatingthedual-portquadraturesignals,whoseamplitudeandfrequencycanbecontrolledandset.ThetestnetworkismadeofRLCcircuit,whichisabletoachievethestandardizedcenterfrequency.ThequadraturesignalsgeneratedbyDDSandthesignalsundertestpassthroughthemultiplierAD835andtheLTC1564low-passfilter,andwillbesampledbythe12-biton-chipADC.ThefinaloutputisdisplayedontheTFTtocompletethetestofamplitude-frequencyandphase-frequency.Keyword:STM32;DDS;multiplier;filter;TFT一、方案选择与论证·······································31.1正交扫频信号源的设计与选择·································31.2乘法器模块的设计与选择·····································31.3低通滤波器的设计与选择·····································31.4ADC模块的设计与选择·······································31.5被测网络的设计与选择·······································4二、电路设计·············································42.1正交扫描信号源设计电路·····································42.2模拟乘法器设计电路·········································42.3低通滤波器设计电路·········································42.4末级电压抬升设计电路·······································5三、系统设计·············································53.1方案总体设计描述···········································53.2理论分析与计算·············································63.2.1正交扫描信号发生器的设计·······························63.2.2低通滤波器的设计·······································63.2.3RLC被测网络的设计·····································63.2.4特性曲线显示···········································7四、软件设计·············································7五、系统测试·············································85.1测试方法··················································85.2测试工具··················································85.3各模块测试过程············································85.3.1扫频信号发生器的测试··································85.3.2乘法器模块的测试······································95.3.3输入输出阻抗的测试····································95.3.4RLC被测网络的测试····································9六、结论················································10参考文献·················································10附录·····················································10附录一:元件清单··················································10附录二:AD9854扫描信号发生器设计电路······························11附录三:系统总体设计电路···········································11附录四:主要程序清单···············································12一、方案选择与论证1.1正交扫频信号源的设计与选择方案一:采用程控锁相环频率合成方案。方案说明:锁相环频率合成是将高稳定度和高精度的标准频率经过算术运算产生同样稳定度和精确度的大量离散频率,在一定程度上解决了既要频率稳定精确,又要频率在较大范围内可变的问题。但该方案采用多次积分电路,这种具有惰性特性的电路误差大,不能满足幅频曲线和相频曲线的输出要求。方案二:采用AD9854芯片搭建DDS模块电路,通过控制AD9854寄存器可产生编程控制的、高精度的频率信号。方案说明:AD9854是AD公司生产的DDS专用芯片,其拥有300MHz的内部时钟频率,可以进行FSK、BPSK、PSK、chirp、AM等的操作。AD9854数字合成器是一个利用DDS技术、两个内部高速高性能正交DACs控制数字可编程输入输出的综合器件。当给AD9854加上一个确定时钟时,它可以生成高度稳定、频率-相位-幅度可编程的正弦信号,频率分辨率很高、抗干扰能力强、灵敏度高、实用性强。综上论证比较,我们选用方案二作为正交扫频信号源的实现方式。1.2乘法器模块的设计与选择方案一:采用晶体管等分立元件搭建差分对模拟乘法器电路,通过两个晶体管输出的电压乘积项达到频率变换作用。方案说明:电路结构冗繁复杂,稳定性差,不易调节。方案二:直接采用模拟乘法器AD835芯片。方案说明:AD835是一款电压输出型四象限模拟乘法器,带宽高达250MHz,很适合宽带调制和解调应用。且AD835需要的外围电路非常少,配置方便。综上论证比较,我们选用方案二作为模拟乘法器的实现方法。1.3低通滤波器的设计与选择方案一:采用分立元件,搭建LC低通滤波器。方案说明:虽然电路结构简单,但精度不高,稳定性差。方案二:采用高精低噪运算放大器OP07搭建截止频率为5KHz的二阶有源低通滤波器。方案说明:可利用滤波器专用设计软件FilterSolutions设计,得到二阶低通有源滤波器电路的连接图和频率响应曲线。方案三:采用LTC1564芯片搭建截止频率为10KHz的十阶低通滤波器。方案说明:LTC1564是凌力尔特公司的数控滤波器芯片,可采用经典10KHz的十阶低通滤波器电路结构,设计简单,滤波效果非常好,稳定性高。综上论证比较,我们选用方案三作为低通滤波器的实现方法。1.4ADC模块的设计与选择方案一:采用ADC芯片搭建模数转换电路。方案说明:可选取合适的ADC芯片,采用经典模块电路搭建。方案二:直接利用STM32片上的12位高速ADC模块。方案说明:本系统选用的核心板STM32F103ZET6上,自带3个12位模数转换器,且转换时间可达1us,多达21个输入通道。由于单片机上的ADC已可以达到实验采样要求,故我们选用方案二作为ADC模块的设计方法,可减少外部电路的焊接。1.5被测网络的设计与选择被测网络按照实验要求采用RLC串联谐振网络设计,图示如下:图1.1RLC被测网络电路图RLC被测网络的元器件值详见电路理论分析。二、电路设计2.1正交扫描信号源设计电路正交扫描信号源采用AD9854芯片设计,电路详见附图。2.2模拟乘法器设计电路模拟乘法器采用AD835芯片设计,电路如下:图2.1乘法器电路2.3低通滤波器设计电路低通滤波器采用LTC1564芯片设计,搭建构成十阶的可达10KHz截止频率的电路,图示如下:图2.2低通滤波器电路2.4末级电压抬升设计电路由于本系统设计检测被测网络信号为正弦波形,电压有负值,接入ADC采样前设计一电压抬升电路,图示如下:图2.3末级电压抬升电路三、系统设计3.1方案总体设计描述本方案首先设计一个正交扫描信号源,可产生相位互为正交的双端口正弦信号,可设置信号频率的步进单位。制作一个RLC串联谐振电路作为被测网络,且网络通带中心频率为20Mhz。自制信号源产生的两路正弦信号和被测网络信号通过乘法器模块,由低通滤波模块滤除高频分量,得到被测网络的频率,由ADC采样信号并输出显示。图3.1简易频率特性测试仪系统原理示意图该方案在硬件电路设计上主要包含了AD9854正交扫描信号发生器、AD835模拟乘法器、LTC1564低通滤波器、末级抬升电压电路及RLC串联谐振被测网络五个模块,通过逐个模块调试至整个系统电路连贯调试,完成基本测试实验要求。在软件设计上利用了ARM编程工具和STM32核心开发板,软件主要包含了对AD9854、串口通信、片上ADC采样及彩屏控制部分。其中,ADC模块采用STM32板上自带12位高速ADC,减少了部分硬件电路的设计,容易实现。3.2理论分析与计算3.2.1正交扫描信号发生器的设计本设计的扫描信号发生器以AD9854芯片采用DDS技术,结合单片机程控,以产生两路正交正弦信号。设计中设置AD9854为单音模式,不仅可以调制所需频率的频率源信号,而且可根据需要设置输出信号的幅度、频率和相位等,即通过改变ROM表输出的幅度控制字实现幅度控制,通过改变相位累加器输入端的频率控制字实现频率控制,通过改变相位累加器输出端的相位控制字实现相位控制,从而完成相应的幅度、频率和相位的调制。设相位累加器的位数为N,相位控制字的值为FN,频率控制字的位数为M,频率控制字的值为FM,AD9854内部工作时钟为FC,则最终合成信号的频率可由式(3-1)来决定,合成信号的相位由式(3-2)来决定。(3-1)(3-2)当AD9854的参考时钟频率为270MHz时,其频率分辨率计算:相位控制精度计算:幅度控制范围计算:得到频率分辨率接近,相位控制精度达0.022,幅度控制范围为72dB,完全可达到实验要求。3.2.2低通滤波器的设计设计中为得到被测网络信号的频率特性,需要将经过乘法器后的高频分量滤除,由于被测网络中心频率在20MHz,故我们选用凌力尔特公司的LTC1564芯片,采用经典电路,通过Multisim软件搭建电路并进行仿真调试,设计截止频率为10KHz的低通滤波器。3.2.3RLC被测网络的设计RLC串联电路由电阻R、电感L及电容C串联构成,利用Multisim软件设计被测网络电路。反映RLC电路频率特性的参数有谐振频率f0、通频带宽BW和品质因数Q,其定义如下:(3-3)(3-4)(3-5)其中,计算通频带式(3-4)中的和分别是回路电流由最大值增加和减少3dB时所对应的上限频率和下限频率;计算品质因数式(3-5)中的。实验要求电路的中心频率为20MHz,即=20MHz,要求品质因数为4,可得到电路的通频带宽为5MHz。3.2.4特性曲线显示1)幅频特性曲线采用STM32片上ADC芯片,通过DMA通道测量信号电压值,当ADC转换结束以后,读取ADC_DR寄存器中的结果,通过下面的公式转换电压:(3-6)设系统输出的两路正交信号为:(3-7)(3-8)经ADC双通道采样后,电压幅值计算:(3-9)据经电压转换后,计算电压增益,公式如下:(3-10)在彩屏上显示幅频特性曲线,以线性频率(Hz)为横坐标,以电压增益(dB)为纵坐标,显示出被测信号的幅频特性曲线。2)相频特性曲线两路正交信号经ADC双通道采样后,相位计算:(3-11)由于信号相位计算需要函数算法,比较复杂,故采用查表法程序。在彩屏上显示相频特性曲线,以线性频率(Hz)为横坐标,以相移()为纵坐标,显示出被测信号的相频特性曲线。四、软件设计在本设计中,由STM32F103ZET6核心板实现程序的控制。其中,软件主要完成了AD9854的信号发生控制、Usart串口通信、ADC双通道采样、彩屏TFT显示的功能。系统框图及流程如下:图4.1系统软件流程框图五、系统测试5.1测试方法本系统的测试过程中,模拟电路采用由前端到后端,数字电路采用先仿真再调试的方法,从逐个模块测试完成再到模块连接调试,直至整个系统电路完成测试要求。5.2测试工具1)直流稳压源2)安捷伦数字示波器3)函数信号发生器4)数字频谱仪5)数字万用表5.3各模块测试过程5.3.1扫频信号发生器的测试使用直流稳压源对AD9854制成的扫描信号发生器进行正负5V供电,可承载电流不超过1A,将扫描信号发生器连接单片机,下载控制程序,通过数字示波器显示输出的I路及Q路信号,现列出一组典型实验数据。表5.1扫描信号发生器测试结果 理论电压(Vpp/V)实际电压(Vpp/V)理论频率(f/MHz)实际频率(f/MHz)I路信号2.001.9820.020.0Q路信号2.001.9620.020.0I、Q两路正弦信号呈正交关系,示波器上测量计算两路信号相位呈90度。输出电压和频率误差小于5%。通过频谱仪接入电路输出信号,扫描信号发生器完全可产生1M-40MHz范围的信号,精度可达10-4;且频率步进可调,达100KHz精度。5.3.2乘法器模块的测试利用数字函数发生器产生两路正交正弦信号,接入乘法器模拟电路,现列出一组典型信号测试结果:两路输入电压峰峰值均为Vp-p=2.00V,频率均为F=20MHz。表5.2乘法器测试结果 理论电压(Vpp/V)实际电压(Vpp/V)理论频率(f/MHz)实际频率(f/MHz)I路信号2.001.9820.020.0Q路信号2.002.0020.020.0输出信号1.000.9840.039.9综上数据可看出,模拟乘法器模块工作正常,输出信号误差小于2%。5.3.3输入输出阻抗的测试利用数字万用表测试该系统的输入阻抗和输出阻抗,即测量被测网络两端的Ri和RO,可达50Ω。5.3.4RLC被测网络的测试连接RLC被测网络,利用调节频率法测量电路的谐振频率。电路输入端接入数字函数发生器,保持信号源输出电压US不变,改变信号发生器的频率,将电路输出端接入数字频谱仪观察其输出的电压值。当输出电压UR的读数达到最大值(即电流达到最大值)时,其所对应的频率值即为谐振频率或中心频率。设置数字函数发生器输出电压为2.0V,调节信号频率,取一组调节频率法测试结果列示如下:表5.3RLC被测网络测试结果信号源频率(f/MHz) 17.018.019.020.021.022.023.0测量电压(U0/V)1.321.581.801.981.781.541.30由上表数据可得,RLC网络的中心频率为20MHz,误差小于5%;且其通频带宽约在17.5MHz-22.5MHz范围内,品质因数约4。六、结论本设计很好的满足了题目要求,对各模块和整体系统的测试基本完成。在设计中对于由AD9854搭建的扫描信号发生器花费了很多调试时间。通过本次设计,我们不仅熟练掌握各种仪器设备的使用调节,同时很大程度上提高了动手能力和处理问题的能力,受益匪浅!参考文献【1】黄智伟全国大学生电子设计竞赛制作实训北京航空航天大学出版社【2】黄智伟全国大学生电子设计竞赛技能训练北京航空航天大学出版社【3】谢嘉奎,宣月清.电子线路(非线性部分)高等教育出版社【4】童诗白,华成英.模拟电子技术基础(第四版)高等教育出版社附录附录一:元件清单本设计系统所用的主要元件清单如下所示:序号型号器件封装说明1AD835DIP乘法器2LTC1564SSOP8阶低通滤波器3REF3033SSOP3.3V基准电压4ua741DIP通用运放5OPA727SSOP通用运放6若干电阻电容表7.1系统元件清单列表附录二:AD9854扫描信号发生器设计电路AD9854的高速DDS模块硬件原理图如下所示:图7.1AD9854扫描信号发生器硬件原理图附录三:系统总体设计电路本系统总体硬件设计原理图如下所示:图7.2系统总体硬件原理图附录四:主要程序清单/******************************************************************************AD9854控制程序:******************************************************************************/voidSetAD9854Frequency(ucharucFreWordAdd,ulongulFreqVal){ucharFreqWord[6];ucharCount=6,Adress;ulongFreqBuf;Adress=ucFreWordAdd;FreqBuf=(ulFreqVal*FRETMP_Low);FreqWord[0]=(FreqBuf%0x100)&0xff;FreqBuf/=0x100;FreqBuf+=(ulFreqVal*FRETMP_MIDDLE);FreqWord[1]=(FreqBuf%0x100)&0xff;FreqBuf/=0x100;FreqBuf+=(ulFreqVal*FRETMP_HIGH);FreqWord[2]=(FreqBuf%0x100)&0xff;FreqBuf/=0x100;FreqWord[3]=(FreqBuf%0x100)&0xff;FreqBuf/=0x100;FreqWord[4]=(FreqBuf%0x100)&0xff;FreqWord[5]=(FreqBuf/0x100)&0xff;for(Count=6;Count;){AD9854_WriteByte(Adress++,FreqWord[--Count]);AD9854_WR_0;AD9854_WR_1;}AD9854_UDCLK_1;AD9854_UDCLK_0;}voidSetAD9854Amplitude(ucharucChannel,uintuiAmpVal){ucharAmpWord[2];uintAmpBuf;AmpWord[0]=(u8)(((u16)(uiAmpVal*4096/5))%256);AmpWord[1]=(u8)(((u16)(uiAmpVal*4096/5))/256);if(ucChannel==I){AD9854_WR_0;AD9854_WR_1;AD9854_WR_0;AD9854_WR_1;}if(ucChannel==Q){AD9854_WR_0;AD9854_WR_1;AD9854_WR_0;AD9854_WR_1;}AD9854_UDCLK_1;AD9854_UDCLK_0;}voidSetAD9854Phase(ucharucPhaAdjRegAdd,uintuiPhaVal){ucharPhaWord[2];uintPhaBuf;PhaBuf=(uiPhaVal*0x2d);PhaWord[0]=(PhaBuf%0x100)&0xff;PhaWord[1]=(PhaBuf/0x100)&0xff;AD9854_WriteByte(ucPhaAdjRegAdd,PhaWord[1]);AD9854_WR_0;AD9854_WR_1;AD9854_WriteByte(ucPhaAdjRegAdd+1,PhaWord[0]);AD9854_WR_0;AD9854_WR_1;AD9854_UDCLK_1;AD9854_UDCLK_0;}/******************************************************************************Uarst串口初始化程序:******************************************************************************/voidUSART1_Configuration(void){USART_InitTypeDefUSART_InitStructure;USART_ClockInitTypeDefUSART_ClockInitStructure;USART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;/*ConfiguretheUSART1*/USART_Init(USART1,&USART_InitStructure);USART_ClockInitStructure.USART_Clock=USART_Clock_Disable;USART_ClockInitStructure.USART_CPOL=USART_CPOL_Low;USART_ClockInitStructure.USART_CPHA=USART_CPHA_2Edge;USART_ClockInitStructure.USART_LastBit=USART_LastBit_Disable;USART_ClockStructInit(&USART_ClockInitStructure);}/******************************************************************************ADC采样程序:******************************************************************************/voidDAC_Configuration(void){DAC_InitTypeDefDAC_InitStructure;DAC_Cmd(DAC_Channel_1,ENABLE);DAC_StructInit(&DAC_InitStructure);DAC_InitStructure.DAC_Trigger=DAC_Trigger_Software;DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_TriangleAmplitude_4095;DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Enable;DAC_Init(DAC_Channel_1,&DAC_InitStructure);DAC_Cmd(DAC_Channel_1,ENABLE);//DAC_SetChannel1Data(DAC_Align_12b_R,0x0000);DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);}voidADC_Configuration(void){ADC_InitTypeDefADC_InitStructure;/*ConfiguretheADC1*/ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode=ENABLE;ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=1;ADC_Init(ADC1,&ADC_InitStructure);/*ADC2regularchannel5configuration*/ADC_RegularChannelConfig(ADC1,ADC_Channel_3,1,ADC_SampleTime_1Cycles5);ADC_DMACmd(ADC1,ENABLE);/*EnableADC2*/ADC_Cmd(ADC1,ENABLE);/*EnableADC2resetcalibarationregister*/ADC_ResetCalibration(ADC1);/*ChecktheendofADC2resetcalibrationregister*/while(ADC_GetResetCalibrationStatus(ADC1));/*StartADC2calibaration*/ADC_StartCalibration(ADC1);/*ChecktheendofADC2calibration*/while(ADC_GetCalibrationStatus(ADC1));/*StartADC2SoftwareConversion*/ADC_SoftwareStartConvCmd(ADC1,ENABLE);}voidDMA_Configuration(void){DMA_InitTypeDefDMA_InitStructure;DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;DMA_InitStructure.DMA_MemoryBaseAddr=(u32)&ADCConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=1024;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;DMA_InitStructure.DMA_Priority=DMA_Priority_High;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;DMA_Init(DMA1_Channel1,&DMA_InitStructure);DMA_ITConfig(DMA1_Channel1,DMA_IT_TC,ENABLE);/*EnableDMA1channel1*/DMA_Cmd(DMA1_Channel1,ENABLE);}/******************************************************************************TFT彩屏部分算法程序:******************************************************************************/voidLCD_Writ_Bus(charVH,charVL)//并行数据写入函数{datah_change(VH);//LCD_DataPortH=VH;datal_change(VL);//LCD_DataPortL=VL;GPIO_ResetBits(LCD_GRP,LCD_WR);//LCD_WR=0;GPIO_SetBits(LCD_GRP,LCD_WR);//LCD_WR=1;}voidLcd_Write_Com(charVH,charVL)//发送命令-8位参数{GPIO_ResetBits(LCD_RS_GRP,LCD_RS);//LCD_RS=0;LCD_Writ_Bus(VH,VL);}voidLcd_Write_Data(charVH,charVL)//发送数据-8位参数{GPIO_SetBits(LCD_RS_GRP,LCD_RS);//LCD_RS=1;LCD_Writ_Bus(VH,VL);}voidLcd_Write_Com_Data(intcom,intval)//发送数据命令{Lcd_Write_Com(com>>8,com);Lcd_Write_Data(val>>8,val);}voidAddress_set(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2){Lcd_Write_Com(0x00,0x46);Lcd_Write_Data(x2,x1);Lcd_Write_Com(0x00,0x47);Lcd_Write_Data(y2>>8,y2);Lcd_Write_Com(0x00,0x48);Lcd_Write_Data(y1>>8,y1);Lcd_Write_Com(0x00,0x20);Lcd_Write_Data(x1>>8,x1);Lcd_Write_Com(0x00,0x21);Lcd_Write_Data(y1>>8,y1);Lcd_Write_Com(0x00,0x22);}//画点//POINT_COLOR:此点的颜色voidLCD_DrawPoint(unsignedintx,unsignedinty,unsignedintPOINT_COLOR)//把函数体内的xy调换{if(x>319)x=319;elseif(x239)y=239;elseif(y>8,POINT_COLOR);}//画线//x1,y1:起点坐标//x2,y2:终点坐标voidLCD_DrawLine(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2,iu16color){u16t;intxerr=0,yerr=0,delta_x,delta_y,distance;intincx,incy,uRow,uCol;delta_x=x2-x1;//计算坐标增量delta_y=y2-y1;uRow=x1;uCol=y1;if(delta_x>0)incx=1;//设置单步方向elseif(delta_x==0)incx=0;//垂直线else{incx=-1;delta_x=-delta_x;}if(delta_y>0)incy=1;elseif(delta_y==0)incy=0;//水平线else{incy=-1;delta_y=-delta_y;}if(delta_x>delta_y)distance=delta_x;//选取基本增量坐标轴elsedistance=delta_y;for(t=0;tdistance){xerr-=distance;uRow+=incx;}if(yerr>distance){yerr-=distance;uCol+=incy;}}}//在指定位置显示一个汉字voidshowhanzi(iu16x,iu16y,iu16kuan,iu16gao,u8*add,iu16dcolor,iu16bgcolor){u8i,j;iu16cyc;Address_set(x,y,x+kuan-1,y+gao-1);for(j=0;jp[0].x?(p[1].x-p[0].x+1)*1000/(LCD_H-tp_pianyi-tp_pianyi):(p[0].x-p[1].x-1)*1000/(LCD_H-tp_pianyi-tp_pianyi);{cnt=0;Pant(0,0,239,319,GRAY);//清屏Drow_Touch_Point(tp_pianyi,tp_pianyi);//画点1continue;}vx=(vx1+vx2)/2;vy=(vy1+vy2)/2;showzifustr(36,60,16,32,char_3216,"vx=",RED,GRAY);inttostr((int)vx,ss);Read_TP_Once();return;}}}}

详情

猜你喜欢

Copyright © 2020