2022年波形发生器是一种常用的信号源 .pdf

上传人:Q****o 文档编号:28415826 上传时间:2022-07-28 格式:PDF 页数:11 大小:84.58KB
返回 下载 相关 举报
2022年波形发生器是一种常用的信号源 .pdf_第1页
第1页 / 共11页
2022年波形发生器是一种常用的信号源 .pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2022年波形发生器是一种常用的信号源 .pdf》由会员分享,可在线阅读,更多相关《2022年波形发生器是一种常用的信号源 .pdf(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本次课程设计使用的AT89S51 单片机构成的发生器可产生锯齿波、三角波、 正弦波等多种波形, 波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑等优点。在本设计的基础上,加上按钮控制和LED 显示器,则可通过按钮设定所需要的波形频率,并在LED 上显示频率、幅值电压,波形可用示波器显示。二、系统设计波形发生器原理方框图如下所示。波形的产生是通过AT89S51 执行某一波形发生程序,向D/A 转换器的输入端按一定的规律发生数据,从而在D/A 转换电路的输出端得到相应的电压波形

2、。在 AT89S51的 P2 口接 5 个按扭 ,通过软件编程来选择各种波形、幅值电压和频率,另有 3 个 P2 口管脚接 TEC6122 芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。 此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频率由单片机内部产生故使整个系统的频率降低。1、波形发生器技术指标1)波形:方波、正弦波、锯齿波;2)幅值电压:1V、2V、3V、4V、5V;3)频率: 10HZ 、 20HZ 、50HZ 、100HZ 、200HZ 、500HZ 、1KHZ ;2、操作设计1)上电后,系统初始化,数码显示6 个,? ,等待输入设置命令。2)按钮分别控

3、制“ 幅值 ” 、“ 频率 ” 、“ 方波 ” 、 “ 正弦波 ” 、“ 锯齿波 ” 。3)“ 幅值 “ 键初始值是1V,随后再次按下依次增长1V,到达 5V 后在按就回到1V 。4)“ 频率 “ 键初始值是10HZ ,随后在按下依次为20HZ 、50HZ 、100HZ 、200HZ 、500HZ 、1000HZ 循环。三、硬件设计本系统由单片机、显示接口电路,波形转换(D/A)电路和电源等四部分构成。电路图2 附在后1、单片机电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

4、页,共 11 页 - - - - - - - - - 功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A 接口电路和显示驱动电路。AT89S51 外接 12M 晶振作为时钟频率。并采用电源复位设计。复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是RST 引脚上为高电平,然后电源通过对电容充电。 RST 端电压慢慢下降,降到一定程序,即为低电平,单片机开始工作。AT89S51 的 P2 口作为功能按钮和TEC6122的接口。 P1 口做为 D/A 转换芯片0832 的接口。用定时 /计数器作为中断源。不同的频率值对应

5、不同的定时初值,允许定时器溢出中断。定时器中断的特殊功能寄存器设置如下:定时控制寄存器TCON 20H ;工作方式选择寄存器TMOD=01H ;中断允许控制寄存器IE=82H 。2、显示电路功能:驱动6 位数码管显示,扫描按钮。由集成驱动芯片TEC6122 、 6 位共阴极数码管和5 个按钮组成。当某一按钮按下时,扫描程序扫描到之后,通过P2 口将数字信号发送到TEC6122 芯片。 TEC6122 是一款数字集成芯片。它的外接电压也是+5V,并且由于数码管的载压较小,为了保护数码管,必须在两者间接电阻,大约是560 欧。扫描利用软件程序实现,当某一按键按下时,扫描程序立即检测到,随后调用子程

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

7、,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358 实现,用两片LM358可以实现双极性输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 单片机向0832 发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。假如N 个点构成波形的一个周期,则0832 输

8、出 N个样值点后,样值点形成运动轨迹,即一个周期。重复输出N 个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。这样就控制了输出的波形及其幅值和频率。四、软件设计主程序和子程序都存放在AT89S51 单片机中。主程序的功能是: 开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图1 所示。子程序的功能有:幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。下面是程序include #define uchar unsigned char #define uint unsigned int s

9、bit LCP=P22; sbit SCP=P21; sbit SI=P20; sbit S1=P23; sbit S2=P24; sbit S3=P25; sbit S4=P26; sbit S5=P27; sbit DA0832=P33; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - sbit DA0832_ON=P32; uchar fun=0,b=0,c=0,d=0,tl,th; uchar code tab10=0

10、 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; uchar code tosin256=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 x

11、e3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5 ,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd ,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1,0 xef,0 xee,0

12、 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda ,0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc,0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99 ,0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76,0 x72,0 x6f,0 x6c,0 x69

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

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

15、0 x43,0 x45,0 x48,0 x4c,0 x4e ,0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72,0 x76,0 x79,0 x7c,0 x80 ; void display(unsigned char command) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - unsigned char i; LCP=0; f

16、or(i=8;i0;i-) SCP=0; if(command & 0 x80)=0) SI=0; else SI=1; command=1; SCP=1; LCP=1; void key1(void) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - fun+; if(fun=4) fun=0 x00; void key2(void) tl+; if(tl=0 x1f) th+; void key3(void) tl-; if

17、(tl=0 x00) th-; void key4(void) double t; int f; TR0=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - t=(65535-th*256-tl)*0.4; f=(int)(1000/t); S3=tabf%10; f=f/10; S2=tabf%10; f=f/10; if(f=0) S1=0; else S1=tabf; TR0=1; void key5(void) tl

18、-; if(tl=0 x00) th+; void judge(void) uchar line,row,de1,de2,keym; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - P1=0 x0f; keym=P1; if(keym=0 x0f)return; for(de1=0;de1200;de1+) for(de2=0;de2125;de2+); P1=0 x0f; keym=P1; if(keym=0 x0f)ret

19、urn; P1=0 x0f; line=P1; P1=0 xf0; row=P1; line=line+row; /*存放特征键值 */ if(line=0 xde)key1(); if(line=0 x7e)key2(); if(line=0 xbd)key3(); if(line=0 x7d)key4(); void time0_int(void) interrupt 1 /中断服务程序 TR0=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - -

20、- - - - - - - if(fun=1) DA0832=tosinb; /正弦波b+; else if(fun=2) /锯齿波 if(c128) DA0832=c; else DA0832=255-c; c+; else if(fun=3) / 方波 d+; if(d=128) DA0832=0 x00; else DA0832=0 xff; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - TH0=th; TL0=tl;

21、 TR0=1; void main(void) TMOD=0X01; TR0=1; th=0 xff; tl=0 xd0; TH0=th; TL0=tl; ET0=1; EA=1; while(1) display(); judge(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 五、心得体会开始的时候由于没有经验,不知如何下手, 所以就去图书管找了一些书看,尽管有许多的设计方案, 可是总感觉自己还是有许多的东西弄不太

22、清楚,于是就请教同学。 他常做一些设计,有一些经验。 经过他的解释分析各方案之后,决定用查表的方法来做。这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。用8031 需要扩展ROM ,这样还要进行存储器扩展。 而且现在8031 实际中已经基本上不再使用,实际用的AT89S51芯片有 ROM ,这样把经过采样得到的数值制成表,利用查表来做就简单了。我认为程序应该不大,片内 ROM应该够用的。用LED 显示频率和幅值,现有集成的接口驱动芯片,波形可通过示波器进行显示,单片机接上D/A 转换芯片即可,这样硬件很快就搭好了。我以为这些做好了,构思也有了,写程序应该是相对容易的。谁知道,写起程序

23、来,才想到功能键要有扫描程序才行呀,我真的感到很难。 那时真的有点想放弃?于是就去请教了老师,老师帮忙分析了一下,自己又查阅了一些资料,终于明白了扫描程序怎么写。于是在自己的努力下,程序很快就写好了。这次是我的第一个设计器件,尽管经历了不少的艰辛, 但给我积累了一点设计的经验,最后也有点小小的成就感。后面的路还很长,我还的努力!参考文献1 童诗白,华成英.模拟电子技术基础M.北京 :高等教育出版社,2003.345-362 2 潘永雄,沙河,刘向阳.电子线路CAD 实用教程 M.西安: 西安电子科技大学出版社,2001.13-118. 3 张毅刚,彭喜源,谭晓昀,曲春波.MCS-51 单片机应用设计M.哈尔滨:哈尔滨工业大学出版社, 1997.53-61.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com