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

📄 text1.lst

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


C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #include <ad.h>
   4          #include <dat.h>
   5          #define uchar unsigned char
   6          #define uint  unsigned int
   7          
   8          sbit sclk=P0^7;                   //要有实现滚屏的函数
   9          sbit sdin=P0^6;
  10          sbit dc  =P0^5;
  11          sbit sce =P0^4;
  12          sbit res =P0^0; 
  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              unsigned int 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 lcd3310_init()
  52          {
  53   1      //      res=0;
  54   1      //      _nop_();
  55   1              res=1;
C51 COMPILER V8.02   TEXT1                                                                 06/05/2008 12:41:06 PAGE 2   

  56   1      
  57   1              sce=0;
  58   1      
  59   1              lcd3310_wr(0x20,0);      
  60   1              lcd3310_wr(0xB7,0);     
  61   1      
  62   1              lcd3310_wr(0x20,0);     
  63   1              lcd3310_wr(0x0c,0);     
  64   1      
  65   1              lcd_clc();      
  66   1      }
  67          
  68          /*设置坐标*/
  69          void setxy(uchar x,uchar y)       //输入范围:0<=x<=5; 0<=y<=83
  70          {
  71   1              lcd3310_wr(0x40|x,0);
  72   1              lcd3310_wr(0x80|y,0);   
  73   1      }
  74          /*写汉字,采用12点阵
  75          ch为字模,x,y屏幕位置*/
  76          void wr_chinese(const uchar *ch,uchar x,uchar y)
  77          {
  78   1              uchar i;
  79   1              setxy(x,y);
  80   1              for(i=0;i<12;i++)
  81   1              {
  82   2                      lcd3310_wr(*ch,1);
  83   2                      ch++;
  84   2              }
  85   1              setxy(x+1,y);
  86   1              for(i=0;i<12;i++)
  87   1              {
  88   2                      lcd3310_wr(*ch,1);
  89   2                      ch++;
  90   2              }
  91   1      }
  92          void wr_char (const uchar *ch,uchar x,uchar y)
  93          {
  94   1              uchar i;
  95   1              setxy(x,y);
  96   1              for(i=0;i<6;i++)
  97   1              {
  98   2                      lcd3310_wr(*ch,1);
  99   2                      ch++ ;
 100   2              }
 101   1      }
 102          void delay(uint n)              //延时n毫秒
 103          {
 104   1              uchar m;
 105   1              uint i;
 106   1              for(i=0;i<n;i++)
 107   1                      for(m=0;m<200;m++);             
 108   1      }
 109          /*转轮动画*/
 110          void circle(const uchar *ch,uchar x,uchar y)
 111          {
 112   1              uchar i;
 113   1              setxy(x,y);
 114   1              for(i=0;i<32;i++)
 115   1              {
 116   2                      lcd3310_wr(*ch,1);
 117   2                      ch++;
C51 COMPILER V8.02   TEXT1                                                                 06/05/2008 12:41:06 PAGE 3   

 118   2              }       
 119   1      }
 120          void draw_map(uchar x,uchar y,uchar *map,
 121                                                  uchar kuan,uchar gao)
 122          {
 123   1              uchar i,n,row;
 124   1              if(gao%8==0)
 125   1                       row=gao/8;
 126   1              else
 127   1                      row=gao/8+1;
 128   1              for(n=0;n<row;n++)
 129   1              {
 130   2                      setxy(x,y);
 131   2                      for(i=0;i<kuan;i++)
 132   2                      {
 133   3                              lcd3310_wr(*map,1);
 134   3                              map++;
 135   3                      }
 136   2                      x++;
 137   2              }       
 138   1      }
 139          /*滚屏“杭州电子科技大学”
 140          void gunping()
 141          {
 142                  char i,j;
 143                  for(i=0;i<8;i++)
 144                  {                                                               
 145                          for(j=i;j>=0;j--)
 146                          {
 147                                  wr_chinese(hanzi[j],1,12*(i-j));
 148                                  delay(100);
 149                                  if((12*(i-j))==72)
 150                                          break;
 151                          }
 152                  } 
 153                  for(i=1;i<7;i++)
 154                  {
 155                          lcd_clc();
 156                          for(j=7;j>=0;j--)
 157                          {
 158                                  wr_chinese(hanzi[j],1,12*(i+7-j));
 159                                  delay(100);
 160                                  if((i+7-j)==6)
 161                                          break;
 162                          }
 163                  } 
 164          } */
 165          
 166          void main()
 167          {
 168   1              lcd3310_init();
 169   1              
 170   1              draw_map(0,0,nBitmapDot,48,48);
 171   1              while(1) ;
 172   1      }                


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    364    ----
   CONSTANT SIZE    =   1552    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.02   TEXT1                                                                 06/05/2008 12:41:06 PAGE 4   

   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 + -