亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單字節藍牙下位機控制小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:79544 發表于 2015-8-18 10:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /***************************************************
  2.         單字節藍牙控制小車程序 電機口是P0
  3.         通過上位機的1,2,3,4,5,6,7,8,9控制單片機
  4.         單片機:STC12C5608AD
  5.         晶振:11.0592M
  6.         作者:蘇義江
  7.         時間:2015-8-10
  8. ***********************************************/
  9. #include<reg52.h>
  10. #include<math.h>
  11. #define uchar unsigned char
  12. #define uint unsigned int
  13. uchar Buffer[4] = {0};      //從串口接收的數據
  14. uint i,j;
  15. sbit Leftdeng=P1^2;//左大燈
  16. sbit Righdeng=P1^3;//右大燈

  17. /********************************************************************
  18. * 名稱 : Delay_1ms()
  19. * 功能 : 延時子程序,延時時間為 1ms * x
  20. * 輸入 : x (延時一毫秒的個數)
  21. * 輸出 : 無
  22. ***********************************************************************/
  23. void Delay_1ms(uint i)//1ms延時
  24. {
  25.         uchar x,j;
  26.         for(j=0;j<i;j++)
  27.         for(x=0;x<=148;x++);       
  28. }
  29. /********************************************************************
  30. * 名稱 : Com_Int()
  31. * 功能 : 串口中斷子函數
  32. * 輸入 : 無
  33. * 輸出 : 無
  34. ***********************************************************************/
  35. void Com_Int(void) interrupt 4
  36. {
  37.        
  38.         EA = 0;
  39.         if(RI == 1)   //當硬件接收到一個數據時,RI會置位
  40.         {
  41.                 Buffer[0] = SBUF - 48; //這里減去48是因為從電腦中發送過來的數據是ASCII碼。
  42.                 RI = 0;                 
  43.         }
  44.         EA = 1;
  45. }

  46. /********************************************************************
  47. * 名稱 : Com_Init()
  48. * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷
  49. * 輸入 : 無
  50. * 輸出 : 無
  51. ***********************************************************************/
  52. void Com_Init(void)
  53. {
  54.      TMOD = 0x20;
  55.      PCON = 0x00;
  56.      SCON = 0x50;                       
  57.      TH1 = 0xFd;    //設置波特率 9600
  58.      TL1 = 0xFd;
  59.      TR1 = 1;                //啟動定時器1
  60.          ES = 1;                //開串口中斷
  61.          EA = 1;                //開總中斷               
  62. }
  63. /********************************************************************
  64. * 名稱 :Moto_Forward()
  65. * 功能 : 電機1、2啟動,都是前進,整車表現為前進。
  66. * 輸入 : 無
  67. * 輸出 : 無
  68. ***********************************************************************/
  69. void Moto_Forward()
  70. {     
  71.            P1= 0xaf;//1010 1111
  72.    Delay_1ms(100);
  73. }
  74. /********************************************************************
  75. * 名稱 :Moto_Backward()
  76. * 功能 : 電機1、2啟動,都是后退,整車表現為后退。
  77. * 輸入 : 無
  78. * 輸出 : 無
  79. ***********************************************************************/
  80. void Moto_Backward()
  81. {  
  82.     P1= 0x5f;//0101 1111
  83.          Delay_1ms(100);
  84. }
  85. /********************************************************************
  86. * 名稱 :Moto_TurnLeft()
  87. * 功能 : 電機1后退,電機2前進,整車表現為左轉。
  88. * 輸入 : 無
  89. * 輸出 : 無
  90. ***********************************************************************/
  91. void Moto_TurnLeft()
  92. {         
  93.           P1= 0x6f;//0110 1111
  94.          Delay_1ms(100);
  95. }
  96. /********************************************************************
  97. * 名稱 :Moto_TurnRight()
  98. * 功能 : 電機1前進,電機2后退,整車表現為右轉。
  99. * 輸入 : 無
  100. * 輸出 : 無
  101. ***********************************************************************/
  102. void Moto_TurnRight()
  103. {         
  104.          P1= 0x9f;//1001 1111         
  105.          Delay_1ms(100);
  106. }
  107. /********************************************************************
  108. * 名稱 :Moto_Stop()
  109. * 功能 : 電機1停止,電機2停止,整車表現為停止。
  110. * 輸入 : 無
  111. * 輸出 : 無
  112. ***********************************************************************/
  113. void Moto_Stop()
  114. {                  
  115.           P1= 0x00;
  116.    Delay_1ms(100);
  117. }
  118. /********************************************************************
  119. * 名稱 :LightTurnOn()
  120. * 功能 : 打開車燈。
  121. * 輸入 : 無
  122. * 輸出 : 無
  123. ***********************************************************************/
  124. void LightTurnOn()
  125. {                             
  126.    Leftdeng=0;   
  127.    Righdeng=0;       
  128. }
  129. /********************************************************************
  130. * 名稱 :LightTurnOff()
  131. * 功能 : 關閉車燈。
  132. * 輸入 : 無
  133. * 輸出 : 無
  134. ***********************************************************************/
  135. void LightTurnOff()
  136. {                  
  137.   Leftdeng=1;   
  138.    Righdeng=1;       
  139. }
  140. /********************************************************************
  141. * 名稱 :main()
  142. * 功能 : 主函數
  143. * 輸入 : 無
  144. * 輸出 : 無
  145. ***********************************************************************/
  146. void main()
  147. {
  148.     Delay_1ms(100);
  149.         Com_Init();//串口初始化
  150.    
  151.   while(1)
  152.   {
  153.          switch(Buffer[0])
  154.            {
  155.              case 0:  Moto_Stop(); break;//停止
  156.                     case 1:  Moto_Forward(); break;//前進
  157.                  case 2:  Moto_Backward();        break;//后退
  158.                  case 3:  Moto_TurnLeft();         break;//左轉
  159.                  case 4:  Moto_TurnRight();          break;//右轉
  160.                  case 8:  LightTurnOn();  break;//開大燈
  161.                  case 9:  LightTurnOff();  break;//關大燈
  162.                  default:break;         
  163.            }          
  164.   }
  165. }
復制代碼


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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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