標(biāo)題:
C51通用串口收發(fā)數(shù)據(jù)C語言程序模塊實(shí)例
[打印本頁]
作者:
hts2008222
時(shí)間:
2017-5-11 00:23
標(biāo)題:
C51通用串口收發(fā)數(shù)據(jù)C語言程序模塊實(shí)例
#include <reg52.h> //C51通用串口收發(fā)數(shù)據(jù)C語言程序模塊
#define uchar unsigned char
#define uint unsigned int
uchar shu;
bit i;
sbit led1=P0^0;
void delayms(uint xms) //1ms;
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--) ;
}
/************************************************************************/
void UART_init()
{
TMOD=0X20;//定時(shí)器1方式 2
SCON=0X50;//K串口方式
TH1=0XFD;
TL1=0XFD;
EA=1;
ES=1;
TR1=1;
}
/*********************************
函數(shù):void main(void)
____________________________________
說明:主函數(shù),程序執(zhí)行從這里開始
********************************/
void main(void)
{
UART_init();
while(1 ) ;
}
/*********************************
函數(shù):void Inter() interrunpt 4
____________________________________
說明:串口中斷處理程序
********************************/
void Inter() interrupt 4
{
uchar i=0;
if(RI) //判斷是否接收完畢
{
RI=0; //是則RI清零,準(zhǔn)備下一次接收
shu=SBUF;
SBUF=shu;
}
if(TI) //發(fā)送數(shù)據(jù)回去
{
TI=0;
}
if(shu== 0x30) //判斷接收到的數(shù)據(jù), 并作出相應(yīng)處理
{
led1=1;//LED燈滅
}
if(shu == 0x31) //判斷接收到的數(shù)據(jù), 并作出相應(yīng)處理
{
led1=0;
}
if(shu== 0x32) //判斷接收到的數(shù)據(jù), 并作出相應(yīng)處理
{
for(i=0;i<10;i++)
{
led1=~led1;
delayms(200);
}
}
}
作者:
liuzhaoxin1020
時(shí)間:
2017-5-11 09:23
不錯(cuò)的文件,值得收藏
作者:
13976778401
時(shí)間:
2017-5-11 09:49
只有收程序,發(fā)的程序呢?
作者:
hts2008222
時(shí)間:
2017-5-28 08:57
發(fā)的程序;
if(TI) //發(fā)送數(shù)據(jù)回去
{
TI=0;
}
作者:
lhyspurs
時(shí)間:
2017-5-29 22:18
只有收程序,發(fā)的程序呢?
作者:
qwe1818
時(shí)間:
2017-11-30 20:28
很好如果能運(yùn)行正是我想要的,感謝分享。
作者:
回到原點(diǎn)
時(shí)間:
2017-12-20 20:35
漂亮
作者:
feiyu1209
時(shí)間:
2018-7-6 22:47
樓主,程序試了下,很好用。能不能再詳細(xì)講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"guanbi","shansuo“,這咋寫?
還有,就是如果是比如15秒就自動(dòng)發(fā)一“hello”,然后就開始接收或是等待接收,這咋寫啊?
新手求教。望詳解。謝謝
作者:
wdliming
時(shí)間:
2018-7-25 20:56
謝謝分享;A(chǔ)
作者:
hts2008222
時(shí)間:
2020-3-30 16:14
if(RI) //判斷是否接收完畢
{
RI=0; //是則RI清零,準(zhǔn)備下一次接收
shu=SBUF; //接收到的數(shù)據(jù)送給 shu變量存儲(chǔ)
SBUF=shu; //發(fā)送 shu變量存儲(chǔ)的數(shù)據(jù)回去
}
if(TI) //發(fā)送數(shù)據(jù)回去
{
TI=0;
}
作者:
而非非人非
時(shí)間:
2020-3-30 19:33
不錯(cuò)的文件,值得收藏
作者:
同凨
時(shí)間:
2020-7-31 13:55
為什么實(shí)際運(yùn)行的時(shí)候會(huì)有一定丟數(shù)據(jù)的概率
作者:
lll888yyyy
時(shí)間:
2020-7-31 15:08
看看怎么樣?謝謝分享!
作者:
多喝水
時(shí)間:
2020-7-31 16:39
值得收藏
作者:
hts2008222
時(shí)間:
2021-6-28 14:07
feiyu1209 發(fā)表于 2018-7-6 22:47
樓主,程序試了下,很好用。能不能再詳細(xì)講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"g ...
這個(gè)你要配合PC的ASCII碼進(jìn)行轉(zhuǎn)換就可以實(shí)現(xiàn),代碼和原理上比較復(fù)雜,關(guān)連知識(shí)很多,先學(xué)好最基礎(chǔ)的,以后需要時(shí),就會(huì)很容易明白的了!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1