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