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