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

標(biāo)題: 單片機串口通信程序(串口發(fā)送和接受一個數(shù)組) [打印本頁]

作者: 九年空間    時間: 2020-6-12 20:17
標(biāo)題: 單片機串口通信程序(串口發(fā)送和接受一個數(shù)組)
  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];    //接收數(shù)據(jù)數(shù)組
  11. float b[1];     //提取后的數(shù)據(jù)數(shù)組
  12. void delay(unsigned int time);
  13. void Send(unsigned char dat)   //發(fā)送命令
  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;   //初值設(shè)定,波特率9600
  24. TL1=0xfd;
  25. TR1=1;    //打開計數(shù)器
  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;                   //清零按鍵標(biāo)志
  43. for (i=0;i<2;i++)                                      //串口發(fā)送
  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. }
復(fù)制代碼






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1