ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:296.04KB ,
资源ID:24455990      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24455990.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的高频函数信号发生器.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的高频函数信号发生器.docx

1、基于51单片机的高频函数信号发生器函数信号发生器设计报告参赛人员:朱秋 王嘉文 房开兰指导教师:*二 0 0 九年七月十四日摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本函数发生器采用STC89C52 单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(uA741)、倍频电路(CD4046)、按键和LCD显示电路等。电路采用STC89C52单片机和一片DAC0832数模转换器组成数字式低频信号发生器。函数信号发生器,它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。由于采用了uA741运算放大器和滤波电

2、路,使其电路更加具有较高的稳定性能,性能比高。此电路清晰,出现故障容易查找错误,操作简单、方便。通过按键控制可产生方波、三角波、正弦波,同时用LCD1602显示幅值和频率。所产生的波形VP-P范围为05 V,由倍频电路使频率范围为100Hz 1MHz,波形准确并且平滑。本系统设计简单、性能优良,具有一定的实用性。关键词:单片机;倍频;调频;调幅;LCD1602Abstract Waveform generator is a common signal source, widely used in electronic circuits, automatic control systems an

3、d experiments in areas such as teaching .Function generator used as a control core STC89C52 single-chip, external digital / analog converter circuit (DAC0832),operational amplifier circuit (uA741), frequency-doubling circuit (CD4046), and buttons and LCD display circuit. STC89C52 circuit and a singl

4、e-chip digital DAC0832 Digital to Analog component of low-frequency signal generator. Function signal generator, it has a low price, high-performance and low-frequency range of good stability, convenient operation, small size, low power consumption and so on. UA741 As a result of the operational amp

5、lifier and filter circuit to circuit with high stability and more performance, high performance. This circuit clears, easy to find failure error, simple and convenient. Keys can be generated through control of square wave, triangle wave, sine wave, LCD display at the same time with the amplitude and

6、 frequency. Waveform generated by VP-P range of 0 5 V, so that by the multiplier circuit for frequency range 92.592593Hz 217.3913Hz, accurate and smooth waveform. The system is designed to be simple, excellent performance, with a certain degree of practicality. Key words: microcomputer; frequency; F

7、M; AM; LCD1602一、系统方案题目要求实现的任务是设计并制作一个函数信号发生器,能产生正弦波,方波,三角波,要求不用DDS和专用的波形产生芯片,频率范围100Hz1MHz,幅度05V,方波占空比可调,实时显示频率和幅度。根据要求对下面方案进行论证与比较。1、1 信号发生部分方案一:采用模拟分立元件或单片压控函数发生器,可产生正弦波,方波,三角波,通过调整外部元件可改变输出频率,但采用模拟器件由于元件分散性太大,即使使用单片函数发生器,参数也与外部元件有关,外接的电阻电容对参数影响很大,因而产生的频率稳定性较差,精度低,抗干扰能力低,成本也高,而且灵活性较差,不能实现任意波形以及波形运

8、算输出等智能化的功能。方案二:采用锁相式频率合成方案。锁相式频率合成是一个高稳定度和精确度的大量离散频率的技术,它在一定程度上解决了既要频率稳定精确,又要频率在较大范围可变的矛盾。但频率受VCO可变频率范围的影响,高低频率比不可能做的很高,而且只能产生方波或正弦波,不能满足任意波形的要求。方案三:采用单片机和数模/转换DAC0832实现波形的产生。波形的产生是通过STC89C52执行方波波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。通过CD4046与CD4518分频实现倍频,已达到最高1MHz的频率。在89C52的P2口接5个按扭,通

9、过软件编程来选择各种波形、幅值电压和频率,每种波形对应一个按钮。此方案的有点是电路原理比较简单,实现起来比较容易。经比较,方案三能更好地实现题目要求,三种波形的产生可由程序控制,并通过按键选择波形输出,在示波器上显示波形。波形的周期与频率步进也可以用程序改变,方波占空比通过按键加减,具有线路简单、结构紧凑等优点。在本设计的基础上,加上LCD显示器,则可通过按钮设定所需要的波形频率,并在LCD上显示频率、幅值电压。输出波形稳定,精度高,滤波好,抗干扰效果好,连接简单,性价比高。因此我们设计中采用方案三。1、2显示部分方案一:数码管显示,由于本题要求实时显示输出信号的幅度,频率,而数码管不能显示字

10、符。方案二:LED点阵显示,LED点阵显示虽然能显示字符和数字,但显示效果不好,且不易编程。方案三:LCD液晶显示,LCD液晶不但能显示字符和数字,而且显示效果较好,容易编程实现。二、系统设计2、1 总体设计思路根据题目要求,经过仔细考虑,充分考虑各种因素,制定了整体设计方案:以STC89C52单片机为控制核心,P0口接DAC0832信号输入并数模转换,程序控制产生三种波形,通过P1口接8个按键,控制频率、幅值和占空比,由按键选择三种波形的输出。由uA741运放实现DAC0832输出电流到电压的转换,通过CD4046与CD4060组成的100倍频电路,尽量达到题目频率要求。在LCD1602上实

11、时显示频率与幅值,波形在示波器上显示。2、2总体框图本系统总体框图如图2、1所示。图 2.1 系统框图三、硬件电路本系统由单片机、波形转换(D/A)电路、显示接口电路、倍频电路等四部分构成。电路图附在后面。3、1单片机电路3、1、1 功能与基本原理功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。 AT89S51外接12M晶振作为时钟频率,并采用电源复位设计。复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过对电容充电。RST端电压慢慢下降,降到一定程序,即为

12、低电平,单片机开始工作。产生方波程序思路:根据定时器溢出的时间,将频率值换算为定时器溢出的次数(T1_over_num)。使用变量(T1_cnt)暂存定时器T1的溢出次数,当达到规定的次数(T1_over_num)时,将输出管脚的状态取反达到方波的产生。另外,采用查询的方式实现按键的扫描和LCD液晶的显示,中断服务程序实现方波的产生和连续按键的计时功能。 3、1、2 资源分配 软、硬件设计是设计中不可缺少的,为了满足功能和指标的要求,资源分配为:单片机用12M晶振,P0口与DAC0832相连;P1口接八个按键,实现频率、幅度、占空比的调节,以及波形选择;P2口接LCD1602液晶显示器,实时显

13、示频率与幅值。3、2波形转换(D/A)电路功能:将波形样值的编码转换成模拟值,完成的波形输出。 由一片0832和uA741运放组成。DAC0832是一个具有两个输入数据寄存器的8位DAC。目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需要外加电路。0832是电流输出型,示波器上显示波形,通常需要电压信

14、号,电流信号到电压信号的转换可以由运算放大器uA741实现。 单片机向0832发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则0832输出N个样值点后,样值点形成运动轨迹,即一个周期。重复输出N个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。这样就控制了输出的波形及其幅值和频率。具体连接如图3、1所示。 图3、1 D/A转换电路3、3显示接口电路功能:驱动LCD1602液晶显示,扫描按钮。

15、由LCD1602液晶显示器和7个按钮组成。当某一按钮按下时,扫描程序扫描到之后,通过P2口将数字信号发送到LCD1602。LCD1602种专门用于显示字母、数字、符号等点阵式LCD,它的外接电压也是+5V。扫描利用软件程序实现,当某一按键按下时,扫描程序立即检测到,随后调用子程序,执行相应的功能。其与单片机的连接如图3、2所示。 图3、2 显示接口电路3、4倍频电路功能:实现100倍频,使输出频率达到题目要求。CD4046是通用的CMOS锁相环集成电路,其特点是电源电压范围宽(为3V18V),输入阻抗高(约100M),动态功耗小,在中心频率f0为10kHz下功耗仅为600W,属微功耗器件。CD

16、4518是一个同步加计数器,在一个封装中含有两个可互换二/十进制计数器,其功能引脚分别为17和915.该CD4518计数器是单路系列脉冲输入(1脚或2脚;9脚或10脚),4路BCD码信号输出(3脚6脚;11脚14脚)。由锁相环CD4046与计数器CD4518实现100倍倍频。当从14脚输入频率f1的信号时,在3脚(相位比较信号输入信号)、4脚(压控振荡器输出信号)之间接计数器4518,输出端4脚频率f2=100f1。具体电路连接如图3、3所示。图3、3 倍频电路四、软件设计及流程主程序和子程序都放在89S52单片机中。主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的

17、键转到相应的子程序进行处理。子程序的功能有:延时子程序程序、中断子程序、调幅子程序、调频子程序、显示等。主程序流程图为:五、调试与测试结果采用分别调试各个单元模块,调通后再进行各单元电路联机统调的方法,提高调试效率。5、1 硬件调试整个硬件调试过程基本顺利,由于采用了分单元模块制作,各单元电路工作稳定,给调试工作带来很大的方便。1)放大模块部分在实物模拟时,出现发送信号不稳定、跳变的问题。经过仔细检查电路线路路径和线路连接问题,最终发现电路在连接时出现未连接牢固的问题,从而得以解决。2)调试过程中,锁相环倍频电路未能实现100倍频,没有达到预期效果,频率未能达到1MHz。各单元调试通过以后,进

18、行整机调试,调试结果显示,整个系统能够正常工作。5、2 软件调试由于对51系列单片机编程比较熟悉,在软件的仿真调试过程中没有遇到太大的问题。各软件功能均正常实现。六、结束语经过近几个月的锻炼和学习,我们学到了许多书本上没有的知识,从方案的论证、课题的选择、电路原理,到电路上元器件的焊接、电路的调试,程序的编写,调试下载,一步步,我们收获很大。在设计中,我们力求硬件电路简单,充分发挥软件灵活方面的特点,满足系统设计要求。这中间,我们也遇到了许多困难,在老师的帮助下,一个个也都战胜了。由于我们这个团队接触单片机时间还不长,有很多东西我们还没有学好,学精,所以,设计的方案可能不是最好的,但我们已经尽

19、到我们最大努力来完成此次作品,希望取得好的结果,能学到更加多得知识。所以,在以后的学习中,我们要更加努力,才能处于不败之地。在此,要感谢我们的指导老师,给我们进行了很多的辅导,不仅在技术上给了我很大帮助,也在系统需求和设计方面给予了我很大帮助。老师的谆谆教导,使我们受益匪浅。七、参考文献1 李勋,刘源.单片机实用教程.北京:北京航空航天大学出版社,20002 李珍付,植桐.单片机原理与应用技术.北京:清华大学出版社,20033 李朝清.单片机原理及接口技术.北京:北京航空航天大学出版社,19994 胡汉才.单片机原理及系统设计.北京:清华大学出版社,20025 万福君,潘松峰.单片机微机原理系

20、统设计与应用.合肥:中国科学技术大学出版社,20016 陈明英.8051单片机课程设计实训教材.北京:清华大学出版社, 20027 张洪润,易涛.单片机应用技术教程(第二版).北京:清华大学出版社,20038 张淑清,片微型计算机接口技术及应用.北京:国防工业出版社,2001 9 王松武,常用电路模块分析与设计指导.清华大学出版社,2007八、附录8、1 元件清单Part Type Designator1M R22.2u C56.8K R310K R110k RP110uF C112M S1220p S1020p S1189S52 U1100K R41000p C24046 U5CAP C3C

21、APACITOR POL C4CD4518 U6CON5 J1DAC0832 U4SW-PB S5SW-PB S2SW-PB S7SW-PB S3SW-PB S9SW-PB S4SW-PB S1SW-PB S8SW-PB S6uA741 U28、2 电路原理图8、3 程序清单#include #define uchar unsigned charsbit rs=P30;sbit rw=P31;sbit eg=P32;uchar code table=Volt ;uchar code table2=0,1,2,3,4,5,6,7,8,9;uchar code tosin256=0x80,0x83

22、,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff

23、,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93

24、,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04

25、,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e ,0x51,0x

26、55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 ;/正弦波数据 uchar b=0,c=0,d=0,e=0,i,k,tl,th;int ww=0,qw=0,bw=9,sw=3,gw=3,n=20,chh=50;/ww为万位数字,qw为千位数字,bw为百位数字, /sw为十位数字,gw为个位数字.int t,f,m,choice=1,zk=50; /t为时间变量,f为频率变量,choice为波形类型选择变量,zk为占空比变量,默认占空比为50%/延时程序,延时Xms*void delay(unsi

27、gned int x) int i,j; for(i=0;ix;i+) for(j=0;j120;j+);/写指令函数*void writezl(unsigned char zl) rs=0; rw=0;/满足写指令的条件; P2=zl; delay(5); eg=1; delay(5); eg=0; /写数据函数*void writesj(unsigned char sj) rs=1; rw=0;/满足写数据的条件; P2=sj; delay(5); eg=1; delay(5); eg=0;/初始化程序*void initial() eg=0; writezl(0x38);/显示模式设置;

28、 writezl(0x0c);/开显示,不开光标,光标不闪烁; writezl(0x06);/写数据时,每写一个数据,指针后移动一位,但是整屏不动; writezl(0x80+0x00); /在显示器的第一行第一位开始写数据; /显示函数*void display() int i; for(i=0;i3;i+) writesj(tablei); writezl(0x80+0x04) ; writesj(table2chh/10); writezl(0x80+0x05); writesj(.); writezl(0x80+0x06); writesj(table2chh%10); writezl

29、(0x80+0x07); writesj(V); writezl(0x02);/清除指针,但是不清楚显示内容; writezl(0x80+0x40);/跳转到下行的第一位开始置显示; writesj(F); writezl(0x80+0x41); writesj(r); writezl(0x80+0x42); writesj(e); writezl(0x80+0x43); writesj(table2ww); writezl(0x80+0x44); writesj(table2qw); writezl(0x80+0x45); writesj(table2bw); writezl(0x80+0x

30、46); writesj(table2sw); writezl(0x80+0x47); writesj(table2gw); writezl(0x80+0x48); writesj(H); writezl(0x80+0x49); writesj(z); writezl(0x80+0x50); writesj( ); /*键选择发波类型,1为正弦波,2为三角波,3为方波*/void key1(void) if(choice4)choice=choice+1; elsechoice=1;/幅度加*/void key2(void) if(chh!=50) chh+; else chh=chh;/幅度减*/void key3(void)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1