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

📄 3310.lst

📁 Nokia 3310 驱动程序 ... KeilC
💻 LST
字号:
C51 COMPILER V8.12   3310                                                                  06/05/2008 22:33:59 PAGE 1   


C51 COMPILER V8.12, COMPILATION OF MODULE 3310
OBJECT MODULE PLACED IN 3310.OBJ
COMPILER INVOKED BY: E:\Program Files\Keil\C51\BIN\C51.EXE 3310.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #include <dat.h>
   4          #include <ad.h>                                    //水平寻址下高位
   5          #define uchar unsigned char
   6          #define uint  unsigned int
   7          sbit sclk=P0^7;         
   8          sbit sdin=P0^6;
   9          sbit dc  =P0^5;
  10          sbit sce =P0^4;
  11          sbit res =P0^0;
  12          
  13          
  14          /*往LCD3310写指令,或写数据*/
  15          void lcd3310_wr(uchar com,bit k)
  16          {
  17   1              uchar i;
  18   1              sce=0;
  19   1              dc=k;
  20   1              for(i=0;i<7;i++)
  21   1              {
  22   2                      sclk=0;
  23   2                      if(com&0x80)
  24   2                              sdin=1;
  25   2                      else 
  26   2                              sdin=0;
  27   2                      com<<=1;
  28   2                      sclk=1;         
  29   2              }
  30   1              sclk=0;
  31   1              if(com&0x80)
  32   1                      sdin=1;
  33   1              else 
  34   1                      sdin=0;
  35   1              dc=k;
  36   1              sclk=1;
  37   1              sce=1;          
  38   1      }
  39          
  40          /*LCD3310清屏*/
  41          void lcd_clc()           
  42          {
  43   1              uint i;
  44   1          lcd3310_wr(0x40,0);                 
  45   1          lcd3310_wr(0x80,0);                 
  46   1          for (i=0; i<504; i++)
  47   1              lcd3310_wr(0,1);                        //即往ram中每个单位都写入0
  48   1      }
  49          
  50          /*LCD3310初始化*/
  51          void lcd_init()
  52          {
  53   1      //      res=0;
  54   1      //      _nop_();
  55   1              res=1;
C51 COMPILER V8.12   3310                                                                  06/05/2008 22:33:59 PAGE 2   

  56   1      
  57   1              sce=0;
  58   1      
  59   1              lcd3310_wr(0x20,0);      /*功能设置:芯片活动,水平寻址,使用基本指令集*/
  60   1      
  61   1              lcd3310_wr(0x0c,0);             /*显示配置:0x00空白,0x0a普通模式,0x09开所有显示段,0x0b反转映像模式*/
  62   1      
  63   1              lcd3310_wr(0xcf,0);             /*温度控制:0x04 V_lcd温度系数0,0x05 系数1,0x06 系数2,0x07 系数3*/
  64   1      
  65   1              lcd3310_wr(0xb7,0);
  66   1      
  67   1              lcd_clc();      
  68   1      }
  69          
  70          /*设置坐标*/
  71          void setxy(uchar x,uchar y)       //输入范围:0<=x<=5; 0<=y<=83
  72          {
  73   1              lcd3310_wr(0x40|x,0);
  74   1              lcd3310_wr(0x80|y,0);   
  75   1      }
  76          
  77          /*在指定位置写入一个字符*/
  78          void wr_char(uchar x,uchar y,uchar ch)
  79          {
  80   1              uchar i;
  81   1              setxy(x,y);
  82   1              ch-=32;
  83   1              for(i=0;i<6;i++)
  84   1                      lcd3310_wr(tbl[ch][i],1);
  85   1      }
  86          
  87          /*从指定位置开始写入一个字符串*/
  88          void wr_string(uchar x,uchar y,uchar *str)
  89          {
  90   1              uchar i,temp;
  91   1              setxy(x,y);
  92   1              while(*str)
  93   1              {
  94   2                      temp=(*str)-32;
  95   2                      for(i=0;i<6;i++)
  96   2                              lcd3310_wr(tbl[temp][i],1);
  97   2                      str++;
  98   2              }
  99   1      }
 100          
 101          /*在指定位置写入一个汉字(12点阵)*/
 102          void wr_chinese(uchar x,uchar y,const uchar *chinese)     //参数chinese[]为汉字摸
 103          {
 104   1              uchar i;
 105   1              setxy(x,y);                                        //写汉字的上半部
 106   1              for(i=0;i<12;i++)
 107   1              {
 108   2                      lcd3310_wr(*chinese,1);
 109   2                      chinese++;
 110   2              }
 111   1                                                                         
 112   1              setxy(x+1,y);
 113   1              for(i=0;i<12;i++)                          //写汉字的下半部
 114   1              {
 115   2                      lcd3310_wr(*chinese,1);
 116   2                      chinese++;
 117   2              }
C51 COMPILER V8.12   3310                                                                  06/05/2008 22:33:59 PAGE 3   

 118   1      }
 119          /*写一组汉字*/
 120          void wr_mulchinese(uchar x,uchar y,const uchar *chinese,uchar count)    //count为汉字个数
 121          {
 122   1              uchar i;
 123   1              for(i=0;i<count;i++)
 124   1              {
 125   2                      wr_chinese(x,y,chinese);
 126   2                      y+=12;
 127   2              //      x--;
 128   2                      chinese+=24;
 129   2              }
 130   1      }       
 131          
 132          /*在指定位置开始写入图片  */
 133          void draw_map(uchar x,uchar y,uchar *map,
 134                                                  uchar kuan,uchar gao)
 135          {
 136   1              uchar i,n,row;
 137   1              if(gao%8==0)
 138   1                       row=gao/8;
 139   1              else
 140   1                      row=gao/8+1;
 141   1              for(n=0;n<row;n++)
 142   1              {
 143   2                      setxy(x,y);
 144   2                      for(i=0;i<kuan;i++)
 145   2                      {
 146   3                              lcd3310_wr(*map,1);
 147   3                              map++;
 148   3                      }
 149   2                      x++;
 150   2              }       
 151   1      }
 152           
 153          /*用于延时n毫秒*/
 154          void delay(uint n)              
 155          {
 156   1              uchar m;
 157   1              uint i;
 158   1              for(i=0;i<n;i++)
 159   1                      for(m=0;m<200;m++);             
 160   1      }
 161          
 162          void drawline()
 163          {                
 164   1              uchar i;
 165   1              wr_string(0,0,"35^C");
 166   1              for(i=24;i<84;i++)
 167   1                      lcd3310_wr(0x10,1);
 168   1      
 169   1              wr_string(2,0,"15^C") ;
 170   1              for(i=24;i<84;i++)
 171   1                      lcd3310_wr(0x08,1);
 172   1      }
 173          void main()
 174          {
 175   1              //{0x00,0x00,0x0f,0x09,0x09,0x0f}, //度(温度)
 176   1              uchar i='0';
 177   1              uchar k[6]={0x00,0x00,0x0f,0x09,0x09,0x0f};
 178   1              lcd_init();     
 179   1              drawline();
C51 COMPILER V8.12   3310                                                                  06/05/2008 22:33:59 PAGE 4   

 180   1      //      wr_mulchinese(3,0,wendu[0],5);
 181   1      //      wr_mulchinese(5,0,zhuansu[0],5);
 182   1              wr_string(3,0,"CurTemp:");
 183   1              wr_string(4,0,"CurRev:1000rad/min");    
 184   1              while(1)
 185   1              {       
 186   2                      wr_char(3,54,i);
 187   2                      wr_string(3,72,"^C");
 188   2                      delay(1000);
 189   2                      i++;
 190   2                      if(i>=10)
 191   2                              i=0;
 192   2              }
 193   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    601    ----
   CONSTANT SIZE    =   1295    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      23
   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 + -