求基于80C52的DHT11温湿度在1602上显示的程序的注释,看问号?

2019-07-15 20:29发布

本人找了一段dht11在1602上显示的程序,但因为莫名的原因注释变成了乱码,求大神帮忙复原一下下付程序:

#include"reg52.h"#include<intrins.H> sbit RS = P1^0;   //???? sbit EN = P1^1;sbit dp = P2^5;#define RS_CLR RS=0 #define RS_SET RS=1#define EN_CLR EN=0#define EN_SET EN=1//msgnum[]存储短信编号的字符编码,第times New Roman">0字节存储编号位数unsigned char temp,setmode=0,open=0,start=0,mode=1,rxnum=1,rxbuf[20]={"        "},msgnum[4],delmsgstart=0,phonebuf[15],startsend=0,num_yinhao=0;unsigned char code atreadmsg[8]={"AT+CMGR="};unsigned char code atdelmsg[8]={"AT+CMGD="};unsigned char code atset[9]={"AT+CMGF=1"};unsigned char code atset2[11]={"AT+CNMI=2,1"};unsigned char code atsend[9]={"AT+CMGS=x22"};unsigned char code atset3[4]={"ATE0"}; unsigned char qqq[5]={0,0,0,0,0},h1=0,h2=0,t1=0,t2=0,baojing=0;/******************************************************************//*                    ??????                                *//******************************************************************/void delay_us(unsigned int n) //?? ????????? ?????{ if (n == 0)   {    return ;    }   while (--n); }/******************************************************************//*                    ??????                                *//******************************************************************/ void delay_ms(unsigned char i) { unsigned char a, b; for (a = 1; a < i; a++) {   for (b = 1; b; b++)    {   ;   }     } } void delay(unsigned char i) /*??i/10 ms*/{unsigned char y;for(;i >0;i--)for(y=0;y<28;y++);} void delay_10us() /*??10 us*/{ _nop_();_nop_();_nop_();_nop_();_nop_();} /******************************************************************//*                   ??????                                 *//******************************************************************/ void LCD_write_com(unsigned char com) {   RS_CLR; EN_SET; P0 = com; delay_us(5); EN_CLR; }/******************************************************************//*                   ??????                                 *//******************************************************************/ void LCD_write_Data(unsigned char Data) { RS_SET; EN_SET; P0 = Data; delay_us(5); EN_CLR; }/******************************************************************//*                   ??????                                 *//******************************************************************/ void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data) {      if (y == 0) {      LCD_write_com(0x80 + x);      }    else {      LCD_write_com(0xC0 + x);      }         LCD_write_Data( Data);   }/******************************************************************//*                   ?????                                   *//******************************************************************/ void LCD_init(void) {   LCD_write_com(0x38); //数据线8位,两行显示,5*7点阵   LCD_write_com(0x01);    /*????*/ //清屏   LCD_write_com(0x06);    /*????????*///写入数据后光标右移,显示屏不移动         delay_ms(3);//必须的延时,最少3ms   LCD_write_com(0x0c);    /*????????*///显示开,无光标,光标闪烁} void Read(unsigned char * Data) /*??DHT11??*/{unsigned char x,m,n,Time_out;                for(n=0;n<5;n++)                {                                for(m=0;m<8;m++)                                {                                                while (!dp); /*??bit????50us???????,??????DHT11?????????*/                                                delay_10us(); //????????????0??1,??0 ???????26us-28us,???30us                                                delay_10us();                                                _nop_();                                                _nop_();//                                                _nop_();//                                                _nop_();//                                                _nop_(); //                                                _nop_();//                                                _nop_();//                                                _nop_();//                                                _nop_();                                                 x = 0; /*????x?0*/                                                if(dp) /*?????????30us,????x?1*/                                                                x = 1;                                                Time_out = 2;                                                while (dp&&Time_out++); /*?????????????,?????????DHT11?????????,????????*/                                                if(Time_out==1) /*??????????,?Time_out????(??????8bit?????),???1,???*/                                                                break; /*?????,????*/                                                *Data <<= 1; /*DHT11??????????,?????,??????*/                                                if(x)                                                                *Data |= 0x01; /*??????????????x?,??????????*/                                }                                Data++;                }} unsigned char Get_data() /*DHT11????????????*/{                unsigned char o,sum;                dp = 0; /*????????18ms,??DHT11????????*/                delay(180); /*?????18ms*/                dp = 1; /*?????20-40us,????DHT11??*/                delay_10us();                delay_10us();                delay_10us();                if(dp==0) /*DHT11????,???????80us*/                {                                while (!dp); /*??DHT11??????80us,??????*/                                while (dp); /*??DHT11??????,??????*/                                Read(qqq); /*?????????*/                                for(o=0;o<4;o++) /*?????????,??32bit????,??????8bit*/                                                sum+=qqq[o];                                if(sum!=qqq[4]) /*CRC??*/                                                return 0;                                else                                                return 1; /*??,???1; ??,??0*/                } return 0;}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。