基于状态机的信号发生器_第1页
基于状态机的信号发生器_第2页
基于状态机的信号发生器_第3页
基于状态机的信号发生器_第4页
基于状态机的信号发生器_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录摘要 .1英文摘要 .11 引言 .21.1 信号发生器发展现状概述 .21.2 设计指标.21.2.1 设计任务.31.3 状态机概念阐述31.3.1 系统主要组成部分.41.3.2 各部分性能与参数要求.51.3.3 系统方案论证.52 系统硬件设计 .62.1 单片机电路设计72.2 数/模转换电路.72.3 键盘控制电路.82.4 显示电路.93 系统软件件设计.103.1 主程序流程图.113.2 中断服务流程图.113.3 按键控制流程图.113.4 液晶显示流程图124 系统测试与结果.124.1 测试方法.134.2 测试结果134.3 误差分析145 结束语.166 参

2、考文献.177 附录.18 附录1.Protel 99See原理图.18 附录2.Proteus7.5仿真图.19 附录3.作品实物图.20 附录4.程序清单.21 附录5.元件清单.38 基于状态机的信号发生器 基于状态机的信号发生器职业技术教育学院 应用电子技术教育专业 董仙怀(07440106) 指导老师 朱伟玲(讲师)摘要:波形发生器是电子设计以及教学、科研中应用最广泛的仪器之一。如果能用相对简单的方式和较少的成本产生具有优秀稳定度和精确度的常用波形,无疑将在这些领域中得到广泛的应用。本次作品设计是基于状态机概念的功能特性来实现占空比可调的矩形波、锯齿波信号发生器。它主要是通过现软件设

3、计来实现波形选择、占空比可调、频率可按步进可调、输出幅度可调等功能。本设计只要辅以简单的外围电路,就能实现一个低成本、多功能、高精度、输出频率步进可调的波形发生器,本文并对状态机的运用以及它的软件延伸作了比较详细的论述。本次设计主要由89C51、DAC0832、1602、LM324芯片完成任务书所要求的指标。关键词:状态机;程序;单片机The Signal Generator Based On State MachineVocational Technical Education College Application of Electronic Technology Education Pr

4、ofessional DONG Xian- Huai(07440106)Director: ZHU Wei -Ling(Lecture)Abstract:Waveform generator is one of the most widely used instruments in electronic design and teaching, scientific research. Waveform generator having a good stability and precision of common waveform by using relatively simple re

5、alization ways and less cost, will be widely applied in these areas undoubtedly. This design is based on state machine concepts to realize the functional characteristics of adjustable rectangle wave, sawtooth wave signal. Software writing is the main work of the design which has functions of wavefor

6、m selection, occupies duty modulation, frequency stepping modulation, and output amplitude can be modulated. This design can achieve a low cost, multi-function, high-precision, output frequency stepping adjustable waveform generator for state machine by adapted complementary with simple peripheral c

7、ircuitry. This paper discussion the use of the software and its extends. This design consists mainly of 89C51, DAC0832, 1602and LM324 chips.Key Words: state machine; programme; SCM1 引言 随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、

8、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。 1.1 信号发生器发展现状概述 在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到占空比可调的信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的

9、电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都迫使我们研制一种占空比可调能产生多种波形并具有程控等低频的信号发生器。 平时常用信号源产生正弦波,方波,三角波等常见波形作为待测系统的输入,测试系统的性能。但在某些场合,我们需要特殊波形对系统进行测试,这是传统的模拟信号发生器和数字信号发生器很难胜任的。利用单片机的强大功能,设计合适的人机交互界面,使用户能够通过手动的设定,设置所需波形的各项参数是很有必要的。该作品的研究和制作需要对占空比可调信号发生系

10、统有一个全面的了解。整个系统由单片机、显示电路、键盘控制等组成,显示和各模块的连接通信等各个部分要熟练连接调试,能够正确的了解常规芯片的使用方法、掌握简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我们在信号处理方面的实际工作能力。 1.2 设计指标 1.2.1 设计任务 设计制作一个波形发生器,该波形发生器能产生占空比可调的矩形波、锯齿波。 1)、具有产生占空比可调的矩形波、锯齿波两种周期性波形的功能。 2)、输出为矩形波时,输出电压峰值为0-5V可调,可按步进0.1V(峰-峰值)调 整。输出信号频率为100Hz-20kHz可调,正脉冲占主比为30-70可调; 输出为锯齿波时,输出电压峰

11、值为0-5V可调,可按步进0.1V(峰-峰值)调整。输出信号频率为200Hz-20kHz可调。上升时间与周期之比为30-70可调。 3)、频率步进间隔100Hz。4)、具有显示输出波形的类型、重复频率(周期)和幅度的功能。以上这些任务我们可以用如下这个示意图来表示: 占空比可调(30-70可调) 矩形波 幅度可调(0-5V可调) 频率可调(200Hz-20kHz可调)产生 (输出电压步进0.1V可调,频率步进可调间隔100Hz。) 占空比可调(30-70可调) 锯齿波 幅度可调(0-5V可调) 频率可调(200Hz-20kHz可调) 1.3 状态机概念阐述本次作品设计是基于状态机的功能特性来实

12、现占空比可调的矩形波、锯齿波信号发生器。何谓状态机呢?关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”,每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集,函数返回“下一个”(也许是同一个)节点,这些节点中至少有一个必须是终态,当到达终态,状态机停止。状态机是软件编程中的一个重要概念,比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,基本上都会运用到状态机的概念。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切

13、换到C状态,或者返回到A状态,这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不影响我们对状态机的认识。本次作品就是依赖状态机的这个概念来设计的。状态机简写为FSM(Finite State Machine),主要分为2大类:第一类,若输出只和状态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状态有关而且和输入有关系,则称为Melay状态机。要特别注意的是,因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL程序代码。状

14、态机描述的状态有两种大类,一类是任务运行似的逻辑。这种状态图的状态通常是任务在等待某个条件达到,也就是任务处于“等待状态”。通常任务本身是直接推动状态机运作的发动机,任务本身检查状态机的事件达到情况并进行分发。任务状态的变迁由某个事件的达成触发,可能要求任务间同步机制ITC具有回调能力,以便在条件成立时向状态机事件队列中压入事件。这种状态机明显有异步逻辑特征,称为“异步类状态机”。第二种类型是算法逻辑,利用状态机逻辑清晰的特性描述复杂的算法。该状态机通常嵌入在某个算法函数类部,帮助该函数完成功能。函数入口后,模拟任务等具有主动性的实体,向状态机分发事件。这种状态机明显有同步函数调用特征,称为“

15、同步类状态机”。同步状态机的一次事件过程就是一次入口函数调用过程。入口函数调用返回时,状态机必须处于一个明确定义的状态,不能是不确定的中间状态。无论异步还是同步,特别是对异步状态机而言,状态机内部不能在某个状态发生等待、阻塞等情况,而应该是标记状态后返回,把执行的机会让给其他任务或逻辑体(状态机的驱动实体)。之后在条件达到的情况下,通过事件分发机构调动状态机的运行。 本次作品设计主要要实现以下功能:在实现能产生矩形、波锯齿波的基础上再实现占空比调节、输出电压调节、频率调节等。现在引入一个状态机的概念,即使单片机工作在某种特定状态下,让它实现占空比可调或输出电压可调或输出频率可调,且还能实现矩形

16、波、锯齿波两种不同信号的输出选择。本次作品就采用键盘控制来实现单片机能工作在某种特定的状态。状态选择主要是由单片机通过编程实现设计要求的功能再由键盘控制来实现的,所以本次作品的设计核心是软件设计。1.3.1 系统主要组成部分本次作品设计主要由键盘控制电路、单片机核心电路、DAC0832数模转换电路、信号放大电路及显示电路组成等。系统框图如下图1-1所示:图1-1 系统框图采用键盘控制让单片机工作在某种特定状态下,让它实现占空比可调或输出电压可调或输出频率可调,且还能实现矩形波、锯齿波两种不同信号的输出选择。将单片机程序与DAC0832相容产生矩形波、锯齿波,再将DAC0832产生的电流信号经L

17、M324芯片转换成电压信号并将其放大输出,将波形类型、占空比、频率、幅度用LCD1602分两行输出。1.3.2 各部分性能与参数要求 1.3.3方案论证 为了实现占空比可调的矩形波、锯齿波信号发生器,本人曾拟过各种方案与指导老师讨论过,主要是以下几种:方案一:用分立元件来实现该信号发生器。但通常是单函数发生器且频率不高,其工作不很稳定,不易调试。方案二:用晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。比如早期的函数信号发生器IC8038等,但它们的功能较少,精度不高,频率上限只有300KHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者

18、互相影响。 方案三:利用单片集成芯片来实现该信号发生器,它能产生多种波形,达到较高的频率,且易于调试。比如美国马克西姆公司开发的函数信号发生器ICMAX038,但是该芯片价格昂贵且频率不稳定。方案四:利用专用直接数字合成DDS芯片的信号发生器:能产生任意波形并达到很高的频率。但成本较高。方案五:基于状态机来实现该信号发生器,主要是通过键盘控制和单片机编程来完成本次作品的各项性能参数。通过对以上五种方案的比较,我们可以看出几种方案的优缺点:方案一:结构很简单,制作容易,但是输出信号有频率线性度差、频率稳定度低、频率分辨率低、频率变换时间比较长,相位噪声大以及人机界面不友好等缺点。方案二:电路结构

19、简单,但在频率分辨率、频率变换时间、相位噪声等方面都不如方案三。方案三:输出频率稳定性高,但结构相对复杂。方案四:能产生任意波形且达到很高的频率,但是成本较高。方案五:结构简单,易于控制,且可以通过编程来实现多种波形,性价比高。基于我们的选择标准,在满足工作要求的前提下,性价比高的发生器是我们的首选。从上面的比较可以看出,方案一和方案二都有各自较大的缺点,难以达到理想的设计要求。而方案三和方案四虽然能达到很好的要求,但是从价格方面考虑方案五具有优势。利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能

20、够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。 2 系统硬件设计本次作品设计的硬件电路相对而言是比较简单的,主要由键盘控制电路、单片机控制电路、数/模转换电路、显示电路等组成(实物图见附录1)。大家知道状态机可以是多级的,在分层的多级状态机系统里面,一个“父状态”下可以划分多个“子状态”,这些子状态共同拥有上级父状态的某些共性,同时又各自拥有自己的一些个性。有限状态机的数学模型如下:(1)系统运行的状态是有限的,并且在某个时刻系统只处在一个状态。设系统的运行状态是s0,s1,sl,可以定义系统状态的集合是S。(2)系统运行状态的转移是由某个

21、事件触发的。没有事件触发,是不可能发生状态转移的。设使系统状态转移的事件是0,1, n,可以定义触发事件的集合是E。(3)系统运行的输出。在系统从一个状态转移到另一个状态时会相应执行一些动作。这些动作就是系统的输出。设系统的输出是p0,p1pm,可以定义系统输出的集合是P。在这些定义上可以简单描述有限状态机的实现过程。系统在某一时刻的状态取值状态集合S 中的某一值,没有事件的触发是不可能有状态的转移,在某一时刻有事件产生,该事件的产生触发了状态的转移,使得系统运行在新的状态下,同时产生输出p。所以本系统的线性状态结构如下图2 状态结构图所示。系统状态矩形波锯齿波幅度调节占空比调节频率调节频率调

22、节幅度调节占空比调节图2 状态结构图 2.1 单片机控制电路89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。用89C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即。本次设计主要用到P0口、P1口、P2口,将P0口与键盘控制电路相连,将P1口与显示模块连接,将P2口与数模转换电路相连。P3口只用到P3.0、P.1、P3.2与LCD1602的RS、RW、EN脚相连。如下图2-1 单片机外围电路所示。图2-1 单片机

23、外围电路 2.2 数/模转换电路进行数/模转换时选用DAC0832,由于其片内有输入数据寄存器,故可以直接与单片机接口。其内部结构由一个8位输入存储器、一个8位DAC寄存器和一个D/A转换器及逻辑控制电路组成。输入锁存器和DAC寄存器构成了两级缓存,可以实现多通道同步转换输出。DAC0832以电流的形式输出,当需要转换为电压时,可外接运算放大器。此设计就用到这一点。利用差分方式外接了运算放大器LM324,是两级运算放大电路。运算放大器外接+12V,-12V的电源,可以输出双极性的波形。运算放大器采用双极性输出。外接示波器,所编辑的波形就可以显示出来。其主要参数如下:分辨率为8位,转换时间为1s

24、,满量程误差为±1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。DAC0832个引脚功能定义如下:(1).DI7DI0:8位的数据输入端,DI7为最高位。(2).IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3).IOUT2:模拟电流输出端2,Iout2与Iout1的和为一个常数,即Iout1Iout2常数。(4).RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出

25、端和输入端之间。(5).VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。(6).Vcc:芯片供电电压,范围为(+515)V。(7).AGND:模拟量地,即模拟电路接地端。 (8).DGND:数字量地。 例如:已知运放输出电路输出电压为Uout(D/256)*VREF,如果向DAC0832传送的8位数据量40H(01000000B),则输出电压UOUT=(64/256)*5V=1.25V该模块电路主要是将DAC0832的D0-D7口与单片机的P2口相连,如下图2-2 DAC0832接口电路所示

26、:图2-2 DAC0832接口电路 2.3 键盘控制电路 键盘控制电路主用8个按钮与单片机的P1口相连接,以实现所要求的各种功能。如下图2-3 键盘控制电路所示: 图2-3 键盘控制电路各个按钮的功能分别是:Key1键功能:波形选择,主要是在矩形波与锯齿波之间进行切换Key2键功能:当前波形频率增加,它的步进分别是1Hz、10Hz、100Hz、 1000Hz。Key3键功能:当前波形频率减小,它的步进分别是1Hz、10Hz、100Hz、 1000Hz。Key4键功能:当前波形幅值增加,它的步进分别是0.1V、1V。Key5键功能:当前波形幅值减小,它的步进分别是0.1V、1V。Key6键功能:

27、当前波形占空比增加,它的步进分别是2%、10%。Key7键功能:当前波形占空比减小,它的步进分别是2%、10%。Key8键功能:该键主要是用来进行倍率选择的(频率、幅度、占空比的步进)。例如产生一个锯齿波频率增加、占空比减小、幅值增加的控制方式的过程如下(不限步进大小):由于程序初始化是产生一个占空比为50%、频率为1KHz、幅度为2.5V的矩形波,所以要按下Key1按钮来选择锯齿波,然后按下Key1键进行频率增大调节,接着按下Key7键进行占空比减小调节,最后按下Key4键进行幅值增大调节,就这样简单的操作就完成了锯齿波相关参数的调节。2.4 显示电路本次显示模块主要是采用1602液晶来显示

28、的,它的主要技术参数是这样的:显示容量为16x2个字符;芯片工作电压是+4.55.5V;工作电流是2.0mA(5.0V);模块最佳工作电压是5.0V。接口信号信号说明如下表格2-4-1所示:表2-4-1接口信号说明编号符号引脚说明编号符号引脚说明12345678VSSVDDVLRSR/WED0D1电源地电源正极液晶显示偏压信号数据/命令选择端(H/L)读/写选择端(H/L)使能信号Data I/OData I/O910111213141516D2D3D4D5D6D7BLABLKData I/OData I/OData I/OData I/OData I/OData I/O背光源正极背光源负极L

29、CD1602液晶显示模块主要是将其D0-D7数据口与单片机的P0口连接,在P0口接一个10K的排阻为上拉电阻。1602可以显示16x2个字符,所以本次设计就将显示分成两行:第一行显示用英语显示波形类型和P=xx%;第二行显示格式F=xxxxxHz V=x.xV。实际模块电路如下图2-4显示电路所示。图2-4 显示电路3 系统软件设计 软件设计是本次作品的核心部分,它包括波形产生、波形选择、占空比调节、输出电压调节、输出频率调节等方面,实质上,基于状态机的单片机程序设计方法是一种面向数据的方法。状态和事件都是用数据的形式表示的,这些数据的取值决定了程序的走向。主程序的任务是不停地监视事件队列,一

30、旦非空,应立即调用相应事件的处理子程序。该事件处理完毕, 令其出队, 再转入主程序的入口点。状态机主要由3个元素组成状态、输出和输入,所以在本次设计中用按下按钮来触发状态输出,比如按下按钮1就会使系统处在波形选择状态,按下按钮2使系统处在频率增加状态,以此类推其他按钮的功能。本次软件设计用Keil uVision3 软件编的,具体程序详见附录2。3.1 主程序流程图 当单片机接通电源时,系统程序开始初始化,接着会根据所需输出的波形的代码来得到输出的电压,波形的选择是根据代码中查表程序而得的,再经过DAC0832将数字信号转换为模拟信号后,再通过运算放大器LM324将电压放大,最后输出所需的波形

31、。主程序流程图如下图3-1所示:开始初始化根据波形代码自变量t求出当前要输出的电压D/A转换波形输出图3-1 主程序流程图3.2 中断服务流程图 如图3-2所示,当系统在工作状态中收到中断请求时,它将对系统进行现场保护后,再重新设定它的初值,按照输入值的需要来调整自变量,之后恢复现场,中断返回后就能重新进行工作。T0中断现场保护重装定时初值调整自变量恢复现场中断返回图3-2 T0中断服务子程序流程图 3.3 按键控制流程图 如图3-3所示,按键控制是通过用户手动来调整自己所需的波形及功能选项,从而实现人为的控制。系统先将按键初始化,再通过扫描程序来判断按键是否按下,若有按下就跳到相应的程序段,

32、执行该程序的命令,若没有按下则返回,再进行按键程序扫描。初始化按键扫描程序判断是否有键按下跳到相应的程序段 图3-3 按键控制流程图3.4 液晶显示流程图开始LCD1602初始化延时设置第一行显示位置显示第一行内容设置第二行显示位置显示第一行内容液晶显示程序主要是先将LCD1602初始化,然后确定第一行的显示位置,再将第一行内容显示出来,接着确定第二行显示位置,再将第二行内容显示出来,以此来实现显示波形类型、占空比大小、幅度大小、频率大小信息。图3-4 液晶显示流程图4 系统测试与结果4.1 测试方法本次作品用到的测试仪器有稳压电源、示波器、数字万用表等。主要采用示波器来测试显示波形选择、占空

33、比调节、输出电压和频率可调等功能。4.2 测试结果以下是Proteus 7.5版仿真的结果:主要将矩形波、锯齿波两种波形各参量变化前后的进行比较,像图3-5a是一个占空比为50%、频率为1KHz、幅度为0.50V的矩形波,通过按钮控制改变波形参数后的图b是占空比为82%、频率为400Hz、幅度为1.30V的矩形波;图c是一个占空比为82%、频率为400Hz、幅度为1.30V的锯齿波,通过按钮控制改变波形参数后的图d是占空比为6%、频率为1200Hz、幅度为2.2V的锯齿波。所以,从以下图形我们可以看出此设计是满足任务书的要求的。 图3-5a 矩形波初始参数 图3-5b 矩形波改变参数后 图3-

34、5c 锯齿波初始参数 图3-5d 锯齿波改变参数后 以下是Tektronix TDS1012数字示波器上拍到的波形:图a是一个幅度到最大值的锯齿波波形,图b是频率为2KHz的锯齿波,图c、图d均为矩形波。 图3-6a 图3-6b 图3-6c 图3-6d4.3 误差分析将上述的测试过程记录的数据列于表4-3-1并进行误差分析。以下表格的数据都是用Tektronix TDS1012数字示波器测量所得的,表4-3-1是在占空比为50%的情况下所测两种波形频率、幅度的参数;表4-3-2在频率为1KHz的情况下所测两种波形占空比、幅度的参数;表4-3-3在幅度为2.5V的情况下所测两种波形占空比、频率的

35、参数。表 4-3-1占空比为50%时锯齿波、矩形波频率、幅度的测试f0f1f2V0(V)V1(V)V2(V)f1(%)f2(%)V1(%)V2(%)0.215100.2041.1324.99810.02619.9230.2101.0135.00410.01220.004.15.01.4892.5033.1894.0875.0231.5012.4983.1874.0125.0210.47.71.01.22.1注:f0-作品液晶显示的频率值; f1-示波器上矩形波的频率值;f2-示波器上

36、锯齿波的频率值; V0-作品液晶显示的幅度值;V1-示波器上矩形波的幅度值;V2-示波器上锯齿波的幅度值;f1= |f1-f0|/f0*100%; f2= |f2-f0|/f0*100%;V1= (V1-V0)/V*100%; V2=(V2-V0)/V0*100%。 其中f0、f1、f2的单位为KHz。表4-3-2频率为1KHz时锯齿波、矩形波的占空比、幅度测试d0%d1%d2%V0(V)V1(V)V2(V)d1d2V1V23030.0891.5010.010.100.0110.0014040.1240.032.52.5032.4980.120.030.0030.002

37、5050.150.093.23.1893.1870.10.090.0110.0136060.12874.0130.0127070.0870.085.05.0235.0210.080.080.0230.021注:d0-液晶显示的占空比大小值; d1-示波器上矩形波的占空比大小;d2 -示波器上锯齿波的占空比大小;V0-作品液晶显示的幅度值;V1-示波器上矩形波的幅度值; V2-示波器上锯齿波的幅度值;V1= (V1-V0)/V0*100%; V2=(V2- V0)/ V0*100%; d1= (d1-d0)/d0*100%; d2=(d2-d0)/

38、d0*100%。表 4-3-3 幅度为2.5V时锯齿波、矩形波占空比、频率测试d0%d1%d2%f0f1f2d1d2f1f23030.0040.2100.010.100.0040.0104040.1240.0311.1321.0130.120.030.1320.0135050.150.0954.9985.0040.10.090.0020.0046060.1260.101010.02610.0260.0127070.0870.082019.92320.0090.080.080.0770.009 注:d0-作品液晶显示的占空比大小值;d1-示波器上

39、矩形波的占空比大小;d2-示波器上锯齿波的占空比大小;f0-作品液晶显示的频率值;f1-示波器上矩形波的频率值;f2-示波器上锯齿波的频率值;d1= (d1-d0)/d0*100%; d2= (d2-d0)/d0*100%;f1= (f1-f0)/f0*100%; f2= (f2-f0)/f0*100%; 其中f0、f1、f2的单位为KHz。引起误差的原因是很多的,有些是由被测对象本身引起的误差,比如它的性质、状态、条件以及被测量的种类、状态;有些是检测系统各环节动力源的变化引起的误差,比如电流、电压源变化等;有些是检测方法误差引起的,比如检测方法、采样方法、测量重复次数、取样时间不同而产生的

40、误差。 由于本次设计的液晶显示频率和占空比是显示整数位,幅度是显示小数点后两位的,而现在从示波器上读取的都是包括小数点后两位的数值,所以这也是误差产生的原因之一。还有本次设计的软件编程里延时程序的使用和程序本身所包含语句实现功能所需要的时间也会产生误差,所以误差是存在的。5结束语通过这次毕业设计,不仅提高了自己综合应用所学的理论知识解决实际电路设计和应用的能力,加强了自己动手、动脑和理论联系实际的能力,还培养了自己敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题的能力。毕业设计是一个系统性的能检测学生本专业知识掌握与应用情况的环节,如果没有实际的有针对性的设计,我们就不能很好的理解和掌

41、握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的毕业设计,使自己学会系统地运用所学理论知识,提高在电子应用方面的开发与设计本领,系统地掌握单片机硬软件设计方法。通过这次的设计,使自己熟悉和掌握状态机原理的系统的软件、硬件设计的方法、设计步骤。在独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题等过程中,真正做到了理论联系实际,提高了动手能力和分析问题、解决问题的能力。通过本次实验使自己熟练掌握单片机系统与其外围电路的设计方法,熟练应用C语言编写应用程序和实际设计中的硬软件调试方法和步骤,也熟悉了单片机系统的硬软件开发工具的使用方法。参考文献1 杜丁丁,马

42、坤茹.数字信号发生器的设计J;河北农业大学学报,2009,32(1):84862 游少芳.基于DDS的高精度方波信号发生器的研究:硕士学位论文.哈尔滨工程大学,2007 3 鲁哨廷.多波形数字信号发生器的设计与实现J.微处理机,2008,29(2):149151. 4 赵涛,邢灿华,姚西霞,陈晓娟.基于MAX038多功能信号发生器的设计J.机电产品开发与创新,2008,12(04):62645 王蓉,徐琼燕.基于CPLD的函数信号发生器设计J.现代电子技术,2009(24):1571596 戴成梅,戴成建,周启龙.基于LabVIEW多功能信号发生器的设计与实现J.国外电子测量技术,2010年0

43、6期7 苏坡,杨建华,候宏.基于DSP的任意波形信号发生器的设计与实现J.电气自动化,2010,32(3):80828 徐伟,周杏鹏.基于AD9834的高性价比信号发生器设计J.仪器仪表与分析检测,2008(1):689 周克宁,吴飞飞.基于DDS的高准确度可调占空比方波发生器J.计量技术,2005(11):353610 任建新,余乐咏,张鹏.基于FPGA的高精度信号发生器的实现与优化J.测控技术,2011,30(1):131611 石桂名,冀勇钢,彭海龙.基于AD9850的信号发生器的设计与实现J.现代电子技术,2010年第1期总第312期:11711912 冯伟.简易低频正弦信号发生器的设

44、计J.科技传播,2010,(6):989913 张根选,吴子怀.基于AT89S52单片机的信号发生器的设计J.湖南工程学院学报,2010,20(3):182014 刘岩,王晓君,李国立.基于SOPC的DDS信号发生器设现代电子术,2011,34(1):10710915 申加亮,崔维群,王金平,崔灵智.基于直接数字频率合成芯片的信号发生器设计J.山东水利职业学院院刊,2009(1):121416 张俊.状态机思路在单片机程序设计中的应用J.今日电子,2009,(2):373917 吴继华,王诚.如何写好状态机J.Verilog设计与验证,2008,(3):13716518 陈勇.有限状态机的建模

45、与优化设计J.重庆工学院学报(自然科学版),2007,(5):55-5819 徐建,周杏鹏.基于有限状态机的SMS液晶显示终端的研究与实现J.自动化技术与应用,2006,25(11):2426致谢要郑重的感谢在本次毕业设计过程中耐心的指导和帮助的朱伟玲老师、万旭老师,没有你们的辛勤指导,就没有我今天的成果,真心的感谢你们!谢谢!附录1.Protel 99See原理图图a-1-1 原理图图a-2-1 PCB图附录2.Proteus7.5仿真图图b-2-1 仿真原理图图b-2-2 仿真运行图附录3.作品实物图附录4.程序清单#include<reg51.h>#define uint u

46、nsigned int#define uchar unsigned char#define U8 uchar#define U16 uint#define SystemClock 24000000/定义晶振频率#define T0_BEGIN 65536-(SystemClock/12)/1000/1ms定时,定时器的初值U8 SystemTimer10mS;/系统时间10mS累加U8 SystemTimer1mS;/系统时间1mS累加#define KeyInPin P1/定义按键输入IO PINU8 KeyValue;/定义记录按键值的变量#define mKeyNamberMax 10/

47、U8 PrintBuffer32;/16字节的显示缓存/015字节显示第一行/1631字节显示第二行U8 WaveBuffer50;/产生波形缓存/4KHz及以下的波形一个周期有50个点,/4KHz以上的波形一个周期就10个点/用24MHz晶振,在全频率范围至少可以保证每个波形据/可以有10个机器以上时间还取数据输出数据#define mCDotTurnF 4000/ 以4000HZ分界一个周期波形是10个点或都50个点#define mDataDotMore 50/点数多的一个周期有50个点#define mDataDotSmall 10/点数少的一个周期有10个点bit ParaUpdataFlag;/参数数据更新标志bit PrinUpdataFlag;/显示数据更新标志/bit ParaUpdataFlag;/参数数据更新标志#define mTriangleWave 1/三角波#define mRectangleWave 0/矩形波U8 WaveChoose;/波形选择变量U16 WaveF;/波形频率 最小1HZ步进U16 FScale;/频率步进比例U8 WavePWM;/波形占空比 4KHZ以下的为2%步进,4KHZ以上的为10%步进,U8 PWMScale;/占空比调整比例U8 W

温馨提示

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

评论

0/150

提交评论