久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8458|回復: 1
打印 上一主題 下一主題
收起左側

單片機串口通行與多機通信程序源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:435708 發表于 2019-3-10 21:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
(一)1號機通信程序設計
1、1號機初始化函數
1號機采用定時發送命令,等待接收數據的方式,使用初始化函數對串行口、定時器進行初始化。
void  csh1()
{
SM0 = 0;                        //串行口通信方式1,8位異步通信
SM1 = 1;
REN = 1;                                //允許接收
PCON = 0x80;                //波特率加倍
TMOD = 0x20;                // T1作波特率發生器,方式2
TH1 = 0xd0;                        //選定波特率
TL1 = 0xd0;
TR1 = 1;                                //起動定時器
}

2、1號機發送程序
兩臺機器之間約定一個命令字節格式,假設2號機接收到該命令字節,就向1號機發送溫度數據,1號機接收到該溫度數據后顯示在數碼管上。1號機定時發送請求命令字節。
        1號機的主程序:
Void main()
{
csh1();                //初始化串行口、定時器
while(1)
{
                delay();                         //延時
                SBUF = 0xa5;                        //發送給1號機請求數據命令
                while(~TI){  ;  }        //等待串行發送結束
                TI = 0;                                //發送標志清零
                while(~RI)                //等待接收2號機發來的數據
                        {  ;  }
                RI = 0;                                //接收標志清零
                wendu = SBUF;                //保存接收的數據到wendu單元,供顯示使用
}
}

(二)2號機通信程序設計
2號機接收命令后發送數據,2號機的初始化函數如下。
2號機采用接收命令后,中斷發送數據到1號機的方式,使用初始化函數對串行口、定時器、中斷進行初始化。
void  csh2()
{
SM0 = 0;                        //串行口通信方式1,8位異步通信
SM1 = 1;
REN = 1;                                //允許接收
PCON = 0x80;                //波特率加倍
TMOD = 0x20;                // T1作波特率發生器,方式2
TH1 = 0xd0;                        //選定波特率
TL1 = 0xd0;
TR1 = 1;                                //起動定時器
EA = 1;                        //開中斷
ES = 1;                                //開串行口中斷
}

2號機串行通信中斷服務函數
Void  tongxin( )  interrupt  4
{
If( TI == 1 ) TI = 0;                                        //如果是發送中斷,清發送中斷標志
else                                                                        //否則是接收中斷,判斷接收數據是否是命令
{RI = 0;                                                                 //清除接收中斷標志
If( SBUF == 0xa5 ) SBUF = wendu; }         //接收的來自1號機的命令字節,則發送溫度數據
}
2號機的主程序:
Void main()
{
csh2();                                //初始化串行口、定時器
while(1)
{
                wdjc();                //溫度檢測函數
                delay();                //延時
}
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:495287 發表于 2020-6-29 12:58 | 只看該作者
言簡意賅多機往,
恍然大悟細思量;
往返BUF帶命名;
地址參量見真章。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 影音av| 人人干视频在线 | www.久久 | 成人a在线观看 | 国产免费福利在线 | 国产成人综合在线 | 视频一区 国产精品 | 一区二区在线免费播放 | 亚洲午夜三级 | 二区三区在线观看 | 91精品国产一区二区三区蜜臀 | 九九精品在线 | 国产乱码精品一区二区三区av | 91资源在线观看 | 久久久网| 北条麻妃一区二区三区在线观看 | 狠狠爱视频 | 久久国产精品偷 | 综合久久av | 97人人草| 99久久精品国产一区二区三区 | av在线一区二区三区 | 亚洲v区| 一级毛片在线播放 | 一区二区三区视频在线观看 | 不卡一区二区在线观看 | 国产区一区 | 久久av一区二区 | 精品视频久久久 | 国产成人免费视频网站高清观看视频 | 中文字幕国产 | 中文字幕在线一区二区三区 | 91精品久久久久久综合五月天 | 777毛片| 日本一区二区三区视频在线 | 亚洲国产精久久久久久久 | 精品国产乱码久久久久久影片 | 国产日韩欧美另类 | 在线观看视频一区二区三区 | 国产在线视频一区二区 | 美女在线一区二区 |