在线亚洲黄色-在线亚洲观看-在线亚洲电影-在线亚洲成人-岛国大片在线观看免费版-岛国大片在线播放高清

求教高人指點單片機多機通信的C語言程序

導讀主機A的主程序代碼。#include;#define uchar unsigned char。#define F_OSC 12000000UL。#define F_BAUD 1200UL。#define RELOAD (uchar)(256-F_OSC/12/32/F_BAUD)。#define B_ID 2。#define C_ID 3。#define LED_ON 4。#define LED_OFF (~LED_ON)。sbit P20 = P2^0。sbit LEDB = P1^0。sbit LEDC = P1^1。typedef union {。uchar buf[2]。struct {;uchar databuf。uchar TXID。

在設計單片機多機通信時,可以采用C語言編程實現。例如,主機A通過UART與從機B和C通信。AB兩端各并上120歐電阻,AB線互相殘繞,再與公共的接地線纏繞,以減低誤差。主機A的主程序如下:主機A的主程序代碼:#include #define uchar unsigned char #define F_OSC 12000000UL #define F_BAUD 1200UL #define RELOAD (uchar)(256-F_OSC/12/32/F_BAUD) #define B_ID 2 #define C_ID 3 #define LED_ON 4 #define LED_OFF (~LED_ON) sbit P20 = P2^0; sbit LEDB = P1^0; sbit LEDC = P1^1; typedef union { uchar buf[2]; struct { uchar databuf; uchar TXID; }Option; }TYPE_UART_SERIAL; TYPE_UART_SERIAL SysUart; void UartInit() { SCON = 0x50; TMOD = 0x20; TH1 = RELOAD; TR1 = 1; TI = 0; EA = 1; ES=1; P20=0; } void main(void) { UartInit(); LEDB=0; LEDC=0; while(1) { if((SysUart.Option.TXID==B_ID)&&(SysUart.Option.databuf!=0)) { SysUart.Option.TXID=0; if (SysUart.Option.databuf==LED_ON) { LEDB=1; } if(SysUart.Option.databuf==LED_OFF) { LEDB=0; } SysUart.Option.databuf=0; } if((SysUart.Option.TXID==C_ID)&&(SysUart.Option.databuf!=0)) { SysUart.Option.TXID=0; if (SysUart.Option.databuf==LED_ON) { LEDC=1; } if(SysUart.Option.databuf==LED_OFF) { LEDC=0; } SysUart.Option.databuf=0; } } } void SerialServe() interrupt 4 { static uchar pcnt=0; if (RI == 1) { RI = 0; SysUart.buf[pcnt] = SBUF; pcnt =(pcnt+1)%2; } if (TI == 1) { } }從機B的代碼:#include #define uchar unsigned char #define F_OSC 12000000UL #define F_BAUD 1200UL #define RELOAD (uchar)(256-F_OSC/12/32/F_BAUD) #define B_ID 2 #define LED_ON 4 #define LED_OFF (~LED_ON) sbit P20 = P2^0; sbit key = P1^0; typedef union { uchar buf[2]; struct { uchar databuf; uchar TXID; }Option; }TYPE_UART_SERIAL; TYPE_UART_SERIAL SysUart; void UartInit() { SCON = 0x40; TMOD = 0x20; TH1 = RELOAD; TR1 = 1; TI = 0; EA = 1; P20=1; } void SerialSenData(uchar *SerialBuf) { uchar i; i=2; while (i--) { SBUF = *SerialBuf; SerialBuf++; while (!TI); TI = 0; } } void main(void) { uchar ledbuf; UartInit(); ledbuf=LED_OFF; while(1) { if(key==0) { ledbuf=~ledbuf; SysUart.Option.databuf=ledbuf; SysUart.Option.TXID = B_ID; SerialSenData(SysUart.buf); while(key==0); } } } void SerialServe() interrupt 4 { if (RI == 1) { RI = 0; } if (TI == 1) { } }從機C的代碼與從機B類似,只是TXID設為3,LED控制引腳為P1^1。這些代碼實現了通過UART進行單片機多機通信的功能。在實際應用中,還需要根據具體需求調整波特率、電阻值等參數,以確保通信的穩定性和準確性。通過這種方式,可以實現單片機之間的多機通信,提高系統的靈活性和可擴展性。詳情

為你推薦
資訊專欄
熱門視頻
相關推薦
老年男人尿頻怎么辦 為什么余弦信號頻譜圖只有兩根譜線,而其他周期信號要分解為余弦信號的疊加,頻譜圖要有很多根譜線? 吃什么補腎最好,藍牡特怎么樣啊 SUV的含義 各種花茶的療效 soso一鍵成名情侶網名 痔瘡怎么治? 山字筆順筆畫順序 古文的“度”字都有什么意思 跪求2008——2009青島版寒假園地答案!!!!! 武漢派克筆業 地址 生病了在醫院,我在這里朋友圈發了一條,掛了號都不知道該往哪里走, 大家幫我想一些押韻的情詩,愛情的!!! 藏品韜略買了后怎么用 怎么一次性清空微博內容 刪掉的微信記錄可以恢復嗎 駭爪人形僚機怎么觸發 模具設計三大軟件 禁閉求生樹籬實驗室在哪 克羅米競技場很厲害嗎 各界好友,小妹我想問下各位,誰會做這種鍋巴,幫個忙 寫臨汾汾河的作文500字 周寧有啥好玩的地方呀 做導游需要什么條件啊? 《游園驚夢》的所有唱詞 微信消息已發出但被對方拒收了怎么恢復 wps中的excel 921新破天一劍sf游戲優勢 我的世界在steam叫什么 微信拍一拍怎么設置好玩的文字 ps如何換證件照背景顏色 關于地球的資料越短越好 幼兒早教班怎么做宣傳? 灌籃高手里綠風的隊員名單 暈車怎么解決? 動畫怎么畫? 有人用過修正朵靚美衛生巾嗎 在SUV中,那個車型的動力性好點? 彝族的生活習慣 母豬便秘問題怎么解決?
Top 主站蜘蛛池模板: 国产aⅴ一区二区三区 | 日韩一级精品久久久久 | 任你躁欧美一级在线精品免费 | 欧美激情亚洲图片 | 亚洲一区二区三区91 | 热综合一本伊人久久精品 | 日本不卡一二三区 | 中文字幕日韩一区二区三区不卡 | 热久久国产 | 国产特级全黄一级毛片不卡 | 日韩在线免费 | 欧美高清免费 | 亚洲电影中文字幕 | 国产精品亚洲一区二区三区久久 | 国产人成精品综合欧美成人 | 国产一二三区视频 | 欧美xxxx性疯狂bbbb | 亚洲国产精久久久久久久 | 久久精品视频一区二区三区 | 国产亚洲精品va在线 | 欧洲日韩 | 免费一级a毛片在线播 | 最新国产在线视频 | 国产精品伦一区二区三级视频 | 日本特级淫片免费看 | 色精品一区二区三区 | 国产一区二区免费播放 | 日韩欧美国产一区二区三区 | 2021国产成人精品久久 | 不卡一级aaa全黄毛片 | 欧美日韩亚洲天堂 | 先锋影音制服丝袜 | 国产高清不卡一区二区 | 成人久久久精品乱码一区二区三区 | 成人精品一区二区激情 | 欧美日韩在线一区二区三区 | 成人国产一区二区三区精品 | 国产第八页 | 国产乱淫a∨片免费视频 | 亚洲全黄 | 国产91在线九色 |