久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于51單片機的簡單智能小車,實現HC-05藍牙控制+避障+尋跡等功能
[打印本頁]
作者:
孤獨者!
時間:
2018-4-22 11:02
標題:
基于51單片機的簡單智能小車,實現HC-05藍牙控制+避障+尋跡等功能
分享一下我的作品。下面是制作出來的實物圖:
822005372859072152.jpg
(1.83 MB, 下載次數: 131)
下載附件
2018-4-22 11:01 上傳
單片機源程序如下:
#include<reg52.h>
typedef unsigned char u8; //宏定義無符號字符型 8位
typedef unsigned int u16; //宏定義無符號整形 16位
sbit PWM1 = P2^6; //左電機高電平
sbit PWM2 = P2^5; //右電機高電平
sbit IN1 = P2^4;
sbit IN2 = P2^3; //左電機
sbit IN3 = P2^2;
sbit IN4 = P2^1; //右電機
sbit S1 = P1^1; //左紅外避障模塊
sbit S2 = P1^2; //右紅外避障模塊
sbit S3 = P1^3; //左紅外尋跡模塊
sbit S4 = P1^4; //右紅外尋跡模塊
sbit K1 = P3^2; //功能轉換按鍵
u8 connt; //調速周期
u8 PWM_NO; //高電平時間
u8 COM = 0; //功能控制位
u8 t=0; //判斷串口中斷是否執行
void time(void) //定時計時器初始化函數
{
TMOD = 0x01; //中斷方式1
TH0 = 0xfe;
TL0 = 0x0c; //0.5ms
EA = 1; //打開總中斷
ET0 = 1; //打開計時器中斷
TR0 = 1; //啟動計時器
}
void InitUART(void) //串口中斷初始化函數
{
SCON=0x50; //設置為工作方式1
TMOD=0x20; //設置計數器工作方式2
PCON=0x00; //波特率加倍
TH1=0xfd; //計數器初始值設置,注意波特率是9600的
TL1=0xfd;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
void delay( u16 k ) //延時大約1ms
{
u16 i,j;
for(i=k;i>0;i--)
for(j=120;j>0;j--);
}
void SC() //剎車
{
IN1 = 0;
IN2 = 0;
IN3 = 0;
IN4 = 0;
}
void QJ() //前進
{
IN1 = 1;
IN2 = 0;
IN3 = 1;
IN4 = 0;
}
void HT() //后退
{
IN1 = 0;
IN2 = 1;
IN3 = 0;
IN4 = 1;
}
void ZZ1() //左大轉
{
IN1 = 0;
IN2 = 1;
IN3 = 1;
IN4 = 0;
}
void ZZ2() //左小轉
{
IN1 = 0;
IN2 = 0;
IN3 = 1;
IN4 = 0;
}
void YZ1() //右大轉
{
IN1 = 1;
IN2 = 0;
IN3 = 0;
IN4 = 1;
}
void YZ2() //右小轉
{
IN1 = 1;
IN2 = 0;
IN3 = 0;
IN4 = 0;
}
void HY() //后右轉
{
IN1 = 0;
IN2 = 0;
IN3 = 0;
IN4 = 1;
}
void lin1() //紅外避障程序
{
if( S1 && S2 ) //兩探頭不反應,小車前進
{
QJ();
}
if( !S1 && S2 ) //左探頭反應,小車右轉
{
SC();
delay(100);
HT();
delay(400);
YZ1();
delay(550);
SC();
delay(100);
}
if( S1 && !S2 ) //右探頭反應,小車左轉
{
SC();
delay(100);
HT();
delay(400);
ZZ1();
delay(550);
SC();
delay(100);
}
if( !S1 && !S2 ) //兩探頭反應,小車后退,右轉
{
SC();
delay(100);
HT();
delay(400);
HY();
delay(550);
}
}
void lin2() //尋跡功能程序
{
if( !S3 && !S4 ) //兩探頭反應,小車前進
{
QJ();
delay(150);
SC();
delay(90);
}
if( S1 && S2 ) //兩探頭反應,小車停止
{
SC();
}
if( S3 && !S4 ) //左探頭不反應,小車右轉
{
SC();
delay(90);
YZ2();
delay(120);
}
if( !S3 && S4 ) //右探頭不反應,小車左轉
{
SC();
delay(90);
ZZ2();
delay(90);
}
}
void lin3() //物塊追蹤功能程序
{
if( S1 && S2 ) //兩探頭不反應,小車停止
{
SC();
}
if( !S1 && !S2 ) //兩探頭反應,小車前進
{
QJ();
}
if( !S1 && S2 ) //右探頭不反應,小車左轉
{
ZZ1();
}
if( S1 && !S2 ) //左探頭不反應,小車右轉
{
YZ1();
}
}
void lin4() //魔術手功能程序
{
if( S1 && S2 ) //兩探頭不反應,小車前進
{
QJ();
}
if( !S1 && !S2 ) //兩探頭反應,小車后退
{
HT();
}
if( !S1 && S2 ) //左探頭反應,小車后退
{
HT();
}
if( S1 && !S2 ) //右探頭反應,小車后退
{
HT();
}
}
void konzi() //控制位
{
if( K1 == 0 )
{
delay(10);
if( K1 == 0 )
{
COM++;
}
while( !K1 );
}
if( COM == 5)
{
COM = 0;
t=0;
}
if( COM == 0 )
{
PWM_NO = 14;
}
else
PWM_NO = 15;
}
void main () //主函數
{
time(); //計時器初始化
InitUART(); //串口初始化
connt = 20; //PWM的一個周期
PWM_NO = 14; //調速,數值越大速度越慢
IN1 = 0;
IN2 = 0;
IN3 = 0;
IN4 = 0; //待機
while(1)
{
konzi();
switch(COM) //功能選擇區
{
case 0: lin1();break; //避障
case 1: lin2();break; //尋跡
case 2: lin3();break; //物體跟隨
case 3: lin4();break; //魔術手
case 4: t=1;SC();while(1);break; //跳轉到藍牙控制
}
}
}
void Timer0Interrupt(void) interrupt 1 //計時器中斷函數
{
u8 non;
TH0 = 0xfe;
TL0 = 0x0c;
non++;
if( non == PWM_NO )
{
PWM1 = 1;
PWM2 = 1;
}
if( non == connt )
{
non = 0;
if( PWM_NO != 0)
{
PWM1 = 0;
PWM2 = 0;
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
小車.rar
(1.77 KB, 下載次數: 585)
2018-4-22 10:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
你!
時間:
2018-4-22 17:02
謝謝樓主的分享
作者:
寂寞微積分
時間:
2018-5-4 08:42
謝謝樓主分享,在做畢設
作者:
momoland
時間:
2018-9-3 17:25
魔術手方案代碼設計的比較巧妙
作者:
18323097716
時間:
2018-9-17 09:32
謝謝分享
作者:
我就是我啊
時間:
2018-11-1 10:22
謝謝分享,真的很棒
作者:
15163405684
時間:
2018-12-10 20:34
謝謝分享
作者:
偷喝茶的貓
時間:
2019-3-20 08:50
樓主可否私發一下,我這新號沒幣。。。。。!
1041371533@qq.com
萬分感謝!!!
作者:
74HC595
時間:
2019-3-22 23:32
樓主可否私發一下,我這新號沒幣。。。。。!
2658376041@qq.com
萬分感謝!!!
作者:
13219695612
時間:
2019-3-23 16:22
你! 發表于 2018-4-22 17:02
謝謝樓主的分享
感謝樓主分享
作者:
風華12306
時間:
2019-4-1 09:18
這個資料可以的,贊一個
作者:
馬良馬良
時間:
2019-4-11 14:39
代碼寫的真好,看了2遍
作者:
風馬少年
時間:
2019-6-13 17:50
感謝分享,一直想找的程序
作者:
d6699721
時間:
2020-3-14 15:53
可以可以 感謝分享
作者:
zjdaty
時間:
2020-4-12 20:37
樓主 牛b啊
作者:
區區&致命傷
時間:
2021-2-10 10:22
樓主能幫忙接下疑惑嗎?sbit K1 = P3^2; //功能轉換按鍵這一部分是做聲嗎的?
作者:
小懸
時間:
2021-3-6 11:40
謝謝分享,最近正好在找這些東西!
作者:
3354968205
時間:
2021-3-7 13:21
頂起! 謝謝樓主的分享
作者:
SyingChan
時間:
2022-1-18 17:18
你好,有電路圖嗎
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一级一片免费播放放a 男男成人高潮片免费网站 精品视频在线观看
|
97在线免费
|
91在线播放视频
|
99久久婷婷国产综合精品草原
|
日韩在线视频网站
|
久草视频观看
|
亚洲a视频
|
国产免费a
|
在线观看视频一区二区
|
国产一级黄色录像
|
国产专区在线播放
|
欧美一级二级三级
|
日韩欧美中文字幕在线观看
|
婷婷中文网
|
www.youjizz.com日本
|
色多多在线观看
|
亚洲人网站
|
国产精品成人免费精品自在线观看
|
四虎在线免费观看视频
|
日日干干
|
美女无遮挡网站
|
国产第二页
|
亚洲国产精品一区二区三区
|
91成人看片
|
色黄大色黄女片免费中国
|
国产九九
|
激情综合久久
|
国产一级特黄
|
精品福利在线观看
|
久久精品一区二区三区不卡牛牛
|
青青久草
|
成人在线精品
|
国产欧美精品
|
在线日韩一区
|
jlzzzjlzzz国产免费观看
|
国产成人一区二区三区
|
亚洲一区精品视频
|
人人超碰人人
|
久久久久久久国产精品
|
久草福利视频
|
精品婷婷
|