标题:
蓝牙遥控测距灭火车单片机源程序
[打印本页]
作者:
武略大韬
时间:
2017-12-4 22:09
标题:
蓝牙遥控测距灭火车单片机源程序
学校比赛的时候和同学一块做了一个蓝牙遥控测距灭火车。
可以蓝牙遥控并进行测距
单片机源程序如下:
/*************************************************************************/
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define LCD_data P0
sbit LCD_RS=P2^6;//................................
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^4;
sbit LCD_PSB=P2^7;
sbit Trig = P3^3;//................................
sbit Echo = P3^2;
sbit Beep=P3^4;//...................................蜂鸣器端口
sbit huoyan=P3^5;//.................................光照传感器端口
sbit Fan=P3^6;//....................................风扇端口
sbit PWM1= P1^1;//..................................
sbit Photosensitive_resistor = P3^7;//..............
sbit led = P1^0;
sbit motor_control_1 = P1^2;
sbit motor_control_2 = P1^3;
sbit motor_control_4 = P1^4;
sbit motor_control_3 = P1^5;
sbit PWM2 = P1^6;
sfr T2MOD = 0xC9;//.................................定时器2模式控制寄存器
unsigned char ucBluetoothData = 230;//..............
unsigned char ucLock = 0;//.........................
unsigned int uiPWMCnt1 = 0;
unsigned int uiPWM1 = 230;
unsigned int uiPWMCnt2 = 0;
unsigned int uiPWM2 = 230;
unsigned char ucTempPWM;//.......................
bit flag;
uchar outcomeL , outcomeH;
uint num,a;
uint distance_data;
uchar code dis1[] = {" 功能小车 "};
uchar code dis2[] = {" 误差范围4mm -4m"};
uchar code dis3[] = {" 距离:"};
uchar code dis4[] = {" 单位:mm"};
uchar code dis5[] = {" 危险!!"};
uchar code dis6[] = {" 安全"};
void initial_myself();
void initial_peripheral();//........................
void T0_time();
void usart_service(void);//.........................通用同步异步收发机服务
void delay_long(unsigned int uiDelayLong);
void go_forward(void);//............................前进
void fall_back(void);//.............................后退
void turn_left(void);//.............................左转
void turn_right(void);//............................右转
void stop();//......................................刹车
void lcd_init();//..................................
void fire_alarm();//................................
void display();//...................................
void Ultrasonic_ranging ();//.......................
void Photosensitive ();//...........................
void main()
{
TMOD = 0x01;
IT0 = 0;
EX0 = 0;
lcd_init() ;
Trig = 0;
initial_myself();
delay_long(100);
initial_peripheral();
while(1)
{
fire_alarm();
Photosensitive ();
display();
usart_service();
Ultrasonic_ranging () ;
}
}
void delay(uint z)//...............................延时函数
{
uchar i, j ;
for( i = z ; i > 0 ; i-- )
for( j = 110 ; j > 0 ; j-- );
}
void fire_alarm ()//................................火灾报警处理系统
{
if( huoyan == 0)
{
Beep = 0;
Fan = 0;
}
if( huoyan == 1 )
{
Beep = 1;
Fan = 1;
}
}
void Photosensitive ()
{
if(Photosensitive_resistor == 0)
{
led = 1;
}
if(Photosensitive_resistor == 1)
{
led = 0;
}
}
void write_cmd(uchar cmd)
{
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
P0 = cmd;
delay(1);
LCD_EN = 1;
delay(1);
LCD_EN = 0;
}
void write_dat(uchar dat)
{
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
delay(1);
LCD_EN = 1;
delay(1);
LCD_EN = 0;
}
void lcd_init()//
{
LCD_PSB = 1;
write_cmd(0x30);
delay(1);
write_cmd(0x30);
delay(1);
write_cmd(0x0c);
delay(1);
write_cmd(0x01);
delay(1);
}
void usart_service()
{
switch(ucBluetoothData)
{
case 0x41://........................前进
ucBluetoothData = 0x02;//避免一直触发
go_forward();
ucLock = 1;
uiPWM1 = uiPWM2 = ucTempPWM;
ucLock = 0;
break;
case 0x43://........................左转
ucBluetoothData = 0x02;
turn_left();
ucLock = 1;
uiPWM2 = ucTempPWM / 2;
uiPWM1 = ucTempPWM;
ucLock = 0;
break;
case 0x47://........................右转
ucBluetoothData = 0x02;
turn_right();
ucLock = 1;
uiPWM2 = ucTempPWM;
uiPWM1 = ucTempPWM / 2;
ucLock = 0;
break;
case 0x45://......................后退
ucBluetoothData = 0x02;
fall_back();
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
qqq.zip
(48.19 KB, 下载次数: 15)
2017-12-4 22:09 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
不忘初心666
时间:
2017-12-12 12:40
这个灭火是什么模块呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1