毕业设计(论文)基于单片机的信号发生器的设计1.doc

上传人:仙人指路1688 文档编号:3980315 上传时间:2023-03-30 格式:DOC 页数:26 大小:903.50KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的信号发生器的设计1.doc_第1页
第1页 / 共26页
毕业设计(论文)基于单片机的信号发生器的设计1.doc_第2页
第2页 / 共26页
毕业设计(论文)基于单片机的信号发生器的设计1.doc_第3页
第3页 / 共26页
毕业设计(论文)基于单片机的信号发生器的设计1.doc_第4页
第4页 / 共26页
毕业设计(论文)基于单片机的信号发生器的设计1.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的信号发生器的设计1.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的信号发生器的设计1.doc(26页珍藏版)》请在三一办公上搜索。

1、本科生毕业论文(设计)题 目: 基于单片机的信号发生器的设计 姓 名: XXX 学 院: 理学院 专 业: 电子科学与技术 班 级: 2008级1班 学 号: 1886080110 指导教师: XXX 职称: 助教 2012年5月20日安徽科技学院教务处制摘 要上个世纪70年代,信号发生器多采用模拟器件构成。随着微处理器的出现,信号发生器可以采用微处理器和数模转换器(即DAC),获得各种简单的波形。随着单片机的快速发展,它也被广泛地应用于信号发生器中。本课题主要是采用51系列单片机,外接D/A转换和一些外围电路来构成信号发生器。通过编程实现对输出波形的控制,从而产生方波、锯齿波、三角波、正弦波

2、信号,同时用LED指示灯显示对应的波形,输出的波形频率和幅值都连续可调。本设计具有电路结构简单、成本低、性能良好等优点,因此可以广泛地应用于电子电路、工业自动化控制和教学实验等领域。关键词:信号发生器;单片机;D/A转换AbstractMost of signal generators made of analog components in last century 70s. With the appearance of the microprocessor, the signal generator can use the microprocessor and D/A conversion

3、 to acquire a variety of simple waves. Due to the rapid development of MCU, it has been widely applied in signal generator. In our experiment, we use a 51 series microcontroller by linking a D/A conversion and some external circuits to constitute the signal generator. By programming to control the o

4、utput waveform, it can produce square wave, sawtooth, triangle wave and sine wave signal. At the same time, the LED lights indicate the corresponding waveform. The output waveform frequency and voltage are both adjustable. This design has many advantages. For example, it has simple circuit structure

5、, low cost, work perfect and etc. So it can be used in electronic circuits, industrial automation control and teaching experiments and other fields.Key words: the signal generator; MCU; D/A conversio目 录第一章 绪论11.1 课题背景11.2 课题意义1第二章 信号发生器总体方案的设计22.1 方案的设计与选择22.2 系统结构原理简介2第三章 硬件电路的设计43.1 输入模块43.2 单片机主控

6、模块43.3 D/A转换模块53.4 放大电路模块63.5 系统总电路7第四章 系统软件的设计84.1 主程序流程图84.2 产生各波形的原理及程序94.2.1 正弦波94.2.2 方波94.2.3 三角波94.2.4 锯齿波104.3 波形频率的调节10第五章 调试与仿真结果115.1 调试115.2 程序测试结果11第六章 结论16参考文献17致 谢18附录 源程序19图表清单图1 系统结构原理图.2图2 输入模块 4图3 单片机主控模块.5图4 D/A转换模块.5图5 放大电路模块 6图6 系统总电路图.7图7 主程序流程图.8图8 频率为100Hz电压为7.5V的正弦波波形.11图9

7、频率为100Hz电压为5V的正弦波波形12图10 频率为100Hz电压为6V的方波波形.12图11 频率为125Hz电压为5V的方波波形13图12 频率为150Hz电压为6V的三角波波形.13图13 频率为150Hz电压为7.5V的三角波波形14图14 频率为100Hz电压为3.5V的锯齿波波形14图15 频率为250Hz电压为7.5V的锯齿波波形15第一章 绪论1.1 课题背景信号发生器又称为函数发生器,是现在各种电子电路实验设计中必不可少的实验仪器。随着电子测量技术以及实验教学中对信号发生器的广泛需求,以及电子技术的快速发展,信号发生器的种类显著增多,性能也有了非常大的提高。尤其是,随着上

8、世纪70年代微处理器的出现,使得信号发生器向着自动化、多功能化的方向发展。目前,由于信号发生器与微处理器的结合,因而其具备了自动故障诊断、自动校正、自动生成和修正波形等诸多功能,可以和计算机以及其他的测量仪器一起构成简便的自动测试系统。当下,信号发生器正朝着智能化、综合化、功耗更低和精度更高的方向发展。我们常看到的信号发生器多为纯硬件的连接而成,波形种类一般为锯齿波、正弦波、三角波、方波等。其中,由分立元件组成的函数发生器,通常只能产生一种波形,且产生的波形频率低,性能不稳定,也不易调试。而用集成芯片组成的函数发生器,可产生较高的频率并且产生的波形信号种类较多,但其电路太复杂且不易调试。利用D

9、DS芯片组成的函数发生器,产生的波形频率很高,种类多且性能好,但价格昂贵,不适合在对信号要求高的条件下使用。1.2 课题意义一般情况下,信号发生器是给所需要测试的电路提供波形信号,然后借用测量仪器测量所需要的数据。但信号发生器在各种实验设计和测试处理中不仅可以作为测量仪器,还可以作其他的用途。比如可以作为激励源,提供信号给被测电路,以完成仿真和测试。由信号发生器产生的波形不仅具有精度高、稳定性好、可重复等优点,而且操作简单,因此被广泛地应用于电子技术、自动控制系统和教育教学实验等领域。函数信号发生器在电子电路实验和设备检测中也具有十分广泛的应用。例如在通信、广播、电视系统中,都需要射频(高频)

10、发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器即正弦波发生器。利用单片机并通过编程设计产生的波形信号,具有输出的波形频率底线很低(可以低至几赫兹),且结构紧凑,价格低廉,线路简单,频率稳定性高,抗干扰能力强,用途广泛等优点,还能够实现对波形进行细微调整,改善波形,使其满足不同系统的要求。因为其是通过编程产生波形,所以只要稍微修改程序,或对电路稍加调整,就可实现对波形的改良。第二章 信号发生器总体方案的设计2.1 方案

11、的设计与选择由于设计思路和所需波形精度等的不同,信号发生器有许多种设计方法,下面分别列出几种不同的设计方案,经过对比,选出最佳方案。方案一:利用集成芯片组成的电路产生波形。MAX038是一个只需要在外围附加少许电路的高精密波形发生器,它可以产生正弦波、三角波和方波信号1。输出波形的频率和占空比独立可调。只要改变地址引脚A0和A1输入端的代码信号,即可控制波形的输出。它的优点是输出波形的频率范围宽(最高可达到40MHz)、波形稳定性好、不失真、操作简便等。但成本高,代码繁琐,不易理解。方案二:采用分立元件组成,如用555芯片外接电路,在输出端加入积分电路可得到三角波,三角波经过差分放大器后可得到

12、正弦波。该方案思路清晰,但内容繁琐,波形不易调节,产生的信号频率也很低。方案三:采用单片机和数模转换器产生各种波形2。该方案充分利用了单片机的I/O端口,由于是通过写入单片机的程序来控制波形输出和改变频率,所以产生的波形质量好,精度也很高,通过调节运算放大器的滑动变阻器,可改变输出波形的幅值。具有稳定性强、操作简便、性价比高、体积小、用电省等诸多优点。综合考虑,方案三的综合性能和指标要优于其他两种方案,输出频率有很好的稳定性,充分体现了模块化设计的要求,而且所需芯片和元器件均为通用器件,在市场上较常见,成本也很低,实物制作成功的可能性大,所以本设计采用方案三。2.2 系统结构原理简介图1 系统

13、结构原理图本课题设计的信号发生器,主要由AT89C51单片机和DAC0832数模转换两个集成芯片组成,通过编程实现信号输出波形的种类且频率和幅值都可调。该单片机是一个微型计算机,包括中央处理器CPU、RAM、ROM、I/O接口电路、定时/计数器、串行接口等,是波形设计的核心3。DAC0832为数模转换器,主要将单片机输出的数字信号转换为模拟信号,它是一种最常用的8位分辨率的数模转换器。该信号发生器原理如图1所示,其工作原理为:按键按下后,单片机接收到信号并判断是哪一个按键按下,然后执行与之相对应的程序,输出数字信号给数模转换器,经数模转换将信号转换为模拟信号再经放大电路放大并在输出端输出所需波

14、形,且与之相对应的LED会点亮。通过改变运算放大器的滑动变阻器的阻值可以改变输出波形的幅值。由系统的结构原理图可知,该系统主要有以下几个模块组成:输入模块、单片机主控模块、D/A转换模块、放大电路模块以及波形输出模块。1、输入模块(波形与频率调节按键)本课题主要通过按键输入来控制系统实现不同的波形输出和对频率的调节。总共有三个按键,其中一个用于波形切换,另两个用于调节波形频率。按键连接到单片机的相应端口,单片机的端口为低电平有效。当有按键按下时,与单片机对应的引脚变为低电平,即有效,然后单片机开始工作。2、单片机主控模块单片机是整个波形发生器的核心部分,通过程序的执行,产生方波、锯齿波、三角波

15、、正弦波信号及改变输出波形的频率。它拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。本课题中单片机的外围接有复位电路,主要是为单片机提供复位信号,而时钟信号则由单片机内部产生。整个单片机模块的工作是从程序存储器读取程序,判断是否有按键按下,然后经过处理送到指示灯即波形显示模块,并产生相应的数字信号送到数模转换器进行数模转换。3、D/A转换模块D/A转换主要是把从单片机输出的数字信号转换成模拟信号,然后输出模拟信号给放大模块。本课题中我们选用的是价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、

16、8位D/A转换器以及输入控制电路四部分组成4。DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。4、放大电路模块数模转换模块DAC0832输出的信号非常幅值小,只有0.1V左右,还达不到输出的要求。所以要在波形输出前对信号进行放大处理,以达到输出所需要的幅值。通过改变运算放大器上滑动变阻器的阻值,即可改变输出波形的幅值,实现调幅。本课题根据以上原理设计出的信号发生器硬件结构简单,操作容易。初始状态下输出正弦波,第一次按下波形选择按键后会输出方波,再次按下输出三角波,第三次按下输出锯齿波,此时如果再按下按键则又回到正弦波,每一次按键按下后与波形相对应的波形指示灯会点亮。波形频率是通

17、过输入端口的调频按键来调节,相应的按键按下后,可以使输出波形频率增加或减小。通过调节放大模块里的滑动变阻器,改变运算放大器的放大倍数可以改变输出波形的幅值。第三章 硬件电路的设计本课题设计的信号发生器主要由以下模块组成:输入模块、单片机主控模块、D/A转换模块、放大电路模块。3.1 输入模块输入模块主要是由按键组成,常用的按键电路一般为矩阵式,但是在本课题中由于涉及的按键数很少,所以采用三个按键开关构成按键电路,电路结构如图2所示。图2 输入模块本模块中的三个按键(波形切换键、频率升高键、频率降低键)的一端分别接单片机的P1.0、P1.1、P1.2引脚,波形切换键用于四种波形间的切换,频率升高

18、和降低键即实现对输出波形频率的调节。因为单片机为低电平有效,当其中一个按键按下时,即与地接通,从而与该按键对应的单片机端口变为低电平,数据送入单片机,经过单片机处理从而实现相应的波形输出。3.2 单片机主控模块单片机是一种集成芯片,它采用集成电子技术把微型计算机中的微处理器、存储器、I/O接口、中断系统、定时器/计时器、串行接口等电路集成到一片集成电路芯片上形成的微型计算机,因而被称为单片微型计算机,简称为单片机5。单片机因为具有体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好等优点,所以被广泛应用于工业控制、智能仪器仪表、机电一体化产品、家用电器等领域6。单片机主控

19、模块是整个设计的核心,本课题采用的单片机是AT89C51,该单片机有两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,且片内有振荡器和时钟电路。它有4个8位I/O输入输出口,由这些I/O口组成的单片机总线,可方便地扩展外围单元、外围接口电路等。该模块电路图如图3-2所示。单片机主控模块有单片机和复位电路组成。单片机为AT89C51,带4K字节FLASH存储器的低电压,高性能CMOS8位微处理器,拥有完善的外部扩展总线7。单片机外围接有复位电路,主要是为单片机复位,复位主要有两种方式:按键复位和上电复位。图3 单片机主控模块在图3中,单片机的P1.0、P1.1、P1.

20、2口分别接输入模块的三个按键,主要是接收信号;而P1.3、P1.4、P1.5、P1.6分别接LED即波形指示灯;P2口与DAC0832相连,负责把单片机的输出信号传递给数模转换器;整个模块的工作过程是:当有按键按下时,与之相连的单片机端口变为低电平,当该低电平被单片机查询后,信号会被送入单片机进行处理,通过编程控制,处理后的信息会由P0口输出给DAC0832,并且相应的波形指示灯会点亮。3.3 D/A转换模块D/A转换模块主要是把从单片机输出的数字信号转换成模拟信号,在这里我选用的数模转换器是DAC0832。它是一个8位分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A

21、转换器及控制逻辑电路四部分构成。它有三种工作方式:直通方式、单缓冲方式和双缓冲方式。因为其与单片机接口方便,转换控制容易,价格也便宜,所以在实际工作中被广泛使用。在工作时为单电源供电,电压在+5V+15V范围内,并采用CMOS工艺,电流建立时间为1us,而且功耗低,约为20mW。电路如图4所示。图4 D/A转换模块D/A转换模块主要是DAC0832数模转换芯片,它是一种最常用的8位分辨率的数模转换器。由于DAC0832的对电平的要求与单片机输出电平完全匹配,所以不需要任何辅助电路,可以把DAC0832与单片机直接相连。DAC0832的DI口与单片机的P2口连接,接收单片机的输出信号;片选端口(

22、CS)与单片机的P3.7口相连,低电平有效;IOUT1和IOUT2端口为数模转换器的输出端,输出信号给运算放大器。工作时,DI口接收来自单片机输出的数字信号,然后数模转换器开始工作,把数字信号转换为模拟信号,最后从IOUT1和IOUT2口输出。3.4 放大电路模块放大电路模块,是将从数模转换器输出的模拟信号进行放大,本课题选用的是OPAMP,它是一种直流耦合、差模(差动模式)输入、通常为单端输出的高增益电压的放大器,因为刚开始主要用于加法,乘法等运算电路中,因而得名。本模块电路如图5所示。图5 放大电路模块放大电路模块由两个OPAMP组成,第一级运算放大器的作用是将DAC0832输出的电流信号

23、转化为电压信号,第二级运算放大器的作用是将电压信号通过反向放大电路放大RV1/R5倍8,通过调节滑动变阻器的阻值可以改变放大倍数,从而改变输出波形的幅值。系统工作时DAC0832输出的模拟信号IOUT1和IOUT2分别送给第一级运算放大器,将电流信号转换为电压信号,然后将电压信号送入第二级运算放大器,经过第二级放大后,连接示波器,即可看到波形。3.5 系统总电路图6 系统总电路图将各模块连接后即可得到总电路图,如图6所示。工作时按键按下,信号传递给单片机;然后单片机开始工作,单片机经过处理后,将数字信号输出给数模转换器且与之对应的波形指示灯会点亮;数字信号经数模转换后经运算放大器放大输出。按下

24、频率升高或频率降低键可改变输出波形的频率大小;调节RV1可以改变输出波形幅值的大小。第四章 系统软件的设计根据本课题信号发生器的设计要求,首先确定编程思路,然后编写主程序及各子程序。4.1 主程序流程图图7 主程序流程图主程序流程图如图7所示,当系统开始工作时,首先进行程序初始化,此时输出的波形为正弦波。然后判断是否有按键按下,如果有按键按下,则相应的数据会被送入单片机进行处理;若没有按键按下,则保持初始状态。当有按键按下时,单片机会先执行按键中断处理程序,判断是哪一个按键按下;如果是波形切换按键按下,单片机执行程序后会输出所需的波形数字信号;如果是调节频率按键按下,单片机会执行频率调节程序,

25、然后输出信号。单片机所输出的数字信号由P2端口输出给数模转换器进行数模转换,转换完成后的模拟信号很微弱,因此要经运算放大器放大,放大后连接示波器即可观察波形。与此同时,与之相对应的LED灯会点亮,在不接示波器的情况下,通过观察LED灯即可知道产生的是哪种波形。若要改变输出波形的幅值,可通过调节运算放大器上的滑动变阻器从而改变放大倍数,输出电压也就会改变。4.2 产生各波形的原理及程序4.2.1 正弦波正弦波主要是通过正弦函数表得出9,单片机工作时把从表中取出的数据送入DAC0832,转换为模拟信号,输出给放大模块,然后输出波形。波形程序如下:if(!flag) cs=0; P2=sin_num

26、num+;num+;num+; if(num=255) flag=1; else if(flag) cs=0; P2=sin_numnum-;num-;num-; if(num=0) flag=0; 4.2.2 方波方波的产生比较简单,设置一变量并让其自加,再未达到最大值之前,一直让单片机输出一个确定值即最大值,反之输出最小值0。波形程序如下:if(i+sqar_num) cs=0; P2=0XFF; else cs=0; P2=0X00; 4.2.3 三角波三角波中的直线可以用一个个的小台阶来逼近,在一个周期内从最小值开始慢慢递增,当增大到最大值后再通过自减回到最小值。因此当台阶之间的间隔很

27、小时,波形基本上近似与直线。因此我们在开始时设定,最小值为0,即从0开始自加,直到自加到255(最大值),然后再自减回到最小值,产生三角波。波形程序如下:if(!flag) cs=0; P2=num+;num+;num+; if(num=255) flag=1;else if(flag) cs=0; P2=num-;num-;num-;if(num=0) flag=0; 4.2.4 锯齿波锯齿波与三角波的产生相类似,只是达到最大值时不是通过自减返回0,而是直接变为0,因此程序比较简单。波形程序如下: cs=0;P2=num+;num+;num+;综上,当所有子程序完成后,通过多分支选择语句将各

28、个波形的子程序连接起来,方便主程序调用。4.3 波形频率的调节当输入模块的频率调节按键(其中的任一个)按下后,单片机会执行调节频率程序,程序如下: unsigned int temp; if(freq_d=0) FREQ-; else if(freq_u=0) FREQ+; if(cho=1|cho=3) temp=0xffff-3906/FREQ; TIME0_H=temp/256; TIME0_L=temp%256; else if(cho=0|cho=2) temp=0xffff-1953/FREQ; TIME0_H=temp/256; TIME0_L=temp%256; 波形频率的调节

29、主要是改变定时器的初始值,改变输出波形的周期,即可改变频率。以上程序编写完成后,通过主程序把各子程序连接起来,系统的源程序见附录1,经编译生成所需文件,即可下载到单片机内,以供使用。第五章 调试与仿真结果5.1 调试将编写好的程序使用keil进行编译,并根据提示的错误对程序进行修改,除了语法错误和逻辑错误外,程序无其他问题时,生成hex文件。然后加载到proteus软件电路的单片机中进行仿真10,11。对硬件电路的调试,首先应对单片机的晶振电路和和复位电路进行调试。对于晶振电路,给单片机供电后可连示波器,观察输出的波形信息;同时,测量复位引脚是否为高电平即可知复位电路是否工作。调试成功后,再对

30、系统的几大模块进行调试。输入模块的测试即单片机通电后,按下按键,检测与之对应的单片机引脚是否为低电平;单片机主控模块的测试:单片机通电后,将其中的一个输入引脚,输入低电平信号,再测试输出端的输出是否正确;对单片机模块的测试方法同样也适用于数模转换模块;放大电路模块模拟一个从数模转换的输出的数据给放大器的输入,通过测试输出端的数据来判断该模块是否正常工作。上述模块电路经调试成功后,即可进行联机调试。5.2 程序测试结果将编译成功的程序写入单片机并经调试后,得到了正确的波形。1、图8和图9分别为f=100Hz,幅值为7.5V和5V时的正弦波波形。图8 频率为100Hz电压为7.5V的正弦波波形图9

31、 频率为100Hz电压为5V的正弦波波形2、图10为f=100Hz,幅值为6V的方波波形;图11为f=125Hz,幅值为5V的方波波形。图10 频率为100Hz电压为6V的方波波形图11 频率为125Hz电压为5V的方波波形3、图12和图13为f=150Hz,幅值为6V和7.5V时的三角波波形。图12 频率为150Hz电压为6V的三角波波形图13 频率为150Hz电压为7.5V的三角波波形4、图14为f=100Hz,幅值为3.5V的锯齿波波形;图15为f=250Hz,幅值为7.5V的锯齿波波形。图14 频率为100Hz电压为3.5V的锯齿波波形图15 频率为250Hz电压为7.5V的锯齿波波形

32、本课题设计的信号发生器可产生正弦波、方波、三角波、锯齿波4种波形,输出的波形频率为0500Hz,波形幅值为07.5V,通过调节相关按键和改变滑动变阻器阻值的方法来改变输出波形的频率和幅值。输出的波形具有失真小,稳定性强等优点,这是因为单片机是采用编程得到波形,干扰小,可靠性高,而且操作简单。本课题设计的信号发生器结构和程序都比较简单,但如果要实现更复杂的功能,则相应的程序也会变得复杂,不易理解,所以该设计适用于对波形要求简单且对精度和质量要求较高的实验测量中。第六章 结论基于单片机的信号发生器的设计是一种常见的控制过程。系统主要通过编程控制单片机,产生方波、锯齿波、三角波、正弦波信号。由于对输

33、出波形的种类和频率范围的不同,信号发生器有许多种设计方法。本课题采用的设计方法模块清晰,自动化能力强,性能稳定,因而具有很强的实用价值。本课题的电路硬件较为简单,主要是由单片机和数模转换器构成。根据设计要求可分为几个模块,各模块分别实现相应的功能,便于理解。编程方面较为复杂,由于该设计主要通过编程控制,由4个波形产生的子程序加上有承上启下作用的主程序构成,但程序思路清晰。本课题的设计涵盖了大学期间所学的专业知识,从理论变成实践,收获很多。在设计的过程中,重新复习了单片机的知识,对单片机有了更多的了解。培养了设计电路的思维,增强了编程的能力,更使我熟练地掌握了本专业的设计软件。当然还有存在不足的

34、地方,主要有两个方面,第一为产生的波形频率比较低,要想产生更高的频率则相对应的程序和电路还有待做进一步的改进;第二是可以在设计中加入显示电路,显示波形的相关信息。参考文献1 赵宏亮.一种实用任意波形信号发生器的设计J.仪表技术,2008,(2):14-18.2 田蛟,展文豪,张宏伟.基于单片机的信号发生器设计J.信息技术,2011,(05) :87-90.3 谢维成,杨家国.单片机原理与应用及C51程序设计M.清华大学出版社,2009:11-211.4 阎石.数字电子技术基础M.高等教育出版社,2006:506-545.5 戴梅鄂,史嘉权.微型计算机技术及应用M.清华大学出版社,2002:1-

35、220.6 李朝清.单片机原理及接口技术M.北京航空航天大学出版社,1999:150-173.7 胡汉才.单片机原理及系统设计M.清华大学出版社,2002:200-260.8 童诗白,华成英.模拟电子技术基础M.高等教育出版社,2003:345-362.9 李道霖,韩绪鹏.正弦信号发生器的设计与实现J.电子设计工程,2010,18(12) :165-169. 10 潘永雄,沙河,刘向阳.电子线路CAD实用教程M.西安电子科技大学出社,2001:13-118.11 江思敏,陈明.Protel电路设计教程M.清华大学出版社,2006:15-135.致 谢经过几个月紧张的忙碌,我的毕业设计圆满完成,

36、在此我特别感谢带我的指导老师韩老师,从论文选题,题目的确定,论文的写作、修改到最后定稿韩老师给予了我耐心的指导和帮助。她严肃的教学态度,严谨的治学精神,以及精益求精的工作作风深深地感染和激励着我。在此,谨向韩新风老师致以诚挚的谢意和崇高的敬意。当然,论文的顺利完成,离不开其它各位老师、同学和朋友的关心和帮助。感谢各位老师、同学和朋友帮助我积极的查阅资料和提供论文写作的建议和意见,在他们的帮助下,使我的论文得以不断的完善,最终帮助我完整的写完了整个论文。再次衷心地感谢所有在我论文写作过程中帮助过我的人,谢谢!附录 源程序主函数:#include#include#includevoid main(

37、) TMOD=0X01; TH0=0xff; TL0=0xce; IT0=1; /设置中断触发方式,下降沿 EA=1; EX0=1;/允许外部中断int0的中断 ET0=1;/允许T0溢出中断 IP=0X01; /键盘中断级别高 TR0=1;while(1) / square();正弦波列表:#ifndef _sinx_h_#define _sinx_h_unsigned char code sin_num= 0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2, 2,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9, 10,10,11,12,12,13,14,15,15,

38、16,17,18,18,19,20,21, 22,23,24,25,25,26,27,28,29,30,31,32,34,35,36,37, 38,39,40,41,42,44,45,46,47,49,50,51,52,54,55,56, 57,59,60,61,63,64,66,67,68,70,71,73,74,75,77,78, 80,81,83,84,86,87,89,90,92,93,95,96,98,99,101,102, 104,106,107,109,110,112,113,115,116,118,120,121,123,124,126,128, 129,131,132,134

39、,135,137,139,140,142,143,145,146,148,149,151,153, 154,156,157,159,160,162,163,165,166,168,169,171,172,174,175,177, 178,180,181,182,184,185,187,188,189,191,192,194,95,196,198,199, 200,201,203,204,205,206,208,209,210,211,213,214,215,216,217,218, 219,220,221,223,224,225,226,227,228,229,230,230,231,232,

40、233,234, 235,236,237,237,238,239,240,240,241,242,243,243,244,245,245,246, 246,247,247,248,248,249,249,250,250,251,251,251,252,252,253,253, 253,253,254,254,254,254,254,255,255,255,255,255,255,255,255,255 ;#endif波形发生与中断频率调节程序:#ifndef _0832_h_#define _0832_h_/#define DACR XBYTE0x7fff /单通道输出,单缓冲就行了。unsi

41、gned char i,sqar_num=128; unsigned char cho=0; /0:正弦波。1:方波。2:三角波。3:锯齿波。unsigned char num=0;unsigned char TIME0_H=0xff,TIME0_L=0xce; /定时器0的初值设置;全局变量.sbit chg=P10; /波形切换键 sbit freq_u=P11; /频率升高键sbit freq_d=P12; / 频率降低键sbit cs=P37;sbit zx=P13; /正弦波波形指示灯sbit fb=P14; /方波波形指示灯sbit sj=P15; /三角波波形指示灯sbit jc

42、=P16; /锯齿波波形指示灯bit flag=0;unsigned int FREQ=50;/调节部分频率:void freq_ud(void) unsigned int temp; if(freq_d=0) FREQ-; else if(freq_u=0) FREQ+; if(cho=1|cho=3) temp=0xffff-3906/FREQ; / 切换后频率也为50HZ 65336-106/(256*FREQ) TIME0_H=temp/256; TIME0_L=temp%256; else if(cho=0|cho=2) temp=0xffff-1953/FREQ; / 65536-106/(512*FREQ) TIME0_H=temp/256; TIME0_L=temp%256; /波形发生函数:void sint(void) zx=0;jc=1;sj=1;fb=1; /正弦波指示灯点亮 if(!flag) cs=0;P2=sin_numnum+;num+;num+; if(num=255) flag=1; else if(flag) cs=0;P2=sin_numnum-;num-;num-; if(num=0)flag=0; void square

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号