基于C8051F410的任意波形发生器素材.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于C8051F410的任意波形发生器 硬件电路 C8051F410单片机开发板一块 从上两图可以清楚的看到单片机置于板底层,而且是由品诺电子出品的。 波形调理电路 下图是波形调理电路,采用了两级同相比例放大电路,第一级在P0.0/IDAC0输入端对地接一330Ω电阻,目的是将电流信号转换成电压信号在对其进行放大,中间一级是电压跟随器,其目的是将两级放大电路相互隔离开,最后一级是压倍可变同相比例放大电路,其放大倍数在1~10之间可变,从而可实现模拟幅度调制。 问题:为什么I/V转换电阻选330Ω而不直接选1KΩ呢? 解答:在毕设起初调试阶段也采用过1KΩ电阻,其目的是直接想将2mA电压直接转换成2V电压,但调试许久仞未见到波形产生,最后才发现更换小电阻后就有波形了,于是才知道单片机的驱动能力有限,I/V转换电阻不宜过大,否则就实现不了想达到的效果。 几级电路间当时还采用了双插针隔离,图中P1,P3,P4均是双插针,这样设计的目的是为了调试方便,易查出问题所在。当然也可以放上单插针建立测试点测试即可,使用双插针在对各级测试好后可采用短路帽短接级联,从而实现整体电路功能。 下面做个简单估算: 想必大家也都熟知同相比例放大电路放大倍数: Au=1+Rf RN 那么第一级放大倍数就为3倍,输入电压VP-P为:330Ω*2mA=660mV,即输入的电压信号峰值为330mV,经过第一级放大转换出的信号幅值约为990mV(约1V)。 第二级放大倍数在1~10之间,也就是说输出电压幅值可在1V~10V之间变化。当然LM741运放采用的是±12V供的电,理论上输出波形幅值也可以达到12V,但是受开环增益影响,幅度在达到10V左右及以上的时候波形会有明显失真(当时我看到了正弦波有削顶失真)。 3.LCD12864显示电路 上图为显示电路,12864接法其实很简单,除了VSS,VDD,VO,BLA,BLK接电源外,还有两个空脚(Pin16和 Pin18),8位并行数据口DB0~DB7(Pin7~ Pin15),其他5位则是逻辑控制口,可通过单片机控制命令对其编程。 本次设计采用了串行数据传输模式,即用到了RS(CS),R/W(SID),E(SCLK),PSB,/RST,其中CS为串行传输片选端,SID为串行数据传输口,SCLK为串行数据传输时钟(通过置0写1完成),PSB为串行并行方式选择端(其中PSB=0为串行工作方式,PSB=1为并行工作方式)。在设计的时候预留了并行数据口,其目的是为了拓展使用。 注意:LCM12864M-3.3 Ver 20在焊接时需要将背面电阻R7上有一个三段焊盘全部断路,出厂时该显示屏这个三段焊盘靠外侧的两个焊盘是短接在一起的,所以一定要拿吸锡纸将焊锡拿掉。 软件程序 程序调试环境:Silicon Laboratories IDE 程序: //----------------------------------------------------------------------------- // Includes //----------------------------------------------------------------------------- #include c8051f410.h // SFR declarations //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // 16-bit SFR Definitions for F41x //----------------------------------------------------------------------------- sfr16 TMR3RL = 0x92; // Timer3 reload value sfr16 TMR3 = 0x94; // Timer3 counter sfr16 IDA0 = 0x96; // IDA0 high and low bytes //----------------------------------------------------------------------------- //------------------

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档