找回密码
 立即注册

QQ登录

只需一步,快速开始

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

蓝牙接受单片机的烟雾温度数据信息,这是一个主程序,求注释

[复制链接]
跳转到指定楼层
楼主
ID:536181 发表于 2019-5-12 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下,部分没注释,哥哥们能帮我注释一下吗
  1. #include <reg52.h>                 //头文件
  2. #include <LCD1602.h>         //头文件
  3. #include "DS18B20.h"         //头文件
  4. #include <ADC0832.H>        //头文件
  5. #define uint unsigned int        //宏定义
  6. #define uchar unsigned char        //宏定义
  7.                  
  8. sbit key1=P3^2;                    //按键定义
  9. sbit key2=P3^3;                  //按键定义
  10. sbit key3=P3^4;                  //按键定义
  11. sbit key4=P3^5;                  //按键定义
  12. sbit beer=P2^4;                         //蜂鸣器定义
  13. sbit ledbai=P2^1;                   //LED定义
  14. sbit hong=P2^0;                  //LED定义

  15. char data  Tim[16]="T:00.0C  Y:00000";//显示数组
  16. char data  Tes[16]="TH:30C  YH:03000";//显示数组
  17. int tmp,th=30,yh=3000;                           //变量定义
  18. int tk;                                                           //变量定义
  19. long  yw;                                                   //变量定义

  20. /***********************************************************
  21. 函数名称:Print_Char
  22. 函数功能:发送单个字符     
  23.           入口参数:ch      出口参数:无
  24. ***********************************************************/
  25. void Print_Char(uchar ch)//发送单个字符
  26. {
  27.         SBUF=ch; //送入缓冲区
  28.         while(TI!=1); //等待发送完毕
  29.         TI=0; //软件清零
  30. }

  31.             
  32. /***********************************************************
  33. 函数名称:Print_Str
  34. 函数功能:发送字符串     
  35.           入口参数:*str    出口参数:无
  36. ***********************************************************/
  37. void Print_Str()//发送字符串
  38. {
  39.         uchar i;
  40.         for(i=0;i<16;i++)                        //发送第1组数据
  41.         {
  42.                 Print_Char(Tim[i]);
  43.         }
  44.         Print_Char(' ');
  45.         Print_Char(' ');
  46.         for(i=0;i<16;i++)                        //发送第1组数据
  47.         {
  48.                 Print_Char(Tes[i]);
  49.         }
  50. }            


  51. /***********************************************************
  52. 函数名称:Ini_UART
  53. 函数功能:串口初始化、定时器初始化     
  54.           入口参数:无     出口参数:无
  55. ***********************************************************/
  56. void Ini_UART(void)//串口初始化、定时器初始化
  57. {
  58.     TMOD = 0x20;
  59.     SCON = 0x50;
  60.     TH1 = 0xFD;
  61.     TL1 = TH1;
  62.     PCON = 0x00;
  63.     TR1 = 1;
  64.         EA = 1;
  65.     ES = 1;
  66. }
  67. void caiji()   //采集数据子函数
  68. {
  69.         tmp=ReadTemperature()/10;
  70.         tk=Adc0832(0);
  71.         yw=10000-970.0*(160-tk)/13.0;//读AD转换结果                           
  72.         if(yw>10000)yw=10000;
  73.         else if(yw<300)yw=300;
  74. }

  75. void delay_ms(uint ms)// 延时子函数
  76. {
  77.         while(ms--)
  78.         {        
  79.             unsigned char a,b;
  80.             for(b=4;b>0;b--)
  81.             for(a=113;a>0;a--);
  82.         }
  83. }


  84. void keyscan()                 //按键扫描函数
  85. {
  86. //-----------------------------key1----------------------------               
  87.         if(key1==0)  
  88.         {
  89.                  th++;
  90.                  if(th>99)th=99;
  91.         }
  92. //-----------------------------key2----------------------------               
  93.         if(key2==0)
  94.         {
  95.                  th--;
  96.                  if(th<0)th=0;
  97.         }

  98. //-----------------------------key3----------------------------               
  99.         if(key3==0)  
  100.         {
  101.                  yh++;
  102.                  if(yh>9999)yh=9999;                 
  103.         }

  104. //-----------------------------key4----------------------------               
  105.         if(key4==0)  
  106.         {
  107.                  yh--;
  108.                  if(yh<0)yh=0;
  109.         }
  110. }

  111. void display()                 //显示函数
  112. {
  113.         
  114.          Tim[2]=tmp/100+'0';                 //显示处理
  115.          Tim[3]=tmp%100/10+'0';
  116.          Tim[5]=tmp%10+'0';

  117.          Tim[11]=yw/10000+'0';                 //显示处理
  118.          Tim[12]=yw%10000/1000+'0';
  119.          Tim[13]=yw%1000/100+'0';
  120.          Tim[14]=yw%100/10+'0';
  121.          Tim[15]=yw%10+'0';


  122.          Tes[3]=th/10+'0';                   //显示处理
  123.          Tes[4]=th%10+'0';
  124.                                                                  //显示处理
  125.          Tes[11]=yh/10000+'0';
  126.          Tes[12]=yh%10000/1000+'0';
  127.          Tes[13]=yh%1000/100+'0';
  128.          Tes[14]=yh%100/10+'0';
  129.          Tes[15]=yh%10+'0';

  130.          ShowString(0,Tim);                     //显示第0行
  131.      ShowString(1,Tes);                     //显示第1行
  132. }

  133. void jiance()                                           //检测报警子函数
  134. {
  135.          if(tmp/10>th||yw>yh)
  136.          {
  137.                     hong=0;
  138.                   beer=0;
  139.                 //  GSM_TEXT_SMS();
  140.                   delay_ms(2000);                  
  141.          }
  142.          else {beer=1;hong=1;}
  143. }

  144. /***********************************************************
  145. 函数名称:main
  146. 函数功能:主函数
  147. ***********************************************************/
  148. uchar res;
  149. void UARTInterrupt(void) interrupt 4
  150. {
  151.     if(RI)
  152.     {
  153.         RI = 0;
  154.         res=SBUF;
  155.     }
  156.     else
  157.         TI = 0;
  158. }


  159. void main()
  160. {
  161.         char hh;
  162.         tk=Adc0832(0);
  163.         yw=10000-970.0*(160-tk)/11.0;//读AD转换结果         
  164.         tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10;
  165.         Ini_UART();
  166.         InitLcd();
  167.         tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10;
  168.         tk=Adc0832(0);
  169.         delay_ms(1000);
  170. //        Print_Str();
  171.         yw=10000-970.0*(160-tk)/11.0;//读AD转换结果         
  172.         yw=10;
  173.         tmp=10;
  174.         while(1)
  175.         {                  
  176.                  caiji();                         //采集数据子函数
  177.                  display();                         //显示子函数
  178.                  jiance();                         //检测报警据子函数
  179.                  keyscan();                         //按键扫描子函数
  180.                  hh++;if(hh>5){hh=0;EA=0;Print_Str();EA=1;}
  181.                  if(res=='0')ledbai=0;
  182.                  else  if(res=='1')ledbai=1;
复制代码

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

使用道具 举报

沙发
ID:314784 发表于 2020-1-4 10:23 | 只看该作者
代码不全吧
回复

使用道具 举报

板凳
ID:481073 发表于 2020-1-4 16:18 | 只看该作者
写的人是觉得这个没必要注释,因为这个是主函数部分,不是温度传感器,蓝牙的配置过程,都是一些调用,没必要注释,你哪个地方没看懂指出来说就行,我们也不知道你问啥。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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