串行通信试验报告_第1页
串行通信试验报告_第2页
串行通信试验报告_第3页
串行通信试验报告_第4页
串行通信试验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

串行通信实验报告班级姓名学号日期一、实验目的:1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。2、了解实现串行通讯的硬环境、数据格式的协议、 数据交换的协议。3、学习串口通讯的程序编写方法。二、实验要求.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。三、实验说明通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H〜3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。四、程序甲方发送程序如下:ORG0000HLJMPMAINORG0023HLJMPCOM_INTORG1000HMAIN:MOVSP,#53HMOV78H,#20H

HERE:TRANS:WAIT1:HERE:TRANS:WAIT1:WAIT2:WAIT3:MOV76H,20HMOV75H,40HACALLTRANSSJMPHEREMOV TMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#80HSETBTR1MOVSCON,#40HMOVIE,#00HCLRF0MOVSBUF,78HJNBTI,WAIT1CLRTIMOVSBUF,77HJNBTI,WAIT2CLRTIMOVSBUF,76HJNBTI,WAIT3CLRTI

MOVWAIT4:JNBCLRMOVMOVMOVMOVXMOVWAIT:JNBRETCOM_INT:CLRINCMOVCJNEMOVCJNESETBCLRCLRRETEND1: MOVXSBUF,75HTI,WAIT4TISBUF,75HTI,WAIT4TIIE,#90HDPH,78HDPL,77HA,@DPTRSBUF,AF0,WAITTIDPTRA,DPHA,76H,END1A,DPLA,75H,END1F0ESEAA,@DPTRRETIEND乙方发送程序如下:ORG0000HLJMPMAINORG0023HORG1000HMAIN:MOVSP,#53HACALLRECEIHERE:SJMPHERERECEI:MOVR0,#78HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#80HSETBTR1MOVSCON,#50HMOVIE,#90HCLRF0CLR7FHWAIT:JNB7FH,WAITCOMINTLJMPRETCOM_INT:PUSHDPLPUSHDPHPUSHAccCLRRIJBF0,R_DATAMOVA,SBUFMOV@R0,ADECR0CJNER0,#74H,RETNSETBF0RETN:POPAccPOPDPHPOPDPLRETIR_DATA:MOVDPH,78HMOVDPL,77HMOVA,SBUFMOVX@DPTR,AINC77HMOVA,77HJNZEND2INC78HEND2: MOVA,76HCJNEA,78H,RETNMOVA,75HCJNEA,77H,RETNCLR ESCLR EASETB7FHSJMPRETNEND五、实验过程中遇到的主要问题OUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口INequ08001h;键盘读入口HasRcvequ20h.0 ;接收标志位LEDBufequ40h ;显示缓冲RCVBufequ50H ;接收缓冲ORG0000HLJMPSTART;串行口中断程序ORG0023HJNB TI,S0_RCLR TINOPSJMPS0_RETS0_R: ;接收数据CLRRIMOVRCVBUF,SBUF;保存数据SETBHasRcv ;提示收到数据NOPS0_RET:

RETILEDMAP: ;八段管显示码db 3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb 7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay: ;延时子程序movr7,#0DelayLoop:djnzdjnzretr7,DelayLoopr6,DelayLoopDisplayLED:movr0,#LEDBufmovr1,#6 ;共6个八段管movr2,#00100000b;从左边开始显示Loop:movdptr,#OUTBITmova,#0movx@dptr,a ;关所有八段管mova,@r0movdptr,#OUTSEGmovx@dptr,amovdptr,#OUTBITmova,r2movx@dptr,a ;显示一位八段管movr6,#1callDelaymova,r2 ;显示下一位rramovr2,aincr0djnzr1,LoopretTestKey:movdptr,#OUTBITmova,#0movx@dptr,a ;输出线置为0movdptr,#INmovxa,@dptr ;读入键状态cplaanl a,#0fh ;高四位不用retKeyTable: ;键码定义db 16h,15h,14h,0ffhdb 13h,12h,11h,10hdb 0dh,0ch,0bh,0ahdb 0eh,03h,06h,09hdb 0fh,02h,05h,08hdb 00h,01h,04h,07hGetKey:movdptr,#OUTBITmovP2,dphmovr0,#Low(IN)movr1,#00100000bmovr2,#6KLoop:mova,r1;找出键所在列cplamovx@dptr,acplarramovr1,a;下一列movxa,@r0cplaanla,#0fhjnzGoon1;该列有键入djnzr2,KLoopmovr2,#0ffh;没有键按下,返回0ffhsjmpExitGoon1:movr1,a;键值=列X4+行mova,r2

decarlarlamovr2,a;r2=(r2-1)*4mova,r1;r1中为读入的行值movr1,#4LoopC:rrca;移位找出所在行jcExitincr2;r2=r2+行值djnzr1,LoopCExit:mova,r2;取出键码movdptr,#KeyTablemovca,@a+dptrmovr2,aWaitRelease:movdptr,#OUTBIT;等键释放clramovx@dptr,amovr6,#10callDelaycallTestKeyjnzWaitReleasemova,r2retSTART:MOVSP,#60HMOVIE,#0 ;DISABLEALLINTERRUPTMOVTMOD,#020H;定时器1工作于方式2(8位重装)MOVTH1,#0F3H;波特率?2400BPS@12MHzMOVTL1,#0F3HANLPCON,#07FH;SMOD位清零orlPCON,#80hMOVSCON,#050H;串行口工作方式设置MOVLEDBuf,#0ffh;显示8.8.8.8.movLEDBuf+1,#0ffhmovLEDBuf+2,#0ffhmovLEDBuf+3,#0ffhmovLEDBuf+4,#0movLEDBuf+5,#0SETBTR1SETBESSETBEA;movsbuf,a;jnbti,$MLoop:jbHasRcv,RcvData;收到数据?callDisplayLED;显示callTestKey;有键入?jzMLoop;无键入,继续显示callGetKey;读入键码anla,#0fh;通讯口输出键码MOVSBUF,ALJMPMLoopRcvD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论