双单片机串口通信实验

上传人:第*** 文档编号:34213984 上传时间:2018-02-22 格式:DOC 页数:5 大小:56KB
返回 下载 相关 举报
双单片机串口通信实验_第1页
第1页 / 共5页
双单片机串口通信实验_第2页
第2页 / 共5页
双单片机串口通信实验_第3页
第3页 / 共5页
双单片机串口通信实验_第4页
第4页 / 共5页
双单片机串口通信实验_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《双单片机串口通信实验》由会员分享,可在线阅读,更多相关《双单片机串口通信实验(5页珍藏版)》请在金锄头文库上搜索。

1、重 庆 交 通 大 学学 生 实 验 报 告实验课程名称 单片机原理与应用 实 验 名 称 双单片机串口通信实验 实 验 类 型 设计性实验 开课实验室 电子实验室 学 院 信息科学与工程学院 学 生 姓 名 学号 开 课 时 间 2012 至 2013 学年第 2 学期实验评佑等级 很好 好 一般 差实验操作能力实验结果实验分析实验思考总结实验成绩教师签名一、 实验目的掌握单片机串口通信的设计方法,了解双单片机通信的原理二、 实验内容1、 编写发送方程序,接收方程序发送方代码ORG 0000HLJMP TRSORG 0030HTRS: MOV R7,#10HMOV R0,#40HMOV A,

2、#0TRS1: MOV R0,AINC AINC R0DJNZ R7,TRS1MOV SCON,#90H ;设置串行口工作方式 2MOV PCON,#80H ;波特率为 FOSC/32MOV R0,#40H ;设置片内数据指针MOV R2,#10H ;数据长度送 R2LOOP: MOV A,R0 ;取数据送 AMOV C,P ;奇偶位送 TB8MOV TB8,CMOV SBUF,A ;启动发送MOV P1,ALCALL DELAYWAIT: JBC TI, CONT ;判发送完标志SJMP WAITCONT: JBC RI,RE ;准备接收回送标SJMP CONTRE: MOV A,SBUF

3、;接收回送标志CJNE A,#00H,L ;回送标志错误,结INC R0 ;回送标志正确,继DJNZ R2,LOOP ;发送 16 个数据L: SJMP LDELAY: MOV R7,#3DD1: MOV R6,#0FFHDD2: MOV R5,#0FFHDJNZ R5,$DJNZ R6,DD2DJNZ R7,DD1RETEND接收方代码ORG 0000HLJMP REVORG 30HREV: MOV SCON,#90H ;设置串行口工作方式 2,允许接收MOV PCON,#80H ;波特率为 focs/32MOV R7,#10HLOOP: JBC RI,READ ;等待接收数据并清 0 标志

4、位 RISJMP LOOPREAD: MOV A, SBUF ;读入一帧数据JB PSW.0, ONE ;判接收端奇偶位JB RB8, RIGHT ;判发送端奇偶位SJMP RIGHTONE: JB RB8, ERRRIGHT: SWAP A ;接收正确,高低位交换MOV P1,A ;送往 P1 显示LCALL DELAY ;延时MOV SBUF,#00H ;回送正确标DJNZ R7,LOOP ;就收未完,继?L: SJMP LERR: MOV P1,#0FFH ;就收出错,显示 FFLCALL DELAY ;延时MOV SBUF,#0FFH ;回送出错标志DJNZ R7,LOOP ;接收未完

5、,继续LL: SJMP LLDELAY: MOV R7,#3DD1: MOV R6,#0FFHDD2: MOV R5,#0FFHDJNZ R5,$DJNZ R6,DD2DJNZ R7,DD1RETEND三、 实验步骤1、打开 keil 程序,执行菜单命令“project”new project”创建“双单片机串口通信”项目,并选择单片机型号为 AT89C51.2、执行菜单命令”file” ”new”创建文件,输入源程序,保存为“双单片机串口通信.A51“.在”project“栏的 file 项目管理窗口中右击文件组,选择”add file to group1“将源程序 ”双单片机串口通信 .A

6、51“添加到项目中。3、执行菜单命令“project”options for target target 1”,在弹出的对话框中选择“output”选项卡,选中 “create hex file”4、执行菜单命令“project“” build target”,编译源程序。如果编译成功,则在”output window“窗口中显示没有错误,并创建了” 双单片机串口通信.HEX“文件。5、在 protues 仿真平台上建立参考图系统,并将程序上载到虚拟芯片上运行。四、 实验调试及结果XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/3

7、6P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1AT89C51XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.

8、78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U2AT89C51C11nFC21uFX1CRYSTALC31nFC41uFC4(-) R110kX2CRYSTALC51nFC61nFR210k五、 实验分析本实验需要完成两个程序,发送方和接收方,实验给出的程序基本上不用做改动即可,所以做起来难度还是不大。从实验结果可以明显看出,当发送方数码管显示要发送的数值时,接收方数码管几乎也同时显示相同的数值,证明接收无误,实验结果正确。六、 实验思考与总结接收双方都使用串口方式 2 进行通信,并且两者的波特率完全一致,这才保证了接收端可以接收到正确的数据。在发送数据时,向 SBUF 中写入一个数据后,根据 TI 端的电平,判断是否发送完毕,当发送完毕时,TI 被硬件置 1,接下来再将 TI 手动清零。同理,在接收数据时,在中断服务程序中也需要将中断标志位 RI 清零。

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

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号