實現(xiàn)功能:
1.主機3個按鍵,分別是加1,發(fā)送數(shù)據(jù)和匯總數(shù)據(jù)。
- 按下加1,右邊數(shù)碼管顯示數(shù)加1,左邊的數(shù)碼管顯示7;
- 按下發(fā)送數(shù)據(jù),將主機當前顯示的數(shù),發(fā)送給所有從機,同時左邊數(shù)碼管顯示5;
- 按鍵匯總數(shù)據(jù),將從機顯示的數(shù)相加求和,并顯示在右邊數(shù)碼管上,同時左邊數(shù)碼管顯示6。
2.從機只有一個加1按鍵,按一下,數(shù)碼管顯示數(shù)加1;
如果收到主機發(fā)送的數(shù)據(jù),則顯示主機發(fā)送的數(shù)據(jù)。
附件包含主機和從機的C代碼,還有Proteus工程,可以直接打開運行的,注意一定要是8.15版本的,低版本的打不開。沒有8.15版本的只能老老實實的抄原理圖,再復制代碼了。
編程關鍵點:
1.從機接收到主機發(fā)送的數(shù)據(jù)后,馬上給主機返回數(shù)據(jù)。
2.主機接收到從機返回的數(shù)據(jù)后,臨時存起來備用,等待檢測到匯總鍵按下時再調(diào)用。
3.因為2個從機會同時接收到主機發(fā)送的數(shù)據(jù),如果從機同時返回數(shù)據(jù)的話,主機會丟失一個從機的數(shù)據(jù),所以2個從機代碼在返回數(shù)據(jù)時,需要使用不同的延遲,錯開返回數(shù)據(jù)的時間。即從機子函數(shù)uart(void) interrupt 4中的延時值,不同從機設置不同值。
閱讀全文