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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機智能小車設計(電路原理圖+源程序)

[復制鏈接]
跳轉到指定樓層
樓主
  前段時間電子實訓用89C52單片機做了個智能車,只做了最基礎的部分,可以繼續添加其他外設。
  硬件設備:單片機最小系統(89C52RC)、電源(9V)、穩壓(7805)、驅動模塊(L9110)、測速模塊(LM393+GK152)、直流電機+小車支架。
  要實現的功能:在程序里面通過測速閉環調節輸出的PWM占空比使小車直行。(目前就只寫了直行的程序,轉彎程序還沒寫,其他外設也沒寫)
  單片機配置:定時器0:左輪pwm波;定時器1:右輪pwm波;外部中斷0:左輪測速;外部中斷1:右輪測速。
  要讓小車直行最簡單的辦法是對左右輪輸出pwm波,手動調節占空比來使左右輪轉速相同。由于各電機差異當占空比相同時電機轉速不一樣,所以就要不斷調試,調節占空比來使左右輪轉速相同,這個過程很麻煩。而通過測速模塊就可以自動調節占空比來使轉速達到一致。

制作出來的實物圖如下:


電路原理圖如下:


下面是單片機程序:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit djl2=P0^3;
  5. sbit djl1=P0^2;
  6. sbit djr1=P0^1;
  7. sbit djr2=P0^0;

  8. uchar time1,time2,pwm1=80,pwm2=80;
  9. uint tmp1,tmp2;

  10. void init()
  11. {
  12.         EA=1;
  13.         EX0=1;
  14.         ET0=1;
  15.         IT0=1;
  16.         EX1=1;
  17.         ET1=1;
  18.         IT1=1;
  19.         TMOD=0X11;
  20.         TH0=(65536-100)/256;
  21.         TL0=(65536-100)/256;
  22.         TH1=(65536-100)/256;
  23.         TL1=(65536-100)/256;
  24.         TR1=1;
  25.         TR0=1;
  26. }
  27. void external0() interrupt 0
  28. {
  29.         EX0=0;
  30.         tmp1++;
  31.         EX0=1;
  32. }
  33. void inter1() interrupt 1
  34. {
  35.         TR0=0;
  36.   TH0=(65536-100)/256;
  37.   TL0=(65536-100)%256;
  38.   TR0=1;
  39.          
  40.   time1++;
  41.         if(time1==100)
  42.         time1=0;
  43. }
  44. void cesu2() interrupt 2
  45. {
  46.         EX1=0;
  47.         tmp2++;
  48.         EX1=1;
  49. }
  50. void inter2() interrupt 3
  51. {
  52.         TR1=0;
  53.         TH1=(65536-100)/256;
  54.         TL1=(65536-100)%256;
  55.         TR1=1;
  56.          
  57.         time2++;
  58.         if(time2==100)
  59.         time2=0;
  60. }

  61. void pwm()
  62. {
  63.                 if(time1<=pwm2)
  64.                 djr1=1;
  65.         else djr1=0;
  66.         if(time2<=pwm1)
  67.                 djl1=1;
  68.         else djl1=0;

  69. }
  70. void tiaosu()
  71. {
  72.         if(time1==100)
  73.         {
  74.                 while(1)
  75.                 {
  76.                         if(tmp1>tmp2)
  77.                                 pwm1-=1;
  78.                         if(tmp1<tmp2)
  79.                                 pwm2+=1;
  80.                         if(tmp1=tmp2)
  81.                          break;
  82.                 }
  83.                 tmp1=tmp2=0;
  84.         }
  85. }

  86. void main()
  87. {
  88.         djl2=djr2=0;
  89.         init();
  90.         while(1)
  91.         {
  92.                 pwm();
  93.                 tiaosu();
  94.         }
  95. }
復制代碼







評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:29972 發表于 2019-2-9 22:12 | 只看該作者
    我的遙控車剛剛制作完成,目前問題是無法直行,請問樓主用的是自帶編碼器的電機嗎?是PID控制嗎?
程序能否加注釋?愿與樓主同行,共同完成制作!
回復

使用道具 舉報

板凳
ID:544737 發表于 2020-2-8 16:30 | 只看該作者
求原理圖和代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品视频在线观看 | 精品av | 91精品国产91久久久 | 久久人人爽人人爽人人片av免费 | 亚洲欧美激情精品一区二区 | 黄a免费看 | 精品美女视频在免费观看 | 久久久蜜桃一区二区人 | 色婷婷av99xx | 日本超碰 | 亚洲欧洲一区二区 | 亚洲人人| 日本欧美大片 | 国产精品极品美女在线观看免费 | 亚洲3p| 欧洲成人午夜免费大片 | 午夜久草 | 欧美一区二区在线观看 | 亚洲精品自在在线观看 | 亚洲精品乱码久久久久v最新版 | 精品成人一区二区 | 国产精品精品久久久 | 免费特级黄毛片 | 日韩在线小视频 | 欧美三区| 亚州春色| 成人影院在线观看 | 九色91视频 | 国产亚洲欧美在线 | 国产精品极品美女在线观看免费 | 日韩av第一页 | 国产精品免费高清 | 一区影院 | 国产成人免费 | 最新中文字幕一区 | 精品一区二区三区在线观看国产 | 欧美一区二区三区四区在线 | 亚洲欧洲精品一区 | 99精品国产一区二区青青牛奶 | 国产精品久久久久久久久久久免费看 | 欧美看片|