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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2911|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)串口收發(fā)字符串源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
想要通過串口控制led,但是串口每次中斷只能發(fā)送一個(gè)字符,這樣在控制的時(shí)候不太容易清楚各個(gè)命令是控制哪一部分,所以參考網(wǎng)上的資料,寫了個(gè)簡單的字符串收發(fā)函數(shù)。本程序的功能是:電腦串口助手發(fā)送數(shù)據(jù)給單片機(jī),單片機(jī)接收后返回給電腦,在發(fā)送的時(shí)候,需要空兩格再輸入想要傳送的內(nèi)容,不然的話傳輸?shù)臄?shù)據(jù)會(huì)丟失,因?yàn)檫@個(gè)情況不影響串口控制LED,所以就沒管了。

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;
  4. sbit led=P2^0;
  5. void Usart_Init()
  6. {
  7. TMOD=0X20;
  8. PCON=0X80;
  9. SCON=0X50;
  10. TH1=0XF3;
  11. TL1=0XF3;
  12. TR1=1;
  13. ES=1;
  14. EA=1;
  15. }


  16. uchar strk[50];

  17. void delay(unsigned int i){unsigned int j;for(i;i>0;i--)for(j=0;j<120;j++);}//延時(shí)函數(shù)
  18. void sendbyte(unsigned char byt){SBUF=byt;while(!TI);TI=0;}        //串口字符發(fā)送函數(shù)

  19. void  receivebyte()        /*串口接收函數(shù)*/
  20. {
  21. uchar shiftdata;//轉(zhuǎn)移數(shù)據(jù)變量,將SBUF接收到的數(shù)據(jù)線存儲(chǔ)到這個(gè)地方,再轉(zhuǎn)存到數(shù)組當(dāng)中
  22. static uint i=0;
  23.                                
  24. if(RI){
  25. RI=0;shiftdata=SBUF;strk[i]=shiftdata; i++;
  26. if(shiftdata=='\0'||shiftdata=='\n'){i=0;}
  27.       }                   
  28. }

  29. /*以下是串口字符串發(fā)送函數(shù)*/
  30. void sendstring(unsigned char *string){       
  31. uint k;
  32. while(*string!='\0')
  33. {
  34. sendbyte(*string);delay(100);string++;
  35. }for(k=0;k<50;k++)strk[k]=0;
  36. }
  37.                                                                                                                                                                                     

  38. void main()
  39. {
  40. Usart_Init();
  41. while(1)
  42. {
  43. if(strk[2]=='o'&&strk[3]=='n')led=0;
  44. if(strk[2]=='o'&&strk[3]=='f'&&strk[4]=='f')led=1;
  45. if(RI){sendstring(strk);}

  46. }
  47. }


  48. void Usart_o() interrupt 4
  49. {

  50.   receivebyte();

  51.        
  52. }
復(fù)制代碼

1111.png (69.57 KB, 下載次數(shù): 30)

1111.png

51串口收發(fā)字符串.rar

27.9 KB, 下載次數(shù): 36, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:691909 發(fā)表于 2020-9-1 12:40 來自觸屏版 | 只看該作者
有人試過嗎?為什么我的控制一會(huì)有效一會(huì)無效。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 古典武侠第一页久久777 | 欧美一级在线 | 国产精品成人一区二区三区夜夜夜 | 久久久久久中文字幕 | 精品日韩 | 精品福利在线 | 91精品国产91久久综合桃花 | aa级毛片毛片免费观看久 | 国产目拍亚洲精品99久久精品 | 天天色天天色 | 成人av色 | 欧美一区二区三区在线看 | 欧美一级α片 | 精品一区二区三区在线观看国产 | 亚洲欧美视频一区 | 麻豆精品久久久 | 综合亚洲视频 | 3p视频在线观看 | 97操操 | 国产一区二区不卡 | 国产免费一区二区 | 日韩中文字幕在线观看 | 日韩区 | 91成人免费看 | 欧美视频在线看 | 日韩视频在线观看一区二区 | 久久久久无码国产精品一区 | 成人免费看电影 | av网站免费 | 久久久久av | 成人网av | 国产色网站 | 欧美一级在线观看 | 国产精品免费播放 | 亚洲天天 | 特黄av| 草草草网站 | 国精久久 | 激情网站在线 | 日韩精品在线观看一区二区三区 | 欧美在线综合 |