系别 阳理工学院
B 实验
姓名 实验日期 成绩 报告
韩亚辉 计算机系 班级 B140502 学号 课程名称 实验名称 单片机原理及组成 双机串行通讯设计 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<> #define uchar unsigned char #define uint unsigned int #define duan P1 #define dis P2 void main() { } void chuankou() interrupt 4 //串口中断函数 { } dis=SBUF; RI=0; //接收数据 //RI由软件清零; uchar key_in=0xff; //I/O口作输入时,检测外设状态,允许输出高电平 TMOD=0x20; TH1=0xfd; TL1=0Xfd; EA=1; //开总中断 //允许定时器1中断 //开启定时器1中断 //串口控制寄存器设置,方式1、开串口接收。SM0=0;SM1=1;REN=1; //开串口中断 ET1=1; TR1=1; ES=1; { } { } key_in=duan; SBUF=key_in; //发送数据 while(!TI); //等待数据发送,由TI判断发送是否结束 TI=0; //设置为定时器1方式2 //装初值,波特率设为9600 SCON=0x50; while(1) if(key_in != duan) 实验总结: 通过本次课程设计,不仅使理论知识得到了实践,有效巩固了知识;同时对于单片机的强大功能、应用领域以及系列知识得到了大概的系统认识,也初步了解了一个完整的系统开发的过程,对于创造思维的培养和开发能力的锻炼,本次设计,为此提供了一个很好的平台。同学之间的相互讨论学习,互相提高,老师知识的帮助,经验的传授,也使自己受益匪浅。
因篇幅问题不能全部显示,请点此查看更多更全内容