最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

51单片机 双机通信

来源:动视网 责编:小OO 时间:2025-10-01 17:30:44
文档

51单片机 双机通信

实验三双机通信实验一、实验目的a)UART串行通信接口技术应用二、实验实现的功能a)甲机向乙机发送按键的键值,同时将乙机发送的键值在数码管上显示并且LED相应的闪烁b)乙机接收甲机发送的键值并在数码管上显示,同时也能向甲机发送键值三、系统硬件设计甲机和乙机的连接一样,将甲机的RXD和乙机的TXD连接,甲机的TXD和乙机的RXD连接,再将两个单片机的GND连接四、系统软件设计甲机发送程序:#include#defineucharunsignedchar#defineuintunsignedint
推荐度:
导读实验三双机通信实验一、实验目的a)UART串行通信接口技术应用二、实验实现的功能a)甲机向乙机发送按键的键值,同时将乙机发送的键值在数码管上显示并且LED相应的闪烁b)乙机接收甲机发送的键值并在数码管上显示,同时也能向甲机发送键值三、系统硬件设计甲机和乙机的连接一样,将甲机的RXD和乙机的TXD连接,甲机的TXD和乙机的RXD连接,再将两个单片机的GND连接四、系统软件设计甲机发送程序:#include#defineucharunsignedchar#defineuintunsignedint
实验三  双机通信实验

一、实验目的

a)UART 串行通信接口技术应用

二、实验实现的功能

a)甲机向乙机发送按键的键值,同时将乙机发送的键值在数码管上显示并且LED相应的闪烁

b)乙机接收甲机发送的键值并在数码管上显示,同时也能向甲机发送键值

三、系统硬件设计

甲机和乙机的连接一样,将甲机的RXD和乙机的TXD连接,甲机的TXD和乙机的RXD连接,再将两个单片机的GND连接

四、系统软件设计

甲机发送程序:

#include

#define uchar unsigned char

#define uint unsigned int

#define N 50

uchar codevalue[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};//0--F的共阴极字段码表

uchar code tab[]={0XFD,0X3F,0XFA,0X3F,0XF7,0X1F,0XEF,0X2F,0XDF,0X37,0XBF,0X3B,0X7F,0X3F}; //花型显示

uchar ptr=0;

sbit P36=P3^6;

sbit P37=P3^7;

void delay(uint x) //延时函数

{

 

}

void display(uchar n) //显示函数

{

 

}

uchar scan_key()//按键扫描

{

 

 

 

  

   

   

   

   

   

   

   

   

  

 

}

void shun() //顺时针转

{  

 

 

 

 

  

  

  

 

 

 

  

  

  

 

 

}

void ni() 逆时针转

 

  

  

  

 

 

 

  

  

  

 

  

}

void shan() 绿黄红依次点亮

{

 

}

void hua()

{

}

void sent()//串口发送

{

}

void receive() //串口接收并在led上显示

{

 

 

 

 

 

 

 

  03;break;

 

 

}

void main(void)

{

 工作模式2

 波特率2400

 串口模式3,允许接收

 波特率不倍增

 

}

乙机接收程序:

#include

#define uchar unsigned char

#define uint unsigned int

#define N 10

uchar codevalue[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,

0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};//0--F的共阴极字段码表

uchar Num_Buffer[]={0,0,0,0};//缓冲区初始化

uchar keyvalue=0,ptr=0;

void delay(uint x) //延时函数

{

 

}

void display(uchar n) //显示函数

{

     

 

 

}

uchar scan_key() //按键扫描函数

{

 

 

 

 

  

   

   

   

   

   

   

   

   

  

 

}

void sent()//串口发送

{

}

void receive()//串口接收

}

void main(void)

{

 工作模式2

 波特率2400

 串口模式3,允许接收

 波特率不倍增

 获取键值

 

}

五、实验过程中遇到的问题及解决方法

问题1:和实验一一样,按键扫描时对P3口赋值会影响LED的显示

解决:将按键扫描程序改为

uchar scan_key()//按键扫描

{

 

 

 

  

   

   

   

   

   

   

   

   

  

 

}

问题2:甲机在接收到5后12个LED全亮,然后无论乙机发送什么,甲机都是12个LED全亮,不会改变状态

解决:反复调试检查发现P3口的最低两位为发送与接收端口,在最开始的程序中接收5的程序为case 5:  display(SBUF);P2=0x00;P3=0x00;break;,此时P3的最低两位清零,使发送和接收位都无效,所以在以后无论乙机发送什么甲机都无法接收,将其改为case 5:  display(SBUF);P2=0x00;P3=0x03;break;后正常

问题3:怎样让乙机在开始的时候显示0,

解决:开始时写的程序为

void receive()//串口接收

 ;

display(keyvalue);

}

这时运行后上电后数码管不显示,分析得出开始时SBUF为空,所以不显示,应当把显示函数放在while后面显示即程序改为

void receive()//串口接收

}

  指导老师签字:

                                                日期:

文档

51单片机 双机通信

实验三双机通信实验一、实验目的a)UART串行通信接口技术应用二、实验实现的功能a)甲机向乙机发送按键的键值,同时将乙机发送的键值在数码管上显示并且LED相应的闪烁b)乙机接收甲机发送的键值并在数码管上显示,同时也能向甲机发送键值三、系统硬件设计甲机和乙机的连接一样,将甲机的RXD和乙机的TXD连接,甲机的TXD和乙机的RXD连接,再将两个单片机的GND连接四、系统软件设计甲机发送程序:#include#defineucharunsignedchar#defineuintunsignedint
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top