|
Protues 7.8+ Keil 4.0以上版本可用。
自己搭建的電路,親測(cè)代碼可用。主要功能是實(shí)現(xiàn)了三機(jī)網(wǎng)絡(luò)中兩兩單片機(jī)之間的通信功能,并通過數(shù)碼管實(shí)時(shí)顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
多機(jī)通信.jpg (228.9 KB, 下載次數(shù): 46)
下載附件
Protues電路圖
2019-2-25 18:29 上傳
0.png (18.21 KB, 下載次數(shù): 51)
下載附件
2019-2-25 22:55 上傳
單片機(jī)源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #define read 0
- #define wite 1
- unsigned char cort = 3;
- sbit BusAccess = P3 ^ 5;
- key_serial() interrupt 0 using 1
- {
- cort++;
- cort = cort%3;
- }
- void main()
- {
- P2 = 0xC0;
- TMOD = 0x20; //20H = 0010 0000
- TH1 = 0xFD;
- TL1 = 0xFD;
- PCON = 0x00;
- TR1 = 1;
- SCON = 0xF8; //F8 = 1111 1000,SM0SM1=11B=3,SM2=1,REN=1,TB8=1,RB8=0
- EA = 1;
- EX0 = 1;
- IT0 = 1;
- while(1)
- {
- if (cort == 1)
- {
- BusAccess = wite; //寫總線
- SBUF = 0x01;
- while(TI != 1) {;}
- TI = 0;
- BusAccess = read; //讀總線
- while(RI != 1) {;}
- RI = 0;
- P2 = SBUF;
- BusAccess = wite; //寫總線
- }
- if(cort == 2)
- {
- BusAccess = wite; //寫總線
- SBUF = 0x02;
- while(TI != 1) {;}
- TI = 0;
- BusAccess = read;
- while(RI != 1) {;}
- RI = 0;
- P2 = SBUF;
- BusAccess = wite;
- }
- if(cort == 0)
- {
- BusAccess = wite; //寫總線
- SBUF = 0x00;
- while(TI != 1) {;}
- TI = 0;
- P2 = 0xC0;
- BusAccess = wite; //寫總線
- cort = 3;
- }
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
所有源文件.rar
(32.27 KB, 下載次數(shù): 44)
2019-2-25 18:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|