亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds18b20+-

?? DS18B20溫度傳感器輸出顯示
??
字號:
C51 COMPILER V8.02   DS18B20溫度確感芲輸砡顯蔩                                             08/07/2012 23:53:07 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DS18B20溫度確感芲輸砡顯蔩
OBJECT MODULE PLACED IN DS18B20溫度傳感器輸出顯示.OBJ
COMPILER INVOKED BY: F:\keil\C51\BIN\C51.EXE DS18B20溫度傳感器輸出顯示.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char        
   4          #define uint unsigned int
   5          sbit rs=P2^0;
   6          sbit rw=P2^1;
   7          sbit en=P2^2;
   8          sbit DQ=P3^3;
   9          bit DS_OK=1; //溫度傳感器正常標志
  10          uchar temp[]={0x00,0x00};  //用于存儲高字節與低字節
  11          uchar display_digit[]={0,0,0,0};//存儲顯示溫度字符
  12          uchar current=0;   //存儲整數(高字節低三位與低字節高四位)
  13          uchar temp_display[]={"TEMP:         "};
  14          uchar code tab0[]={"welcome to here"};
  15          uchar code tab1[]={"----sky"};
  16          uchar code title[]={"THE TEMPPERATURE:"};
  17          uchar code df_tab[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};
  18          void delay(uint z)
  19          {
  20   1              uint x;
  21   1              while(z--)
  22   1                      for(x=120;x>0;x--);
  23   1      }
  24          void delay_us()
  25          {_nop_();_nop_();_nop_();_nop_();}
  26          void delay_us1(uint a)
  27          {
  28   1              while(a--);
  29   1      }
  30          uchar LCD_check_busy()
  31          {
  32   1              uchar state;
  33   1              rs=0;
  34   1              rw=1;
  35   1              delay_us();
  36   1              en=1;
  37   1              state=P0;
  38   1              delay_us();
  39   1              en=0;
  40   1              delay_us();
  41   1              return state;
  42   1      
  43   1      }
  44          void LCD_write_cmd(uchar cmd)
  45          {
  46   1          while((LCD_check_busy()&0x80)==0x80);
  47   1              rs=0;
  48   1              rw=0;
  49   1              delay_us();
  50   1              en=1;
  51   1              P0=cmd;
  52   1              delay_us();
  53   1              en=0;
  54   1              delay_us();
  55   1      }
C51 COMPILER V8.02   DS18B20溫度確感芲輸砡顯蔩                                             08/07/2012 23:53:07 PAGE 2   

  56          void LCD_write_data(uchar dat)
  57          {
  58   1              while((LCD_check_busy()&0x80)==0x80);
  59   1              rs=1;
  60   1              rw=0;
  61   1              delay_us();
  62   1              en=1;
  63   1              P0=dat;
  64   1              delay_us();
  65   1              en=0;
  66   1              delay_us();
  67   1      }
  68          void LCD_display(uchar *s)
  69          {
  70   1              uchar i;
  71   1              for(i=0;i<16;i++)
  72   1              {
  73   2                      LCD_write_data(s[i]);   
  74   2              }
  75   1      }
  76          void LCD_init()
  77          {
  78   1              LCD_write_cmd(0x38);
  79   1              LCD_write_cmd(0x0c);
  80   1              LCD_write_cmd(0x06);
  81   1              LCD_write_cmd(0x01);
  82   1      }
  83          //LCD*************************************************
  84          
  85          
  86          uchar DS_check()   //檢查溫度傳感器
  87          {
  88   1              uchar state;
  89   1              DQ=1;
  90   1              delay_us1(8); //精確定時
  91   1              DQ=0;
  92   1              delay_us1(80);
  93   1              DQ=1;
  94   1              delay_us1(8);
  95   1              state=DQ;
  96   1              delay(100);
  97   1              return state;
  98   1      }
  99          void DS_write_byte(uchar dat)
 100          {
 101   1              uchar i;
 102   1              for(i=0;i<8;i++)
 103   1              {
 104   2                      
 105   2                      if((dat&0x01)==0) //寫0
 106   2                      {
 107   3                              DQ=0;
 108   3                              delay_us1(4);
 109   3                              DQ=1;
 110   3                              delay_us1(1);
 111   3                      }
 112   2              
 113   2                      else                             //寫1
 114   2                      {
 115   3                              DQ=0;
 116   3                              delay_us1(1);
 117   3                              DQ=1;
C51 COMPILER V8.02   DS18B20溫度確感芲輸砡顯蔩                                             08/07/2012 23:53:07 PAGE 3   

 118   3                              delay_us1(4);
 119   3                      }       
 120   2                      dat>>=1;
 121   2              }
 122   1      }
 123          uchar DS_read_byte() //讀一個字節
 124          {
 125   1              uchar i,dat=0;
 126   1              for(i=0;i<8;i++)
 127   1              {
 128   2                      DQ=0;
 129   2                      dat>>=1;
 130   2                      DQ=1;
 131   2                      if(DQ==1)
 132   2                              dat|=0x80;
 133   2                      else
 134   2                              dat|=0x00;
 135   2                      delay_us1(30);
 136   2                      DQ=1;
 137   2              }
 138   1              return dat;
 139   1      }
 140          
 141          void DS_read_temperature()
 142          {       
 143   1              if(DS_check()==1)        //檢查初始化溫度傳感器
 144   1                      DS_OK=0;
 145   1              else
 146   1              {
 147   2                      DS_check();
 148   2                      DS_write_byte(0xcc); //跳過序列號
 149   2                      DS_write_byte(0x44); //啟動溫度轉換
 150   2                      DS_check();                //重新檢查溫度傳感器
 151   2                      DS_write_byte(0xcc);//
 152   2                      DS_write_byte(0xbe);//啟動讀取溫度
 153   2      /****先讀低8位,再讀高8位,不可調換************/
 154   2                      temp[0]=DS_read_byte();
 155   2                      temp[1]=DS_read_byte();
 156   2                      DS_OK=1;                         //正常工作
 157   2              }
 158   1      }
 159          void LCD_display_temperature()
 160          {
 161   1              uchar flag=0;//負數標識
 162   1              /***高5位為1(0XF8)則為負數,為負數時取反加一****/
 163   1              if((temp[1]&0xf8)==0xf8)
 164   1              {
 165   2                      temp[1]=~temp[1];  //負數取反
 166   2                      temp[0]=~temp[0]+1;
 167   2                      if(temp[0]==0x00)
 168   2                              temp[1]++;
 169   2                      flag=1;//負數標識
 170   2              }
 171   1              /****溫度小數部分*********/
 172   1              display_digit[3]=df_tab[temp[0]&0x0f];
 173   1          /*溫度整數部分(高字節低3位低字節高4位,無符號)***/
 174   1              current=((temp[1]&0x07)<<4)|((temp[0]&0xf0)>>4);
 175   1              //分解整數部分
 176   1              display_digit[0]=current/100;
 177   1              display_digit[1]=current%100/10;
 178   1              display_digit[2]=current%10;
 179   1      
C51 COMPILER V8.02   DS18B20溫度確感芲輸砡顯蔩                                             08/07/2012 23:53:07 PAGE 4   

 180   1         /***刷新LCD顯示緩沖***/
 181   1          temp_display[11]=display_digit[3]+'0';
 182   1              temp_display[10]='.';
 183   1              temp_display[9]=display_digit[2]+'0';
 184   1              temp_display[8]=display_digit[1]+'0';
 185   1              temp_display[7]=display_digit[0]+'0';
 186   1              /*百位為0時不顯示*/
 187   1              if(display_digit[0]==0)
 188   1                      temp_display[7]=' ';
 189   1                      /*百位為0,且十位為0時不顯示      */
 190   1              if((display_digit[0]==0)&(display_digit[1]==0))
 191   1                      temp_display[8]=' ';
 192   1         // 負號顯示在恰當位置
 193   1              if(flag)
 194   1              {
 195   2                      if(temp_display[8]==' ')
 196   2                              temp_display[8]='-';
 197   2                      else
 198   2                      {
 199   3                              if(temp_display[7]==' ')
 200   3                                      temp_display[7]='-';
 201   3                              else
 202   3                                      temp_display[6]='-';
 203   3                      }
 204   2              }
 205   1              
 206   1              LCD_write_cmd(0x80+0x00);
 207   1              LCD_display(title);
 208   1      
 209   1              LCD_write_cmd(0x80+0x40);
 210   1              LCD_display(temp_display);
 211   1              
 212   1              LCD_write_cmd(0x80+0x4e);
 213   1              LCD_write_data('C');
 214   1              
 215   1              LCD_write_cmd(0x80+0x4f);
 216   1              LCD_write_data(0x00);   //LCD最后一位不顯示,可以不要   
 217   1      }
 218          void main()
 219          {
 220   1              uchar i;
 221   1              LCD_init();
 222   1              LCD_write_cmd(0x80+0x00);
 223   1              for(i=0;i<16;i++)
 224   1              {
 225   2                      LCD_write_data(tab0[i]);
 226   2                      delay(20);      
 227   2              }
 228   1              LCD_write_cmd(0x80+0x48);
 229   1              for(i=0;i<8;i++)
 230   1              {
 231   2                      LCD_write_data(tab1[i]);        
 232   2                      delay(20);
 233   2              }
 234   1              delay(1000);
 235   1              for(i=0;i<16;i++)
 236   1              {
 237   2                      LCD_write_cmd(0x1c);
 238   2                      delay(20);
 239   2              }
 240   1              LCD_write_cmd(0x01);
 241   1              while(1)
C51 COMPILER V8.02   DS18B20溫度確感芲輸砡顯蔩                                             08/07/2012 23:53:07 PAGE 5   

 242   1              {
 243   2                      DS_read_temperature();
 244   2                      if(DS_OK)
 245   2                              LCD_display_temperature();
 246   2                      delay(100);
 247   2              }
 248   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    642    ----
   CONSTANT SIZE    =     58    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品一区| 亚洲免费观看在线视频| 91精品国产日韩91久久久久久| 91网站最新网址| www.欧美日韩| 91丨九色丨黑人外教| 色综合久久九月婷婷色综合| 91精品福利视频| 欧美日韩日日摸| 久久中文娱乐网| 日本一区二区免费在线观看视频| 欧美激情在线免费观看| 国产精品久久久久7777按摩| 中文字幕一区二区三区在线观看 | 中日韩av电影| 中文字幕av在线一区二区三区| 欧美极品xxx| 日韩一区欧美小说| 亚洲一区二区在线播放相泽 | 国产91露脸合集magnet| 国产不卡视频在线观看| 95精品视频在线| 欧洲国内综合视频| 欧美一级精品在线| 欧美激情一区二区三区| 亚洲色欲色欲www在线观看| 亚洲电影激情视频网站| 美女视频黄久久| 成人免费看的视频| 欧美日韩午夜在线| 久久你懂得1024| 亚洲人成人一区二区在线观看 | 视频一区国产视频| 毛片av一区二区三区| 国产69精品久久99不卡| 一本大道久久a久久精二百| 欧美探花视频资源| 2020国产成人综合网| ㊣最新国产の精品bt伙计久久| 亚洲一区免费视频| 国内成人精品2018免费看| av电影在线不卡| 91精品国产一区二区三区| 久久久久九九视频| 一区二区三区蜜桃网| 日韩av二区在线播放| 成人免费毛片app| 欧美日韩国产高清一区二区 | 亚洲高清在线精品| 九九国产精品视频| 91在线视频在线| 91精品国产欧美一区二区| 欧美国产综合一区二区| 亚洲成a人片在线不卡一二三区| 一本久久精品一区二区| 日韩欧美国产综合在线一区二区三区| 国产欧美一区二区在线观看| 午夜电影一区二区三区| 国产精品白丝av| 欧美日韩精品一区二区| 国产精品视频在线看| 麻豆国产精品一区二区三区| 欧洲一区二区三区在线| 国产亚洲精品中文字幕| 午夜免费欧美电影| 99久久精品免费观看| 久久综合国产精品| 视频一区二区三区在线| 91在线视频官网| 久久精品亚洲国产奇米99| 日韩av电影一区| 欧美日韩中文国产| 亚洲人亚洲人成电影网站色| 精品一区二区影视| 欧美一区二区在线不卡| 亚洲免费资源在线播放| 成人av一区二区三区| 欧美精品一区二区精品网| 亚洲高清免费视频| 一本一道久久a久久精品| 国产欧美一区二区三区在线看蜜臀 | 在线免费观看视频一区| 国产性色一区二区| 国产一区三区三区| 91精品在线一区二区| 一区二区三区欧美激情| 99re视频这里只有精品| 国产日韩三级在线| 激情文学综合网| 欧美一区二区三区日韩视频| 亚洲成人你懂的| 欧美日韩电影一区| 亚洲国产成人av| 欧美日韩精品系列| 亚洲成人黄色影院| 精品视频在线免费观看| 亚洲综合一二区| 欧美亚洲一区三区| 一区二区三区91| 色一区在线观看| 1024精品合集| 91老师片黄在线观看| 综合av第一页| 99re在线精品| 国产精品二区一区二区aⅴ污介绍| 国产剧情av麻豆香蕉精品| 欧美大片拔萝卜| 久久国产麻豆精品| 欧美成人一区二区三区片免费 | 国产电影一区在线| 国产精品无遮挡| www.在线欧美| 亚洲人妖av一区二区| 欧美制服丝袜第一页| 成人免费毛片嘿嘿连载视频| 亚洲色图清纯唯美| 91成人国产精品| 五月天一区二区三区| 日韩欧美一二三区| 丁香五精品蜜臀久久久久99网站| 国产精品久久夜| 一本一本大道香蕉久在线精品| 亚洲一区日韩精品中文字幕| 欧美日本高清视频在线观看| 日本aⅴ亚洲精品中文乱码| 日韩美女视频在线| 国产在线播精品第三| 国产精品网站一区| 色婷婷av一区二区三区大白胸| 一区二区三区在线免费视频 | 亚洲欧美韩国综合色| 欧美美女一区二区在线观看| 美腿丝袜亚洲三区| 日本一区二区三区国色天香| 94色蜜桃网一区二区三区| 亚洲aⅴ怡春院| 久久九九久精品国产免费直播| 99久久99久久精品免费观看| 日韩二区三区在线观看| 欧美极品aⅴ影院| 欧美日韩不卡在线| 国产成人a级片| 一区二区免费看| 久久久久久久网| 欧美日韩一区二区在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品国产无套在线观| 日韩精品一区二区三区视频播放| 成人综合在线视频| 免费在线看一区| 亚洲天堂福利av| 欧美sm极限捆绑bd| 91九色最新地址| 国产高清精品网站| 日韩精品一级中文字幕精品视频免费观看 | 99re热这里只有精品免费视频| 亚洲国产一区二区视频| 国产网站一区二区三区| 欧美日韩一卡二卡三卡| 国产成人在线视频播放| 亚洲图片有声小说| 国产精品视频你懂的| 日韩精品一区二区三区蜜臀| 色又黄又爽网站www久久| 国产一区二区不卡老阿姨| 亚洲电影中文字幕在线观看| 欧美韩国一区二区| 精品国产伦一区二区三区免费 | 国产麻豆成人精品| 性做久久久久久| 亚洲少妇中出一区| 国产欧美日韩三区| 精品国产乱码久久久久久1区2区| 欧美在线免费播放| 成人国产一区二区三区精品| 另类的小说在线视频另类成人小视频在线 | 国产久卡久卡久卡久卡视频精品| 亚洲高清一区二区三区| 国产精品乱人伦中文| 欧美理论电影在线| 91视频免费看| 成人福利视频在线| 国内精品国产三级国产a久久| 亚洲第一精品在线| 亚洲精品视频在线观看网站| 国产精品视频免费看| 久久久久久97三级| 精品久久久久久久一区二区蜜臀| 欧美精品自拍偷拍| 欧美吻胸吃奶大尺度电影| 91蜜桃网址入口| 成人av在线资源网站| 国产乱子轮精品视频| 麻豆国产精品视频| 人人狠狠综合久久亚洲| 亚洲一区二区三区国产| 亚洲综合男人的天堂| 一级中文字幕一区二区| 国产精品大尺度| 亚洲天堂成人在线观看|