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

下载本文档

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

文档简介

1、1绪论1.1单片机概述单片微型计算机(单片机)作为微型计算机的一个很重要的分支,自问世以来,以其极高的性价比,受到人们的重视和关注,因此应用广泛,发展迅速。相对而言,单片机体积小、重量轻、抗干扰能力强,对环境要求不高,并且价格低廉、可靠性高、灵活性好,开发较为容易。目前,在我国,单片机已经广泛地用于智能仪表、机电设备过程控制、自动检测、家用电器和数据处理等各个方面。1.2AT89S52单片机AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上

2、 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,两个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工用行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作17。掉

3、电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。1.3信号发生器概述目前,市场上的信号发生器多种多样,一般按频带分为以下几种:超图频:频率范围 1MHz 以上,可达几十兆赫兹。高频:几百 KHZ 到几 MHZ0低频:频率范围为几十 HZ 到几百 KHZ。超低频:频率范围为零点几赫兹到几百赫兹。超高频信号发生器,产生波形一般用 LC 振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,即 RC 振荡电路,通过改变电容和电阻值,改变频率。用以上原理设计的信号发生器,具输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比较贵

4、,一般在几百元左右。在实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十 HZ 到几十 KHZ。用单片机 89S52,加上一片 DAC0808,就可以做成一个简单的信号发生器, 其频率受单片机运行的程序的控制。 我们可以把产生各种波形的程序, 写在 ROM 中,装入本机,按用户的选择,运行不同的程序,产生不同的波形。再在 DAC0808 输出端加上一些电压变换电路,就完成了一个频率、幅值、零点均可调的多功能信号发生器的设计。这样的机器体积小,价格便宜,耗电少,频率适中,便于携带。2系统设计方案2.1系统可行性分析(1)元器件的选择及其可行性讨论根据技术指标及系统设计目的,经研究芯片的

5、选择如下:主控芯片采用 ATMEL 公司的 89S52;采用 12MHz 的晶振器为 89S52 提供时钟信号;稳压块选用 7812 与 7805 相串联,提供 12V 和 5V 电压,7912 产生-12V 电压;对于 89S52 的 P0 口的数据采用 74LS373 进行锁存后经过 DAC0808 进行 D/A 转换;数码显示器采用高亮 8 位共阴极数码管;8 位 D/A 转换器采用 DAC0808;运算放大器采用 LM324。大部分的芯片及器件都可以通过网络购买,所以器件的选择完全可行。(2)设计中可能存在的问题及解决方案一一排除问题的可行性讨论设计原理图时应着重考虑设计最终的电路板的

6、可行性。在设计时要对每一个电路模块仔细检查,查阅其他书籍进行校对,还要进行实物实验,以确保设计的可实现性。在最后的电路板的调试阶段,需要诊断模块程序和单片机仿真机合作进行,从而克服调试程序本身的不可靠性,可方便地进行调试及错误诊断。以上对设计中可能遇到的较为重要的问题进行了分析并提出了解决方法,基本上可以解决。(3)经济上的可行性讨论本设计是一个实验系统,芯片的选择在前面已经讨论,从前面的讨论中可见芯片大部分可在网上找到。因此,设计费用主要集中在购买元器件上,而大部分的元器件又不是很贵,所以经济上本设计完全可行。2.2系统需求分析2.2.1 系统功能要求系统具有 D/A 转换功能,信号幅度放大

7、功能,8 位七段数码显示功能,上电自动复位功能,2X4 键盘输入接口2.2.2 系统性能要求(1)系统的 D/A 转换功能具有 8 位精度;(2)动态扫描七段数码显示器;(3)89S52 单片机时钟信号为 12MHZ;(4)系统上电自动复位;(5)系统具有 8 位行列扫描键盘。2.3总体方案设计一个单片机主系统的硬件电路设计包含两部分内容:一是单片机系统扩展部分设计,它包括存储器扩展和接口扩展。存储器扩展指 EPROM、EEPROM 和RAM 的扩展。接口扩展是指各接口芯片以及其他功能器件的扩展。二是各功能模块的设计,如信号检测功能模块、信号控制功能模块、人机对话功能模块、通讯功能模块等,根据

8、系统功能要求配置相应的 D/A、键盘、显示器等外围设备。本机硬件设计包括两部分,即电源部分设计和主系统设计。电源设计和主系统框图分别如图 2-1,2-2 所示。图2-1交流一直流电压转换图2-2主系统结构框图3硬件设计3.1总体硬件设计单片机应用系统的硬件电路设计包含两部分内容: 一是系统扩展, 即单片机内部的功能单元(如 ROM、I/O、定时/计数器等)容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计适当的电路。二是系统配置,即按照功能要求配置外围设备如显示器、D/A 转换等,要设计合适的电路。系统的扩展和模块设计应遵循下列原则12:(1)尽可能选择标准化、模块化的典型

9、电路,提高设计的成功率和结构的灵活性。(2)系统的扩展与外围设备配置的水平应充分满足应用系统的功能要求。(3)硬件结构应结合应用软件方案一并考虑。硬件结果与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件来实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,其响应时间要比直接用硬件响应来的长,而且占用 CPU时间。所以,选择软件方案时,要考虑到这些因素12。(4)可靠性及抗干扰性设计是硬件系统设计不可缺少的部分,它包括芯片、器件选择,去耦滤波等。(5)单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,解决的办法是增加驱动能力,增设线驱动器或减少芯片

10、功耗,降低总线负载。(6)系统的扩展及各功能模块的设计在满足系统功能要求的基础上,应适当留有余地,以备将来修改、扩展之需。(7)在考虑硬件总体结构的同时要注意通用性的问题。根据以上原则,进行硬件设计。系统采用较为普及的 89S52 单片机作为系统的核心。它不但容易实现设计指标,而且还有较好的性价比。(1)程序存贮器89S52 内部自带 8K 的 ROM,512B 的 RAM,所以不需要对其扩展存储器。(2)键盘接口矩阵式键盘适用于按键数量较多的场合,系统采用了行列式键盘设计即矩阵键盘,用 I/O 线组成行、列结构,按键设置在行列的交点上,2X4 的行列结构可构成 8 个键的键盘。因此,在按键数

11、量较多时,可以节省 I/O 线。按键的识别方法有两种,一种为扫描法,另一种为线反转法。此设计采用了行列式及与之相适应的行列扫描法。(3)数码管驱动本设计实现了 89S52 的 I/O对 2X4 键盘和 8 位数码管显示的控制。为增加对数码管显示器的驱动能力及稳定性,在它与 89S52 之间设置了提高驱动能力的 74LS373。(4)D/A 转换本设计 D/A 转换部分采用 DAC0808 芯片,由于它不带锁存器,故在使用时必须加 74LS373进行数据锁存。(5)信号变换部分对信号的变换部分采用四运放集成芯片 LM324,它采用 14 脚双列直插塑料封装,它的内部包含四组形式完全相同的运算放大

12、器(6)可靠性方面在使用应用系统时,可能会受到多种干扰的侵袭,直接影响到系统的可靠性,因此,本系统适当加入去耦电容,以减少干扰,确保精度。3.2系统模块设计3.2.1 电源设计稳压电源是单片机控制系统的重要组成部分,它不仅为测控系统提供多路电源电压,还直接影响到系统的技术指标和抗干扰性能。近年来,传统的线性稳压电源正逐步被高有效率的开关电源所取代,特别是单片开关电源的迅速推广应用,为设计新型、高效、节能电源创造了良好的条件130本机使用三种共地电源:+12V,12V,+5V,硬件设计中采用自带电源方式。因为本机有 89S52 单片机,还有许多逻辑芯片,这些芯片的工作电源电压为+5V,所以电源中

13、必须有+5V 电源。另外由于 D/A 转换器件 Vee 端需接-12V 电压,LM324 也需要提供土 12V 电源,所以需要设计一个能产生土 12V,+5V 的电源。经过综合分析, 变压器选用 16W/32V 变压器 (带三抽头如图 3.1 所示) , 整流用一片 RBV-406集成电桥(如图 3.2 所示)。稳压部分选用三端集成 7805,7812,7912 稳压器件(如图 3.3 所示)特别说明,在使用稳压器件时,一定要注意 79XX 系列是左边接地,右边输出,中间输入;而 78XX 系列是左边输入,右边输出,中间接地。电源部分原理图如图 3,4 所示图3.4电源原理图对于图 3.4 有

14、几点说明:1.7805 稳压块与 7812 稳压块相串联,是为了使 7805 上的功耗降低,以免功耗太大而使用散热片。稳压块的功耗按下式计算:W=IXAU=IX(UI-UO)(31)其中:I 是稳压片的通过电流,UI 是稳压片的输入电压,UO 是稳压片的输出电压,AU 是稳压片上的电压降。由上式可以看出:稳压块上的压降 AU 越大,其功耗越大。如果 7805 直接接到整流桥输出端,则 U1 必会大于 12V,功耗必然加大。2 .AT89S52 的功耗100mA 显示器采用动态显示,每一瞬间只有一个数码管发亮,而数码管电流 0100mA。其它芯片总电流5070mA。所以+5V 电流的总电流可 0

15、300mA,查三端集成稳压器说明书,可以选用 7805,其电流Im=0.5A,这样电流可以留有一定裕量。3.大滤波电容的选择由于变压器副线圈的额定电压选用 12V,那么瞬时电压峰值为 Um=12X1.414 弋 17V 因为大电容耐压值越高,价格越高,所以选用 1000F/25V 电容。4.整流桥的选择虽然要求的电源电流1A,但变压器副线圈电压为脉动电压,电流为脉动电流,其电流瞬时值远远超过 1A,尤其在电源刚接通时,为留有一定裕量,而且不损坏整流桥,选用 2A 的。由于整流桥的每个二极管都是半相导通,半相不导通,所以其反向耐压值要求很高,为留有一定裕量,选用 50V。最后选定整流桥为 2A/

16、50V5.变压器的选择要求电源电压为土12V,而稳压块压降W2V,所以变压器副线圈电压学土16V,因此选用32V的电源。又因电源电压 0500mA,所以选用 16W/32V 变压器(带三抽头)。6.电路中 0.1F电容的作用电路中在集成三端稳压器输入端、输出端与公共端之间,分别接有 0.1F电容,这是为了更好地改变集成三端稳压片的瞬态响应,防止稳压块自激振荡,保证正常工作。3.2.2 显示器接口设计一、LED 显示器的结构与原理LED 发光器件一般常用的有两类:数码管和点阵。常用的数码管一般为 8 字型数码管,分为A、B、C、D、E、F、G、DP 八段,其中 DP 为小数点。数码管常用的有 1

17、0 根管脚,每一段有一个管脚, 另外两根管脚为一个数码管的公共端。 从尺寸上分, LED 数码管的种类很多, 常用的有 0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0 等。一般小于 1.0 的为单管芯,1.21.5为双管芯,1.8 以上的为 3 个以上管芯,因而它们的供电电压要求不同,一般每个管芯的压降为2.1V 左右。通常,0.8 以下采用 5V 供电,1.02.3 采用 12V 供电,3.0 以上的选择更高电压供电。从电路上分,数码管又可分为共阴极和共阳极两种。结构分别如图 3.5,3.6 所示icomab109876bc*edcomcdp表3.1字

18、段码表显示字符共阴极字段码共阳极字段码显示字符共阴极字段码共阳极字段码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8.FFH00HA77H88H火”00FFHB7CH83H、LED 数码管显示器的译码方式1.硬件译码方式abcdefs*comcomcomcom图3.5共阴极图3.6共阳极图3.7管脚图其中:图 3.7 为管脚图,ag 管脚输入不同的字段码,可显示不同的数子或子

19、符(其子形码见表 3-1)o可见共阴极和共阳极的字段码互为反码图3.8硬件译码硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换, 这样的硬件电路有很多,比如 MOTOTOLA 公司生产的 MC14495 芯片就是其中的一种,MC14495 是共阴极一位十六进制数一字段码转换芯片,能够输出用四位二进制表示形式的一位十六进制数的七位字段码(不带小数点)。它的内部结构如图 3-8 所示。2.软件译码方式软件译码方式就是通过编写软件译码程序,通过译码程序来得到要显示的字符的字段码。三、LED 数码管的显示方式1 .LED 静态显示所谓静态显示方式, 就是当显示器显示某一个字符时, 相应的

20、发光二极管包定地导通或截止。静态显示时,较小的电流能得到较高的亮度。这是由于显示器的各位相互独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止(如图 3.9 所示)。当显示器位数很少(仅一、二位)时,采用静态显示方式是合适的。当位数较多时,用静态显示所需的 I/O太多,占用太多的硬件资源。故在位数较多时往往采用动态显示方式。码字码译和段ROMROM啊LED 静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段2 .LED 动态显示方式LED 动态显示是将所有的数码管的段选线并接在一起, 用一个 I/O控制,公共端不是直接接地(共阴极)或电源(共阳极)

21、,而是通过相应的 I/O 口线控制。如图 3.10 所示1/0J-J7?一JJjlJiBii-D3-D2-D1-D0J=LJ=L 3BLr-mjCf图3.19系统键盘实现俩1 15 51 1in nJ J5 5i i3)VREFD0D1D2D3八4八3八2八1R2222vREF24Ri0(3例如第一行第一列有键按下,那么行扫描读入的状态为 00001110,列扫描读入的状态为 11100000,最后键值 Z=11101110=EEH,然后转去执行相应的服务程序。3.2.5D/A 转换设计一、D/A 转换器的原理以倒 T 形电阻网络 D/A 转换器为例,介绍 D/A 转换器的原理。倒 T 形电阻

22、网络 D/A 转换器结构如图 3.20 所示。图3.20倒T形电阻网络D/A转换器图中 S0S3 为模拟开关,由输入数码 Di 控制,当 Di=1 时,Si 接运算放大器反相输入端(虚地),电流 Ii 流入求和电路;当 Di=0 时,Si 将电阻 2R 接地。所以,无论Si 处于何种位置,与 Si 相连的 2R 电阻均接“地”(地或虚地)流过各开关支路(从右到左)的电流分别为 I/2、I/4、I/8、I/16总电流:$82RI4I4电it#it#关WillINC11u16GND215-VEE3141O413D7512D6611D5710D489.RfV3输出电压:VoiRf苧Di21(34)R

23、24i0Rn1将输入数字量扩展到 n 位,则有:iRfL绰 Di2iR2ni0可简写为:VoKnBn(35)n1其中Kn手,Bn=Di2iR2ni0二、DAC0808 简介DAC0808 是八位电流输出型 D/A 转换器件, 由 4 脚输出转换电流,其简化电路图及引脚结构如图 3.21 所示。 VREF 为参考电源, VEE 负电压供电; D0 是高数据位(MSB),D7 才是地数据位(LSB)。DAC0808 的电源极性:VCC=+5V,VEE=-15V,VREF=+15V。D0D7 是数据输入端,I。是电流输出端,COMP 是接电容进行补偿。在单片机应用系统中通常需要的是电压信号,电流信号

24、与电压信号之间的转换可由运算放大器实现。DAC0808 不带锁存器,所以在使用时必须加一个 74LS373 进行数据锁存-v1ECOMPVCC-VREF+VREFD1-D2D0-D3图3.21DAC0808简化电路框图和管脚排列、D/A 转换系统的实现根据DAC0808 的特性设计出本系统的D/A转换电路如图3.22 所示+1卬AJU4A所以输出电压:旭4tiP PQ Q1 1A AI I1 1KUAMKUAMPLSPLSW W招POffiPOffiM MPLTM1PLTM15口ZA耳至DD1D D2 2由D D5 5B1 12 21 19 91 11 10 0E EL LE E_3_37At

25、昭h的MM M时-1-04一邳图3.22系统D/A实现工作原理:本系统由VREF提供参考电压,相应参考电流为I=VREF/R1。电容 C4 提供补偿,OUT输出电流,经过 LM324 运算放大器转换成电压。VREF12VRfR1=5KVoRfVREF28R17Dii02i127一 D2i。8i乙(36)VFF4MJI32V VH HE EF F- -1 1C CD DM MF F归C5KR2R23.2.6 电压变换、LM324 简介LM324 是四运放集成电路,它采用 14 脚双列直插塑料封装。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图3.

26、23 所示的符号来表示,它有 5 个引出脚,其中“+”、“-”为两个信号输入端,“V+”、名为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端 Vo 的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端 Vo 的信号与该输入端的相位相同9。LM324 的引脚排列如图 3.24 所示。图 3.24LM324引脚结构图图3.23LM324运算放大器由于 LM324 是四运放集成电路,具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。二、原理图电压变换原理图如图 3.25 所示VKTF4-12VVKTF4

27、-12V图3.25系统信号变换4软件设计4.1软件功能设计4.1.1 系统初始化程序设计复位程序完成如下工作:1 .显示 2 秒的 PPP.HELLO 初始界面;2 .初始频率设置为 983HZ;3 .将频率值转换成定时器的初值;4 .置定时器 0 工作于方式 1,即 16 位定时器方式,送入定时器 0 定时初值,启动定时器 0 工作;5 .显示初始频率和产生波形的类型;6 .转键盘扫描程序。系统的初始化流程如图 4.1 所示。金而值显示字符延时Z Z秒显示初始城率转鞋盘扫描图4.1初始化流程图4.1.2 键盘扫描及处理程序设计这部分程序包括如下几部分:1 .键盘扫描程序 judge;2 .先

28、对 P1 置数,行扫描;3 .判断是否有键按下;4 .延时 10ms,软件去干扰;5 .确认按键按下 X=P1,保存行扫描时有键按下时状态;6 .列扫描;7 .保存列扫描时有键按下时状态;8 .取出键值;9 .执行相应键值程序。下面分别介绍其功能及设计思想。1.键盘扫描程序单片机系统中,键盘扫描是 CPU 工作的一个主要内容之一。CPU 忙于各项工作任务时,如何兼顾键盘扫描。既保证不失时机的响应键盘操作,又不过多占用 CPU 时间。因此,要根据应用系统中的 CPU 的忙、闲情况,选择好键盘的工作方式。在单片机应用系统设计中,为了节省硬件,通常采用非编码键盘,在这种键盘结构中,单片机对它的控制有

29、三种方式:程序控制扫描方式;定时扫描工作方式;中断工作方式60(1)程序控制扫描方式这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,响应键盘的输入请求。(2)定时扫描方式这种方式就是每隔一定的时间对键盘扫描一次。通常是利用单片机内部定时器产生 10ms 的定时中断,CPU 响应定时器溢出中断请求,对键盘进行扫描,以响应键盘输入请求。(3)中断工作方式为进一步提高 CPU 效率, 可以采用中断扫描工作方式。 即在键盘有健按下时, 才执行键盘扫描,执行该键功能程序。本系统采用程序控制扫描工作方式。在该设计中的键盘的行列线连接于89S52 的 P1 口上。键盘扫描程序自复位后就开始工作,时刻监

30、视键盘,有无键按下。在监视键盘过程中,允许定时器 T0 中断,即同时动态显示数据和输出波形。一旦有键按下,先延时 10ms,去除键的抖动,然后关中断,不允许定时器T0 发生中断。其框图如图 4.2 所示:图4.2键盘扫描对应键盘如图 4.3 所示图4.3键盘实现键盘采用矩阵式键盘(如图 4-3 所示),由软件产生相应编码,再根据相应编码调用相应的子程序。编码产生原理:P1 口低四位表示行,高四位表示列。键盘所在的行和所在的列用 0 表示,其它的行和列用 1 表示。如第一行第一列GW 编码值为(11101110)2=0 xee,第二行第三列 ZKBJ 编码值为(10111101)2=0 xbd。

31、表4.1键盘处理程序键值对应处理程序0 x7dkey1 键选择发波类型(1 为正弦波,2 为三角波,3 为方波)0 xeekey2 个位频率调整(GW)0 xdeKey3 十位频率调整(SW)0 xbeKey4 百位频率调整(BW)0 x7eKey5 千位频率调整(QW)0 xedKey6 万位频率调整(WW)n-BXXXXX *-00_iiinI1 13 3u u1 15 5Ifr-B*r-B*HWCDffCDffl l犯n naNTTaNTTFU/DFU/DP3P3J J6TI_6TI_P P3 3而F F喀1 10 xddKey7 占空比增大调整(ZKBZ)0 xbdKey8 占空比减小

32、调整(ZKBJ)键盘扫描源程序如下:voidjudge(void)(unsignedcharX,Y,Z;P1=0 xff;P1=0 x0f;if(P1!=0 x0f)(delay10ms();if(P1!=0 x0f)(X=P1;P1=0 xf0;Y=P1;Z=X|Y;switch(Z)(/先对 P1 置数行扫描/判断是否有键按下/延时,软件去干扰/确认按键按下 X=P1;/保存行扫描时有键按下时状态/列扫描/保存列扫描时有键按下时状态/取出键值/判断键值(那一个键按下)case0 x7d:key1();break;case0 xee:key2();break;/对键值赋值case0 xde:

33、key3();break;case0 xbe:key4();break;case0 x7e:key5();break;case0 xed:key6();break;case0 xdd:key7();break;case0 xbd:key8();break;)4.1.3 中断服务程序设计采用定时器 T0 定时中断,根据不同的 choice 值,产生不同的波形。其中方波的占空比可以通过 K 变量来控制。定时器的初值可以这样计算:f=100000*ww+1000*qw+100*bw+10*sw+gw;t=1000000/f;th=-t/256;/定时器高八位值tl=-t%256;/定时器低八位值vo

34、idtime0_int(void)interrupt1(TR0=0;if(wave_choice=1)elseif(wave_choice=2)/中断服务程序P0=to_sinb;b+;)P0=0 x00;(if(c=128)(P0=c;)else(P0=255-c;)c+;)elseif(wave_choice=3)(k=zk*256/100;d+;if(d=k)(elseP0=0 xff;)elseif(wave_choice=4)(if(e=255)(P0=255-e;)else(P0=0;)e+;)TH0=th;TL0=tl;TR0=1;4.1.4 正弦波发生程序设计DAC0808 是

35、 8 位的 D/A 转换器件,其工作电压是 05V,当输入 00 数字量的时候,输出为 0V电压;当输入 80 数字量的时候,输出为 2.5V 电压;当输入 FF 数字量的时候,输出为 5V 电压。单片机的 I/O 输出均为+5V 的 TTL 电平,因此产生的正弦波幅值为+2.5V。将一个周期内的正弦波形等分为 256份,那么第 1 点的角度为 0,对应的正弦值为 2.5sin0-第 2 点的角度为 3600/256,对应的正弦值为2.5sin(360/256),如此计算下去, 将这些模拟量正弦值都转换为单极性方式下的数字量,得到一张按照点号顺序排列的正弦波波形数据表格11。而每次送到 74L

36、S373 的八位数字量是根据查正弦波形数据表格而得到。其实在计算正弦波形数据的时候,并不需要算出整个 02 九区间的每一个值,而只需计算出 01 九中的值就行,其他区间的值都可以通过对 01冗中的22值取不同的变换。比如n n九的值可以和 0 一工冗值一一对应,而九一 2 九的值可22以对 0冗区间的值取反得到。计算值可以用 C 语言编程得到。幅度公式为 Y=2.51+sin(90N)(N=0,1,264)64相应的 Y 值数字化后的递增量 6=-0.0196255Y2Y1那么每一个点相对于起一个点的递增率为 A=(Y2 当前的点,Y1为前一个点)所以每一个点的数字量与递增率 A 成一一对应关

37、系。数字量化 C 程序:#includemain()(intn,i=0,j,k;floaty=0,a=3.1415926,b=0,c=2.5000,d=0;for(n=0;n=64;n+)(y=2.5*sin(a*n/128)+2.5;b=y;/b,y 为当前幅度值d=b-c;/d 为递增率j=d/0.0196;/j 为数字递增率,0.0196 为 6k=128+j;/k 为数字量printf(d,%f,%f,%d,%dn”,i,y,d,j,k);i+;4.1.5三角波发生程序设计由于三角波的函数值比较容易计算,所以不必要像正弦波那样还需用表格可直接通过如下程序段实现。elseif(wave_

38、choice=2)if(c=128)(/三角波P0=c;)else(P0=255-c;)c+;)4.1.6方波发生程序设计方波发生程序运用延时的方法实现,只用一个主程序即可,因为产生一个方波只需要高低两个数,所以程序比较简单。要给一个频率,再计算所需的延时即可。实现方波的程序如下:elseif(wave_choice=3)方波(k=zk*256/100;d+;if(d=k)(P0=0 x00;elseP0=0 xff;)4.1.7锯齿波发生程序设计锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。

39、适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同,所以用延时法,来产生锯齿波。elseif(wave_choice=4)/锯齿波(if(e=255)(P0=255-e;)else(P0=0;)e+;4.2PROTEUS软件仿真4.2.1PROTEUS 软件仿真过程第一步,打开 PROTEUS 软件,选择所需器件。第二步,将所有器件排列好。器件排列见图 4.4第三步,连接导线。如图 4.5o第四步,打开 KEIL 软件,调出程序编译,生成 HEX 文件。调试窗口见图 4.6第五步,调试仿真图4.4器件排列窗口图4.5导线连接图4.7初始化仿真窗口

40、初始界面显示 PPP.HELLO。仿真情况如图 4.7 以下为四种波形的仿真结果示例。正弦波仿真:频率 2383HZ。仿真结果如图 4.8 所示MJwMm-smp.wMm-smp., ,EfcEfc-i-i 图4.8正弦波仿真输出三角波仿真:频率 2984HZ。结果如图 4.9?UtTX?U.E-3n?4VQVrrg3QiFEECWTrticlrDFTDFTHFHFSMSMIIIIK#6wraTp1.443fvMJilpK#6wraTp1.443fvMJilp口鼻El,00=:*口二、r-FZIMM?i%EHr-Er-FZIMM?i%EHr-ErCERENFE-CIrCERENFE-CI:BL

41、UEBLUErXn-tHUErXn-tHUEn nEMrEccdue(iHEMrEccdue(iH;Vi4trun?UMSVi4trun?UMS?他做3U*3U*甲aurwiXau500Qo5 .本机输出电流:I0+&40mA,I0-020mA。5.4系统测试数据1 .稳压部分输出电压测试通过对实际电路进行测试,得出各器件输出电压数据如表 5.1 所示表5.1输出电压测试数据表稳压器件输入电压输出电压理想输出电压误差78120V0007805+11.5V4.854%7812+13.4V11.5124.2%7912-13.3V-13.3-1210.8%从测试的数据上可以看出:采用 781

42、2,7805 稳压输出电压+12V,+5V,基本符合要求。误差都控制在 5%以内。而 7912 稳压负电压,根本没有起到稳压的作用,而且误差也很大。我认为是损坏了,因为在一次测试中不小心将 7912 电源的极性接反了,直接烧坏了。所以,在测试的时候一定要小心电源的极性和用电安全。2 .正弦波频率测试在实际测试中,主要对正弦波的频率进行了测试,测试数据如表 5-2 所示。表5.2正弦波频率测试数据表显示频率(HZ)测试频率(HZ)误差()5553.72.4100103.53.38200195.22.465004902.041000970.33.0615001548.63.1420002041.1

43、2.0140003945.31.4980007842.42.01从误差上分析,基本满足设计要求。但是在显示较高频率时,数码管的闪烁频率太快了,根本看不清楚数字。这一点有待进一步改进。三角波,方波和锯齿波的频率测试不够理想,所以不在这里列出。但是从PROTEUS 软件仿真的结果看,三种波形都可以实现6结论与展望6.1结论单片机控制多功能信号发生器可以用于“单片机技术”的教学实践,也可以用于实验信号的产生。具比较典型的接口电路设计也为实际应用提供参考。该仪器的研制既解决了实验教学的需求,也节约了实验设备投资,降低了实验成本。经过进一步完善后,可由学生利用课程设计的机会,亲自动手制作,这样还可以进一

44、步降低成本,同时极大地提高了学生的动手能力,是一件一举多得的好事。随着科学技术的不断发展,以及实验教学要求的不断更新,要求我们开发的应用系统具有良好的可扩充性和更新能力,作为一名技术人员,应时刻跟踪科技发展的步伐,不断丰富专业知识,不断完善我们开发的系统。本设计是是自己对“单片机技术”课程的理解和实际技术的总结。论文中可能会存在一些不足之处,敬请评审专家和各位老师批评指正。6.2展望未来通过本次毕业设计,我感到自己应用基础知识及专业知识解决问题的能力有了很大的提高。并且这次毕业设计的选题,是一个实际应用工程。是我学完单片机课程后,自己动手做的一个大系统。尽管在设计过程中碰到了不少“难题”,通过

45、自己翻阅大量资料,解决了一个个难题。通过这次毕业设计,我深深体会到:世上无难题,只怕有心人。碰到难题不要惧怕,只要你肯钻研,问题总会有解决的办法。我想,通过这次毕业设计,到了工作单位后,我将能够更快的适应工作岗位和工作要求,我对自己未来充满信心。总之,这次毕业设计对我而言是受益匪浅的参考文献1李杏春主编.单片机原理及使用接口技术.北京:北京航空航天大学出版社,19962李华主编.MCS-51系列单片机实用接口技术.北京:北京航空航天出版社,19933于枫,王鼎编著.微型计算机原理及应用.吉林:吉林科学技术出版社,19965何利民编著.单片机应用系统设计.北京:北京航空航天大学出版社,19956

46、吕能元,孙育才,杨峰编著.MCS-51单片微型计算机.北京:科学出版社,19937赵宏伟,朱洪文,臧雪柏编著.计算机接口技术.吉林:吉林大学出版社,19988侯伯文编著.单片微型计算机原理及应用.北京:机械工业出版社,19879周明德编著.微型计算机原理及应用.北京:清华大学出版社,199810芯片速查手册.中国自动化技术公司出版,199511张洪润,易涛编著.单片机应用技术教程(第二版).北京:清华大学出版社2003,17217912求是科技编著.单片机典型模块设计实例导航.北京:人民邮电出版社,200413孙进生编著.电子产品设计实例教程.北京:冶金工业出版社,200414段九州编著.放大

47、电路实用设计手册.沈阳:辽宁科学技术出版社,200215潘新民,王燕芳编著.微型计算机控制技术.北京:电子工业出版社,200416全国大学生电子设at竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编.北京:北京理工大学出版社,200317杨宁编著.单片机与控制技术.北京:北京航空航天大学出版社,200518ATMEL.MicrocontrollerDataB.ru/LITERATU/i386MDCS51FamilyofMicrocontrollersArchitecturalOverview20OppenheimAV,Wi

48、llskyAS,YoungIT.SignalsandSystems.EnglewoodCliffs,NJ:Prentice-Hall,198321FuKS.ControlSystem.IEEETrans,Vol.AC-16,No.1,1971附录一源程序/*/*2009 年 5 月于湖南工学院*/*CPU 用 89S52 晶振选用 11.0592MHZ*/*能产生低频 1hz-10khz 正弦波,三角波,方波,锯齿波*/*频率可调,方波占空比可调,通过 P2 输出用 8 位数码管显示*/*P1 做矩阵键盘,P2 接 8 个数码管动态扫描,P3 做位选信号*/*P0 经过 373 锁存后送到 D

49、AC0808 进行 D/A 转换*/*#include#defineucharunsignedcharucharcodenumber_tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/0-9 数字共阴极ucharcodeinit_tab8=0X73,0 x73,0 x73,0 x76,0 x79,0 x38,0 x38,0 x3f;/PPP.HELLO 共阴极ucharcodeto_sin256=*/*低频信号发生器设计*/*创作者:李炳阳*/*/0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 x

温馨提示

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

评论

0/150

提交评论