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

📄 lcd.lst

📁 使用单片机控制FPGA完成直接数字频率合成(DDFS),采用Keil C51
💻 LST
字号:
C51 COMPILER V8.02   LCD                                                                   09/12/2008 21:03:49 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"includes.h"
   2          
   3          void mydelay(unsigned int j)
   4          {
   5   1              unsigned int i;
   6   1              for(i=0;i<j;i++);
   7   1      
   8   1      }
   9          void lcd_sendcmd(unsigned char da)       //向液晶发送指令
  10          {
  11   1           unsigned char i;
  12   1              cs=0;
  13   1              a0=0;  //指令通道
  14   1              sck=1;
  15   1              for(i = 0; i < 8; i++)
  16   1              {
  17   2                      da <<= 1;
  18   2                      cda = CY;
  19   2                      sck = 0;
  20   2                      mydelay(10);
  21   2                      sck = 1;
  22   2                      mydelay(10);
  23   2              }
  24   1              cs = 1;
  25   1              mydelay(20);
  26   1      
  27   1      
  28   1      }
  29          void lcd_senddata(unsigned char da)      //向液晶发送数据
  30          {
  31   1           unsigned char i;
  32   1              cs=0;
  33   1              a0=1;  //数据通道
  34   1              sck=1;
  35   1              for(i = 0; i < 8; i++)
  36   1              {
  37   2                      da <<= 1;
  38   2                      cda = CY;
  39   2                      sck = 0;
  40   2                      mydelay(10);
  41   2                      sck = 1;
  42   2                      mydelay(10);
  43   2              }
  44   1              cs = 1;
  45   1              mydelay(20);
  46   1      
  47   1      
  48   1      }
  49          void lcd_init(void)               
  50          {
  51   1              res = 1;
  52   1              mydelay(32767);
  53   1              mydelay(32767);
  54   1              lcd_sendcmd(0xE2); //internal reset
  55   1              lcd_sendcmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
C51 COMPILER V8.02   LCD                                                                   09/12/2008 21:03:49 PAGE 2   

  56   1              lcd_sendcmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
  57   1              lcd_sendcmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
  58   1              lcd_sendcmd(0xA6); //d0=0display normal;=1reverse
  59   1              lcd_sendcmd(0xf8); //select booster ratio
  60   1              lcd_sendcmd(0x00); //d0\d1=00:4x
  61   1              lcd_sendcmd(0x2C); //d2:1=select internal power supply operating mode
  62   1              lcd_sendcmd(0x2E); //
  63   1              lcd_sendcmd(0x2F);
  64   1              // lcd_sendcmd(0x25); //select internal resistor ratio(RB/RA)mode
  65   1              lcd_sendcmd(0x81); //select the VO output voltage electronic volume register
  66   1              lcd_sendcmd(0x14); //select the VO output voltage electronic volume register
  67   1              lcd_sendcmd(0x0e); //select the VO output voltage electronic volume register
  68   1              lcd_sendcmd(0xAF); //d0:LCD display ON=1/OFF=0
  69   1              lcd_sendcmd(0xE0);
  70   1              lcd_sendcmd(0x40); //Set the display RAM start line address
  71   1      }
  72          
  73          void Set_Page_Address(unsigned char dat)    //设置页地址
  74          {
  75   1              lcd_sendcmd(0xb0|dat);
  76   1      }
  77          
  78          void Set_Colume_Address(unsigned char dat)      //设置列地址
  79          {
  80   1              unsigned char tmp;
  81   1              tmp=dat>>4;
  82   1              lcd_sendcmd(0x10|tmp); //送列地址高三位
  83   1              tmp=0x0f&dat;
  84   1              lcd_sendcmd(tmp);     //送列地址低四位
  85   1      }
  86          void lcd_clr(void)                 //清屏
  87          {
  88   1      unsigned char i,j;
  89   1      for(i = 0; i < 8; i++)
  90   1      {
  91   2              Set_Page_Address(i);
  92   2              Set_Colume_Address(0);
  93   2              
  94   2              for(j = 0; j < 128; j++)
  95   2              {
  96   3                      lcd_senddata(0x00);
  97   3              
  98   3              }
  99   2      }
 100   1      }
 101          void lcd_drawpot(unsigned char x/*0-127*/, unsigned char y/*0-63*/)
 102          {
 103   1              unsigned char temp;
 104   1              Set_Colume_Address(x);
 105   1              Set_Page_Address(y>>3);
 106   1              y &= 0x07;
 107   1          temp = 1<<y;
 108   1              lcd_senddata(temp);
 109   1      }
 110          //x每写一个字+16,y换行+1
 111          void lcd_drawhanzimo(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
 112          {
 113   1              unsigned int i;
 114   1              
 115   1              Set_Page_Address(y);
 116   1              Set_Colume_Address(x);
 117   1              for(i = 0; i<16; i ++)
C51 COMPILER V8.02   LCD                                                                   09/12/2008 21:03:49 PAGE 3   

 118   1              lcd_senddata(*(ptr+i));
 119   1              
 120   1              Set_Page_Address(y+1);
 121   1              Set_Colume_Address(x);
 122   1              for(i = 0; i<16; i++)
 123   1              lcd_senddata(*(ptr+i+16));
 124   1      }
 125          
 126          
 127          void lcd_drawnumber(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
 128          {
 129   1          unsigned int i;
 130   1          Set_Page_Address(y);
 131   1              Set_Colume_Address(x);
 132   1              for(i = 0; i<8; i ++)
 133   1              lcd_senddata(*(ptr+i));
 134   1              
 135   1              Set_Page_Address(y+1);
 136   1              Set_Colume_Address(x);
 137   1              for(i = 0; i<8; i++)
 138   1              lcd_senddata(*(ptr+i+8));
 139   1              
 140   1      }
 141          
 142          
*** WARNING C316 IN LINE 142 OF lcd.c: unterminated conditionals


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


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

⌨️ 快捷键说明

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