数字通信信源设计(副本).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 Proteus 简介 Proteus软件是英国Labcenter electronics公司出版的EDA(该软件总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。 PROTEUS 是单片机课堂教学的先进助手。 PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 图2.1.1 数字通信信源原理方框图 方案二:利用单片机我们可以对晶振产生的频率进行分频的设计,这次的分频主要用89C52进行实现。同样为了实现信源长度为32位,发出信号前8位为群同步码,后24位为数字信源,信源速率为256bit/s的码形,我们可以将P1.0,P1.1,P1.2的输出频率分别设为128Hz、64Hz、32Hz,将P2.0,P2.1的频率分别设为16Hz、8Hz,其中P1口用于控制74LS151八位数据选择器,P2口用于控制四位数据选择器,这样就可以实现32为码元的输出,并且信源速率为256bit/s。其原理方框图2.1.2所示: 图2.1.2 数字通信信源原理方框图 由上述所示的两种方案,其原理近乎相同,但是当我们的分频设计的软件实现时,可以看出用方案二可以省去直接分频的设定,直接用中断延时进行产生,程序的编辑较方案一简单,因此在这次的设计中我选择用方案二进行码元的输出。 3数字通信信源的实现 3.1 电路的结构 这次课程设计中的数字通信信源的结构可以分为两个两个部分,分别为数字信号的产生和数字信号的输出。 数字信号的产生需要用到4个拨码开关、图3.1.1 信号的产生 数字信号的输出,主要通过单片机程序的输入,控制P1.0、、、、、、图3.1.2 信号的输出 这两部分完整的连接图如下图3.1.3所示: 图3.1.3 完整原理连接图 生成的PCB如图3.1.4所示: 图3.1.4 PCB图 3.2 数据的仿真 按照用proteus的仿真连接图进行电路的连接,通过Keil软件进行程序的编写,然后生存HEX文件,将HEX文件读入89C52单片机中,进行电路的仿真,仿真的波形如图4.1所示(A端口为码元信息,D端口为同步码信息): 图4.1 仿真的波形 编写的程序: #includereg52.h unsigned int k1,k2; sbit E=P3^2; sbit F=P3^5; void main() { P1=0x00; P2=0x00; TMOD=0x01; TH0=(65536-4000)/256; TL0=(65536-4000)%256; EA=1; ET0=1; TR0=1; while(1) { if (k1==1 ) { F=~F; E=~E; k1=0; P1++; if(P1==0x07) { P1=0; } } if(k2==8) { k2=0; P2++; if(P2==3) { P2=0;

文档评论(0)

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

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

1亿VIP精品文档

相关文档