首页 基于ARM/LPC2138的简易多功能信号源设计(电子信息工程毕业设计)

基于ARM/LPC2138的简易多功能信号源设计(电子信息工程毕业设计)

举报
开通vip

基于ARM/LPC2138的简易多功能信号源设计(电子信息工程毕业设计)ARM课程设计实训报告 07电本2班41号 曾强 ARM课程设计实训报告 07电本2班41号 曾强 ARM Abstract The design of the main research based on ARM (LPC2138) embedded multi-function digital signal generator system, which consists of the numerical synthesis and D / A converter module .The desig...

基于ARM/LPC2138的简易多功能信号源设计(电子信息工程毕业设计)
ARM课程设计实训报告 07电本2班41号 曾强 ARM课程设计实训报告 07电本2班41号 曾强 ARM Abstract The design of the main research based on ARM (LPC2138) embedded multi-function digital signal generator system, which consists of the numerical synthesis and D / A converter module .The design can generate adjustable frequency and amplitude of the output varies of waves which frequency range 1HZ from 10KHZ such as sine wave, square wave, triangle wave, triangle full half-wave, triangular half-wave, variable duty cycle square wave and rectangular wave. Besides,it has a easy and simple way of signal frequency, waveforming and amplituding .It also have a reliable hardware, and so on. Keywords: ARM digital synthesizer signal generator low-pass filter ARM课程设计实训报告 07电本2班41号 曾强 ………………………………………………………………………………1 1 ………………………………………………………………1 1.1设计任务 ………………………………………………………………………1 1.2 设计要求………………………………………………………………………1 2 ………………………………………………………………1 2.1信号产生部分…………………………………………………………………1 2.2 幅度调制(AM)信号的产生……………………………………………………2 2.3 频率调制(FM)信号的产生…………………………………………………2 2.4 滤波电路………………………………………………………………………2 3 …………………………………………………………………3 3.1 系统框图………………………………………………………………………3 3.2 各功能模块………………………………………………………………………3 3.2.1波形产生电路……………………………………………………………3 3.2.2键盘模块…………………………………………………………………3 3.2.3滤波器设计………………………………………………………………3 3.2.4显示模块…………………………………………………………………3 3.3各个功能块的实现原理及 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ………………………………………………3 3.3.1正弦波的产生……………………………………………………………3 3.3.2三角波的产生……………………………………………………………4 3.3.3方波的产生………………………………………………………………4 3.3.4幅度的控制………………………………………………………………4 3.3.5频率的控制………………………………………………………………4 3.3.6滤波器设计………………………………………………………………4 3.3.7键盘模块………………………………………………………………4 4 软件设计 ……………………………………………………………………5 5 系统测试与数据分析 …………………………………………………………5 5.1 测试工具…………………………………………………………………………6 5.2 测试数据及 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 …………………………………………………………………6 5.2.1 频率与间隔点数的计算…………………………………………………6 5.2.2 不同波的幅度与频率的测试…………………………………………7 5.3 调试结果图………………………………………………………………………7 5.3.1 正弦波、方波、锯齿波、三角波……………………………………7 5.3.2 正弦全半波、矩形波…………………………………………………8 5.3.3 EasyARM上位机显示…………………………………………………8 6 ………………………………………………………………………9 ………………………………………………………………………………………9 …………………………………………………………………………………………10 ARM课程设计实训报告 07电本2班41号 曾强 信号发生器是用来提供各种测量所需信号的仪器,它是一种常用的信号源,广泛应用于电子电路、 自动控制和科学试验等领域。在分析电子线路时,常常需要了解输出信号与输入信号之间的关系,为此 常信号发生器产生一个信号来激励系统,以便观察、分析它对激励信号的反映。自十九世纪六十年代以 来,信号发生器有了迅速的发展出现了函数发生器、扫频信号发生器、合成信号发生器、程控信号发生 器等新种类,各类信号发生器的主要性能指标也都有了大幅度的提高,同时在简化机械结构、小型化、 多功能等各方面也有了显著的进展[1]。 在实际应用中,低频信号发生器用来产生1HZ一1MHZ的低频信号,这种信号发主器在电子线路与系统的设计、测试和维修中的应用最为广泛。 本设计以LPC2138为控制芯片,探索研究了低频信号发生器的原理和应用,设计输出频率及幅度 可调,频率范围为1HZ~50KHZ的正弦波、方波、三角波、调幅波、调频波及其复合波信号,具有信 号频率、波形、幅度变化容易,硬件简单可靠等特点的多功能信号源。 1 1.1 设计一个多功能信号发生器 1.2 (1)能够产生正弦波、方波和三角波、三角半波、三角全半波、矩形波(频率范围1HZ~10KHZ) (2)幅度可调为0~2.0V,步进0.2V,矩形波占空比可调 (3)实现波形间的切换 (4)实现上位机EasyARM软件信息实时显示 2 2.1 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 一: 使用集成函数发生器芯片ICL8038。 芯片ICL8038能输出方波、三角波、正弦波和锯齿波四种不同的波形,将他作为信号发生器。它 是电压控制频率的集成芯片,失真度很低。可输入不同的外部电压来实现不同的频率输出。为了达到数 控的目的,可用高精度DAC来输出电压以控制正弦波的频率。 方案二: 锁相环频率合成器(PLL)[2] 锁相环频率合成器(PLL)是常用的频率合成方法。锁相环由参考信号源、鉴相器、低通滤波器、 压控振荡器几个部分组成。通过鉴相器获得输出的信号FO与输入信号Fi的相位差,经低通滤波器转换为相应的控制电压,控制VCO输出的信号频率,只有当输出信号与输入信号的频率于相位完全相等 时,锁相环才达到稳定。 如果在环路中加上分频系数可程控的分频器,即可获得频率程控的信号。由于输出信号的频率稳定 度取决于参考振荡器信号fi ,参考信号fi 由晶振分频得到,晶振的稳定度相当高,因而该方案能获得 频率稳定的信号。一般来说PLL的频率输出范围相当大,足以实现1kHz-10MHZ的正弦输出。如果 fi=100Hz只要分频系数足够精细(能够以1步进),频率100Hz步进就可以实现。 方案三: 直接数字频率合成(DDS)[3] DDS是一种纯数字化方法。它现将所需正弦波一个周期的离散样点的幅值数字量存入ROM中, 然后按一定的地址间隔(相位增量)读出,并经DA转换器形成模拟正弦信号,再经低通滤波器得到质量较好的信号。 方案四 -1- ARM课程设计实训报告 07电本2班41号 曾强 基于计算的数字频率合成[4] 利用函数将波形的点数保存在芯片的RAM中,根据所要的波形的频率计算出它的周期,经计算得到在定时器定时时间固定的前提下产生一个完整的波形所需要的输出的点数,这样数据指针可以根据点数的数量来进行移动,得到频率准确、切换快速的信号。 方案一(VOC)不能实现稳定频率信号的输出并且难于数字控制。并且电容、电阻参数随温度等其他 因素的影响,频率稳定度以及电路的稳定度都较低,实现也较复杂,不予采纳。虽然ICL8038可很好的实现频率输出的控制,但查看ICL8038的设计资料[4]可知其频率输出范围为0.01Hz~300kHz,不能达到 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目的要求,故不予选用。PLL方案和DDS方案都能实现1kHz~10MHz的稳定的信号输出,且能达到100Hz频率步进,但是PLL的动态特性却很差,在频率改变时,环路从不稳定到稳定的过程有 时间延迟。相比较而言,DDS的频率输出范围一般低于PLL,且杂散也大于PLL方案,但DDS信号源具有输出频率稳定度高、精度更高、分辨率更高且易于程控等优点,且频率改变不存在失调过程,尽 管有杂散干扰,只需在输出级加滤波器仍可以得到质量很好的波形。而方案四集中了上述三个方案的各 个优点,因此采用方案四来实现波形信号的产生。 2.2 方案一: 用高速模拟乘法器实现 采用AD835高速模拟乘法器,来实现模拟调制。模拟乘法器AD835的-3dB截止频率为250MHz,能够满足题目的要求。但是AD835的差分输入范围仅为?1V,因此必须对输入信号进行预处理,这样在 增加硬件的同时,又加大了设计的难度。 方案二: 采用高速的D/A转换器 在LPC2138中集成着一个高速的D/A转换器[5],我们可以直接在软件中设置一个幅度的参数来改 变输出波形的幅度大小。 综上所述,采用方案(二)虽然增加了软件的难度,延迟了波形的输出时间,但是可以不用外加硬 件拓展,节省了成本。 2.3 方案一: 通过在存储芯片ROM中保存不同频率信号的信号发生点数,在频率切换时调用ROM中所存储的不同点数模块来实现频率的切换。 方案二: 在存储芯片RAM中保存由软件实时产生的波形点数,通过所取的点数的不同来决定发生的波形的 频率。 由于设计中的信号要进行不断的改变,因此波形的数据不能存储在ROM中,应该存储RAM中,因此采用方案二的设计方法。 2.4 方案一: 利用运放芯片TL082构成的有源二阶巴尔沃基滤波器[6],它的频率范围可以达到1MHZ,远远高于我们所要的达到的最高频率,而且可以同时提高输出电压的稳定性即带载能力。 方案二: 采用硬件构建的模拟滤波器,通常这种滤波电路主要采用无源元件R,L和C组成的低通滤波电路[6]。其优点是具有不用电感,体积小,重量轻等优点;缺点是其集成运放的带宽有限,电路的工作频 率有限难以做得很高。 由于所设计的信号源的频率相对来说不是很高,采用RC滤波器已经可以很好的完成设计的要求。 因此采用方案二。 -2- ARM课程设计实训报告 07电本2班41号 曾强 3 3.1 3-1 ARM/ D/A转按键输入 LPC2138 滤波器 示波器 换模块 CPU 上位机RS432串口 EasyARM显示 3-1 3.2 3.2.1 波形产生电路 通过软件将波形数据存储到RAM当中去,再把这些数据输送到D/A转换器进行转换得到模拟波形。 3.2.2 键盘模块 用LPC2138开发板上自身带有的键盘得到键值,通过中断服务程序将键盘信息传给控制芯片。 3.2.3 滤波器设计 直接采用RC过程的简单的滤波电路,此方法设计简单,又完全满足设计要求。 3.2.4 显示模块 波形直接在示波器上显示,波形的中间调试参数在上位机EasyARM2138上显示,这样节省了外部显示模块的扩展,使得硬件电路更加的简便。 3.3 3.3.1 正弦波的产生 本设计中信号的产生直接用LPC2138芯片上集成的D/A转换器和软件的结合来生成。波形的信号 数据采用了函数计算的方法来取得: Y=sin(N)[7] (3-1) 其中,N 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示所要取得的点数的多少。在设计中我选择N=1024,即一个完整的基本的正弦信号有1024个数据信号点组成。 将数据存储到控制芯片LPC2138的RAM当中,根据所要的频率来取得信号数据的多少,点数多少的 计算如下: N=T/2t[7] (3-2) 其中,N表示点数,T表示所要产生的波形信号的周期,t表示定时器的时间长短. 从RAM中 取得点数的间隔为: M=1023/N[8] (3-3) 其中M表示在RAM中的表格取得点数的间隔.根据不同的间隔的大小决定产生一个完整的波形信 号所要的数据多少不同. 设计中要求信号的最高产生的频率为50KHZ, 根据奈奎斯特定理,采样的频率最少要为所要信号 的频率的两倍,但是为了更好的保证信号的完整输出,我们至少要让它采样10个点才能输出完整波形,就要求采样的频率为他的10倍即500KHZ,采样时间的大小为2us,这刚好满足了LPC2138控制芯片上的集成D/A转换器最高转换时间为1us的限制。 3.3.2 三角波的产生 在设计中,三角波的产生就直接利用定时器定时时间的长短来控制信号数据的输出,信号数据从一 个较低(或高)的位置开始按照一定的规律步进[9],当其达到一个高度时再按照相同的步进下降到原 -3- ARM课程设计实训报告 07电本2班41号 曾强 来的数据大小,如此反复的输出就构成了三角波模拟信号的输出。 3.3.3 方波的产生 在设计中,方波的产生由大小不同的两个信号数据交替输出形成,每个信号数据输出的时间长短 根据所要点信号频率来决定。其他各三角全半波与半波矩形波产生方法都类似,不再赘述。 3.3.4 幅度的控制 在设计中,为了能使波形在示波器中显示,这样就要设定好波形的幅度,在设计时我把波形的幅度 控制在1024之内,才能很好的显示波形。同时为了改变幅度的大小,我设置了一个参数直接与所取得 的信号数据相乘,这就改变了信号数据的大小,也就使得D/A转换时的数据大小产生变化,从而体现 在输出的信号波形在幅度上发生改变。 3.3.5 频率的控制 在输出的信号数据的时间间隔一定时,当产生一个完整波形时所需要的点数发生变化时信号的周期 就发生变化,这样它的频率就相应的变化。因此,在设计中, 通过固定定时器的定时长短,改变波形 数据的点数多少就改变了信号的频率。 3.3.6 滤波器设计 由于我所设计的信号源的输出频率还不是很高,所以可以用简单的低通滤波器就可以完成滤波的功 能,因此我选择使用RC低通滤波器。参数为:R=100欧姆,C=0.1UF。 具体结构如下: 3-2 3.3.7 键盘模块 键盘是直接与ARM(LPC2138)芯片的P0口P0.16—P0.21连接,通过ARM芯片对P0.16—P0.21 输入数据,0表示有效,1表示无效[11]。键1用来选择输出波形,键2用来改变矩形波的占空比,键5 和键6分别用来调节幅度和频率。 4 本系统的软件设计采用C语言,对ARM7/LPC2138进行编程实现各项功能。程序是在Windows XP环境下采用ADS1.2软件编写的,可以实现波形的切换、幅度频率的调节以及矩形波占空比调节、EasyARM上位机显示等功能。主程序主要起到一个导向和决策功能,决定什么时候系统采取何种动作。其余各种 功能的实现主要通过具体的子程序来完成 -4- ARM课程设计实训报告 07电本2班41号 曾强 开 始 系统初始化 主程序按键扫描并等 待定时器0中断,采样 否 是否有KEY1键按下? 是 Flag=1 Flag=2 Flag=3 Flag=4 Flag=5 Flag=6 Flag=7 正方锯三三三矩 弦波 齿角角角形 波 波 波 全半波 半波 波 否 KEYKEY5\KEY6\是否按下? 2键 是 是否 按下 KEY5键按下调幅, KEY6键按下调频 是 数据送往EasyARM上 4-1 位机软件显示 5 5.1 测试工具 双踪示波器 YB-4325(20MHZ) 万用表 5.2 测试数据及表格 5.2.1 频率与间隔点数的计算 由于正弦波总的波形长度分为1024个分点,即0~1023,因此在频率为fKHz时,点数n=1000/2/f,所以间隔=1023*n,具体如下 -5- ARM课程设计实训报告 07电本2班41号 曾强 5-1 频率间隔点频率间隔点频率间隔点频率间隔点(KHz) 数 (KHz) 数 (KHz) 数 (KHz) 数 15 31 24 49 33 68 42 86 16 33 25 51 34 70 43 88 17 35 26 53 35 72 44 90 18 37 27 55 36 74 45 92 19 39 28 57 37 76 46 94 20 41 29 59 38 78 47 96 21 43 30 61 39 80 48 98 22 45 31 63 40 82 49 100 23 47 32 65 41 84 50 102 5.2.2 不同波的幅度与频率的测试 根据精度的计算方法可知,波形产生的精度=1/1023?0.001,即偏差为?0.0005,这使产品产生的 波形达到了很高的精度。 5-2 波形 正弦波 方波 三角波 锯齿波等其他波形 频率 幅度 频率 幅度 频率 幅度频率 幅度(V) 频率 (HZ) (V) (HZ) (V) (HZ) (V) (HZ) (HZ) 100 2.5 100 2.0 100 2.5 100 2.0 100 1000 2.5 1000 2.0 1000 2.5 1000 2.0 1000 1500 2.5 1500 2.0 1500 2.5 1500 2.0 10000 2000 2.5 2000 2.0 2000 2.5 2000 2.0 20000 2500 2.5 2500 2.0 2500 2.5 2500 2.0 2500 3000 2.5 3000 2.0 3000 2.5 3000 2.0 3000 3500 2.5 3500 2.0 3500 2.5 3500 2.0 3500 4000 2.5 4000 2.0 4000 2.5 4000 2.0 4000 5000 2.5 5000 2.0 5000 2.5 5000 2.0 5000 6000 2.5 6000 2.0 6000 2.5 6000 2.0 6000 7000 2.5 7000 2.0 7000 2.5 7000 2.0 7000 8000 2.5 8000 2.0 8000 2.5 8000 2.0 8000 9000 2.5 9000 2.0 9000 2.5 9000 2.0 9000 10000 2.5 10000 2.0 10000 2.5 10000 2.0 10000 11000 2.5 11000 2.0 11000 2.5 11000 2.0 11000 12000 2.5 12000 2.0 12000 2.5 12000 2.0 12000 13000 2.5 13000 2.0 13000 2.5 13000 2.0 13000 -6- ARM课程设计实训报告 07电本2班41号 曾强 14000 2.5 14000 2.0 14000 2.5 14000 2.0 14000 15000 2.5 15003 2.0 15000 2.5 15000 2.0 15005 16000 2.5 16003 2.0 16000 2.5 16000 2.0 16007 17000 2.5 17005 2.0 17000 2.5 17000 2.0 17009 18000 2.5 18006 2.0 18000 2.5 18000 2.0 18010 19000 2.5 19002 2.0 19000 2.5 19000 2.0 19004 20000 2.5 20003 2.0 20000 2.5 20000 2.0 20005 25000 2.5 24995 2.0 25000 2.5 25000 2.0 24999 30000 2.5 30150 2.0 30000 2.5 30000 2.0 30150 35000 2.5 35100 2.0 35000 2.5 35000 2.0 35120 40000 2.5 40255 2.0 40000 2.5 40000 2.0 40261 45000 2.5 45100 2.0 45000 2.5 45000 2.0 45250 5000 2.5 50200 2.0 50000 2.5 50000 2.0 50220 5.3 5.3.1 波形调试结果 1 200Hz 1.98V 2 200Hz 1.98V 3 200Hz 1.98V 78% 4 200Hz 1.98V -6- ARM课程设计实训报告 07电本2班41号 曾强 5 200Hz 1.98V 6 200Hz 1.98V 5.3.2 EasyARM上位机显示调试结果 5-3-2 1.67V 68% 192.3Hz -8- ARM课程设计实训报告 07电本2班41号 曾强 5-3-2 0.56V 192.3Hz 6 通过本次ARM课程设计实训,让我对数字信号的产生、调节和D/A转换的原理有了更加深刻的了解,一个星期连续的修改和添加波形的程序,再加上上位机通信EasyARM显示的编程,让我更加熟练的掌握了ARM的编程理念、方法和一些技巧,在此要特别感谢两位指导老师的指导和帮助。本设计以 LPC2138为核心很好的完成了设计的要求,在设计中力求硬件电路的简单,充分发挥软件的编程的方 便灵活的特点,并最大限度挖掘嵌入式系统内资源,来满足系统设计要求。 [1] 吴镇扬,数字信号处理[M].高等教育出版社,2004 [2] 康华光,电子技术基础(数电)[M].高等教育出版社2005 [3] 黄智伟,全国大学生电子设计竞赛训练教程[M].电子工业出版社2004 [4] 周立功,深入浅出ARM7—LPC2138P[M].北京航天航空大学出版社,2005 [5] 89C5 1/89C52/89C54/89C58 80C 5 1 8一bit microcon—troller family DATA SHEET[J], PHILIPS COMPANY,2001.09:1—27 [6] 张肃文,陆兆熊. 高频电子线路(第三版)[M]. 高等教育出版社 北京 1992. [7] 万福君,潘松峰.单片机原理系统设计与运用[M].合肥:中国科学技术大学出版社,2001: 190—22 -9- ARM课程设计实训报告 07电本2班41号 曾强 附录:(程序) /**************************************************************************************** ***************************************************************************************/ #include "config.h" #include "math.h" #define BEEP 1 << 7 const uint32 KEY1 = 1 << 16; // P0.16连接KEY1 const uint32 KEY2 = 1 << 17; // P0.17连接KEY2 const uint32 KEY3 = 1 << 18; // P0.18连接KEY3 const uint32 KEY4 = 1 << 19; // P0.19连接KEY4 const uint32 KEY5 = 1 << 20; // P0.20连接KEY5 const uint32 KEY6 = 1 << 21; // P0.21连接KEY6 uint8 disp_tab1[]={'A','m','p','l','i','f','i','c','a','t','i','o','n', //0~12,amplification 'F','r','e','q','u','e','n','c','y', //13~21,frequency 's','i','n','_','w','a','v','e', //22~29,sin_wave 'j','u','c','h','i','_','w','a','v','e', //30~39,juchi_wave 't','r','i','a','n','g','l','e','_','w','a','v','e', //40~52,triangle_wave 's','q','u','a','r','e','_','w','a','v','e', //53~63,square_wave 'j','u','x','i','n','g','_','w','a','v','e', //64~74,juxing_wave 's','i','n','f','u','l','l','_','w','a','v','e', //75~86,sinfull_wave 's','i','n','h','a','l','f','_','w','a','v','e', //87~98,sinhalf_wave 'P','u','l','s','e','_','W','i','d','t','h', //99~109,sinhalf_wave }; uint8 disp_tab2[]={'1','9','2','.','3','H','z'};//0~6 uint8 disp_tab3[]={'5','0','%'};//50%,0~2 uint8 disp_tab4[]={'1','.','9','8','V'};//1.98V,0~4 uint8 disp_tab5[]={'0','1','2','3','4','5','6','7','8','9'}; uint16 sin_table[1024]; //正弦波点数组 uint16 juchi_table[1024]; //锯齿波点数组 uint16 triangle_table[1024]; //三角波点数组 uint16 sinhalf_table[1024]; //三角全半波点数组 uint16 sinfull_table[1024]; //三角全波点数组 uint16 square_table[1024]; //方波点数组 uint16 juxing_table[1024]; //矩形波点数组 uint32 i=0,j=0,k=128,shi=5,ge=0,bai1=0,shi1=0,ge1=0,ampp=0; uint32 flag=0; void amp_module(void); void DelayNS (uint32 dly) { uint32 i; for ( ; dly>0; dly--) for (i=0; i<100000; i++); } -10- ARM课程设计实训报告 07电本2班41号 曾强 void Delay (uint32 z) { uint32 i; for ( ; z>0; z--) for (i=0; i<50000; i++); } typedef struct UartMode { uint8 datab; // 字长度 5/6/7/8 uint8 stopb; // 停止位 1/2 uint8 parity; // 奇偶校验 0-无校验, 1-奇校验, 2-偶校验 }UARTMODE; uint8 UART0_Init (uint32 baud, UARTMODE set) { uint32 bak; // 参数过滤 if ((0 == baud) || (baud > 115200)) return (0); if ((set.datab < 5) || (set.datab > 8)) return (0); if ((0 == set.stopb) || (set.stopb > 2)) return (0); if (set.parity > 4) return (0); // 设置串口波特率 U0LCR = 0x80; // DLAB=1 bak = (Fpclk >> 4) / baud; U0DLM = bak >> 8; U0DLL = bak & 0xff; // 设置串口模式 bak = set.datab - 5; if (2 == set.stopb) bak |= 0x04; if (0 != set.parity) { set.parity = set.parity - 1; bak |= 0x08; } bak |= set.parity << 4; U0LCR = bak; return (0); } void SendByte (uint8 data) { U0THR = data; -11- ARM课程设计实训报告 07电本2班41号 曾强 while ((U0LSR & 0X20) == 0); // 等待数据发送 } void PC_DispChar (uint8 x, uint8 y,uint8 chr) { SendByte(0xff); SendByte(x); SendByte(y); SendByte(chr); SendByte(0x0F); } void PC_DispChar1 (uint8 x, uint8 y,uint8 chr) { SendByte(0xff); SendByte(x); SendByte(y); SendByte(chr); SendByte(0x0C); } float amp[16]={0.9,0.8,0.7,0.6, 0.5,0.45,0.40,0.35, 0.30,0.25,0.20,0.15, 0.10,0.05,0.01,0 }; //幅度比例参数 uint32 frequency[16]= {102400,92160,81920,71680, 61440,51200,40960,30720, 20480,10240,9216,81960 7168,6144,5120,4096;}//频率参数 uint32 freq_count=0; //调频参数 uint32 amp_count=0; //调幅参数 uint16 M; void square_wave(void) //方波 { for(i=0;i<1024;i++) { M=square_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void sin_wave(void) //正弦波 { for(i=0;i<1024;i++) { -12- ARM课程设计实训报告 07电本2班41号 曾强 M=sin_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void juchi_wave() //锯齿波 { for(i=0;i<1024;i++) { M=juchi_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void triangle_wave(void) //三角波 { for(i=0;i<1024;i++) { M=triangle_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void sinfull_wave(void) //三角全半波 { for(i=0;i<1024;i++) { M=sinfull_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void juxing_wave(void) //矩形波 { for(i=0;i<1024;i++) { M=juxing_table[i]*amp[amp_count]; DACR=M<<6; -13- ARM课程设计实训报告 07电本2班41号 曾强 amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void sinhalf_wave(void) //正弦波 { for(i=0;i<1024;i++) { M=sinhalf_table[i]*amp[amp_count]; DACR=M<<6; amp_module(); while ((T0IR & 0x01) == 0); // 等待定时时间到 T0IR = 0x01; // 清除中断标志 } } void keyscan(void) //键扫描 { if((IO0PIN&KEY1)==0) //波形切换 { DelayNS(2); if((IO0PIN&KEY1)==0) { flag++; if(flag==7) flag=0; IO0CLR = BEEP; // BEEP 蜂鸣 Delay(5); IO0SET = BEEP; // BEEP停止蜂鸣 Delay(5); if(flag!=5) { PC_DispChar(63,7,disp_tab5[5]); PC_DispChar(64,7,disp_tab5[0]); } if(flag==1) { for(j=53;j<64;j++)//square_wave { PC_DispChar(j-53,5,disp_tab1[j]); } for(j=22;j<30;j++) //sin_wave { PC_DispChar1(j-22,2,disp_tab1[j]); } } if(flag==2) -14- ARM课程设计实训报告 07电本2班41号 曾强 { for(j=22;j<30;j++) //sin_wave { PC_DispChar(j-22,2,disp_tab1[j]); } for(j=75;j<87;j++)//sinfull_wave { PC_DispChar1(j-75,7,disp_tab1[j]); } } if(flag==3) { for(j=75;j<87;j++)//sinfull_wave { PC_DispChar(j-75,7,disp_tab1[j]); } for(j=40;j<53;j++)//triangle_wave { PC_DispChar1(j-40,4,disp_tab1[j]); } } if(flag==4) { for(j=40;j<53;j++)//triangle_wave { PC_DispChar(j-40,4,disp_tab1[j]); } for(j=30;j<40;j++)//juchi_wave { PC_DispChar1(j-30,3,disp_tab1[j]); } } if(flag==5) { for(j=30;j<40;j++)//juchi_wave { PC_DispChar(j-30,3,disp_tab1[j]); } for(j=64;j<75;j++)//juxing_wave { PC_DispChar1(j-64,6,disp_tab1[j]); } } -15- ARM课程设计实训报告 07电本2班41号 曾强 if(flag==6) { for(j=64;j<75;j++)//juxing_wave { PC_DispChar(j-64,6,disp_tab1[j]); } for(j=87;j<99;j++)//sinhalf_wave { PC_DispChar1(j-87,8,disp_tab1[j]); } } if(flag==0) { for(j=87;j<99;j++)//sinhalf_wave { PC_DispChar(j-87,8,disp_tab1[j]); } for(j=53;j<64;j++)//square_wave { PC_DispChar1(j-53,5,disp_tab1[j]); } } } while((IO0PIN&KEY1)==0); } if((IO0PIN&KEY2)==0) //矩形波占空比调节 { DelayNS(2); if((IO0PIN&KEY2)==0) { k+=10;if(k>1000)k=10; shi=(1000-k)/100;//百分号整数 ge=((1000-k)/10)%10;//百分号个位 //矩形波 for(i=0;i
本文档为【基于ARM/LPC2138的简易多功能信号源设计(电子信息工程毕业设计)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_792768
暂无简介~
格式:doc
大小:143KB
软件:Word
页数:42
分类:企业经营
上传时间:2017-09-05
浏览量:33