找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1541|回复: 1
打印 上一主题 下一主题
收起左侧

蓝牙发送信息单片机控制灯亮灭程序

[复制链接]
跳转到指定楼层
楼主
ID:457650 发表于 2019-3-17 16:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
蓝牙发送信息单片机控制灯亮灭

单片机源程序如下:
  1. /*-----------------------------------------------------------------------------
  2. * 实 验 名                 : RS232串口试验
  3. * 实验说明     : 单片机串口接收数据控制灯亮灭
  4. * 连接方式     :
  5. * 注    意                 : 该试验使用的晶振是11.0592
  6. *******************************************************************************/

  7. #include<reg52.h>
  8. #include<intrins.h>

  9. #define uchar unsigned char
  10. #define uint  unsigned int

  11. uchar PuZh[36] = "xxxxxxxxxxxxxxxxxx";

  12. //--定义使用的IO--//

  13. sbit LED=P2^0;


  14. //--声明全局函数--//   
  15. void UsartConfiguration();
  16. void Delay_1ms(uint i);


  17. /********************************************************************
  18. * 名称 : Com_Int()
  19. * 功能 : 串口中断子函数
  20. * 输入 : 无 * 输出 : 无
  21. ***********************************************************************/
  22. void Com_Int(void) interrupt 4
  23. {
  24.         uchar i;
  25.   uchar receive_data;
  26.        
  27.   EA = 0;
  28.        
  29.   if(RI == 1) //当硬件接收到一个数据时,RI会置位
  30.         {                
  31.                 RI = 0;
  32.                 receive_data = SBUF;//接收到的数据
  33.                        
  34.                 if(receive_data == '1')         
  35.                 {
  36.                                 LED =0;//接收到1亮灯
  37.                 }
  38.                 else
  39.                 {
  40.                                 LED =1; //其他情况灯灭
  41.                 }
  42.                
  43.         }
  44.                
  45.                 for(i=0; i<36; i++)
  46.                 {
  47.                         SBUF = PuZh[i];   //将要发送的数据放入到发送寄存器
  48.                         while(!TI);                    //等待发送数据完成
  49.                         TI=0;                                //清除发送完成标志位
  50.                         Delay_1ms(1);
  51.                 }
  52.                 EA = 1;
  53. }

  54. /*******************************************************************************
  55. * 函 数 名       : main
  56. * 函数功能                   : 主函数
  57. * 输    入       : 无
  58. * 输    出       : 无
  59. *******************************************************************************/

  60. void main()
  61. {

  62.         UsartConfiguration();//初始化串口
  63.        
  64.         while(1);       
  65. }
  66.        
  67. /*******************************************************************************
  68. * 函 数 名       : UsartConfiguration()
  69. * 函数功能                   : 设置串口
  70. * 输    入       : 无
  71. * 输    出       : 无
  72. *******************************************************************************/

  73. void UsartConfiguration()
  74. {       
  75.         SCON=0X50;                        //设置为工作方式1,8位数据,可变波特率
  76.         TMOD=0X20;                        //设置计数器工作方式2
  77.         PCON=0X00;                        //波特率不加倍
  78.         TH1=0XFd;                    //计数器初始值设置,9600@11.0592MHz
  79.         TL1=0XFd;
  80.         TR1=1;                                        //打开计数器
  81.         ES = 1;         //开串口中断
  82.   EA = 1;         //开总中断
  83. }


  84. /********************************************************************
  85. * 名称 : Delay_1ms()
  86. * 功能 : 延时子程序,延时时间为 1ms
  87. * x * 输入 : x (延时一毫秒的个数)
  88. * 输出 : 无
  89. ***********************************************************************/
  90. void Delay_1ms(uint i)//1ms延时
  91. {
  92.   uchar x,j;
  93.   
  94.   for(j=0;j<i;j++)
  95.     for(x=0;x<=148;x++);
  96. }
复制代码

所有资料51hei提供下载:
单片机程序-控制开关灯51_uart_led ONorOFF.zip (1.43 KB, 下载次数: 11)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:724449 发表于 2020-6-16 15:59 | 只看该作者
有没有仿真老哥?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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