当前位置:文档之家› 双机串行通讯设计实验报告.docx

双机串行通讯设计实验报告.docx

洛阳理工学院实验报告
系别计算机系班级B140502 学号B14050226 姓名韩亚辉
课程名称单片机原理及组成实验日期2016/5/28 实验名称双机串行通讯设计成绩
实验目的: 1.用全双共数据传送法实现两机互相通信。

2.完成双机通信的设计制作及仿真。

实验条件:计算机,Keil uVision4,ISIS 7 Professional,实验箱
一.实验要求:
1)能本机显示按键的数值。

2)能向对方机发送按键的数。

3)能接收对方机发送的数并显示。

4)发送数及按键用中断实现。

5)用串行口的全双工方式通信。

二、实验原理:
(1)单片机串行接口通信功能
计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。

51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。

串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

(1)数据缓冲器(SBUF)
(2)串行控制寄存器(PCON)
(3)输入移位寄存器
(4)波特率发生器
(5)电源控制寄存器PCON
(6)波特率计算
三.实验电路图:
四.实验程序代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define duan P1
#define dis P2
void main()
{
uchar key_in=0xff; //I/O口作输入时,检测外设状态,允许输出高电平
TMOD=0x20; //设置为定时器1方式2
TH1=0xfd; //装初值,波特率设为9600
TL1=0Xfd;
EA=1; //开总中断
ET1=1; //允许定时器1中断
TR1=1; //开启定时器1中断
SCON=0x50; //串口控制寄存器设置,方式1、开串口接收。

SM0=0;SM1=1;REN=1;
ES=1; //开串口中断
while(1)
{
if(key_in != duan)
{
key_in=duan;
SBUF=key_in; //发送数据
while(!TI); //等待数据发送,由TI判断发送是否结束
TI=0;
}
}
}
void chuankou() interrupt 4 //串口中断函数
{
dis=SBUF; //接收数据
RI=0; //RI由软件清零;
}
实验总结:
通过本次课程设计,不仅使理论知识得到了实践,有效巩固了知识;同时对于单片机的强大功能、应用领域以及系列知识得到了大概的系统认识,也初步了解了一个完整的系统开发的过程,对于创造思维的培养和开发能力的锻炼,本次设计,为此提供了一个很好的平台。

同学之间的相互讨论
学习,互相提高,老师知识的帮助,经验的传授,也使自己受益匪浅。

相关主题