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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? temper.lst

?? 用89C51單片機(jī),LCD1602,建成的數(shù)字溫度計(jì).
?? LST
字號:
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEMPER
OBJECT MODULE PLACED IN temper.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE temper.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include < reg51.h >
   2          #include < intrins.h >
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          sbit DQ = P3^5 ;  //定義DS18B20端口DQ  
   8          sbit BEEP=P3^3  ; //蜂鳴器驅(qū)動線
   9          
  10          bit presence  ;
  11          
  12          sbit LCD_RS = P3^7 ;             
  13          sbit LCD_RW = P3^6 ;
  14          sbit LCD_EN = P3^4 ;
  15          
  16          #define  LCD_DATA   P2          //LCD
  17          uchar code  cdis1[ ] = {"   DS18B20 OK   "} ;
  18          uchar code  cdis2[ ] = {"  TEMP:    .  C "} ;
  19          uchar code  cdis3[ ] = {" DS18B20  ERR0R "} ;
  20          uchar code  cdis4[ ] = {"  PLEASE CHECK  "} ;
  21          
  22          unsigned char data  temp_data[2] = {0x00,0x00} ;
  23          unsigned char data  display[5] =   {0x00,0x00,0x00,0x00,0x00} ;
  24          unsigned char code  ditab[16] =    {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
  25                                              0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ;
  26          void beep(); 
  27          unsigned char code  mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ;
  28          
  29          #define delayNOP(); {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;
  30          
  31          /*******************************************************************/
  32          void delay1(int ms)
  33          {
  34   1       unsigned char y ;
  35   1        while(ms--)
  36   1       {
  37   2        for(y = 0 ; y<250 ; y++)
  38   2        {
  39   3         _nop_() ;
  40   3         _nop_() ;
  41   3         _nop_() ;
  42   3         _nop_() ;
  43   3        }
  44   2       }
  45   1      }
  46          
  47          /******************************************************************/
  48          /*檢查LCD忙狀態(tài)                                                   */
  49          /*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。   */
  50          /******************************************************************/ 
  51          bit lcd_busy()
  52           {                          
  53   1          bit result ;
  54   1          LCD_RS = 0 ;
  55   1          LCD_RW = 1 ;
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 2   

  56   1          LCD_EN = 1 ;
  57   1          delayNOP() ;
  58   1          result = (bit)(LCD_DATA&0x80) ;
  59   1          LCD_EN = 0 ;
  60   1          return(result) ; 
  61   1       }
  62          
  63          /*寫指令數(shù)據(jù)到LCD                                                  */
  64          /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。          */
  65          /*******************************************************************/
  66          void lcd_wcmd(uchar cmd)
  67          {                          
  68   1         while(lcd_busy()) ;
  69   1          LCD_RS = 0 ;
  70   1          LCD_RW = 0 ;
  71   1          LCD_EN = 0 ;
  72   1          _nop_() ;
  73   1          _nop_() ; 
  74   1          LCD_DATA = cmd ;
  75   1          delayNOP() ;
  76   1          LCD_EN = 1 ;
  77   1          delayNOP() ;
  78   1          LCD_EN = 0 ;  
  79   1      }
  80          
  81          /*******************************************************************/
  82          /*寫顯示數(shù)據(jù)到LCD                            */
  83          /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。       */
  84          /*******************************************************************/
  85          void lcd_wdat(uchar dat)
  86          {                          
  87   1         while(lcd_busy()) ;
  88   1          LCD_RS = 1 ;
  89   1          LCD_RW = 0 ;
  90   1          LCD_EN = 0 ;
  91   1          LCD_DATA = dat ;
  92   1          delayNOP() ;
  93   1          LCD_EN = 1 ;
  94   1          delayNOP() ;
  95   1          LCD_EN = 0 ; 
  96   1      }
  97          
  98          
  99          /*  LCD初始化設(shè)定                                                  */
 100          /*******************************************************************/
 101          void lcd_init()
 102          { 
 103   1          delay1(15) ;   
 104   1          lcd_wcmd(0x01) ;      //清除LCD的顯示內(nèi)容            
 105   1          lcd_wcmd(0x38) ;      //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
 106   1          delay1(5) ;
 107   1          lcd_wcmd(0x38) ;         
 108   1          delay1(5) ;
 109   1          lcd_wcmd(0x38) ;         
 110   1          delay1(5) ;
 111   1      
 112   1          lcd_wcmd(0x0c) ;      //顯示開,關(guān)光標(biāo)
 113   1          delay1(5) ;
 114   1          lcd_wcmd(0x06) ;      //移動光標(biāo)
 115   1          delay1(5) ;
 116   1          lcd_wcmd(0x01) ;      //清除LCD的顯示內(nèi)容
 117   1          delay1(5) ;
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 3   

 118   1      }
 119          
 120          /*  設(shè)定顯示位置                                    */
 121          /*******************************************************************/
 122          void lcd_pos(uchar pos)
 123          {                          
 124   1        lcd_wcmd(pos | 0x80) ;  //數(shù)據(jù)指針=80+地址變量
 125   1      }
 126          
 127          /*自定義字符寫入CGRAM                                   */
 128          /*******************************************************************/
 129          void  writetab()  
 130          {  
 131   1          unsigned char i ;
 132   1          lcd_wcmd(0x40) ;            //寫CGRAM
 133   1          for (i = 0 ; i< 8 ; i++)       
 134   1          lcd_wdat(mytab[ i ]) ;        
 135   1      }
 136          
 137          /*us級延時函數(shù)                                        */
 138          /*******************************************************************/
 139          
 140          void Delay(unsigned int num)
 141          {
 142   1        while( --num ) ;
 143   1      }
 144          
 145          /*初始化ds1820                                      */
 146          /*******************************************************************/
 147          Init_DS18B20(void)
 148          {  
 149   1           DQ = 1 ;      //DQ復(fù)位
 150   1           Delay(8) ;    //稍做延時
 151   1      
 152   1           DQ = 0 ;      //單片機(jī)將DQ拉低
 153   1           Delay(90) ;   //精確延時 大于 480us
 154   1      
 155   1           DQ = 1 ;       //拉高總線
 156   1           Delay(8) ;
 157   1      
 158   1           presence = DQ ;    //如果=0則初始化成功 =1則初始化失敗
 159   1           Delay(100) ;
 160   1           DQ = 1 ; 
 161   1           
 162   1           return(presence) ; //返回信號,0=presence,1= no presence
 163   1      }
 164          
 165          
 166          /* 讀一個字節(jié)                     */
 167          /*******************************************************************/
 168           ReadOneChar(void)
 169          {
 170   1      unsigned char i = 0 ;
 171   1      unsigned char dat = 0 ;
 172   1      
 173   1      for (i = 8 ; i > 0 ; i--)
 174   1        {
 175   2          DQ = 0 ; // 給脈沖信號
 176   2          dat >>= 1 ;
 177   2          DQ = 1 ; // 給脈沖信號
 178   2      
 179   2          if(DQ)
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 4   

 180   2           dat |= 0x80 ;
 181   2          Delay(4) ;
 182   2        }
 183   1      
 184   1          return (dat) ;
 185   1      }
 186          
 187          /* 寫一個字節(jié)                                         */
 188          /*******************************************************************/
 189           WriteOneChar(unsigned char dat)
 190          {
 191   1        unsigned char i = 0 ;
 192   1        for (i = 8 ; i > 0 ; i--)
 193   1        {
 194   2          DQ = 0 ;
 195   2          DQ = dat&0x01 ;
 196   2          Delay(5) ;
 197   2      
 198   2          DQ = 1 ;
 199   2          dat>>=1 ;
 200   2        }
 201   1      }
 202          
 203          /* 讀取溫度                            */
 204          /*******************************************************************/
 205           Read_Temperature(void)
 206          {
 207   1           Init_DS18B20() ;
 208   1        
 209   1           WriteOneChar(0xCC) ;  // 跳過讀序號列號的操作
 210   1           WriteOneChar(0x44) ;  // 啟動溫度轉(zhuǎn)換
 211   1      
 212   1           Init_DS18B20() ;
 213   1           WriteOneChar(0xCC) ;  //跳過讀序號列號的操作
 214   1           WriteOneChar(0xBE) ;  //讀取溫度寄存器
 215   1      
 216   1           temp_data[0] = ReadOneChar() ;   //溫度低8位
 217   1           temp_data[1] = ReadOneChar() ;   //溫度高8位 
 218   1      }
 219          
 220          /* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示                                              */
 221          /*******************************************************************/
 222           Disp_Temperature()
 223          {
 224   1        display[4]=temp_data[0]&0x0f ;
 225   1        display[0]=ditab[display[4]]+0x30 ;     //查表得小數(shù)位的值
 226   1        
 227   1        display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ;
 228   1        display[3]=display[4]/100+0x30 ;
 229   1        display[1]=display[4]%100 ;
 230   1        display[2]=display[1]/10+0x30 ;
 231   1        display[1]=display[1]%10+0x30 ;
 232   1      
 233   1          if(display[3]==0x30)        //高位為0,不顯示
 234   1         { 
 235   2           display[3]=0x20 ;              
 236   2           if(display[2]==0x30)      //次高位為0,不顯示
 237   2           display[2]=0x20 ;
 238   2         }
 239   1      
 240   1           lcd_pos(0x48) ;             
 241   1           lcd_wdat(display[3]) ;        //百位數(shù)顯示 
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 5   

 242   1           lcd_pos(0x49) ;             
 243   1           lcd_wdat(display[2]) ;        //十位數(shù)顯示 
 244   1        lcd_pos(0x4a) ;             
 245   1           lcd_wdat(display[1]) ;        //個位數(shù)顯示 
 246   1        lcd_pos(0x4c) ;             
 247   1           lcd_wdat(display[0]) ;        //小數(shù)位數(shù)顯示 
 248   1      }  
 249          
 250          /*******************************************************************/
 251          /* 蜂鳴器響一聲                 */
 252          /*******************************************************************/
 253          void beep()
 254            {
 255   1          unsigned char y ;
 256   1          for (y=0 ;y<100 ;y++)
 257   1          {
 258   2            Delay(60) ;
 259   2            BEEP=!BEEP ;                //BEEP取反
 260   2          } 
 261   1          BEEP=1 ;                      //關(guān)閉蜂鳴器
 262   1       Delay(40000) ;
 263   1        }
 264          
 265          /* DS18B20 OK 顯示菜單                                             */
 266          /*******************************************************************/
 267          void  Ok_Menu ()
 268          { 
 269   1          uchar  m ;
 270   1          lcd_init() ;                //初始化LCD 
 271   1                  
 272   1          lcd_pos(0) ;                //設(shè)置顯示位置為第一行的第1個字符
 273   1           m = 0 ;
 274   1          while(cdis1[m] != '\0')
 275   1           {                         //顯示字符
 276   2             lcd_wdat(cdis1[m]) ;
 277   2             m++ ;
 278   2           }
 279   1      
 280   1          lcd_pos(0x40) ;             //設(shè)置顯示位置為第二行第1個字符
 281   1           m = 0 ;
 282   1          while(cdis2[m] != '\0')
 283   1           {
 284   2             lcd_wdat(cdis2[m]) ;      //顯示字符
 285   2             m++ ;
 286   2           }
 287   1      
 288   1           writetab() ;               //自定義字符寫入CGRAM
 289   1           delay1(5) ;
 290   1           lcd_pos(0x4d) ;
 291   1           lcd_wdat(0x00) ;          //顯示自定義字符
 292   1      }
 293          
 294          
 295          /* DS18B20 ERROR 顯示菜單                             */
 296          /*******************************************************************/
 297          void  Error_Menu ()
 298          {
 299   1           uchar  m ;
 300   1           lcd_init() ;                //初始化LCD 
 301   1       
 302   1          lcd_pos(0) ;                //設(shè)置顯示位置為第一行的第1個字符
 303   1           m = 0 ;
C51 COMPILER V7.50   TEMPER                                                                05/14/2007 21:37:30 PAGE 6   

 304   1           while(cdis3[m] != '\0')
 305   1           {                         //顯示字符
 306   2             lcd_wdat(cdis3[m]) ;
 307   2             m++ ;
 308   2           }
 309   1      
 310   1           lcd_pos(0x40) ;             //設(shè)置顯示位置為第二行第1個字符
 311   1           m = 0 ;
 312   1           while(cdis4[m] != '\0')
 313   1           {
 314   2             lcd_wdat(cdis4[m]) ;      //顯示字符
 315   2             m++ ;
 316   2           }
 317   1      }
 318          
 319          
 320          /* 主函數(shù)     */
 321          /************************************/
 322          void main()
 323           {        delay1(10) ;
 324   1           Ok_Menu () ;
 325   1      
 326   1       do
 327   1        {
 328   2            Read_Temperature() ;
 329   2         Disp_Temperature() ;
 330   2           }
 331   1          while(!presence)  ;
 332   1      
 333   1           Error_Menu () ;
 334   1      
 335   1       do
 336   1        {  
 337   2          Init_DS18B20() ;
 338   2          beep() ;
 339   2           }
 340   1       while(presence) ;
 341   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    629    ----
   CONSTANT SIZE    =     92    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国久久99热| 婷婷综合久久一区二区三区| 欧美日韩一卡二卡| 国产精品91xxx| 日韩精品一级中文字幕精品视频免费观看 | 国产精品欧美精品| 欧美日韩成人综合| 99热在这里有精品免费| 久久9热精品视频| 亚洲一区二区三区小说| 国产亚洲成aⅴ人片在线观看| 一本色道**综合亚洲精品蜜桃冫| 蜜臀91精品一区二区三区| 亚洲美女电影在线| 国产精品三级在线观看| 精品国产百合女同互慰| 欧美日韩高清不卡| 在线亚洲一区观看| 色综合久久久久久久久久久| 国产精品12区| 国产一区美女在线| 激情图片小说一区| 青青草国产精品97视觉盛宴| 婷婷国产在线综合| 亚洲自拍与偷拍| 亚洲欧美aⅴ...| 中文字幕在线播放不卡一区| 久久精品亚洲国产奇米99| 日韩亚洲欧美一区二区三区| 欧美日韩小视频| 欧美日韩在线直播| 欧美人妇做爰xxxⅹ性高电影| 成人免费不卡视频| 国产91精品入口| 国产在线精品一区二区不卡了| 日韩成人午夜电影| 日韩主播视频在线| 视频一区视频二区在线观看| 亚洲成人在线免费| 视频在线观看一区| 久久精品免费看| 国产在线一区观看| 国产精品性做久久久久久| 国产美女精品在线| 成人午夜电影久久影院| 成人app下载| 91免费观看在线| 欧美亚洲自拍偷拍| 欧美日韩亚洲综合| 欧美一区二区国产| 久久先锋影音av鲁色资源网| 久久久久久久久岛国免费| 国产欧美精品区一区二区三区| wwwwxxxxx欧美| 国产精品欧美精品| 亚洲一区在线观看视频| 日本午夜精品视频在线观看| 久久精品国产一区二区| 国产经典欧美精品| 一本一道波多野结衣一区二区| 丁香另类激情小说| 91免费精品国自产拍在线不卡| 91在线视频在线| 欧美系列在线观看| 日韩一区二区免费在线电影| 久久先锋影音av| 亚洲青青青在线视频| 亚洲国产成人tv| 激情久久久久久久久久久久久久久久| 午夜在线电影亚洲一区| 免费在线观看精品| 粉嫩aⅴ一区二区三区四区五区| 国产麻豆视频精品| 色婷婷亚洲精品| 精品卡一卡二卡三卡四在线| 国产精品萝li| 无码av中文一区二区三区桃花岛| 免费成人在线视频观看| 成人免费黄色大片| 欧美高清www午色夜在线视频| 日韩欧美www| 亚洲日本电影在线| 久久国产三级精品| 日本高清不卡aⅴ免费网站| 欧美电视剧在线观看完整版| 国产精品久久久久精k8| 青青草国产成人av片免费| 99riav久久精品riav| 日韩天堂在线观看| 亚洲色欲色欲www| 久久不见久久见免费视频7| 91色乱码一区二区三区| 日韩精品中文字幕在线一区| 亚洲视频免费看| 国产综合色视频| 欧美日韩精品一区二区三区| 亚洲国产成人在线| 蜜臀a∨国产成人精品| 91成人免费网站| 久久精品亚洲乱码伦伦中文| 日韩黄色片在线观看| 91麻豆自制传媒国产之光| 亚洲精品一区二区精华| 亚洲sss视频在线视频| 99精品欧美一区二区蜜桃免费| 日韩亚洲欧美在线观看| 亚洲影院久久精品| www.欧美日韩国产在线| 26uuu国产在线精品一区二区| 一区二区激情小说| 99久久免费国产| 国产欧美精品一区| 国内精品视频666| 日韩一区二区免费视频| 亚洲精品久久7777| 一本色道久久综合亚洲91| 国产精品少妇自拍| 国产精品一区2区| 欧美不卡激情三级在线观看| 视频精品一区二区| 欧美少妇性性性| 一区二区视频在线看| 97se亚洲国产综合在线| 国产精品人成在线观看免费| 国产露脸91国语对白| 精品精品国产高清一毛片一天堂| 亚洲主播在线播放| 在线观看欧美精品| 亚洲理论在线观看| 在线中文字幕一区| 亚洲夂夂婷婷色拍ww47| 色婷婷综合久色| 亚洲美女偷拍久久| 欧美性欧美巨大黑白大战| 一区二区在线观看不卡| 欧美色国产精品| 午夜精品一区二区三区电影天堂 | 亚洲成a人片综合在线| 欧洲一区二区三区免费视频| 一区二区三区高清在线| 欧美网站大全在线观看| 午夜精品久久久久| 欧美一区二区播放| 美女尤物国产一区| 午夜精品久久一牛影视| 欧美丰满嫩嫩电影| 美女网站色91| 久久久久久久精| 成人动漫中文字幕| 亚洲人成亚洲人成在线观看图片 | 亚洲在线视频一区| 欧美日韩一区二区三区在线| 天堂午夜影视日韩欧美一区二区| 在线免费精品视频| 首页国产欧美久久| 精品国产sm最大网站免费看| 国产一区二区网址| 国产精品高潮呻吟久久| 91蝌蚪porny九色| 午夜久久久影院| 久久久久综合网| 99久久久无码国产精品| 五月天网站亚洲| 久久亚洲精华国产精华液| av资源站一区| 五月婷婷激情综合| 26uuu精品一区二区在线观看| 丁香一区二区三区| 亚洲精品国产视频| 精品久久国产字幕高潮| 99久久伊人精品| 日韩av午夜在线观看| 中文av一区特黄| 欧美丰满少妇xxxbbb| 国产99精品国产| 亚洲444eee在线观看| 2020国产精品自拍| 欧美视频在线观看一区二区| 韩国一区二区三区| 亚洲最新在线观看| 久久久国产午夜精品| 欧美在线一区二区| 高清av一区二区| 亚洲第一主播视频| 亚洲国产精品t66y| 日韩三级电影网址| 91蜜桃在线观看| 国产一区二三区好的| 亚洲成人在线观看视频| 亚洲国产高清aⅴ视频| 欧美一区二区三区性视频| 国产成a人亚洲| 麻豆91精品91久久久的内涵| 亚洲日本韩国一区| 久久精品在这里| 91精品午夜视频| 欧美综合欧美视频| av中文字幕不卡| 国产很黄免费观看久久| 青椒成人免费视频|