久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
C51單片機的智能小車程序設計 含遙控端與小車端 注釋很詳細
[打印本頁]
作者:
paredes
時間:
2020-11-24 14:14
標題:
C51單片機的智能小車程序設計 含遙控端與小車端 注釋很詳細
電賽用的程序設計,包含了轉彎、無線控制、循跡和人體溫度檢測
單片機源程序如下:
#include "reg52.h"
#include "nRF24L01.h"
#include "control.h"
#include "MLX90614.h"
#include "Ultrasonic.h"
#include "Ultrasonic2.h"
#define uint unsigned int
#define uchar unsigned char
sbit KEY8=P1^6; //發送按鍵
sbit beep=P0^2; //喇叭
sbit LED=P1^7; //發送數據時顯示燈
extern Tem;
void delay_ms(uint z) //延時函數
{
uint y;
while(z--)
for(y=110;y>0;y--);
}
void main()
{
uchar Rx_Buf[32]; //接收到的數據暫存器,最多32字節數據
uchar Tx_Buf[]={1}; //發送的信息1
init_NRF24L01();
LED=1; //初始燈6熄滅
while(NRF24L01_Check()) //檢查不到24l01則報警
{
beep=1;
delay_ms(200);
beep=0;
delay_ms(200);
}
while(1)
{
RX_Mode(); //接收模式
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收數據,返回1則接收到數據,在等待接收數據期間,可以隨時變成發送模式
{
if(KEY8==0) //按了按鍵8,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY8==0)
{
while(!KEY8);
TX_Mode(); //發送模式
nRF24L01_TxPacket(Tx_Buf); //發送命令數據
LED=0;
delay_ms(300);
LED=1;
delay_ms(300); //發送后LED6閃一下
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
}
if(Rx_Buf[0]==1) //若接收到對應的數據則實現對應功能
{
Rx_Buf[0]=0; //清空數據
LED=1;
delay_ms(300);
LED=0;
delay_ms(300); //接收到數據 后閃爍
}
switch(Rx_Buf[0]) //對數據進行分析來控制燈亮
{
case 0:
break;
case 1:
Rx_Buf[0]=0; //清空數據
m1 = 0;
m2 = 0;
m3 = 0;
m4 = 0;
break;
case 2:
Rx_Buf[0]=0; //清空數據
M_up(); //前進
break;
case 3:
Rx_Buf[0]=0; //清空數據
M_back(); //后退
break;
case 4:
Rx_Buf[0]=0; //清空數據
M_left(); //向左行駛
break;
case 5:
Rx_Buf[0]=0; //清空數據
M_right(); //向右行駛
break;
case 6:
Rx_Buf[0]=0; //清空數據
M_stop(); //停止
break;
case 7:
Rx_Buf[0]=0; //停止
delay(20); //延時程序 1
LCD_show(16,2);
LcdBusy();
LCD_init ();
display(Tem); // 顯示子程序
SMB_ack();
break;
case 8:
Rx_Buf[0]=0; //停止
Ultrasonic(); //小車端超聲波檢測
Ultrasonic2(); //人體端超聲波檢測
break;
}
}
}
復制代碼
#include "reg52.h"
#include "nRF24L01.h"
#define uint unsigned int
#define uchar unsigned char
sbit KEY1 = P2^0;
sbit KEY2 = P2^1;
sbit KEY3 = P2^2;
sbit KEY4 = P2^3;
sbit KEY5 = P2^4;
sbit KEY6 = P2^5;
sbit KEY7 = P2^6;
sbit KEY8 = P2^7;
sbit beep = P1^6; //喇叭
sbit LED = P1^7 ; //發送數據時顯示燈+接收到數據后的功能實現燈
void delay_ms(uint z) //延時函數
{
uint y;
while(z--)
for(y=110;y>0;y--);
}
void main()
{
uchar Tx_Buf1[]={1,2,3,4,5,6,7,8}; //發送的信息1
uchar Rx_Buf[32]; //接收到的數據暫存器,最多32字節數據
init_NRF24L01();
LED=0; //初始燈6熄滅
beep = 0;
while(NRF24L01_Check()) //檢查不到24l01則報警
{
beep=0;
delay_ms(200);
beep=1;
delay_ms(200);
}
while(1)
{
RX_Mode(); //接收模式
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收數據,返回1則接收到數據,在等待接收數據期間,可以隨時變成發送模式
{
if(KEY1==0) //按了按鍵1,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY1==0)
{
while(!KEY1);
TX_Mode(); //發送模式
Tx_Buf1[0]=1; //將1發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50); //發送后LED1閃一下
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY2==0)
{
delay_ms(5);//消抖動
if(KEY2==0)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=2; //將2發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
if(KEY2==1)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=6; //將2發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
}
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY3==0)
{
delay_ms(5);//消抖動
if(KEY3==0)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=3; //將3發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
if(KEY3==1)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=6; //將6發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
}
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY4==0) //按了按鍵8,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY4==0)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=4; //將4發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
if(KEY4==1)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=6; //將6發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
}
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY5==0)
{
delay_ms(5);//消抖動
if(KEY5==0)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=5; //將5發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
if(KEY5==1)
{
TX_Mode(); //發送模式
Tx_Buf1[0]=6; //將6發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
}
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY6==0) //按了按鍵8,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY6==0)
{
while(!KEY6);
TX_Mode(); //發送模式
Tx_Buf1[0]=6; //將6發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY7==0) //按了按鍵8,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY7==0)
{
while(!KEY7);
TX_Mode(); //發送模式
Tx_Buf1[0]=7; //將7發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
else if(KEY8==0) //按了按鍵8,則變成發送模式,發送對應數據,發送完后變成接收模式
{
delay_ms(5);//消抖動
if(KEY8==0)
{
while(!KEY8);
TX_Mode(); //發送模式
Tx_Buf1[0]=8; //將7發送過去
nRF24L01_TxPacket(Tx_Buf1); //發送命令數據
LED=0;
delay_ms(50);
LED=1;
delay_ms(50);
break; //退出最近的循環,從而變回接收模式,這句關鍵
}
}
}
if(Rx_Buf[0]==1) //若接收到對應的數據則實現對應功能
{
Rx_Buf[0]=0; //清空數據
LED=0;
delay_ms(300);
LED=1;
delay_ms(300); //接收到數據 后閃爍
}
}
}
復制代碼
51hei.png
(3.92 KB, 下載次數: 98)
下載附件
2020-11-24 16:46 上傳
所有程序51hei提供下載:
智能小車.zip
(137.92 KB, 下載次數: 75)
2020-11-24 14:13 上傳
點擊文件名下載附件
小車
下載積分: 黑幣 -5
作者:
51hei團團
時間:
2020-11-24 16:48
程序很好,可惜沒有原理圖啊
作者:
cwb2038
時間:
2022-7-14 10:53
謝謝分享·,能提供原理圖就更好了!
作者:
cwb2038
時間:
2022-9-4 16:07
謝謝分享,可惜沒有原理圖!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩欧美久久精品
|
免费性视频
|
在线观看三级av
|
不卡的av一区
|
亚洲一区二区三区免费观看
|
成人在线免费视频
|
久草视频在线播放
|
国产精品视频免费
|
色欧美片视频在线观看
|
国产精品综合一区二区
|
欧美一二三
|
久久99精品视频
|
国产精品视频入口
|
91国内在线观看
|
日韩在线视频播放
|
日韩欧美成人一区二区三区
|
91视频精选
|
亚洲福利一区
|
97精品一区二区
|
日韩一区二区三区在线视频
|
青青草国产在线观看
|
一区二区三区韩国
|
在线观看欧美日韩视频
|
91精品国产一区二区三区香蕉
|
夜夜草av
|
免费高潮视频95在线观看网站
|
国产精品久久久久aaaa
|
国产精品1区2区
|
91素人
|
毛片a级毛片免费播放100
|
亚洲欧美一区二区三区视频
|
成人精品啪啪欧美成
|
国产在线a视频
|
国产精品久久久久久影视
|
成人3d动漫一区二区三区91
|
在线观看国产精品视频
|
精品国产伦一区二区三区观看体验
|
亚洲欧美日韩一区二区
|
欧美精品一区在线发布
|
国产91综合一区在线观看
|
精品色
|