找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2761|回复: 1
收起左侧

蓝牙遥控测距灭火车单片机源程序

[复制链接]
ID:253933 发表于 2017-12-4 22:09 | 显示全部楼层 |阅读模式
学校比赛的时候和同学一块做了一个蓝牙遥控测距灭火车。
可以蓝牙遥控并进行测距

单片机源程序如下:

  1.      
  2. /*************************************************************************/
  3. #include "reg52.h"

  4. #define uchar unsigned char

  5. #define uint unsigned int

  6. #define ulong unsigned long

  7. #define LCD_data P0

  8. sbit LCD_RS=P2^6;//................................

  9. sbit LCD_RW=P2^5;

  10. sbit LCD_EN=P2^4;

  11. sbit LCD_PSB=P2^7;

  12. sbit Trig = P3^3;//................................

  13. sbit Echo = P3^2;

  14. sbit Beep=P3^4;//...................................蜂鸣器端口

  15. sbit huoyan=P3^5;//.................................光照传感器端口

  16. sbit Fan=P3^6;//....................................风扇端口

  17. sbit PWM1= P1^1;//..................................

  18. sbit Photosensitive_resistor = P3^7;//..............

  19. sbit led = P1^0;

  20. sbit motor_control_1 = P1^2;

  21. sbit motor_control_2 = P1^3;

  22. sbit motor_control_4 = P1^4;

  23. sbit motor_control_3 = P1^5;

  24. sbit PWM2 = P1^6;

  25. sfr T2MOD = 0xC9;//.................................定时器2模式控制寄存器

  26. unsigned char ucBluetoothData = 230;//..............

  27. unsigned char ucLock = 0;//.........................

  28. unsigned int uiPWMCnt1 = 0;

  29. unsigned int uiPWM1 = 230;

  30. unsigned int uiPWMCnt2 = 0;

  31. unsigned int uiPWM2 = 230;


  32. unsigned char ucTempPWM;//.......................
  33. bit flag;

  34. uchar outcomeL , outcomeH;

  35. uint num,a;

  36. uint distance_data;

  37. uchar code dis1[] = {"  功能小车  "};

  38. uchar code dis2[] = {"  误差范围4mm -4m"};

  39. uchar code dis3[] = {"   距离:"};

  40. uchar code dis4[] = {"   单位:mm"};

  41. uchar code dis5[] = {"  危险!!"};

  42. uchar code dis6[] = {"  安全"};


  43. void initial_myself();                                                       

  44. void initial_peripheral();//........................                                       

  45. void T0_time();                                                                               

  46. void usart_service(void);//.........................通用同步异步收发机服务

  47. void delay_long(unsigned int uiDelayLong);

  48. void go_forward(void);//............................前进

  49. void fall_back(void);//.............................后退

  50. void turn_left(void);//.............................左转

  51. void turn_right(void);//............................右转

  52. void stop();//......................................刹车

  53. void lcd_init();//..................................

  54. void fire_alarm();//................................

  55. void display();//...................................

  56. void Ultrasonic_ranging ();//.......................

  57. void Photosensitive ();//...........................

  58. void main()
  59. {       
  60.         TMOD = 0x01;
  61.    
  62.         IT0 = 0;
  63.    
  64.         EX0 = 0;
  65.    
  66.         lcd_init() ;
  67.    
  68.         Trig = 0;
  69.    
  70.         initial_myself();
  71.    
  72.         delay_long(100);
  73.    
  74.         initial_peripheral();
  75.    
  76.         while(1)
  77.       {                 
  78.                           fire_alarm();
  79.             
  80.                         Photosensitive ();

  81.                         display();
  82.             
  83.                         usart_service();
  84.                        
  85.                         Ultrasonic_ranging () ;
  86.                
  87.         
  88.       }

  89. }
  90. void delay(uint z)//...............................延时函数

  91. {
  92.         uchar i, j ;

  93.         for( i = z ; i > 0 ; i-- )

  94.         for( j = 110 ; j > 0 ; j-- );

  95. }
  96. void fire_alarm ()//................................火灾报警处理系统
  97.   {
  98.     if( huoyan == 0)
  99.     {

  100.                   Beep = 0;
  101.              
  102.                   Fan = 0;
  103.         }
  104.                      if( huoyan == 1 )
  105.             {

  106.                                   Beep = 1;
  107.                      
  108.                                 Fan = 1;
  109.             }
  110.   }
  111. void Photosensitive ()
  112.         {
  113.                 if(Photosensitive_resistor == 0)
  114.                         {
  115.                                 led = 1;
  116.                         }
  117.                 if(Photosensitive_resistor == 1)
  118.                         {
  119.                                 led = 0;
  120.                         }
  121.         }
  122. void write_cmd(uchar cmd)
  123. {
  124.         LCD_RS = 0;

  125.         LCD_RW = 0;

  126.         LCD_EN = 0;

  127.         P0 = cmd;

  128.         delay(1);

  129.         LCD_EN = 1;

  130.         delay(1);

  131.         LCD_EN = 0;

  132. }

  133. void write_dat(uchar dat)
  134. {
  135.         LCD_RS = 1;

  136.         LCD_RW = 0;

  137.         LCD_EN = 0;

  138.         P0 = dat;

  139.         delay(1);

  140.         LCD_EN = 1;

  141.         delay(1);

  142.         LCD_EN = 0;

  143. }

  144. void lcd_init()//       
  145. {

  146.         LCD_PSB = 1;

  147.         write_cmd(0x30);

  148.         delay(1);

  149.         write_cmd(0x30);

  150.         delay(1);

  151.         write_cmd(0x0c);

  152.         delay(1);

  153.         write_cmd(0x01);

  154.         delay(1);

  155. }
  156. void usart_service()
  157. {            
  158.         switch(ucBluetoothData)
  159.             {
  160.                          case 0x41://........................前进
  161.      
  162.                                 ucBluetoothData = 0x02;//避免一直触发
  163.      
  164.                                 go_forward();
  165.      
  166.                             ucLock = 1;
  167.      
  168.                                     uiPWM1 = uiPWM2 = ucTempPWM;
  169.         
  170.                             ucLock = 0;
  171.    
  172.                             break;
  173.            
  174.                 case 0x43://........................左转
  175.          
  176.                                     ucBluetoothData = 0x02;
  177.          
  178.                                 turn_left();
  179.       
  180.                             ucLock = 1;
  181.          
  182.                                     uiPWM2 = ucTempPWM / 2;
  183.       
  184.                                 uiPWM1 = ucTempPWM;
  185.    
  186.                             ucLock = 0;
  187.      
  188.                                 break;
  189.      
  190.                 case 0x47://........................右转
  191.    
  192.                             ucBluetoothData = 0x02;
  193.               
  194.                                         turn_right();
  195.                   
  196.                                             ucLock = 1;
  197.                  
  198.                                             uiPWM2 = ucTempPWM;
  199.                  
  200.                                             uiPWM1 = ucTempPWM / 2;
  201.             
  202.                                         ucLock = 0;
  203.          
  204.                                     break;
  205.       
  206.                       case 0x45://......................后退
  207.               
  208.                                         ucBluetoothData = 0x02;
  209.             
  210.                                         fall_back();
  211.             
  212.                                         
  213.        
  214. ……………………

  215. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
qqq.zip (48.19 KB, 下载次数: 15)
回复

使用道具 举报

ID:243549 发表于 2017-12-12 12:40 来自手机 | 显示全部楼层
这个灭火是什么模块呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表