单片机自发自收串口通信实验_第1页
单片机自发自收串口通信实验_第2页
单片机自发自收串口通信实验_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、实验十八单片机自发自收串口通信实验*实验冃的京握单片机亍通信的工作原理及编程办袪.二实验连线e"斤机的P3J0 RXDh T3 I TXD)通过电平转换芯片MAX232j£到9针D舉捕座 匕DM座和电址町以与草片机、FC机罐行串厅章*注倉:在抽拔串口前迎峯血裁关电i PC M拔帯口线时必锁关机!霆验电揶如卜图,用&纽将DT闻头的2* HUI脚连起来(.见卜谢乩线12Rioirr him Rim1101.71、P3. 0F3 1.113E-fl Clflr143:1C1+ci-C2+忻4:5-K T09C2*t ccG¥L-MAX23E占融片机肖农自收通佶实

2、鲨喫验连线图串口按全双工方式收、发数据,要求将内部RAM中 30H单元开始的20个数据发送出去, 同时自己接收该 20个数据,并把它们存入内部RAM中50H开始的数据单元中,波特率为2400bps,fosc=11.0592M ,发送与接收数据采用中断方式进行。响应中断后,通过检测是RI置位还是TI置位来确定是进行数据发送或是接收数据。 自发自收汇编调试程序如下:ORG0000HLJMPMAINORG0023HAJMPSBS1;转至中断服务子程序ORG0050HMAIN:MOVSP,#60HMOVTMOD,#2OH;定时器1设为模式2MOVTL1,#0FAH;MOVTH1,#0FAH;置定时器初

3、值SETBTR1;启动T1MOVSCON,#50H;将串口设置为方式1,REN=1MOVR0,#30H;发送数据区首地址送R0MOVR1,#50H;接收数据区首地址送R1MOVR2,#20H;置发送数据个数送R2LCALLSOUT;调用发射子程序SETBES;SETBEA;开中断LOOP:AJMPLOOP;等待中断ORG0100H;中断服务子程序SBS1:JNBRI,SEND; TI=1 ,为发送中断ACALLSIN; RI=1 ,为接收中断SJMPNEXTSEND:ACALLSOUT;调用发送子程序NEXT:RETISOUT:CLRTI;清发送中断标志DJNZR2,LOOP1;数据未发送完,

4、继续发送SJMPRR1;发送完返回LOOP1:MOVA,R0;取发送数据到 AMOVSBUF,A;发送数据INCR0;指向下一个数据RR1:RETSIN:CLRRI;清接收中断标志MOVA,SBUF;读接收数据MOVR1,A;存入数据缓冲区INCR1;指向下一个存储单元RET RS232 通信芯片的测试该芯片把TTL电平转换成为 RS232电平,或把 RS232电平转换成TTL电平。RS232电平标准是:-12V s-15V为逻辑“1”+12V s +15V为逻辑“ 0”在 15 米范围内,最大传输波特率为 20KB/S 。为了看到 RS232 芯片各相关引脚波形,在参考程序的 SEND :

5、ACALL SOUT 后应增加 一条 AJMP SEND 指令, 在该处循环发送数据, 则 MAX232 芯片的 11 脚上应能测到 0Vs +5V的脉冲波,在 14脚上可看到-10V s +10V的脉冲波。若 D型头2s 3短接,在 MAX232芯 片的13脚上可看到-10Vs +10V的脉冲,12脚上可看到0Vs +5V的脉冲波,并可一直传送 到单片机的RXD端。当发送信号波形正确后,一定要去掉添加的指令,再执行指令,自发自收的数据应准确发送与接收。若数据不能正确的发送,可检查MAX232芯片的1脚,是否有+5Vs +10V的矩形波,3脚是否有0Vs +5V的矩形波,4脚是否有0Vs +8

6、V的矩形波,5脚有-10V s 0V的矩形波,2脚为 +10V的高电平,6脚为-10V的低电平。当出现不正常现象时,要检查倍压电容和滤波电容 及MAX232芯片。实验十九单片机双机通信实验*审tJfi信电缆叱一!_一注双机逋倍实验连统囲设冃、乙两机进行通信、波特率为2斗00品扳均采12MHz甲机梅内祁 数期存倩器20H 2FH扶16亍单元的内容向乙机发送*发送效抵之帕務SHK块 长度发给乙机.当数攥发送完向乙机发送一个累加效验利.乙机接收数据进存 累加和效鑒.如果相发送方的囂M和一致、发数抵0.纠示接收止确b占则.甲方冉重決*三、实验程序;甲机发送程序*以BJW:編碼言的程序TRTOVTMOD

7、,忙OHMOVTHl.迹SHX4OVTT1刼F曲SETBTRI;H 初始化,適波痔率北2400MOVSCON.«0H伸口初姐化为方式1*允许搔牧RPTMOVRD.£0HMOVR6.UOH嵌度芳存器初始化I0V舐切OH;效验和MOV汨VF-R5;发送栓度L1;JBCT1L3:粵特发进完AJMPLIL2:MGV扎fiRO:址取址摞MO'SETOA;芨送数据.DD史;'1醴JR加和SRSMOKJ.AINCROL4:JBC11,UATSfPuL3:DJNZR6.L2:九析16个数摇迪否发这亢MOVSBUP.R5;发送敘购码MOV瓯ffOOHTATRCTTT t.Wf

8、PL6L?.JECRI.L7ADIFU:等乙机回善L7: MOV A,SBUFJZL8;发送正确返回AJNIP RPT;发迖有锚.重发L8: RET乙机後收稈序;以卜是汇编语言的程序RSU:MOV MOV MOV SETBMOVTMOD. #20HTH1, TL1. TRISCON,?0F3H#0F3H?50H;串行通信方式1,允许接收RPT:MOVRL#20H;置接收缓冲区首址L0:JBCRI.LIAJMPLOL1:MOVA,SBUF;接收数抑长度MOVR6.AMOVR5.#OOH加和寄存器消0WTD:JBCRLL2AJMPWTDL2:MOVA,SBUF;接收数据MOVR0AINCROADD

9、A.R5MOVR5.A;计算累加效验和DJNZR6WTD;未接收完,继续L5:JBCRI.L4;接收对方发來的效验和AJMPL5L4:MOVA.SBUFXRLA,R5;接收的效验码和计算的效验码定 ;否相同MOVR5#OOHJZL6;同,转L6MOVSBUF.#0FFH;不同,出错发送OFFHL8:JBCTIL7AJMPL8:等待0FFH发送完L7:AJMPRPT;重新接收L6:MOVSBUF.#OOH;止确,发送OOHL9:JBCTLLIOAJMPL9;等待0011发送完L1O:RET甲机发送程序,UF是C语言的程序hnclude <reg51 h>define uchar un

10、signed ciuu uchar *p=0x20; void coaiiwtO严指竹p折向内部RAM 2011唯元/ 厂串口初始化程序/TNIOD-0x20;THl=0xfe:TLl»0xfe:TR1=1;SCON=0x50:sendQucliar 1; ucliai j-0;sendDT: i=l 6;SBUF-i: while(TI!=l);for(i-16; i: i-) 戶i为发送数据的长度可 鬥为效验和匕厂发送K度/产等待发送/SBUF-*p; j=j + S; pi; vvhile(TI !=1); SBUF于J=o; xvhile(TI!=l): while(RI !

11、-l); if(SBUF=0) return: eke goto seadDT;严发送数第W 严形成累加和广等待发辽产等待乙机冋答/及斤乙机止确接收.则返冋否則重发七cominitO; seud();乙机搖收程曲以卜是C语言的程序aiacluck <«g51h>define uchar unsigned charuchar *p)x20; void com_imt()产折什P折向内部RAM 20h中元W 严串口初始化程序*7TMOD=0x20;THl-Cxfe, TLl=Oxfo;TRI*SCON=0x50: leciW)(uchaii;/发送长度/uchar j=0; 尸累加利清0引 lecivDT:wlule( !RI);i=SBUF;厂

温馨提示

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

评论

0/150

提交评论