FIR滤波器的信号滤波_第1页
FIR滤波器的信号滤波_第2页
FIR滤波器的信号滤波_第3页
FIR滤波器的信号滤波_第4页
FIR滤波器的信号滤波_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要本文介绍了一种基于TMS320182 DSP芯片A/D模块进行波形采集后滤波处理且最终在液晶显示器显示所采集的波形图。系统利用DSP内置A/D功能对外部模拟电压信号(波形)采集转换成数字信号,然后在用外部LCD显示屏显示所采集波形的形状。本文给出了整体设计方案,重点介绍了DSP模数转换功能和液晶显示(LCD)原理。实验结果表明:系统的LCD所显示的波形和实际采集的模拟信号有良好的准确性,能进一步加深读者对FIR滤波器的了解和其参数的修改。关键词:TMS32OF2812 DSP,FIR滤波器,波形采集,液晶显示,数字滤波IAbstractThis paper introduces a kin

2、d of waveform acquisition module based on TMS320182 DSP chip A/D after filtering and ultimately displays in the LCD display. The system uses DSP built-in A/D function to exchange the analog voltage signal to the digital signal, and then uses the external LCD to display the waveform shape. This paper

3、 gives the overall design scheme, and put emphasis on the DSP analog-to-digital conversion function and liquid crystal display (LCD). The experimental results show that: the LCD of the system displays of the waveform and the actual analog signal with good accuracy, it can further deepen the understa

4、nding of the FIR filter and its parameter modification.Keywords:TMS32OF2812 DSP, the FIR filter, Waveform acquisition,Liquid crystal display,Digital filtering II目录摘要IAbstractII第1章 绪论11.1 引言11.2 本课题要解决的问题11.3 课题的意义和目的1第2章 FIR的滤波器的信号滤波系统的软硬件设计22.1 系统设计概述22.2 课题主要芯片介绍22.2.1 主控芯片介绍22.2.2 液晶显示(LCD)模块32.2

5、.3 液晶显示器与DSP 的连接:32.2.4 A/D数据采集模块42.2.5 键盘模块42.2.6 Wintech综合信号发生器介绍42.3 FIR工作原理及其计算参数62.4 系统硬件连接72.5 系统软件设计82.5.1 系统程序框图82.5.2 程序调试9参考文献10III第1章 绪论1.1 引言数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。它的重要性日益在各个领域的应用中表现出来。其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计方法的完善。数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用

6、)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。例如:滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们所需要的信号形式。数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。1.2 本课题要解决的问题通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关

7、先修课程的理论和实际知识分析和解决具体问题,使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计,基本技能的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。本题目为FIR滤波器的信号滤波,目的是掌握AD转换的基本过程和程序处理过程,学习通过对采样值进行计算产生混叠波形,同时熟悉掌握FIR滤波器并能对其参数进行调整。1.3 课题的意义和目的通过本实验可以了解TMS32OF2812数字信号处理器内部运行的一些机制,并可以了解它内部的一些模块的使用。30第2章 FIR的滤波器的信号滤波系统的软硬件设计2

8、.1 系统设计概述本文基于TMS320182 DSP芯片A/D模块进行波形采集后滤波处理且最终在液晶显示器显示所采集的波形图。系统利用DSP内置A/D功能对外部模拟电压信号(波形)采集转换成数字信号,然后在用外部LCD显示屏显示所采集波形的形状。2.2 课题主要芯片介绍2.2.1 主控芯片介绍数字信号处理器(digital signal processors 简称DSP)诞生于20 世纪70 年代,专门为实时数字信号处理而设计的一种可编程的嵌入式微处理器。它以数字器件特有的稳定性,可重复性,可编程性和易于实现自适应处理特点,取得了突飞猛进的发展。近年来,随着DSP 性能的日趋完善,功耗的逐步降

9、低,开发环境的不断改进以及价格的不断下调,其应用领域已拓展到国民经济生活的各个方面。本系统所采用的是TI公司的TMS320vc5509A,TMS320vc5509A是TI公司推出的定点数字信号处理器C5000系列中的一种,TMS320vc5509A通过增加乘累加MAC单元,增强了DSP的运算能力,而且性能更好,功耗更低,是目前TMS320家族中最省电的芯片。该芯片上的资源有:16Mbitn曲196k16bit sRAM2500昏TECPLD模块上留有TTAG插口,用户可以通过仿真器和CCS下载程序和进行实验;其低功耗设计。比上一代c54xx器件功耗低3咣左右;处理速度更快,双核结构,处理速度4

10、00MIPs;软件程序兼容c54xx DSP;片内存贮空间128K×16Bit;大容量SDRAM设计:4M×16Bit;2路10bit片上A/D接口;8M bit扩展FLASH,存储大量固化程序和数据;设计有用户可以测试指示灯;DSP扩展总线,包括数据、地址、I/O、控制;4组标准扩展连接器,为用户进行二次开发提供条件;具有IEEEll49.1相兼容的逻辑扫描电路,该电路仅用于测试和仿真;+5v电源输入,内部+3.3V、+1.6V电源管理;高保真语音接口设计,双路语音采集,每路48K/S;USB2.0接口设计;4层板设计下艺,稳定可靠。实验箱上带有ICETEKCRT显示控制

11、模块,实验箱上有红、黄、绿三种颜色十二只指示灯可供模拟交通灯用。在该系统中利用定时器中断来控制交通灯的亮灭以及间隔时间,同时利用了键盘中断来进行模拟突发事件发生时的控制。2.2.2 液晶显示(LCD)模块液晶模块选择MS320VC5402芯片,该芯片可以与复杂可编程逻辑器件CPLD相结合,大大简化系统,使系统更精简,体积更小。DSP的显示控制软件负责将微处理器处理后的显示数据映射到显示缓冲区中,并由LCD显示出来,从而完成一次测量。(1) 液晶显示模块的访问、控制是由2812A DSP 对扩展接口的操作完成。控制口的寻址:命令控制接口的地址为0x108001,数据控制接口的地址为0x10800

12、3 和0x108004,辅助控制接口的地址为0x108002。(2) 显示控制方法:液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的象素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与象素的对应方式如下:制字,然后再向辅助控制接口写入0。下面给出的是基本命令字、解释和C 语言控制语句举例:显示开关:0x3f 打开显示;0x3e 关闭显示;设置显示起始行:0x0c0+起始行取值,其中起始行取值为0 至63;设置操作页:0x0b8+页号,其中页号取值为0-7;设置操作列:0x40+列号,其中列号为取值为0-63;写显示数据:在使用命令控制字选择操作位置(页数、列

13、数)之后,可以将待显示的数据写入液晶显示模块的缓存。将数据发送到相应数据控制I/O 接口即可。2.2.3 液晶显示器与DSP 的连接:图12.2.4 A/D数据采集模块TMS320F2812带内置采样保持(SH)的12位模数转换模块(ADC);有多达16个的模拟输人通道(ADCIN0ADClN15);有自动排序的能力,一次可执行最多16通道的“自动转换”,而每次转换的通道都可通过编程来选择;有两个独立的最多可选择8个模拟转换通道的排序器(SEQ1和SEQ2)可以独立工作在双排序器模,或者级联之后工作在一个最多可选择16个模拟转换通道的排序器模式;可单独访问16个结果寄存器(RESULT0RES

14、ULT15)用来存储转换结果;多个触发源可以启动AD转换5。模数转换的程序控制模数转换相对于计算机来说是一个较为缓慢的过程。一般采用中断方式启动转换或保存结果,这样在CPU 忙于其他工作时可以少占用处理时间。设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。2.2.5 键盘模块1. EMIF 接口TMS320F2812DSP 的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。 F2812 EVM将这些扩展线引到了板上的扩展插座上供扩展使用。2.

15、 键盘连接原理键盘的扫描码由 DSP 的扩展地址 0x8001 给出,当有键盘输入时,读此端口得到扫描码,当无键被按下时读此端口的结果为0。9 个按键分别读回 1-9 这九个数字。2.2.6 Wintech综合信号发生器介绍图2 右上部有一个红色的电源指示灯以及信号发生器电源开关,当信号源上电后,该指示灯应处于点亮状态。图 2 上部是一个两行字符型的液晶显示屏。图 2中间部分有录音,放音,循环三个按钮,一个录音指示灯(红色)和一个麦克风。麦克风可在录音时作为语音信号的输入端。当信号发生器处于录音状态时,录音指示灯应点亮。按放音钮时,可以从扬声器或耳机中听到录在信号发生器中的语音信号。按住循环钮

16、不放,可以循环播放录下的语音信号。当按下录音按钮后, 信号发生器正面的红色录音指示灯应处于点亮状态。此时,若录音输入端口没有接入音频线, 信号发生器会将从麦克风输入的语音信号录下。若录音输入端口有接入音频线, 信号发生器就会录下从音频线输入的语信号。图1 下部有控制A 路和B 路波形和频率的四个按钮以及复位按钮,可控制输出1030KHz 的方波,三角波,正弦波以及白噪声四种波形。在按钮上面有一排共16 个状态指示灯。其中绿灯表示输出波形种类,红灯表示输出波形频率。左侧8 个灯表示A路波形输出的状态,右面8 个灯表示B路波形输出的状态。当A路波形输出处于任一状态时,上面8 个灯中均会有一个红灯和

17、一个绿灯点亮(输出白噪声时红灯状态无意义)。B 路波形输出同理。频率共分4 档, 分别10100 Hz , 1001 KHz , 1 K10 KHz , 10K30KHz。当输出信号的频率落入哪一档的范围时,在信号源正面,与该档位相对应的红色指示灯会点亮。波形也有四种:方波,三角波,正弦波和白噪声4 种波形可通过按钮选择,当输出为某一特定波形时,信号源正面相应的绿色指示灯会点亮。使用音频信号线录音时,需要注意信号与电源的共地问题,最好使用与信号发生器配套的dsp 评估板作为音源,不然可能会产生噪音。图1 左部上下有两个扬声器。通过音频线将一个音源的输出接入到扬声器输入端口可以从扬声器中直接听到

18、该音源的输出。在放音或循环放音时,将耳机输入线插入到耳机输入端口可以从耳机中听到信号发生器的输出。图22.3 FIR工作原理及其计算参数滤波器的参数:采样频率15kHz,带通滤波500Hz-1kHz,增益40dB,阶数25分别用于低通滤波和高通滤波两种方式进行滤波。本实验程序在AD中断对AD进行连续采样。由于需要实时混频,所以交替转换通道3和通道混频的波形通过FIR滤波器,得到输出的波形。低通滤波时,输入频率在500Hz-1kHz之间才能通过滤波器。高通滤波时,输入频率在高于1kHz的才能通过滤波器。2.4 系统硬件连接图2 2812与TLV320AIC23的连接示意图表1 TLV320AIC

19、23映射寄存器定义图2为AIC23和F2812的硬件连接图,AIC23有两个接口,一个是控制口,用于设置AIC23的工作参数;另一个是数据口,用于传输AIC23的A/D和D/A数据。本文设计将2812的MSBSP0配置成IIS,MSBSP的发送和接受时钟均由AIC23来提供。表1为AIC23的映射寄存器的地址,按键数据回读寄存器CTRKEY的映射地址为0x108001,清除键盘寄存器CTRCLKEY的映射地址为0x108002。2.5 系统软件设计2.5.1 系统程序框图程序开始先初始化,然后根据键盘的键值做出相应的处理。如果键值为1则LCD显示两天波形,同时LED灯亮,如果键值为2则显示混叠

20、波形,为8则交通灯循环;如果键值为9则停止波形,为4则进行低通滤波,为5则进行高通滤波。2.5.2 程序调试1、首先先将硬件线路连接好,将。将一根信号线一端插入信号源波形输出A 端口,另一端插入试验箱上ADCIN2 端口。将另一根信号线一端插入信号源波形输出B 端口,另一端插入试验箱上ADCIN3 端口。将波形输出A 波形选择调为正弦波,频率调整调至100-1KHz。将波形输出B 波形选择调为正弦波,频率调整调至1K-10KHz。2、设置Code Composer Studio 2.2 在硬件仿真(Emulater)方式下运行。3、启动Code Composer Studio 2.2 ,选择菜

21、单 Debug->Reset CPU。4、新建工程文件,添加各种库文件和源文件,编写主程序。5、编译调试,检查错误;编译通过后下载程序,进行在线仿真,观察效果。参考文献1 邵明;李振军;郭春华高精度交流采样系统研制微计算机信息,2006,23: 2262272 Texas Instruments. TMS320F120xDSP Peripherals Reference Guide. 2003 3 智泽英,杨晋岭,刘辉.DSP控制技术实践M.北京:中国电力出版社,2009.4 程佩青, 数字信号处理教程M.北京:清华大学出版社,2001年.5 李维諟,郭强.液晶显示应用技术M.北京:电子

22、工业出版社,1999.6 三恒科技.TMS320F2812 DSP原理与应用实例M.北京:电子工业出版社,2009.7 智泽英,杨晋岭,刘辉.DSP控制技术实践M.北京:中国电力出版社,2009.附录一 源程序#include "DSP281x_Device.h"/ Peripheral address definitions#ifdef EXAMPLE_BIOS #include "example_BIOS.h"#endif#ifdef EXAMPLE_NONBIOS #include "example_nonBIOS.h"#end

23、if#include "f2812a.h"#include "ctr.h"#include "demo.h"#include "math.h"/ for LCD control#define LCDDELAY 1#define LCDCMDTURNON 0x3f#define LCDCMDTURNOFF 0x3e#define LCDCMDSTARTLINE 0xc0#define LCDCMDPAGE 0xb8#define LCDCMDVERADDRESS 0x40#define LCDLEFTPAGE 0#d

24、efine LCDRIGHTPAGE 1#define LCDDATABYTE 1#define LCDDATAWORD 2#define STRINGREVERSE 1#define STRINGNOREVERSE 0#define T46uS0x0d40#define SCANCODE_0 0x70#define SCANCODE_1 0x69#define SCANCODE_2 0x72#define SCANCODE_3 0x7A#define SCANCODE_4 0x6B#define SCANCODE_5 0x73#define SCANCODE_6 0x74#define SC

25、ANCODE_7 0x6C#define SCANCODE_8 0x75#define SCANCODE_9 0x7D#define SCANCODE_Del 0x49#define SCANCODE_Enter 0x5A#define SCANCODE_Plus 0x79#define SCANCODE_Minus 0x7B#define SCANCODE_Mult 0x7C#define SCANCODE_Divid 0x4A#define SCANCODE_Num 0x77#define led *(int *)0xc0000#define SOUNDBUFFERLENGTH 128vo

26、id FFT(float dataR128,float dataI128);#define pi 3.1415926#define X0_b 16#define Y0_b 32#define X0_t 16#define Y0_t 16#define led *(int *)0xc0000void Delay(unsigned int nTime);/ 延时子程序void TurnOnLCD();/ 打开显示void LCDCLS();/ 清除屏幕显示内容void Gpio_select(void);void error(int);void program_stop();char Conver

27、tScanToChar(unsigned char cScanCode);void RefreshLEDArray();/ 刷新显示void SetLEDArray(int nNumber);/ 修改显示内容unsigned int uWork,bLCD,nScanCode,nMode,bShowAD;int nModeAD;unsigned int w128;float sin_tab128,cos_tab128;float fDataR128,fDataR1128,fDataI128;interrupt void adc_isr(void);Uint16 var1 = 0;Uint16 v

28、ar2 = 0;Uint16 var3 = 0;Uint16 test_count = 0;Uint16 Test_flag = 0;Uint16 Test_var = 0;Uint16 Test_status32;struct CPUTIMER_VARS CpuTimer0;int jishu=0;int jishu1=0;unsigned int uPort8000;Uint16 LoopCount;Uint16 ConversionCount;int Position;int nBW=0;/常写0,写1是反写液晶屏。unsigned char cKey,cOldKey;Uint16 Vo

29、ltage1256;Uint16 Voltage2256;Uint16 ad1,ad2;Uint16 jia256;unsigned int bBreak;/*fir参数*/#define PI 3.1415926#define FIRNUMBER 25#define SIGNAL1F 1000#define SIGNAL2F 4500/*低通滤波器系数可滤掉1k以上的波形,保留1k一下的波形*/float fHnFIRNUMBER= 0.126,0.085,0.000,-0.103,-0.189,-0.216,-0.155,-0.000,0.233,0.504,0.756,0.935,1.0

30、00,0.935,0.756, 0.504,0.233,-0.000,-0.155,-0.216,-0.189,-0.103, 0.000, 0.085, 0.126;/*高通滤波器系数可滤掉1k以下的波形,保留1k以上的波形*/float fLnFIRNUMBER=-0.031,-0.021,-0.000,0.025, 0.047, 0.054, 0.038, 0.000,-0.058,-0.126,-0.189,-0.233, 1.000,-0.233,-0.189,-0.126,-0.058, 0.000, 0.038, 0.054, 0.047, 0.025,-0.000,-0.021

31、,-0.031;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;float fIn256,fOut256;int nIn,nOut;float FIR();float FIR1();float InputWave();int j,a=0;/int i;#define LBDS (*(unsigned int *)0xc0000)/ 子程序接口void Delay11(unsigned int nDelay);/ 延时子

32、程序unsigned int uLED4=1,2,4,8;/ 控制字,逐位置1: 0001B 0010B 0100B 1000B Uint16 d=0; Uint16 h=0;unsigned int uLed1122= 1,0x40,2,0x40,4,0x40, 0,0x48,0,0x50,0,0x60, 8,0x40,0x10,0x40,0x20,0x40, 0,0x41,0,0x42,0,0x44, ;void Gpio_select(void);void Gpio_PortAB(void);int nCount;int nCountt;/* Function: main()* Desc

33、ription: Main function for F281x example.*/void main(void)int i,nCount1=0;/* CPU Initialization */InitSysCtrl();/ Initialize the CPU (FILE: SysCtrl.c)/ Section secureRamFuncs contains user defined code that runs from CSM secured RAMmemcpy(&secureRamFuncs_runstart,&secureRamFuncs_loadstart,&a

34、mp;secureRamFuncs_loadend - &secureRamFuncs_loadstart);/* Main Loop */ bLCD=nMode=0;for ( i=0;i<8;i+ )ledxi=(i<<4)|8;/ 生成显示列控制字for ( i=0;i<SOUNDBUFFERLENGTH;i+ )sin_tabi=sin(pi*2*i/SOUNDBUFFERLENGTH);cos_tabi=cos(pi*2*i/SOUNDBUFFERLENGTH);LCDSetDelay(1);LCDSetScreenBuffer(nScreenBuff

35、er);*(int *)0x108000=0x80;/ 初始化CTRDelay(LCDDELAY);*(int *)0x108000=0x0;Delay(LCDDELAY);*(int *)0x108000=0x80;Delay(LCDDELAY);*(int *)0x108007=0;/ 关闭东西方向的交通灯Delay(LCDDELAY);*(int *)0x108007=0x40;/ 关闭南北方向的交通灯Delay(LCDDELAY);*(int *)0x108007=0x0c1;/*(int *)0x108000=0x81; / 打开显示LCDTurnOn();LCDPutCString

36、(str8,CCXAD,CCYAD,6,1);i=*(int *)0x108002;k0=k1=0; cKey=cOldKey=0;for ( i=0;i<1024;i+ )nScreenBufferi=0;struGraph.pData=nGraphBuf2+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph.uWindowX1=128;struGraph.uW

37、indowY1=32;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0;struGraph1.pData=nGraphBuf1+20;struGraph1.uDataMode=DATAINTMODE;struGraph1.uDataLength=128;struGraph1.uMaxValue=2704;struGraph1.uWindowX0=0;struGraph1.uWindow

38、Y0=32;struGraph1.uWindowX1=128;struGraph1.uWindowY1=64;struGraph1.nOriginX=0;struGraph1.nOriginY=32;struGraph1.uLineMode=LINEMODE;struGraph1.bShowXCcoordinate=0;struGraph1.bShowYCcoordinate=0;nMode=MODEADC;LCDCLS(); EALLOW; SysCtrlRegs.HISPCP.all = 0x3; / HSPCLK = SYSCLKOUT/6 DINT;/ Gpio_PortAB() In

39、itPieCtrl(); IER = 0x0000; IFR = 0x0000; EALLOW; / This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; EDIS; / This is needed to disable write to EALLOW protected registers AdcRegs.ADCTRL1.bit.RESET = 1;/ Reset the ADC moduleasm(" RPT #10 | NOP");/ Must

40、 wait 12-cycles (worst-case) for ADC reset to take effect AdcRegs.ADCTRL3.all = 0x00C8;/ first power-up ref and bandgap circuits AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;/ Power up bandgap/reference circuitryDelay(200); / Delay before powering up rest of ADCAdcRegs.ADCTRL3.bit.ADCPWDN = 1;/ Power up rest

41、 of ADCDelay(200); / Delay after powering up ADC/ Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; / Enable CPU Interrupt 1 EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM LoopCount = 0; ConversionCount = 0; / Configure ADC AdcRegs.ADCMAXCONV.

42、all = 0x0001; / Setup 2 conv's on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x2; / Setup ADCINA3 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x3; / Setup ADCINA2 as 2nd SEQ1 conv. AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; / Enable EVASOC to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; / Ena

43、ble SEQ1 interrupt (every EOS)/ Configure EVA/Assumes EVA Clock is already enabled in InitSysCtrl(); EvaRegs.T1CMPR = 0x0080; / Setup T1 compare value EvaRegs.T1PR = 0x500; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0x1042; / Enable timer 1 co

44、mpare (upcount mode) bBreak=nModeAD=0; cKey=0;cOldKey=0;nCount1=0; nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30; fStepSignal2=2*PI*1.4;while ( 1 ) Delay(100);nScanCode=*(int *)0x108001;nScanCode&=0x0ff;uWork=*(int *)0x108002;if ( nScanCode!=0 && nScanCode

45、!=0x0ff )if ( nScanCode=9 ) AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0;break;elsecKey=nScanCode; switch ( cKey )case 1:/*两路ad显示*/ nModeAD=0;struGraph.pData=nGraphBuf2+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph

46、.uWindowX1=128;struGraph.uWindowY1=32;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0;struGraph1.pData=nGraphBuf1+20;struGraph1.uDataMode=DATAINTMODE;struGraph1.uDataLength=128;struGraph1.uMaxValue=2704;struGraph1.uWi

47、ndowX0=0;struGraph1.uWindowY0=32;struGraph1.uWindowX1=128;struGraph1.uWindowY1=64;struGraph1.nOriginX=0;struGraph1.nOriginY=32;struGraph1.uLineMode=LINEMODE;struGraph1.bShowXCcoordinate=0;struGraph1.bShowYCcoordinate=0; nCount=1; *(int *)0x108007=uLed1nCount0;/ 设置指示灯状态 *(int *)0x108007=uLed1nCount1;

48、 Delay11(100); *(int *)0x108007=uLed1nCount0; LBDS=2;/ 正向顺序送控制字 Delay11(1000);break;case 2:/*混叠显示*/ nModeAD=1;struGraph.pData=nGraphBuf1+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph.uWindowX1=128;struGraph

49、.uWindowY1=64;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0; nCount=2; *(int *)0x108007=uLed1nCount0;/ 设置指示灯状态 *(int *)0x108007=uLed1nCount1; Delay11(100); *(int *)0x108007=uLed1nCount0; break; case 3: / 定义指示灯寄存器地址和寄存器类型 LBDS=15;/ 正向顺序送控制字 Delay11(1000);/

温馨提示

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

评论

0/150

提交评论