欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口通信程序(串口發送和接受一個數組)

[復制鏈接]
跳轉到指定樓層
樓主
ID:764098 發表于 2020-6-12 20:17 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
  1. #include<reg51.h>
  2. #define uchar flag1,flag2,flag3
  3. sbit key1=P1^0;
  4. sbit key2=P2^1;
  5. sbit key3=P2^2;
  6. flag1=1,flag2=1,flag3=1;
  7. unsigned char i;
  8. unsigned char n;
  9. unsigned char code Tab[ ]={0xA5,0X20}; //開始掃描命令
  10. unsigned char a[4];    //接收數據數組
  11. float b[1];     //提取后的數據數組
  12. void delay(unsigned int time);
  13. void Send(unsigned char dat)   //發送命令
  14. {
  15.     SBUF=dat;
  16. while(TI==0);
  17. TI=0;
  18. }
  19. void UsartInit()
  20. {TMOD=0x20;    //定時器T1工作方式2
  21. SCON=0x50;   //串口工作方式1允許接收(REN=1)
  22. PCON=0x00;   //正常波特率9600
  23. TH1=0xfd;   //初值設定,波特率9600
  24. TL1=0xfd;
  25. TR1=1;    //打開計數器
  26. EA=1;    //打開總中斷
  27. ES=1;}    //打開中斷允許中的串口中斷允許
  28. void key_scan()    //按鍵掃描
  29. {if(!key1){delay(10);if(!key1)flag1=0;}
  30. if(!key2){delay(10);if(!key2)flag2=0;}
  31. if(!key3){delay(10);if(!key3)flag3=0;}
  32. }
  33. void delay(unsigned int time)   //延時
  34. { unsigned int j = 0;
  35. for(;time>0;time--)
  36.   for(j=0;j<110;j++);}
  37. void main()
  38. {
  39. UsartInit();    //串口初始化
  40. key_scan();                     //按鍵掃描
  41. if(flag1==0&flag2==1&flag3==1) //判斷是否開始掃描
  42. { flag1=1;                   //清零按鍵標志
  43. for (i=0;i<2;i++)                                      //串口發送
  44.     {
  45.       Send(Tab[i]);
  46.    delay(20);
  47.   }
  48.   delay(300);
  49. n=0;
  50. while(n<5)                                               //串口接收  
  51. while(RI==0);
  52. {a[n]=SBUF;
  53. RI=0;
  54. n++;}}

  55.   
  56. }
復制代碼

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

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表