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

📄 st7920

📁 这是TOPWAY公司的LCD驱动程序
💻
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   ST7920并行反白与光标                                                  07/24/2007 11:24:50 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE ST7920并行反白与光标
OBJECT MODULE PLACED IN ST7920并行反白与光标.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ST7920并行反白与光标.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          
   3          #define uint  unsigned int
   4          #define uchar unsigned char
   5          #define x1    0x80
   6          #define x2    0x88
   7          #define y     0x80
   8          #define comm  0
   9          #define dat   1
  10          
  11          sbit rs = P2^1;   //H=data; L=command;
  12          sbit rw = P2^2;   //H=read; L=write;
  13          sbit  e = P2^4;   //input enable;
  14          sbit psb= P2^5;   //H=并口; L=串口;
  15          sbit rst= P2^3;   //Reset Signal 低电平有效
  16          
  17          sbit busy=P0^7;   //lcd busy bit
  18          
  19          void wr_lcd (uchar dat_comm,uchar content);
  20          void chk_busy (void);
  21          void delay (uint us);
  22          
  23          uchar code tab1[]={
  24          "本系列中文模块内"
  25          "任意位置反白显示"
  26          "置二级字库,可在"
  27          "使用更方便更灵活"
  28          };
  29          
  30          uchar code tab2[]={
  31          "金鹏科技有限公司"
  32          "Golden Palm TECH"
  33          "奥可拉液晶显示器"
  34          "TEL:0758-2263858"
  35          };
  36          
  37          /******************************************************************************************
  38          * 函数名称    :init_lc
  39          * 功能描述    : 初始化
  40          * 参数        :  参数名称:    输入/输出?     类型            描述
  41          * 
  42          * 返回值      :
  43          * 作者        :
  44          * 创建日期    :2006-12-19
  45          * 全局变量    :
  46          * 全局静态变量:
  47          * 局部静态变量:
  48          *----------------------------------------修改历史------------------------------------------
  49          * 当前版本    :                         修改人:                  修改日期:
  50          * 修改说明    :
  51          ******************************************************************************************/
  52          void init_lcd(void)
  53          {
  54   1              rst=1;
  55   1              psb=1;
C51 COMPILER V7.50   ST7920并行反白与光标                                                  07/24/2007 11:24:50 PAGE 2   

  56   1              wr_lcd(comm,0x30);  /*30---基本指令动作*/   
  57   1              wr_lcd(comm,0x01);  /*清屏,地址指针指向00H*/
  58   1              wr_lcd(comm,0x06);  /*光标的移动方向*/
  59   1              wr_lcd(comm,0x0c);  /*开显示,关游标*/
  60   1      }
  61          
  62          /******************************************************************************************
  63          * 函数名称    :chn_disp
  64          * 功能描述    : 显示汉字或字符
  65          * 参数        :  参数名称:    输入/输出?     类型            描述
  66          * 
  67          * 返回值      :
  68          * 作者        :
  69          * 创建日期    :2006-12-19
  70          * 全局变量    :
  71          * 全局静态变量:
  72          * 局部静态变量:
  73          *----------------------------------------修改历史------------------------------------------
  74          * 当前版本    :                         修改人:                  修改日期:
  75          * 修改说明    :
  76          ******************************************************************************************/
  77          void chn_disp(uchar code *chn)
  78          {
  79   1              uchar i,j;
  80   1              wr_lcd(comm,0x30);
  81   1              wr_lcd(comm,0x80);
  82   1              for (j=0;j<4;j++)
  83   1              {
  84   2              for (i=0;i<16;i++)
  85   2              wr_lcd(dat,chn[j*16+i]);
  86   2              }
  87   1      }
  88          
  89          /******************************************************************************************
  90          * 函数名称    :img_disp
  91          * 功能描述    : 显示图形
  92          * 参数        :  参数名称:    输入/输出?     类型            描述
  93          * 
  94          * 返回值      :
  95          * 作者        :
  96          * 创建日期    :2006-12-19
  97          * 全局变量    :
  98          * 全局静态变量:
  99          * 局部静态变量:
 100          *----------------------------------------修改历史------------------------------------------
 101          * 当前版本    :                         修改人:                  修改日期:
 102          * 修改说明    :
 103          ******************************************************************************************/
 104          void img_disp(uchar code *img)
 105          {
 106   1              uchar i,j;
 107   1              for(j=0;j<32;j++)
 108   1              {
 109   2              for(i=0;i<8;i++)
 110   2              {
 111   3              wr_lcd(comm,0x34);
 112   3              wr_lcd(comm,y+j);
 113   3              wr_lcd(comm,x1+i);
 114   3              wr_lcd(comm,0x30);
 115   3              wr_lcd(dat,img[j*16+i*2]);
 116   3              wr_lcd(dat,img[j*16+i*2+1]);
 117   3              }
C51 COMPILER V7.50   ST7920并行反白与光标                                                  07/24/2007 11:24:50 PAGE 3   

 118   2              }
 119   1              for(j=32;j<64;j++)
 120   1              {
 121   2              for(i=0;i<8;i++)
 122   2              {
 123   3              wr_lcd(comm,0x34);
 124   3              wr_lcd(comm,y+j-32);
 125   3              wr_lcd(comm,x2+i);
 126   3              wr_lcd(comm,0x30);
 127   3              wr_lcd(dat,img[j*16+i*2]);
 128   3              wr_lcd(dat,img[j*16+i*2+1]);
 129   3              }
 130   2              }
 131   1              wr_lcd(comm,0x36);
 132   1      }
 133          
 134          /******************************************************************************************
 135          * 函数名称    :lat_disp
 136          * 功能描述    : 显示点
 137          * 参数        :  参数名称:    输入/输出?     类型            描述
 138          * 
 139          * 返回值      :
 140          * 作者        :
 141          * 创建日期    :2006-12-19
 142          * 全局变量    :
 143          * 全局静态变量:
 144          * 局部静态变量:
 145          *----------------------------------------修改历史------------------------------------------
 146          * 当前版本    :                         修改人:                  修改日期:
 147          * 修改说明    :
 148          ******************************************************************************************/
 149          void lat_disp(uchar data1,uchar data2)
 150          {
 151   1              uchar i,j,k,x;
 152   1              x=x1;
 153   1              for(k=0;k<2;k++)
 154   1              {
 155   2              for(j=0;j<16;j++)
 156   2              {
 157   3              for(i=0;i<8;i++)
 158   3              {
 159   4                      wr_lcd(comm,0x34);
 160   4                      wr_lcd(comm,y+j*2);
 161   4                      wr_lcd(comm,x+i);
 162   4                      wr_lcd(comm,0x30);
 163   4                      wr_lcd(dat,data1);
 164   4                      wr_lcd(dat,data1);
 165   4              }
 166   3              for(i=0;i<8;i++)
 167   3              {
 168   4                      wr_lcd(comm,0x34);
 169   4                      wr_lcd(comm,y+j*2+1);
 170   4                      wr_lcd(comm,x+i);
 171   4                      wr_lcd(comm,0x30);
 172   4                      wr_lcd(dat,data2);
 173   4                      wr_lcd(dat,data2);
 174   4              }
 175   3              }
 176   2              x=x2;
 177   2              }
 178   1              wr_lcd(comm,0x36);
 179   1      }
C51 COMPILER V7.50   ST7920并行反白与光标                                                  07/24/2007 11:24:50 PAGE 4   

 180          
 181          /******************************************************************************************
 182          * 函数名称    :con_disp
 183          * 功能描述    : 
 184          * 参数        :  参数名称:    输入/输出?     类型            描述
 185          * 当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
 186          * 当data1=0xff,data2=0x00时,在x0,y0处前半反白显示8xl*yl.
 187          * 当data1=0x00,data2=0xff时,在x0,y0处后半反白显示8xl*yl.
 188          * 返回值      :
 189          * 作者        :
 190          * 创建日期    :2006-12-19
 191          * 全局变量    :
 192          * 全局静态变量:
 193          * 局部静态变量:
 194          *----------------------------------------修改历史------------------------------------------
 195          * 当前版本    :                         修改人:                  修改日期:
 196          * 修改说明    :
 197          ******************************************************************************************/
 198          void con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
 199          {
 200   1              uchar i,j;
 201   1              for(j=0;j<yl;j++)
 202   1              {
 203   2              for(i=0;i<xl;i++)
 204   2              {
 205   3              wr_lcd(comm,0x34);
 206   3              wr_lcd(comm,y0+j);
 207   3              wr_lcd(comm,x0+i);

⌨️ 快捷键说明

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