AT89C51单片机作为波形发生器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT89C51单片机作为波形发生器

摘 要 信号发生器在教学、试验、测控等各个领域都有着十分广泛的应用,而且随着现代电子通讯技术的发展, 常常需要高精度且频率可方便调节的信号发生器。 本设计直接采用AT89C51单片机作为波形发生器的重要元件,加上巧妙的软件设计和简易的外围电路,产生频率、幅度可调的正弦波、三角波、锯齿波以及方波等多种信号。信号的频率、幅值、通过键盘直接输入,并由LED显示。与现有各类型波形发生器比较而言,ATMEL的AT89C51是一种高效微控制器,其产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便,成本低,非常适合于物理实验室教学与实验使用。 关键词: AT89C51单片机、 波形发生器、 LED显示; 基于单片机的信号发生器设计 收藏 这个学期的最后一个月,我们正式进入课程设计实验。本次我选择了基于单片机的信号发生器设计的这个课程设计,因为相对比较简单,就一个89C51和D/A0832就搞定。余老师还是比较好的,像他们软件的要焊接,额,密密麻麻的一大堆线,看着就烦。呵呵,好了,以下要谈谈这次设计的过程了。 首先,本次设计的要求是以单片机为基础,利用D/A转换器,编程能产生锯齿波、方波、正弦波、三角波四种波形,使波形可变且频率可调的信号发生器。主要难度是波形进行变化和频率可调,好,先准备实验要求的设备, PC机一台(并安装Keil 模拟仿真器软件)实验箱一个、导线落干根,示波器一台。本来我是想用伟福来进行仿真的,可惜没下载器,一切就绪,马上开始,下面是本次报告中的一部分。 一、 设计思路 利用Keil C51 系列仿真系统实现。主要利用其中89C51,D/A0832,拨位开关、按键等模块。 1、 波形选择:利用8051分别实时地对P1.0、P1.1两口进行扫描,如果发现两口对应相应的数值,即有四种状态:00,01,10,11,根据四种状态跳到对应的波形程序。 2、 三种波形的实现:方波:由8051对P0口不断交替输出00H和0FFH,有D/A0832转换成模拟量实现; 三角波:由8051对P0口输出00H,在每一个时钟到来时对输出值加一;当加至0FFH时,继而在时钟来临时减一,这样往复执行,最终输出近似连续的三角波; 正弦波:将00H到0FFH按照正弦波波形的变化趋势分成255个间断的点,形成一个正选波取值表,用8051在每一个时钟到来时取表值通过P0口送至D/A0832转换输出。 锯齿波:和三角波相似,当加至0FFH时,由从00H开始加,这样往复执行,最终得到连续的锯齿波。 3、 频率调节:利用中断方式,当-INT0接收到一个负脉冲时,使延时程序中时间常数加一,进而实现频率加;当-INT1接收到一个负脉冲时,使延时程序中时间常数减一,实现频率减。 下面是实验代码 org 0000h ajmp start ORG 0003H ;中断!INT0的入口地址 INC R7 ;频率加1 inc r3 RETI ORG 0013H ;中断!INT1的入口地址 DEC R7 ;频率减1 dec r3 RETI org 0100h START: setb EA ;开CPU中断 SETB IE0 ;开!INT0的中断标志 SETB IE1 ;开!INT1的中断标志 SETB EX1 SETB IT1 ;允许!INT1中断 SETB IT0 ;允许!INT0中断 SETB EX0 mov r3,#11 ;改变方波的频率 MOV R7,#5;改变数值可以改变正弦波、三角波、锯齿波的频率 loop: ;查询键盘 ; anl p1,#03h ;使P1.0、P1.0有效 MOV a,p1 cjne a,#00h,l1 ;K1,K2开关为都为低,则输出锯齿波。否则跳到L1 jmp jcb l1: cjne a,#01h,l2 ;K1高,K2为低,则输出方波。否则跳到L2 jmp fb l2: cjne a,#02h,l3 ;K1低,K2高,则输出三角波,否则跳到L3 jmp

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档