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

標題: 2.4G無線遙控車制作 STC15單片機源程序 [打印本頁]

作者: 賺錢買八爪魚    時間: 2019-12-23 08:48
標題: 2.4G無線遙控車制作 STC15單片機源程序
遙控采用STM32F1系列單片機,資料中有關于手柄的原理圖,接收端的車用的STC15L408的單片機。因為是小組合作的項目所以兩個單片機是不同的。整體的思路還是很簡單的。后面附上實物圖。(遙控器的PCB圖如果要直接打板的話需要有點小修改,原理圖我修改了但是板子沒有更新過去)

制作出來的實物圖如下:


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #include "stc15f2k60s2.h"
  2. #include "nrf.h"
  3. #include "oled.h"
  4. #include "usart.h"
  5. #include "motor.h"

  6. #define L_UPPER_LIMIT                                                240                                        //調節占空比
  7. #define R_UPPER_LIMIT                                                215
  8. unsigned char Count_200ms = 0;
  9. unsigned char Count_10ms = 0;

  10. /************************************ 函數聲明 *******************************************/
  11. void Timer0Init(void);
  12. void Timer2Init(void);
  13. void Task_5Hz(void);
  14. void Task_100Hz(void);

  15. void main()
  16. {
  17.         Motor_Init();
  18.         Uart_Init();                                //串口初始化
  19.         NRF24L01_Init();                //NRF初始化
  20.         NRF24L01_Check();
  21.         OLED_Init();
  22.         OLED_Clear();
  23.         Timer0Init();        
  24.         Timer2Init();
  25.         
  26.         while(1)
  27.         {
  28.                 if(Count_200ms >= 100)
  29.                 {
  30.                         Count_200ms = 0;
  31.                         Task_5Hz();
  32.                 }
  33.                
  34.                 if(Count_10ms >= 10){
  35.                         Count_10ms = 0;
  36.                         Task_100Hz();
  37.                 }        
  38.         }
  39. }

  40. /**********************************************************************************
  41. * 函   數:Task_5Hz()
  42. * 功   能:200ms執行一下里面的任務
  43. * 備   注:
  44. **********************************************************************************/
  45. void Task_5Hz()
  46. {
  47.         Car_StaSet();
  48.         PWM_Set();
  49.         OLED_ShowNum(0, 4, PWMAA, 3, 16);
  50.         OLED_ShowNum(64, 4, PWMBB, 3, 16);
  51. }

  52. /**********************************************************************************
  53. * 函   數:Task_100Hz()
  54. * 功   能:10ms執行一下里面的任務
  55. * 備   注:
  56. **********************************************************************************/
  57. void Task_100Hz()
  58. {
  59.         NRF_24L01();
  60.         MoreThanMAX_Tim();
  61. }

  62. /**********************************************************************************
  63. * 函   數:Timer0Init()
  64. * 功   能:定時器0配置
  65. * 備   注:
  66. **********************************************************************************/
  67. void Timer0Init(void)                //100微秒@11.0592MHz
  68. {
  69.         EA = 1;
  70.         AUXR |= 0x80;                //定時器時鐘1T模式
  71.         TMOD &= 0xF0;                //設置定時器模式
  72.         TL0 = 0xAE;                //設置定時初值
  73.         TH0 = 0xFB;                //設置定時初值
  74.         TF0 = 0;                //清除TF0標志
  75.         TR0 = 1;                //定時器0開始計時
  76.         ET0 = 1;
  77. }


  78. /**********************************************************************************
  79. * 函   數:Timer2Init()
  80. * 功   能:定時器2配置
  81. * 備   注:
  82. **********************************************************************************/
  83. void Timer2Init(void)                //50微秒@11.0592MHz
  84. {
  85.         AUXR |= 0x04;                //定時器時鐘1T模式
  86.         T2L = 0xD7;                //設置定時初值
  87.         T2H = 0xFD;                //設置定時初值
  88.         AUXR |= 0x10;                //定時器2開始計時
  89.         IE2 |= 0x04;
  90. }


  91. /**********************************************************************************
  92. * 函   數:tim0()
  93. * 功   能:定時器0中斷
  94. * 備   注:
  95. **********************************************************************************/
  96. void tim0() interrupt 1
  97. {
  98.         static unsigned int i = 0;
  99.         
  100.         Count_200ms++;
  101.         Count_10ms++;
  102.         i++;
  103.         if(i >= 200){                                        //2S
  104.                 i = 0;
  105.                 MAX_Tim++;
  106.         }
  107. }

  108. void tim2() interrupt 12
  109. {
  110.         static unsigned int PWMA = 0;
  111.         static unsigned int PWMB = 0;
  112.         
  113.         PWMA++;
  114.         PWMB++;
  115.         
  116.         if(PWMA >= L_UPPER_LIMIT)
  117.                 PWMA = 0;
  118.         if(PWMB >= R_UPPER_LIMIT)
  119.                 PWMB = 0;
  120.         
  121.         if(PWMA <= PWMAA)
  122.                 ENA = 1;
  123.         else
  124.                 ENA = 0;
  125.         
  126.         if(PWMB <= PWMBB)
  127.                 ENB = 1;
  128.         else
  129.                 ENB = 0;
  130. }
復制代碼

所有資料51hei提供下載:
2.4G無線遙控車.7z (1.56 MB, 下載次數: 90)


作者: 張會東    時間: 2020-2-17 15:34
我想要你搖桿和旋鈕的鏈接





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩精品国产 | 国产精品网址 | 国户精品久久久久久久久久久不卡 | 国产女人精品视频 | caoporn国产精品免费公开 | 成人亚洲片 | 91电影 | 青青草原综合久久大伊人精品 | 九九热这里只有精品6 | 日日摸天天添天天添破 | 夜夜摸夜夜操 | 国产激情视频 | 波多野吉衣在线播放 | 超碰欧美| 精品一二区 | 在线观看亚洲专区 | 在线欧美视频 | 亚洲精品久久久蜜桃 | 午夜码电影 | 99久久99 | 日一区二区 | 久草99| www精品美女久久久tv | 日韩成人在线播放 | 欧美日韩国产一区二区三区 | 毛片一区二区三区 | 日本在线一区二区三区 | 欧美在线视频一区二区 | 国产乱码精品一区二区三区忘忧草 | 夜夜夜夜夜夜曰天天天 | 蜜桃视频一区二区三区 | 97精品国产手机 | 春色av| 在线不卡视频 | 成人网视频 | 国产特一级黄色片 | 美女视频黄色片 | 精品一区免费 | 不卡一区 | 国产精品毛片在线 | 欧美亚洲一级 |