亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
51單片機運用rs458進行pc和單片機進行通信
[打印本頁]
作者:
yshg
時間:
2019-6-18 14:31
標題:
51單片機運用rs458進行pc和單片機進行通信
本次我是根據自己的學習經驗,對新手進行簡單的教學展示:rs485進行點對點進行通信的時候,需要對規定主從機,比如:pc設為主機,51設為從機,之后就是對從機進行編寫代碼:
如下是我對51單片機進行從機代碼編寫的情況:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
sbit RS485DIR=P1^0; //RS485DIR=0為接收狀態 RS485DIR=1為發送狀態
/*******************************************************************************
* 函 數 名 : delay
* 函數功能 : 延時函數,i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函數名 :UsartInit()
* 函數功能 :設置串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //設置為工作方式1
TMOD=0X20; //設置計數器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF4; //計數器初始值設置,注意波特率是4800的
TL1=0XF4;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
RS485DIR=0;
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
UsartInit(); // 串口初始化
while(1);
}
/*******************************************************************************
* 函數名 : Usart() interrupt 4
* 函數功能 : 串口通信中斷函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void Usart() interrupt 4
{
u8 receiveData;
receiveData=SBUF;//出去接收到的數據
RI = 0;//清除接收中斷標志位
delay(100);
RS485DIR=1;
SBUF=receiveData;//將接收到的數據放入到發送寄存器
while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
RS485DIR=0;
}
//以上代碼很簡單,但是如果你能仔細了解,你應該學會一點
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1