光通信课程设计教学提纲.doc

上传人:1595****071 文档编号:52292386 上传时间:2022-10-22 格式:DOC 页数:35 大小:422KB
返回 下载 相关 举报
光通信课程设计教学提纲.doc_第1页
第1页 / 共35页
光通信课程设计教学提纲.doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《光通信课程设计教学提纲.doc》由会员分享,可在线阅读,更多相关《光通信课程设计教学提纲.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。光通信课程设计-光通信技术课程设计一、系统功能描述此系统是一个通过红外通信进行简单信号传输的装置,分为发送和接收两部分。发送装置接有简易键盘,按下按键后,单片机采集信号处理后通过红外发送出去。接收装置收到信号后,进行解析,然后通过数码管显示出相应的码型。二、系统所用元器件及设备发送端:AT89C521、红外发射二极管1、80501、按键开关10、11.0592M晶振1电容:10F1、20pF2电阻:1k2、1001接收端:74LS2731、AT89C521、按键开关1、7段共阳极数码管2、85502、1

2、1.0592M晶振1、红外接收器SM00381电容:10F2、20pF2电阻:1002、1k1、4.7k2设备:稳压电源5v示波器三、系统实现功能原理发送端:输入方式采用33阵列(9按键)键盘,一共6根信号线,接入单片机P1口。每个按键在单片机P1口上对应唯一8位2进制值。当按下键盘上的不同按键时,通过编码器产生与之相应的特定的二进制脉冲码信号。将此二进制脉冲码信号先调制在38KHz的载波上,经过放大后,激发红外发光二极管转发成波长940nm的红外线光传输出去。接收端:红外接收器采用一体化红外遥控接收器SM0038,红外线数字信号则经过红外接收器取出数字信号数据经单片机译码,最后送到显示电路。

3、主要芯片AT89C51:引脚图:功能介绍:AT89C51是一个低电压,高性能CMOS8位单片机,片内含4KBYTES的可反复擦写的只读程序存储器(PEROM)和128BYTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进

4、行编程,也可以在线编程。其将通用的微处理器和FLASH存储器结合在一起,特别是可反复擦写的FLASH存储器可有效地降低开发成本。管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P

5、1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制

6、信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信

7、号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。/ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序

8、存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。四、系统原理图及说明见附1五、程序流程图发射端:NYNY键按下逐行扫描,按P口值查键号按键号转至

9、相应的发射程序装入发射脉冲个数到(R1)发3ms脉冲停发1ms(R1)-1=0?发1ms脉冲停发1ms开始发射初始化扫描键盘延时消抖结束图5.1:发射主程序流程图图5.2:发射程序流程图图5:发射流程图接收端:NYNYNY初始化低电平脉宽2ms?接收并对低电平脉冲计数高电平脉冲宽3ms?按脉冲个数至对应功能程序中断返回中断开始开始是否有中断?调中断子程序按照按键数显示图6.1:接收主程序流程图图6.2:中断子程序流程图图6:接收流程图六、系统源程序见附2七、系统性能发射部分:接入电源后,33键盘对P1.7没有调制作用,P1.7输出波形为正弦波。接收部分:经38KHz光源信号,显示器不亮。P3.

10、2管脚波形变化,说明接收到信号。八、改进方案发射部分:改变单片机程序,使P1.7管脚输出方波,通过摄像头观察红外发射二极管变化,发现二极管明暗变化,说明输出方波。接收部分:改变单片机程序,使得红外接收器接收到信号时共阳极数码管显示数字变化。设置数码管初始读数为77,接收到信号后变为11。延迟设置过大,不能进行循环,可通过复位键重置数码管显示数字77。九、结束语在过去的14周里,我们以红外通信为基础,经过了理论课、方案设计、元件选择、焊接电路、成品测试过程,最终完成了简单的红外通信装置。还记得理论课开始时的茫然无措,完全不知道如何进行后续的工作,经过网上查找资料等,确定最终的设计方案时,又觉得一

11、切尽在掌握。但在选择元件时才发现,我们对方案的原理、需要的器件等几乎一无所知,经过简单的了解后就开始了电路焊接,经过几周的电路焊接后,才隐隐觉得最终成品能否正常工作还是一个大问题。完成电路焊接后接着要下载程序到芯片,这时才发现程序是用汇编语言写的,难以理解,如果程序有错误修改起来会特别困难。还好在程序下载中没有遇到困难。但在最终的测试时,由于对汇编语言的不熟悉,发射端无法正常工作的原因也很难找到,只能修改成简单的程序。而在接收端测试时,数码管不亮的错误原因也草率的定为程序错误,没有仔细检查电路,在破坏原始电路后发现芯片管脚没有与电路连接(电路板内置线路利用错误),只好放弃原电路,重新编写程序测

12、试电路。经过14周的努力最终完成了红外通信装置,但成品与预期差距巨大。这暴露了我学习过程中的许多问题,例如初期确定方案时草率,没有考虑后续的电路工作、程序修改的问题;学习中不积极思考、遇到问题消极对待,不从自身找问题,电路错误时第一时间归为程序原因,而没有仔细检查电路。同时,在实际的设计电路、完成成品的过程中,我们也学到了许多课本上学不到的知识,让我们明白理论与实际的差距,学会了程序的编译下载、熟悉了电路焊接、巩固了模电知识、对单片机有了切实的认识。总之,这一次的课程设计让我们学到了很多东西,也暴露了我们自身存在的问题,这对以后的学习、生活有巨大的裨益。非常感谢周老师能为我们提供这样的机会。附

13、1:原始原理图:Send:Receive:附2:初始程序代码:发射程序;主程序和中断程序入口ORG0000HAJMPSTARTORG0003HRETIORG000BHRETIORG0013HRETIORG001BH;定时器T1中断入口地址LJMPINTT1;初始化程序CLEARMEMIO:CLRADECAMOVP0,AMOVP1,AMOVP2,AMOVP3,ACLRP1.7MOVIE,#00H;关所有中断MOVTMOD,#20H;方式2MOVTH1,#0F5H;定时初值MOVTL1,#0F5HSETBEARET;主程序START:LCALLCLEARMEMIOMAIN:LCALLKEYWORK

14、LJMPMAIN;中断服务程序INTT1:CPLP1.7;38.5KHZ红外遥控信号RETIKEYWORK:MOVP1,#0FFH;置P1口为输入状态CLRP1.7CLRP1.6CLRP1.0;扫描第1行MOVA,P1ANLA,#38HCJNEA,#38H,KEYCONSETBP1.0;扫描第2行CLRP1.1MOVA,P1ANLA,#38HCJNEA,#38H,KEYCONSETBP1.1;扫描第3行CLRP1.2MOVA,P1ANLA,#38HCJNEA,#38H,KEYCONSETBP1.2;结束扫描RETKEYCON:LCALLDELAY;延时去抖动MOVA,P1;读入P1口值ANLA

15、,#38HCJNEA,#38H,KEYCHE;确有键按下KEYOUT:RETKEYCHE:MOVA,P1MOVB,ALOOP:MOVA,P1ANLA,#38H;低3位为0CJNEA,#38H,LOOP;列选全为1(键按着)MOVR7,#00H;放键,查表次数为0MOVDPTR,#KEYTABCHELOOP:MOVA,R7MOVCA,A+DPTRXRLA,B;查表值与P1口值比较JZKEYOKINCR7CJNER7,#09H,CHELOOPRETKEYOK:MOVA,R7MOVB,ARLAADDA,BMOVDPTR,#KEYFUNTAB;散转功能程序首址JMPA+DPTR;散转至对应功能程序标号

16、KEYFUNTAB:LJMPKEYFUN00;跳到键号对应功能程序标号LJMPKEYFUN01LJMPKEYFUN02LJMPKEYFUN03LJMPKEYFUN04LJMPKEYFUN05LJMPKEYFUN06LJMPKEYFUN07LJMPKEYFUN08RETKEYTAB:DB36H,35H,33H,2EH,2DH,2BH,1EH,1DH,1BH,0FFHKEYFUN00:MOVA,#02H;发送2个脉冲LCALLREMOTE;转发送程序RETKEYFUN01:MOVA,#03H;发送3个脉冲LCALLREMOTE;转发送程序RETKEYFUN02:MOVA,#04H;发送4个脉冲LC

17、ALLREMOTE;转发送程序RETKEYFUN03:MOVA,#05H;发送5个脉冲LCALLREMOTE;转发送程序RETKEYFUN04:MOVA,#06H;发送6个脉冲LCALLREMOTE;转发送程序RETKEYFUN05:MOVA,#07H;发送7个脉冲LCALLREMOTE;转发送程序RETKEYFUN06:MOVA,#08H;发送8个脉冲LCALLREMOTE;转发送程序RETKEYFUN07:MOVA,#09H;发送9个脉冲LCALLREMOTE;转发送程序RETKEYFUN08:MOVA,#0AH;发送10个脉冲LCALLREMOTE;转发送程序RET;编码发射程序REMO

18、TE:MOVR1,A;装入发射脉冲个数LJMPOUT3OUT:MOVR0,#75H;1MS宽低电平发射数据OUT1:SETBET1;开T1中断SETBTR1;开定时器T1NOPNOPNOPNOPDJNZR0,OUT1MOVR0,#32H;1MS宽高电平间隙控制数据OUT2:CLRTR1;关定时器T1CLRET1;关中断CLRP1.7;关脉冲输出NOPNOPNOPNOPNOPNOPNOPNOPNOPNOPNOPNOPNOPDJNZR0,OUT2;时间不到,转OUT2再循环DJNZR1,OUT;脉冲未发完,转OUT再循环发射LCALLDL500MSRETOUT3:MOVR0,#0FFH;装发射3M

19、S宽控制数据LJMPOUT1DELAY:MOVR2,#0FFHDELAY1:DJNZR2,DELAY1RET;10MS延时DL10MS:MOVR3,#14HDL10MS1:LCALLDELAYDJNZR3,DL10MS1RET;500MS延时程序DL500MS:MOVR4,#32HDL500MS1:LCALLDL10MSDJNZR4,DL500MS1RETEND接收程序;主程序和中断程序入口ORG0000HAJMPSTARTORG0003H;外部中断0中断入口LJMPINTEX0ORG000BHRETIORG0013HRETIORG001BHRETIORG0023HRETIORG002BHRE

20、TI;初始化程序CLEAR:CLRADECAMOVP0,AMOVP1,AMOVP2,AMOVP3,ACLEARMEM:MOVIE,#00H;关所有中断SETBEX0;开外中断SETBEA;总中断允许RETSTART:LCALLCLEARSJMP$;遥控接收程序(采用中断接收)INTEX0:CLREX0;关外中断JNBP3.2,READ1READOUT:SETBEX0;允许外部中断0中断RETIREAD1:CLRAMOVDPH,A;DPTR清零MOVDPL,AHARD1:JBP3.2,HARD11;P3.2变高电平转HARD11INCDPTR;低电平记数NOP;1US延时NOPAJMPHARD1

21、HARD11:MOVA,DPH;DPTR高8位放入AJZREADOUT;为0则脉宽小于(255*8US)2MS退出CLRA;否则第一个为宽脉冲(计数器先清0)CLRP3.6READ11:INCAREAD12:JNBP3.2,READ12;低电平时等待MOVR1,#06HREAD13:JNBP3.2,READ11LCALLDELAY;延时512USDJNZR1,READ13;6次延时DECA;超过3MS判为结束,减1DECAJZFUN0;为0执行FUN0(2个脉冲)DECAJZFUN1;为0执行FUN1(3个脉冲)DECAJZFUN2;为0执行FUN2(4个脉冲)DECAJZFUN3;为0执行F

22、UN3(5个脉冲)DECAJZFUN4;为0执行FUN4(6个脉冲)DECAJZFUN5;为0执行FUN5(7个脉冲)DECAJZFUN6;为0执行FUN6(8个脉冲)DECAJZFUN7;为0执行FUN7(9个脉冲)DECAJZFUN8;为0执行FUN8(10个脉冲)NOPNOPLJMPREADOUT;出错退出FUN0:MOVR0,#00HLJMPDISPLAYFUN1:MOVR0,#01HLJMPDISPLAYFUN2:MOVR0,#02HLJMPDISPLAYFUN3:MOVR0,#03HLJMPDISPLAYFUN4:MOVR0,#04HLJMPDISPLAYFUN5:MOVR0,#0

23、5HLJMPDISPLAYFUN6:MOVR0,#06HLJMPDISPLAYFUN7:MOVR0,#07HLJMPDISPLAYFUN8:MOVR0,#08HLJMPDISPLAYDISPLAY:MOVDPTR,#TABLEMOVP0,#0C0H;关闭所有共阳7段LEDMOVP2,#02H;片选高位MOVA,R0MOVCA,A+DPTR;查表得显示内容MOVP0,ALJMPREADOUT;延时程序(512US)DELAY:MOVR0,#0FFHDELAY1:DJNZR0,DELAY1RETTABLE:DB0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

24、END改进后程序代码:发射程序:#include/寄存器定义文件sbitP17=P17;/P1口的7位voidxx()interrupt1main()/主程序TMOD=1;/定时器1方式1=16位定时P17=!P17;TH1=-10000/256;TL1=-10000%256;/60000次中断一次=60msET0=1;/开定时器1中断TR0=1;/启动定时器1EA=1;/开总中断while(1)/巡回检测接收程序:#include/寄存器定义文件sbitP32=P32;sbitP20=P20;sbitP21=P21;sbitP22=P22;inti;main()/主程序while(1)/巡回检测if(P32=0)P20=1;P21=0;P22=0;for(i=0;i60000;i+);P20=0;P21=0;P22=0;-

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

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁