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

📄 lcm320240-function.lst

📁 51单片机驱动青云创新的LCM3202403的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 182                  wrdata(addrl);              // 写入参数CSRL设置参数光标指针低8位
 183                  wrdata(addrh);              // 写入参数CSRH设置参数光标指针高8位
 184                  wrcmd(mRead);               // 读数据命令0x43
 185                  m = rddata();
 186                  m = m|dotdata;
 187                  wrcmd(CsrDirR);                 // 光标移动方向定义:自动右移   
 188                  wrcmd(CsrW);                    // 光标Locate,定位0x46
 189                  wrdata(addrl);                  // 写入参数CSRL设置参数光标指针低8位
 190                  wrdata(addrh);                  // 写入参数CSRH设置参数光标指针高8位
 191                  wrcmd( mWrite );                // 数据写入指令,代码0x42
 192                  wrdata(m);                          // 写入数据
 193                  wrcmd(CsrDirR);
 194          }*/
 195          
 196          
 197          /* ------------------汉字字符串写入子程序--------------------------*/
 198          void LCM_gb(uint x, uint y, uchar n, uchar *p) 
 199          {
 200   1              uint addr;
 201   1              uchar i, j;
 202   1              addr = 0x4000 + x + y*AP;       //第二显示区为图形属性,计算显示ram地址
 203   1              for(i=0; i<n*2; i++)            //16*16点阵,每个字占用32字节,一个字分两次写入
 204   1              {       
 205   2                      wrcmd(CsrW);                    // 光标Locate,定位0x46
 206   2                      wrdata(addr);                   // 写入参数CSRL设置参数光标指针低8位
 207   2                      wrdata(addr>>8);                // 写入参数CSRH设置参数光标指针高8位
 208   2                      wrcmd(CsrDirD);                 // 光标移动方向定义:自动下移
 209   2                      wrcmd(mWrite);                  // 数据写入指令,代码0x42
 210   2                      for(j=0; j<16; j++)
 211   2                      {
 212   3                              wrdata(*(p + 2*j + 32*(i/2) + i%2));    // 写入数据,左半边为0,右半边为1
 213   3                      }                                                       // 先写左半部分,表内偶数部分,地址addr
 214   2                      addr = addr + 1;                        // 再写右半部分,表内奇数部分,地址addr+1,右移一字节
 215   2              }
 216   1              wrcmd(CsrDirR);
 217   1      }
 218          
 219          
 220          /* ------------------ASCII字符串写入子程序--------------------------*/
 221          void LCM_ASC(uint x, uint y, uchar n, uchar *p)
 222          {
 223   1              uint addr;
 224   1              uchar i, j;
 225   1              uint temp;
 226   1              addr = 0x4000 + x + y*AP;       //第二显示区为图形属性,计算显示ram地址
 227   1              for(i=0; i<n; i++)                  //8*16点阵,每个字占用16字节,一个字一次写入
 228   1              {       
 229   2                      temp=*(p+i)-0x20;
 230   2                      wrcmd(CsrW);                    // 光标Locate,定位0x46
 231   2                      wrdata(addr);                   // 写入参数CSRL设置参数光标指针低8位
 232   2                      wrdata(addr>>8);                // 写入参数CSRH设置参数光标指针高8位
 233   2                      wrcmd(CsrDirD);                 // 光标移动方向定义:自动下移
 234   2                      wrcmd(mWrite);                  // 数据写入指令,代码0x42
 235   2                      for(j=0; j<16; j++)
 236   2                      {
 237   3                              wrdata(ASC_MSK[temp*16+j]);// 写入数据,从上到下的顺序写入
 238   3                      }                                                       
 239   2                      addr = addr + 1;                        // 每次写入一个数据,地址addr+1,右移一字节的位置
 240   2              }
 241   1              wrcmd(CsrDirR);
C51 COMPILER V7.20   LCM320240_FUNCTION                                                    03/19/2009 15:59:28 PAGE 5   

 242   1      }
 243          
 244          
 245          /* ------------------ASCII字符串写入子程序--------------------------
 246          void LCM_ascii(uint x, uint y, uchar *p) 
 247          {
 248                  uint addr;
 249                  addr = x + y * AP;//第一显示区为文本属性,计算显示ram地址
 250                  wrcmd(CsrW);                            // 光标Locate,定位0x46
 251                  wrdata(addr);                           // 写入参数CSRL设置参数光标指针低8位
 252                  wrdata(addr>>8);                        // 写入参数CSRH设置参数光标指针高8位
 253                  wrcmd(CsrDirR);                         // 光标移动方向定义:自动右移
 254                  wrcmd(mWrite);                  // 数据写入指令,代码0x42
 255                  while(*p>0)     
 256                  {
 257                          wrdata(*p++);                   // 写入数据0x00
 258                  }
 259                  wrcmd(CsrDirR);
 260          }
 261          */
 262          
 263          /* ------------------清屏子程序--------------------------*/
 264          void Lcm_clear(void) 
 265          {
 266   1              uint i=32768;
 267   1              wrcmd(CsrW );                           // 光标Locate,定位
 268   1              wrdata(0);                              // 写入参数CSRL设置参数光标指针低8位
 269   1              wrdata(0);                              // 写入参数CSRH设置参数光标指针高8位
 270   1              wrcmd(CsrDirR);                         // 光标移动方向定义:自动右移
 271   1              wrcmd(mWrite);                  // 数据写入指令,代码0x42
 272   1              while(i--)      
 273   1              {
 274   2                      wrdata(0x00);                   // 写入数据0x00
 275   2              }
 276   1      }
 277          
 278          
 279          /* -------------------全显示子程序-----------------------*/
 280          void Lcm_on(void)
 281          { 
 282   1              uint i=32768;
 283   1              wrcmd(CsrW);                            // 光标Locate,定位
 284   1              wrdata(0);                              // 写入参数CSRL设置参数光标指针低8位
 285   1              wrdata(0);                              // 写入参数CSRH设置参数光标指针高8位
 286   1              wrcmd(CsrDirR);                         // 光标移动方向定义:自动右移
 287   1              wrcmd(mWrite);                  // 数据写入指令,代码0x42
 288   1              while(i--)      
 289   1              {
 290   2                      wrdata(0xff);                   // 写入数据0xff
 291   2              }
 292   1      }
 293          
 294          
 295          /* ---------------------读数据子程序-------------------
 296          uchar rddata(void)
 297          {
 298                  uchar num = 0xff;
 299                  a0=1;   
 300                  cs_=0;  
 301                  databus=0xff;
 302              _nop_();
 303                  rd_=0; 
C51 COMPILER V7.20   LCM320240_FUNCTION                                                    03/19/2009 15:59:28 PAGE 6   

 304              _nop_();
 305                  _nop_();        
 306                  num=databus;
 307                  _nop_();
 308                  _nop_();  
 309                  rd_=1;
 310                  cs_=1;
 311                  return num;     
 312          }*/
 313          
 314          
 315          /* ---------------------写数据子程序-------------------*/
 316          void wrdata(uchar num)
 317          {
 318   1              databus=0xff;
 319   1              a0=0;
 320   1              _nop_();
 321   1              databus=num;
 322   1              _nop_();
 323   1          _nop_();
 324   1              cs_=0;
 325   1              wr_=0; 
 326   1              _nop_();
 327   1          _nop_();
 328   1          wr_=1;
 329   1          cs_=1;
 330   1      }
 331          
 332          
 333          /* ---------------------写指令子程序-------------------*/
 334          void wrcmd(uchar cmd)
 335          {
 336   1              databus=0xff;
 337   1              a0=1;
 338   1              _nop_();
 339   1              databus=cmd;
 340   1              _nop_();
 341   1          _nop_();
 342   1              cs_=0;
 343   1              wr_=0;
 344   1              _nop_();
 345   1          _nop_();
 346   1          wr_=1;
 347   1          cs_=1;
 348   1      }
 349          
 350          
 351          /*----------------------延时子程序----------------------*/
 352          void delay(ulong n)
 353          { 
 354   1              while(n--);
 355   1      }
 356          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1003    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      49
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.20   LCM320240_FUNCTION                                                    03/19/2009 15:59:28 PAGE 7   

   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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