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

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

QQ登錄

只需一步,快速開始

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

基于STC15W單片機(jī)平衡車程序+PCB工程設(shè)計(jì)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
有原理圖,PCB板,程序源碼
Altium Designer畫的PCB圖如下:(51hei附件中可下載工程文件)


單片機(jī)源程序如下:
  1. /*********************************************************/       
  2. #include "config.h"


  3. /*************        本地函數(shù)聲明        **************/
  4. //========================================================================
  5. // 函數(shù): void  delay_ms(u8 ms)
  6. // 描述: 延時(shí)函數(shù)。
  7. // 參數(shù): ms,要延時(shí)的ms數(shù), 這里只支持1~255ms. 自動(dòng)適應(yīng)主時(shí)鐘.
  8. // 返回: none.
  9. // 版本: VER1.0
  10. // 日期:  
  11. // 備注:
  12. //========================================================================
  13. void  delay_ms(u8 ms)
  14. {
  15.      u16   i;
  16.          do{
  17.               i = MAIN_Fosc / 13000;
  18.                   while(--i)        ;   //14T per loop
  19.      }while(--ms);
  20. }


  21. /************************ 定時(shí)器配置 ****************************/
  22. void        Timer_config(void)
  23. {
  24.         TIM_InitTypeDef                TIM_InitStructure;                                        //結(jié)構(gòu)定義
  25.         TIM_InitStructure.TIM_Mode      = TIM_16BitAutoReload;        //指定工作模式,   TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
  26.         TIM_InitStructure.TIM_Polity    = PolityLow;                        //指定中斷優(yōu)先級(jí), PolityHigh,PolityLow
  27.         TIM_InitStructure.TIM_Interrupt = ENABLE;                                //中斷是否允許,   ENABLE或DISABLE
  28.         TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T;                        //指定時(shí)鐘源,     TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
  29.         TIM_InitStructure.TIM_ClkOut    = DISABLE;                                //是否輸出高速脈沖, ENABLE或DISABLE
  30.         TIM_InitStructure.TIM_Value     = 65536UL - (MAIN_Fosc / 480);                //1ms初值,
  31.         TIM_InitStructure.TIM_Run       = ENABLE;                                //是否初始化后啟動(dòng)定時(shí)器, ENABLE或DISABLE
  32.         Timer_Inilize(Timer0,&TIM_InitStructure);                                //初始化Timer0          Timer0,Timer1,Timer2,Timer3,Timer4
  33.        
  34.         TIM_InitStructure.TIM_Mode      = TIM_16BitAutoReload;        //指定工作模式,   TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
  35.         TIM_InitStructure.TIM_Polity    = PolityLow;                        //指定中斷優(yōu)先級(jí), PolityHigh,PolityLow
  36.         TIM_InitStructure.TIM_Interrupt = ENABLE;                                //中斷是否允許,   ENABLE或DISABLE
  37.         TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T;                        //指定時(shí)鐘源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
  38.         TIM_InitStructure.TIM_ClkOut    = DISABLE;                                //是否輸出高速脈沖, ENABLE或DISABLE
  39.         TIM_InitStructure.TIM_Value     = 65536UL - (MAIN_Fosc / 1200);                //10ms初值,
  40.         TIM_InitStructure.TIM_Run       = ENABLE;                                //是否初始化后啟動(dòng)定時(shí)器, ENABLE或DISABLE
  41.         Timer_Inilize(Timer1,&TIM_InitStructure);                                //初始化Timer1          Timer0,Timer1,Timer2

  42.         TIM_InitStructure.TIM_Interrupt = ENABLE;                                //中斷是否允許,   ENABLE或DISABLE. (注意: Timer2固定為16位自動(dòng)重裝, 中斷固定為低優(yōu)先級(jí))
  43.         TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_Ext;                //指定時(shí)鐘源,     TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
  44.         TIM_InitStructure.TIM_ClkOut    = DISABLE;                                //是否輸出高速脈沖, ENABLE或DISABLE
  45.         TIM_InitStructure.TIM_Value     = 0;                //初值
  46.         TIM_InitStructure.TIM_Run       = ENABLE;                                //是否初始化后啟動(dòng)定時(shí)器, ENABLE或DISABLE
  47.         Timer_Inilize(Timer3,&TIM_InitStructure);                                //初始化Timer3          Timer0,Timer1,Timer2,Timer3,Timer4

  48.         TIM_InitStructure.TIM_Interrupt = ENABLE;                                //中斷是否允許,   ENABLE或DISABLE. (注意: Timer2固定為16位自動(dòng)重裝, 中斷固定為低優(yōu)先級(jí))
  49.         TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_Ext;                //指定時(shí)鐘源,     TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
  50.         TIM_InitStructure.TIM_ClkOut    = DISABLE;                                //是否輸出高速脈沖, ENABLE或DISABLE
  51.         TIM_InitStructure.TIM_Value     = 0;                //初值
  52.         TIM_InitStructure.TIM_Run       = ENABLE;                                //是否初始化后啟動(dòng)定時(shí)器, ENABLE或DISABLE
  53.         Timer_Inilize(Timer4,&TIM_InitStructure);                                //初始化Timer4          Timer0,Timer1,Timer2,Timer3,Timer4
  54. }

  55. /***************** 串口配置函數(shù) *****************************/
  56. void        UART_config(void)
  57. {
  58.         COMx_InitDefine                COMx_InitStructure;                                        //結(jié)構(gòu)定義
  59.         COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
  60.         COMx_InitStructure.UART_BRT_Use   = BRT_Timer2;                        //使用波特率,   BRT_Timer1, BRT_Timer2 (注意: 串口2固定使用BRT_Timer2)
  61.         COMx_InitStructure.UART_BaudRate  = 9600ul;                                //波特率, 一般 110 ~ 115200
  62.         COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  63.         COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  64.         COMx_InitStructure.UART_P_SW      = UART1_SW_P30_P31;        //切換端口,   UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17(必須使用內(nèi)部時(shí)鐘)
  65.         USART_Configuration(USART1, &COMx_InitStructure);                //初始化串口1 USART1,USART2,USART3,USART4

  66. //        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_8bit_BRTx,UART_9bit_BRTx
  67. //        COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率,     110 ~ 115200
  68. //        COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  69. //        COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  70. //        COMx_InitStructure.UART_P_SW      = UART2_SW_P10_P11;        //切換端口,   UART2_SW_P10_P11, UART2_SW_P46_P47
  71. //        USART_Configuration(USART2, &COMx_InitStructure);                //初始化串口2 USART1,USART2,USART3,USART4

  72.         COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_8bit_BRTx,UART_9bit_BRTx
  73.         COMx_InitStructure.UART_BRT_Use   = BRT_Timer2;                        //使用波特率, BRT_Timer3, BRT_Timer2
  74.         COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率,     110 ~ 115200
  75.         COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  76.         COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  77.         COMx_InitStructure.UART_P_SW      = UART3_SW_P00_P01;        //切換端口,   UART3_SW_P00_P01, UART3_SW_P50_P51
  78.         USART_Configuration(USART3, &COMx_InitStructure);                //初始化串口2 USART1,USART2,USART3,USART4

  79. //        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_8bit_BRTx,UART_9bit_BRTx
  80. //        COMx_InitStructure.UART_BRT_Use   = BRT_Timer4;                        //使用波特率, BRT_Timer4, BRT_Timer2
  81. //        COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率,     110 ~ 115200
  82. //        COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  83. //        COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  84. //        COMx_InitStructure.UART_P_SW      = UART4_SW_P02_P03;        //切換端口,   UART4_SW_P02_P03, UART4_SW_P52_P53
  85. //        USART_Configuration(USART4, &COMx_InitStructure);                //初始化串口4 USART1,USART2,USART3,USART4

  86. }

  87. /**********************************************/
  88. void main(void)
  89. {
  90.         SYSTEM_CLK_1T();
  91.         P0n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  92.         P1n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  93.         P2n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  94.         P3n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  95.         P4n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  96.         P5n_standard(0xff);        //設(shè)置為準(zhǔn)雙向口
  97.         UART_config();        //串口初始化
  98.         Timer_config();  //定時(shí)器0,1初始化
  99.         PWMInit();
  100.         MPU6050Init();
  101.         CarUpstandInit();       
  102.         EA = 1;
  103.         delay_ms(10);
  104.         PrintString(USART1,"STC15W4K32S4 USART1 Ready!\r\n");
  105.         while (1)
  106.         {
  107.                    UART_handle(); //處理串口和藍(lán)牙接收數(shù)據(jù)
  108.         }
  109. }
復(fù)制代碼

所有資料51hei提供下載:
兩輪平衡車.zip (346.44 KB, 下載次數(shù): 90)
雙面板 AD19.zip (2.03 MB, 下載次數(shù): 67)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:282650 發(fā)表于 2020-3-11 21:52 來自手機(jī) | 只看該作者
電機(jī)驅(qū)動(dòng)用的啥?8825?
回復(fù)

使用道具 舉報(bào)

板凳
ID:702057 發(fā)表于 2020-3-13 13:25 | 只看該作者
終于找到了,很期待的!
回復(fù)

使用道具 舉報(bào)

地板
ID:658948 發(fā)表于 2020-6-13 23:18 | 只看該作者
我好奇的問問這個(gè)電機(jī)轉(zhuǎn)速怎么選,最好選多大的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久综合九色综合欧美狠狠 | 一区二区在线看 | 欧美亚洲一级 | 欧美性成人 | 婷婷丁香在线视频 | 亚洲第一黄色网 | 久久久久无码国产精品一区 | 国产精品极品美女在线观看免费 | 国产成人在线视频 | 欧美一级视频在线观看 | 久久久久成人精品 | 一区二区久久 | 久久精品国产免费高清 | 日本中出视频 | 日日日日日日bbbbb视频 | 欧美中文字幕一区二区三区亚洲 | 亚洲一区二区在线免费观看 | 综合色婷婷 | 国产乡下妇女做爰 | 黄网站在线播放 | 欧美日韩精品一区二区天天拍 | 久久久亚洲成人 | 天天操天天拍 | h视频免费在线观看 | 国产精品99久久久久久动医院 | 国产精品日韩欧美一区二区三区 | 亚洲一区二区三区高清 | 秋霞a级毛片在线看 | 久久久不卡网国产精品一区 | 欧美一级片在线看 | 亚洲喷水 | 九九亚洲精品 | a毛片| 第一色在线 | 亚洲影音先锋 | 免费视频一区二区 | 成人网在线 | 成人h片在线观看 | 亚洲h视频 | 亚州春色| 在线视频亚洲 |