实现功能:
1.主机3个按键,分别是加1,发送数据和汇总数据。
- 按下加1,右边数码管显示数加1,左边的数码管显示7;
- 按下发送数据,将主机当前显示的数,发送给所有从机,同时左边数码管显示5;
- 按键汇总数据,将从机显示的数相加求和,并显示在右边数码管上,同时左边数码管显示6。
2.从机只有一个加1按键,按一下,数码管显示数加1;
如果收到主机发送的数据,则显示主机发送的数据。
附件包含主机和从机的C代码,还有Proteus工程,可以直接打开运行的,注意一定要是8.15版本的,低版本的打不开。没有8.15版本的只能老老实实的抄原理图,再复制代码了。
编程关键点:
1.从机接收到主机发送的数据后,马上给主机返回数据。
2.主机接收到从机返回的数据后,临时存起来备用,等待检测到汇总键按下时再调用。
3.因为2个从机会同时接收到主机发送的数据,如果从机同时返回数据的话,主机会丢失一个从机的数据,所以2个从机代码在返回数据时,需要使用不同的延迟,错开返回数据的时间。即从机子函数uart(void) interrupt 4中的延时值,不同从机设置不同值。
阅读全文