⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jhd162.lst

📁 基于STC12系列的DS18B20温度传感控制,测试通过,可以用串口回传字符显示.
💻 LST
字号:
C51 COMPILER V8.09   JHD162                                                                11/29/2008 09:47:18 PAGE 1   


C51 COMPILER V8.09, COMPILATION OF MODULE JHD162
OBJECT MODULE PLACED IN jhd162.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\KC51.EXE jhd162.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          sbit dc=0xc4;       /*P4.4    LCD的RS*/
   8          sbit rw=0xc5;       /*P4.5    LCD的R/W*/
   9          sbit cs=0xc6;       /*P4.6    LCD的E*/
  10          #define lcdbus P0   /*P0LCD  数据D0=P0.0*/ 
  11          
  12          void soft_nop(){}
  13          
  14          
  15          uchar lcd_checkbusy()    /*检查LCD忙*/
  16          {  
  17   1               register lcdstate;
  18   1         dc=0;
  19   1         rw=1;
  20   1         cs=1;
  21   1         soft_nop();
  22   1         lcdstate=lcdbus;
  23   1         cs=0;
  24   1         return((lcdstate&0x80));
  25   1      }
  26          
  27          void lcd_wrcmd(uchar lcdcmd) /*写LCD命令*/
  28          {  
  29   1         while(lcd_checkbusy());
  30   1         lcdbus=lcdcmd;
  31   1         dc=0;
  32   1         rw=0;
  33   1         cs=1;
  34   1         soft_nop();
  35   1         cs=0;
  36   1         lcdbus=0xff;
  37   1      }
  38          
  39          
  40          void lcd_moveto(uchar  position) /*移动光标到:0-79*/
  41          {  
  42   1               register cmd=0x80;
  43   1         //lcdcounter=position;
  44   1         if(position>59)
  45   1                  position+=0x18;
  46   1               else
  47   1               {
  48   2                        if(position>39)
  49   2                              position-=0x14;
  50   2                  else
  51   2                  {
  52   3                      if(position>19)
  53   3                              position+=0x2c;
  54   3                  }
  55   2               }
C51 COMPILER V8.09   JHD162                                                                11/29/2008 09:47:18 PAGE 2   

  56   1         cmd=cmd|position;
  57   1         lcd_wrcmd(cmd);
  58   1      }
  59          
  60          
  61          void lcd_wrdata(uchar  lcddata)/*在当前显示位置显示数据*/  
  62          {
  63   1         while(lcd_checkbusy());
  64   1         /*if(lcdcounter==20)
  65   1         {
  66   1                lcd_moveto(20);
  67   1            while(lcd_checkbusy());
  68   1         }
  69   1         if(lcdcounter==40)
  70   1         {
  71   1                lcd_moveto(40);
  72   1            while(lcd_checkbusy());
  73   1         }
  74   1         if(lcdcounter==60)
  75   1         {  
  76   1            lcd_moveto(60);
  77   1            while(lcd_checkbusy());
  78   1         }
  79   1         if(lcdcounter==80)
  80   1         { 
  81   1                lcd_moveto(0);
  82   1            while(lcd_checkbusy());
  83   1                  lcdcounter=0;
  84   1         }*/
  85   1         //lcdcounter++;
  86   1         lcdbus=lcddata;
  87   1         dc=1;
  88   1         rw=0;
  89   1         cs=1;
  90   1         soft_nop();
  91   1         cs=0;
  92   1         lcdbus=0xff;
  93   1      }
  94          //  position  显示地址
  95          //  count     显示字符个数(包括空格)
  96          //  *strpoint 字符串
  97          void lcd_string(uchar  position,uchar count,uchar  *strpoint)  /*在指定位置显示LCD字符串*/
  98          {  
  99   1               uchar i;
 100   1               lcd_moveto(position);
 101   1         for(i=0;i<count;i++)
 102   1         {
 103   2            lcd_wrdata(strpoint[i]);
 104   2         }    
 105   1      }
 106          
 107          
 108          void lcd_init() /*初始化*/
 109          {  
 110   1               lcd_wrcmd(0x38); /*设置8位格式,2行,5*7 */
 111   1         lcd_wrcmd(0x0c); /*整体显示,关光标,不闪烁*/
 112   1         lcd_wrcmd(0x06); /*设定输入方式,增量不移位*/
 113   1         lcd_wrcmd(0x01); /*清除显示*/
 114   1         //lcdcounter=0;
 115   1      }
 116          
 117          
C51 COMPILER V8.09   JHD162                                                                11/29/2008 09:47:18 PAGE 3   

 118          void lcd_cls() /*清除显示*/
 119          {  
 120   1               lcd_wrcmd(0x01);
 121   1        // lcdcounter=0;
 122   1      }
 123          
 124          
 125          
 126          /**********************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    181    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)
  PA51 中文汇编系统
Version 8.2 (C) Copyright 2007.7

登陆 http://pa51.cn 了解更多咨询
技术论坛 http://bbs.pa51.cn


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -