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

📄 ts12864.lst

📁 TS12864液晶驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:
 194          
 195                  while(y)
 196                  {
 197                          dot<<=1;
 198                          y--;
 199                  }
 200                  ram ^=dot;
 201                  Display(x,page,ram);
 202          }*/
 203          /*****************************************************************
 204          函数功能:显示初始化.
 205          参数说明:空
 206          ******************************************************************/
 207          #pragma disable                                 //加入此命令,使LcdInit()执行时,禁止中断
 208          void LcdInit(void) 
 209          {
 210   1              p_reset=0;_nop_(); _nop_(); 
 211   1              p_reset=1;_nop_(); _nop_(); 
 212   1              p_csa=p_csb=1;                          //左半边和右半边一起设定
 213   1              WriteLcd(COMM,LCD_ON);          //开显示
 214   1      }
 215          /*****************************************************************
 216          函数功能:显示单个数字
 217          参数说明:x,y:点阵坐标:x:0~15;y:0~3.
 218          *****************************************************************/
 219          void DisplayChar(unsigned char x,unsigned char y,unsigned char n,unsigned char state)
 220          {
 221   1              unsigned char i;
 222   1              SetXY(8*x,2*y);
 223   1              if(state!=LCD_BLACK)
 224   1              {
 225   2                      for(i=0;i<8;i++)
 226   2                      {
 227   3                              Display(8*x+i,2*y,asc[(n-32)*16+i]);
 228   3                              Display(8*x+i,2*y+1,asc[(n-32)*16+i+8]);
 229   3                      }
 230   2              }
 231   1              else
 232   1              {
 233   2                      for(i=0;i<8;i++)
 234   2                      {
 235   3                              Display(8*x+i,2*y,255-asc[(n-32)*16+i]);
 236   3                              Display(8*x+i,2*y+1,255-asc[(n-32)*16+i+8]);
 237   3                      }
 238   2              }
 239   1      }
 240          /*************************************************
 241          函数功能:整数变量转换成液晶显示程序
C51 COMPILER V8.02   TS12864                                                               07/26/2008 19:16:15 PAGE 5   

 242          整数范围:-32768~+32767
 243          参数:num:要显示的变量; y为行,x为列;均从0开始
 244          显示形式:x指定的位置为该数最高位的位置,负号紧贴数字显示
 245          *************************************************/
 246          void DisplayInt(unsigned char x,unsigned char y,signed int num,unsigned char state)
 247          {
 248   1              unsigned a[6];
 249   1              unsigned i=1,j;
 250   1      
 251   1              x-=2;
 252   1              if(num<0)
 253   1                      {
 254   2                              num=-num;
 255   2                              a[0]='-';       //负号
 256   2                      }
 257   1              else 
 258   1                      a[0]=' ';               //什么都不显示
 259   1      
 260   1              a[1]=num/10000;num%=10000;
 261   1              a[2]=num/1000;num%=1000;
 262   1              a[3]=num/100;num%=100;
 263   1              a[4]=num/10;num%=10;
 264   1              a[5]=num;
 265   1              
 266   1              while(a[i]==0&&i<=5)++i;
 267   1              j=i-1;                                                                                                  //j为负号的位
 268   1              while(i<=5){DisplayChar(x+i,y,a[i]+48,state);++i;}
 269   1              if(j==5)DisplayChar(x+5,y,48,state);                                    //全0的情况
 270   1              if(a[0]=='-')DisplayChar(x+j,y,'-',state);      //负数的情况
 271   1      }
 272          /*****************************************************************
 273          函数功能:提取单个汉字显示
 274          参数说明:x:y:点阵坐标x:0~7;y:0~3。n第n个汉字
 275          ******************************************************************/
 276          void DisplaySingleChinese(unsigned char x,unsigned char y,unsigned char n,
 277                                                  unsigned char code *chArray,unsigned char state)
 278          {
 279   1              unsigned char i;
 280   1              SetXY(16*x,2*y);
 281   1              if(state!=LCD_BLACK)
 282   1              {
 283   2                      for(i=0;i<16;i++)
 284   2                      {
 285   3                              Display(16*x+i,2*y,chArray[n*32+i]);
 286   3                              Display(16*x+i,2*y+1,chArray[n*32+i+16]);
 287   3                      }
 288   2              }
 289   1              else
 290   1              {
 291   2                      for(i=0;i<16;i++)
 292   2                      {
 293   3                              Display(16*x+i,2*y,255-chArray[n*32+i]);
 294   3                              Display(16*x+i,2*y+1,255-chArray[n*32+i+16]);
 295   3                      }
 296   2              }
 297   1      }
 298          /*****************************************************************
 299          函数功能:显示汉字
 300          参数说明:x:y:点阵坐标x:0~8;y:0~3。n:共n个汉字
 301          ******************************************************************/
 302          void DisplayString(unsigned char x,unsigned char y,unsigned char n,
 303                                                                  unsigned char code *chArray,unsigned char state)
C51 COMPILER V8.02   TS12864                                                               07/26/2008 19:16:15 PAGE 6   

 304          {
 305   1              unsigned char i;
 306   1              for(i=0;i<n;i++)
 307   1              {
 308   2                      if(x>7)
 309   2                      {
 310   3                              if(y<3)
 311   3                              {
 312   4                                      x=0;
 313   4                                      y++;
 314   4                              }
 315   3                      }
 316   2                      DisplaySingleChinese(x,y,i,chArray,state);
 317   2                      x++;
 318   2              }
 319   1      }
 320          /*****************************************************************
 321          函数功能:延时
 322          参数说明:传输输入参数。具体时间需计算所用晶振频率
 323          ******************************************************************/
 324          void delayX10ms(unsigned char count)
 325          {
 326   1              unsigned char i,j,k;
 327   1              for (i=0;i<count;i++)
 328   1                for(j=0;j<50;j++)
 329   1                  for(k=0;k<80;k++);
 330   1      }
 331          /*****************************************************************
 332          函数功能:翻屏
 333          参数说明:time:翻屏时间
 334          ******************************************************************/
 335          /*void RollScr(unsigned time)
 336          {
 337                  unsigned char i;
 338                  p_csa=p_csb=1;                                  //左右两边一起选定
 339                  for(i=0;i<64;i++)
 340                  {
 341                          WriteLcd(COMM,0xc0+i);          //设置起始行
 342                          delayX10ms(time);                       //延时
 343                  }
 344                  WriteLcd(COMM,0xc0);                    //设置起始行    
 345          }*/
 346          /*****************************************************************
 347          函数功能:显示图像
 348          参数说明:*img指向图像数组;state用来取反图像颜色,一般不用。
 349          ******************************************************************/
 350          void DisplayImage(unsigned char *img,unsigned char state)
 351          {
 352   1              unsigned char i,j;
 353   1      
 354   1              if(state==0xFF)
 355   1              {
 356   2      
 357   2                      for(j=0;j<128;j++)
 358   2                      {
 359   3                              for(i=0;i<8;i++)
 360   3                              {
 361   4                                      delayX10ms(1);
 362   4                                      Display(j,i,255-img[i*128+j]);
 363   4                              }
 364   3                      }
 365   2      
C51 COMPILER V8.02   TS12864                                                               07/26/2008 19:16:15 PAGE 7   

 366   2              }
 367   1              else
 368   1              {
 369   2      
 370   2                      for(j=0;j<128;j++)
 371   2                      {
 372   3                              for(i=0;i<8;i++)
 373   3                              {
 374   4                                      Display(j,i,img[i*128+j]);
 375   4                              }
 376   3                      }
 377   2      
 378   2              }
 379   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1254    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      51
   IDATA SIZE       =   ----    ----
   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 + -