找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1851|回復: 1
收起左側

藍牙發(fā)送信息單片機控制燈亮滅程序

[復制鏈接]
ID:457650 發(fā)表于 2019-3-17 16:02 | 顯示全部樓層 |閱讀模式
藍牙發(fā)送信息單片機控制燈亮滅

單片機源程序如下:
  1. /*-----------------------------------------------------------------------------
  2. * 實 驗 名                 : RS232串口試驗
  3. * 實驗說明     : 單片機串口接收數(shù)據(jù)控制燈亮滅
  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. //--聲明全局函數(shù)--//   
  15. void UsartConfiguration();
  16. void Delay_1ms(uint i);


  17. /********************************************************************
  18. * 名稱 : Com_Int()
  19. * 功能 : 串口中斷子函數(shù)
  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) //當硬件接收到一個數(shù)據(jù)時,RI會置位
  30.         {                
  31.                 RI = 0;
  32.                 receive_data = SBUF;//接收到的數(shù)據(jù)
  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];   //將要發(fā)送的數(shù)據(jù)放入到發(fā)送寄存器
  48.                         while(!TI);                    //等待發(fā)送數(shù)據(jù)完成
  49.                         TI=0;                                //清除發(fā)送完成標志位
  50.                         Delay_1ms(1);
  51.                 }
  52.                 EA = 1;
  53. }

  54. /*******************************************************************************
  55. * 函 數(shù) 名       : main
  56. * 函數(shù)功能                   : 主函數(shù)
  57. * 輸    入       : 無
  58. * 輸    出       : 無
  59. *******************************************************************************/

  60. void main()
  61. {

  62.         UsartConfiguration();//初始化串口
  63.        
  64.         while(1);       
  65. }
  66.        
  67. /*******************************************************************************
  68. * 函 數(shù) 名       : UsartConfiguration()
  69. * 函數(shù)功能                   : 設置串口
  70. * 輸    入       : 無
  71. * 輸    出       : 無
  72. *******************************************************************************/

  73. void UsartConfiguration()
  74. {       
  75.         SCON=0X50;                        //設置為工作方式1,8位數(shù)據(jù),可變波特率
  76.         TMOD=0X20;                        //設置計數(shù)器工作方式2
  77.         PCON=0X00;                        //波特率不加倍
  78.         TH1=0XFd;                    //計數(shù)器初始值設置,9600@11.0592MHz
  79.         TL1=0XFd;
  80.         TR1=1;                                        //打開計數(shù)器
  81.         ES = 1;         //開串口中斷
  82.   EA = 1;         //開總中斷
  83. }


  84. /********************************************************************
  85. * 名稱 : Delay_1ms()
  86. * 功能 : 延時子程序,延時時間為 1ms
  87. * x * 輸入 : x (延時一毫秒的個數(shù))
  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, 下載次數(shù): 11)


回復

使用道具 舉報

ID:724449 發(fā)表于 2020-6-16 15:59 | 顯示全部樓層
有沒有仿真老哥?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表