实验四 串行通信实验

电信19-2 翁大弟

一、实验目的

  1. 熟练掌握Keil和Proteus软件的C51设计与仿真操作
  2. 锻炼算法设计能力
  3. 熟练掌握定时计数器、外部中断的编程设计
  4. 掌握串行通信编程方法

三、实验实现的功能说明

实现的功能:

  1. 使用主、从机进行传输数据,主机间隔1s向从机发送自己的信息,并将个人学号显示在数码管上。

(2)在主机中设置外部中断,边沿触发,只要点击外部中断0的按键,就会进入外部中断函数,将3.141590发送给从机,并显示在数码管上。

主机部分:

1设置延时函数和需要的学号和3.141590

 2初始化串口和设置串口发送函数

 

 3中断0初始化,并设置中断源是外部中断0的外部中断函数。只要按键P3.2按下就触发

 4、在main()中声明各个函数,包括:串口初始化和中断0初始化。

从机部分:

1、设置延时函数和对应的数值。

 2设置数码管显示程序和设置定时器1的工作方式,以及串口的工作方式。

 3、初始化串口中断,以及设置串行口中断函数

 4在main()中设置这些函数。

四、实验实现的原理及仿真电路设计

实验原理:

串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

只需要在串口控制寄存器SCON和电源控制寄存器PCON来初始化串口。就可以设置串口发送函数,将数据发送到SBUF中。

从机初始化出口后,也可以设置串行口中断函数,从SBUF中得到数据,并进行下一步动作。比如:在数码管显示数据。

实验原理电路图:

 五、实验流程图:

六、实验主要功能代码

主机部分:

1设置延时函数和需要的学号和3.141590

 2初始化串口和设置串口发送函数

 3中断0初始化,并设置中断源是外部中断0的外部中断函数。只要按键P3.2按下就触发

 4、在main()中声明各个函数,包括:串口初始化和中断0初始化。

从机部分:

1、设置延时函数和对应的数值。

 2设置数码管显示程序和设置定时器1的工作方式,以及串口的工作方式。

 3、初始化串口中断,以及设置串行口中断函数

 4在main()中设置这些函数。

七、实验过程及实验情况

问题:

  1. 对于主机的串口通信不太熟悉,导致初始化串口时,多次配置错误。
  2. 对于本实验的数码管认识不多,使用方法不了解,导致遇到问题。

解决方法:

多次查阅资料并和同学共同探讨后,明白了初始化串口的方法,并成功发送数值至从机。

查阅资料后,发现可以用7seg-mpx8-ca,这中数码管8位共阳极数码显示管。7seg-mpx8-ca是共阳极数码管显示器,它左下侧的abcdefg dp是LED数码管显示器的I/O口,是段选信号,右下侧的12345678是它的位选信号,就是从左到右分别是第一位到第八位,段选信号与位选信号分别接到单片机的不同输出口,例如段选信号可以接到P0口,位选信号可以接到P2口

猜你喜欢

转载自blog.csdn.net/weixin_45784275/article/details/125263278