日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机智能小车——寻迹

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机智能小车——寻迹 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

材料:

(1)51單片機開發板

(2)l298n電機驅動模塊1個

(3)四個電機

(4)尋跡紅外2個

一、組裝

(1)L298N電機驅動模塊與開發板接線如下圖:

尋跡紅外接線:

?

說明:

紅外一OUT接 單片機P1.5

紅外二OUT接 單片機P1.4

?代碼:

如果速度過大,小車可能會甩出軌道,速度可調占空比降速度。

#include "reg52.h"typedef unsigned char u8; typedef unsigned int u16;//電機控制管腳 sbit MOTOA=P1^0; sbit MOTOB=P1^1; sbit MOTOC=P1^2; sbit MOTOD=P1^3; //紅外感應控制管腳 sbit Left_In=P1^4; sbit Right_In=P1^5; u16 time_cnt=0; //定時器中斷計數次數 u16 freq=100; //頻率 u8 duty_cycle=50; //占空比//延時函數10*us(us) void delay_10us(u16 us) {while(us--); }//ms延時函數ms void delay_ms(u16 ms) {u16 i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--); }//定時器0初始化函數 //定時時間:0.1ms void Time0_Init(void) {TMOD|=0x01;TH0 = 0XFF;TL0 = 0X9C; //定時0.1msTR0 = 1;ET0 = 1;EA = 1; }//主函數 void main() {Time0_Init(); while(1){} }void Time0_Isr() {TR0 = 0; //關閉定時器TH0 = 0XFF;TL0 = 0X9C; time_cnt++; if(time_cnt>=freq) time_cnt=0;else if(time_cnt<=duty_cycle){if((Left_In==0)&&(Right_In==0)) //左右紅外沒有檢測到黑線--前進{MOTOA=1;MOTOB=0;MOTOC=1;MOTOD=0; }else if((Left_In==1)&&(Right_In==0)) //左紅外檢測到黑線--左轉{MOTOA=1;MOTOB=0;MOTOC=0;MOTOD=1; }else if((Left_In==0)&&(Right_In==1)) //右紅外檢測到黑線--右轉{MOTOA=0;MOTOB=1;MOTOC=1;MOTOD=0; }else if((Left_In==1)&&(Right_In==1)) //左右紅外檢測到黑線--停止{MOTOA=0;MOTOC=0;MOTOB=0;MOTOD=0; }} else{if((Left_In==0)&&(Right_In==0)) //左右紅外沒有檢測到黑線--前進{MOTOA=1;MOTOB=0;MOTOC=1;MOTOD=0; }}TR0 = 1; //開啟定時器0 }

?

?

總結

以上是生活随笔為你收集整理的51单片机智能小车——寻迹的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。