<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > pt100測溫程序-LCD1602

          pt100測溫程序-LCD1602

          作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201611/316093.htm

          #include"at89X52.h"

          sbitLCD_RS=P2^0;

          sbitLCD_RW=P2^1;

          sbitLCD_E=P2^2;

          sbitADC_CS=P2^3;

          sbitADC_WR=P3^6;

          sbitADC_RD=P3^7;

          #defineLCD_DATAP0

          unsignedcharLcdBuf1[10]="";

          unsignedcharcodeBmp001[][8]=

          {

          {0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00},

          {0x06,0x09,0x10,0x10,0x10,0x09,0x06,0x00}

          };

          voiddellay(unsignedinth)

          {

          while(h--);//0.01MS

          }

          voidWriteDataLcd(unsignedcharwdata)

          {

          LCD_DATA=wdata;

          LCD_RS=1;

          LCD_RW=0;

          LCD_E=0;

          dellay(1000);

          LCD_E=1;

          }

          voidWriteCommandLcd(unsignedcharwdata)

          {

          LCD_DATA=wdata;

          LCD_RS=0;

          LCD_RW=0;

          LCD_E=0;

          dellay(1000);

          LCD_E=1;

          }

          voidlcd_init(void)

          {

          LCD_DATA=0;

          WriteCommandLcd(0x38);

          dellay(1000);

          WriteCommandLcd(0x38);

          dellay(1000);

          WriteCommandLcd(0x01);

          WriteCommandLcd(0x0c);

          }

          voiddisplay_xy(unsignedcharx,unsignedchary)

          {

          if(y==1)

          x+=0x40;

          x+=0x80;

          WriteCommandLcd(x);

          }

          voiddisplay_string(unsignedcharx,unsignedchary,unsignedchar*s)

          {

          display_xy(x,y);

          while(*s)

          {

          WriteDataLcd(*s);

          s++;

          }

          }

          voidWrite_CGRAM(unsignedcharadd,unsignedchar*char_num)

          {

          unsignedi;

          add=add<<3;

          WriteCommandLcd(0x40|add+8);

          for(i=0;i<8;i++)

          {

          WriteDataLcd(*char_num++);

          }

          }

          voiddelayms()

          {

          inti;

          for(i=110;i>0;i--);

          }

          voiddelay1s()

          {

          inti,j;

          for(i=1000;i>0;i--);

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

          }

          voidconvert()

          {

          unsignedlongvalue;

          chari;

          unsignedlongres;

          inttemp,temp2;

          intw;

          P1=0xff;

          ADC_RD=0;

          for(i=0;i<10;i++);

          value=P1;

          res=(float)(2550000+110000*value/30)/(2550-11*value/30);

          temp=(float)(res*10000-10000000)/3851-545;

          temp2=temp;

          if(temp>=0)

          {

          for(i=6;temp>0;i--)

          {

          LcdBuf1[i]=temp%10+48;

          temp/=10;

          }

          }

          if(temp<0)

          {

          w=-temp;

          for(i=6;w>0;i--)

          {

          LcdBuf1[i]=w%10+48;

          w/=10;

          }

          }

          if(i>=0&&temp<0)

          {

          if(temp>-10)

          {

          LcdBuf1[i]=0;

          i--;

          }

          LcdBuf1[i]=-;

          i--;

          /* if(i==5)

          {

          LcdBuf1[5]=0;

          i--;

          }

          LcdBuf1[4]=-;

          i--; */

          }

          for(;i>=0;i--)

          LcdBuf1[i]=;

          for(i=0;i<5;i++)

          LcdBuf1[i]=LcdBuf1[i+1];

          if(LcdBuf1[4]==)LcdBuf1[4]=0;

          LcdBuf1[5]=.;

          LcdBuf1[7]=1;

          LcdBuf1[8]=C;

          WriteCommandLcd(0x84);

          display_string(3,0,LcdBuf1);

          ADC_RD=1;

          ADC_WR=0;

          for(i=0;i<10;i++)

          ADC_WR=1;

          delayms();

          }

          main()

          {

          unsignedchari;

          lcd_init();

          for(i=0;i<2;i++)

          Write_CGRAM(i,Bmp001[i]);

          ADC_CS=0;

          ADC_WR=0;

          for(i=0;i<10;i++);

          ADC_WR=1;

          while(1)

          {

          convert();

          delay1s();

          }

          }



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();