標(biāo)題: 51單片機(jī)掃地機(jī)器人程序與Proteus仿真原理圖 [打印本頁(yè)]

作者: 51小白冬    時(shí)間: 2021-8-15 19:19
標(biāo)題: 51單片機(jī)掃地機(jī)器人程序與Proteus仿真原理圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


電路原理圖如下:


單片機(jī)源程序如下:
  1. /**************************************************************************************
  2. 實(shí)現(xiàn)現(xiàn)象:下載程序后數(shù)碼管顯示0,按下矩陣按鍵上的按鍵顯示對(duì)應(yīng)的數(shù)字
  3.                         S1-S4:0-3
  4.                         S5-S8:4-7
  5.                         S9-S12:8-B
  6.                         S13-S16:C-F。
  7. 注意事項(xiàng):如果不想讓點(diǎn)陣模塊顯示,可以將74HC595模塊上的JP595短接片拔掉。                                                                                                                                                                  
  8. ***************************************************************************************/

  9. #include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
  10. #include "lcd.h"

  11. typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  12. typedef unsigned char u8;
  13. u16 i=0;
  14. u16 k=0;


  15. sbit D1=P2^0;
  16. sbit D2=P2^1;
  17. sbit D3=P2^2;
  18. sbit D4=P2^3;
  19. sbit D5=P2^4;
  20. sbit D6=P2^5;

  21. sbit CW1=P3^0;
  22. sbit CW2=P3^1;
  23. sbit CW3=P3^2;
  24. sbit CL1=P3^3;
  25. sbit CL2=P3^4;
  26. sbit CL3=P3^5;
  27. sbit CL=P3^6;
  28. sbit ST=P3^7;



  29. void delay(u16 i)
  30. {
  31.         while(i--);        
  32. }
  33. MOTO_INIT()
  34. {
  35.    D1=1;
  36.    D2=0;
  37.    D3=1;
  38.    D4=0;
  39.    D5=1;
  40.    D6=0;
  41.    CW1=1;
  42.    CW2=1;
  43.    CW3=1;
  44. }
  45. void zhi(void)
  46. {
  47. CW1=1;
  48. CW2=1;
  49. }

  50. void zuo(void)
  51. {
  52. CW1=0;
  53. CW2=1;
  54. }
  55. void you(void)
  56. {
  57. CW1=1;
  58. CW2=0;
  59. }
  60. void tui(void)
  61. {
  62. CW1=0;
  63. CW2=0;
  64. }



  65. void InitTimer0(void)
  66. {
  67.     TMOD = 0x11;            // 設(shè)置定時(shí)器0.1工作在
  68.     TH0 = 0x3C;
  69.     TL0 = 0x0B0;
  70.     TH1 = 0x0FF;
  71.     TL1 = 0x9C;
  72.     EA = 1;
  73.     ET0 = 1;
  74.     TR0 = 1;
  75.     ET1 = 1;
  76.     TR1 = 1;
  77. }
  78. void Timer0Interrupt(void) interrupt 1
  79. {
  80.     TH0 = 0x3C;               //定時(shí)時(shí)間
  81.     TL0 = 0x0B0;
  82.         ST=~ST;                                               //ADC0808開(kāi)始信號(hào)脈沖
  83.            CL1=~CL1;                                    //步進(jìn)1的脈沖
  84.         CL2=~CL2;                                        //步進(jìn)2的脈沖
  85.         i++;                                                //標(biāo)志位(控制步進(jìn)電機(jī)3)
  86.         if(i==20)                                        //i=20進(jìn)入一次
  87.         {CL3=~CL3;i=0;k++;}                        //(0-135) 45d度  k 脈沖計(jì)數(shù)
  88.         if(k==4)
  89.     {k=0;CW3=~CW3;}                            //掉頭
  90. }


  91. void Timer1Interrupt(void) interrupt 3
  92. {
  93.       TH1 = 0x0FF;
  94.       TL1 = 0x9C;
  95.       CL=~CL;
  96. }
  97. void main()
  98. {        

  99. MOTO_INIT();
  100. InitTimer0();
  101.         while(1)
  102.          {
  103.          if(P1>0X84)
  104.          tui();
  105.          if(P1>0X80&&P1<0X84)
  106.          zuo();
  107.          else
  108.          zhi();
  109.      }                                       
  110. }
復(fù)制代碼

Keil5代碼與Proteus8.8仿真下載:
掃地機(jī)器人 (2).zip (474.24 KB, 下載次數(shù): 298)


作者: 172624    時(shí)間: 2022-2-5 22:28
這份資料很有用感謝樓主的分享
作者: PEB188    時(shí)間: 2022-2-6 09:59
怎么自動(dòng)充電?我感覺(jué)掃地機(jī)最重要的就是回充功能啊
作者: 51小白冬    時(shí)間: 2022-3-21 22:08
PEB188 發(fā)表于 2022-2-6 09:59
怎么自動(dòng)充電?我感覺(jué)掃地機(jī)最重要的就是回充功能啊

這個(gè)只是大學(xué)設(shè)計(jì)水平,自動(dòng)回沖的可以用ros 或者 視覺(jué)標(biāo)簽電子標(biāo)簽識(shí)別
作者: 董兒子    時(shí)間: 2022-4-23 17:21
有代碼講解嗎
作者: 51小白冬    時(shí)間: 2022-5-4 20:51
董兒子 發(fā)表于 2022-4-23 17:21
有代碼講解嗎

恩。。。。。 兄弟,這個(gè)不難的,你得自己看。
作者: 51_chuan    時(shí)間: 2022-5-8 13:55
請(qǐng)問(wèn)樓主有沒(méi)有實(shí)物圖?方便提供一下怎么硬件連接嗎?
作者: csg3998    時(shí)間: 2022-5-13 20:14
樓主,我這怎么仿真運(yùn)行不起來(lái)
作者: csg3998    時(shí)間: 2022-5-13 20:24
抱歉,找到方法了
作者: csg3998    時(shí)間: 2022-5-17 08:14
請(qǐng)問(wèn)這個(gè)頂部電機(jī)是做什么用的呢?看不太懂
作者: 51小白冬    時(shí)間: 2022-5-23 15:58
csg3998 發(fā)表于 2022-5-17 08:14
請(qǐng)問(wèn)這個(gè)頂部電機(jī)是做什么用的呢?看不太懂

吸塵

作者: 15924518853    時(shí)間: 2022-6-6 16:30
你好,我想問(wèn)一下這個(gè)有用到傳感器嗎
作者: 51小白冬    時(shí)間: 2022-6-14 20:21
51_chuan 發(fā)表于 2022-5-8 13:55
請(qǐng)問(wèn)樓主有沒(méi)有實(shí)物圖?方便提供一下怎么硬件連接嗎?

沒(méi)有實(shí)物的

作者: 51小白冬    時(shí)間: 2022-6-14 20:21
15924518853 發(fā)表于 2022-6-6 16:30
你好,我想問(wèn)一下這個(gè)有用到傳感器嗎

沒(méi)有的 實(shí)質(zhì)上就是控制多路步進(jìn)電機(jī)

作者: strive6666    時(shí)間: 2022-6-15 11:17
您好,請(qǐng)問(wèn)這個(gè)是各電路分別控制上面的各個(gè)電機(jī)嗎,各電路分別是控制哪個(gè)電機(jī)呢?整個(gè)掃地機(jī)器人的運(yùn)行邏輯是...?謝謝
作者: 51小白冬    時(shí)間: 2022-6-17 14:31
strive6666 發(fā)表于 2022-6-15 11:17
您好,請(qǐng)問(wèn)這個(gè)是各電路分別控制上面的各個(gè)電機(jī)嗎,各電路分別是控制哪個(gè)電機(jī)呢?整個(gè)掃地機(jī)器人的運(yùn)行邏輯 ...

原理圖與程序 很清晰,也不難,自己看看就懂,拒絕回答這種提問(wèn)
作者: 18883241182    時(shí)間: 2022-6-21 16:57
這份資料很有用感謝樓主的分享
作者: 123456789@@@    時(shí)間: 2022-9-23 15:30
這份資料很有用感謝樓主的分享

作者: sdlyyy    時(shí)間: 2023-3-15 08:24
大家風(fēng)范,內(nèi)容豐富,學(xué)習(xí)感謝。
作者: 123456njkkk    時(shí)間: 2023-4-25 23:41
超級(jí)棒超級(jí)有用 謝謝
作者: wdgao    時(shí)間: 2023-4-27 07:32
由于沒(méi)有避障傳感器和歸位充電功能,這不能講是掃地機(jī)器人,只能講是多路電機(jī)控制系統(tǒng)。
作者: 滑動(dòng)的憨憨    時(shí)間: 2023-4-29 11:53
這個(gè)可以做電量降低到一定程度后,自動(dòng)到固定的地方充電就好了!��!
作者: 51小白冬    時(shí)間: 2023-8-13 10:48
51_chuan 發(fā)表于 2022-5-8 13:55
請(qǐng)問(wèn)樓主有沒(méi)有實(shí)物圖?方便提供一下怎么硬件連接嗎?

沒(méi)有的哦

作者: 51小白冬    時(shí)間: 2023-8-13 10:49
wdgao 發(fā)表于 2023-4-27 07:32
由于沒(méi)有避障傳感器和歸位充電功能,這不能講是掃地機(jī)器人,只能講是多路電機(jī)控制系統(tǒng)。

這么說(shuō)也沒(méi)有問(wèn)題,定位不一樣
作者: 51小白冬    時(shí)間: 2023-8-13 10:50
滑動(dòng)的憨憨 發(fā)表于 2023-4-29 11:53
這個(gè)可以做電量降低到一定程度后,自動(dòng)到固定的地方充電就好了�。。�

是的,可以的




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