电信19-2 翁大弟
一、实验目的
- 熟练掌握Keil和Proteus软件的C51设计与仿真操作
- 锻炼算法设计能力
- 熟练掌握定时计数器、外部中断的编程设计
- 掌握串行通信编程方法
三、实验实现的功能说明
实现的功能:
- 使用主、从机进行传输数据,主机间隔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()中设置这些函数。
七、实验过程及实验情况
问题:
- 对于主机的串口通信不太熟悉,导致初始化串口时,多次配置错误。
- 对于本实验的数码管认识不多,使用方法不了解,导致遇到问题。
解决方法:
多次查阅资料并和同学共同探讨后,明白了初始化串口的方法,并成功发送数值至从机。
查阅资料后,发现可以用7seg-mpx8-ca,这中数码管是8位共阳极数码显示管。7seg-mpx8-ca是共阳极数码管显示器,它左下侧的abcdefg dp是LED数码管显示器的I/O口,是段选信号,右下侧的12345678是它的位选信号,就是从左到右分别是第一位到第八位,段选信号与位选信号分别接到单片机的不同输出口,例如段选信号可以接到P0口,位选信号可以接到P2口。
搜索
复制