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

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

QQ登錄

只需一步,快速開(kāi)始

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

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

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

單片機(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 來(lái)自手機(jī) | 只看該作者
有人試過(guò)嗎?為什么我的控制一會(huì)有效一會(huì)無(wú)效。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美中文字幕在线视频 | 成人精品 | 粉嫩av| 成人国产午夜在线观看 | 久久精品国产v日韩v亚洲 | 91精品国产综合久久精品 | wwww.8888久久爱站网 | 一区二区日韩 | 波多野结衣亚洲 | 精品国产99 | 久久区二区 | 一级aaaaaa毛片免费同男同女 | 久久久国产精品视频 | 久久久xx| 久久精品久久综合 | 色婷婷av99xx | 亚洲精品成人 | 日本a在线| 91九色婷婷 | 婷婷综合色| 日韩五月天| 本道综合精品 | 第四色播日韩第一页 | 91麻豆精品国产91久久久更新资源速度超快 | 羞羞视频免费在线 | 看羞羞视频免费 | 亚洲福利一区 | 亚洲精品一区二区三区中文字幕 | 日日躁狠狠躁aaaaxxxx | 国产精品久久视频 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 亚洲精品v日韩精品 | 91偷拍精品一区二区三区 | www.99热.com | 一区视频 | 欧美在线观看一区二区 | 欧美久久一区 | 亚洲一区亚洲二区 | 欧区一欧区二欧区三免费 | 精品久久久久久久久亚洲 | 农村妇女毛片精品久久久 |