ts12864a.lst

来自「此程序是GPS的定位程序」· LST 代码 · 共 410 行 · 第 1/2 页

LST
410
字号
 191          /*编写日期: 2007-3-17                                           */
 192          /*****************************************************************/
 193          void Dis_Play(unsigned char x,unsigned char y,unsigned char dis_value)
 194          {
 195   1              LCD_Set_xy(x,y);
 196   1              LCD_Write_Data(dis_value);
 197   1      }
 198          
 199          void LCD_Init(void)                            
 200          {
 201   1      
 202   1              LCD_CSA = 1;
 203   1              delay_17us();
 204   1              LCD_CSB = 1;                      //控制器全开
 205   1              delay_17us();
 206   1              LCD_Write_Command(0x3f);  //开显示
 207   1              delay_17us();
 208   1              LCD_Write_Command(0xc0);  //设置起始地址
 209   1              delay_17us();
 210   1      
 211   1      }
 212          
 213          /*****************************************************************/
 214          /*函数名称: Display_Character.c                                 */
 215          /*函数功能: 显示汉字,fb==1:反白显示                            */
 216          /*函数说明: 具体说明如下:
 217                       x---------------------------------------------横轴位置                                                                                       
 218                       y---------------------------------------------纵轴位置
 219                                   n-------------------------------------数据在表中的位置 
 220                                   dis_table-----------------------------待显示数据代码表
 221                                   dis_value-----------------------------待显示汉字的代码
 222                                                                           */
 223          /*修改记录: 无修改记录                                          */
 224          /*编写日期: 2007-3-17                                           */
 225          /*****************************************************************/
 226          void Display_Character(unsigned char x,unsigned char y,unsigned char n) 
 227          {
 228   1              unsigned char i,dis_value;                        
 229   1              for(i=0;i<16;i++)
 230   1              {
 231   2                switch(y) 
 232   2                { 
 233   3                   case 1: dis_value=dis_table[i+n*32];      //确定显示的值,上半部分
 234   3                           Dis_Play(x*8+i,1,dis_value);
 235   3                           dis_value=dis_table[i+n*32+16];   //确定显示的值,上半部分
 236   3                           Dis_Play(x*8+i,2,dis_value);
 237   3                                       break;
 238   3                   case 3: dis_value=dis_table[i+n*32];      //确定显示的值,上半部分
 239   3                           Dis_Play(x*8+i,3,dis_value);
 240   3                           dis_value=dis_table[i+n*32+16];   //确定显示的值,上半部分
 241   3                           Dis_Play(x*8+i,4,dis_value);
C51 COMPILER V8.02   TS12864A                                                              05/16/2008 10:44:20 PAGE 5   

 242   3                                       break;
 243   3                   case 5: dis_value=dis_table[i+n*32];      //确定显示的值,上半部分
 244   3                           Dis_Play(x*8+i,5,dis_value);
 245   3                           dis_value=dis_table[i+n*32+16];   //确定显示的值,上半部分
 246   3                           Dis_Play(x*8+i,6,dis_value);
 247   3                                       break;
 248   3                       default:break;
 249   3                }
 250   2              }
 251   1      }
 252          
 253          /*****************************************************************/
 254          /*函数名称: Display_Char.c                                      */
 255          /*函数功能: 显示字符,fb==1:反白显示                            */
 256          /*函数说明: 具体说明如下:
 257                       x---------------------------------------------横轴位置                                                                                       
 258                       y---------------------------------------------纵轴位置
 259                                   n-------------------------------------数据在表中的位置 
 260                                   dis_table-----------------------------待显示数据代码表
 261                                   dis_value-----------------------------待显示汉字的代码
 262                                                                           */
 263          /*修改记录: 无修改记录                                          */
 264          /*编写日期: 2007-3-17                                           */
 265          /*****************************************************************/
 266          void Display_Char(unsigned char x,unsigned char y,unsigned char n)
 267          {
 268   1              unsigned char i,dis_value;
 269   1              for (i=0;i<8;i++)
 270   1              {
 271   2                 dis_value=shuzi_table[i+n*16];
 272   2                 Dis_Play(x*8+i+1,y,dis_value);
 273   2                 dis_value=shuzi_table[i+n*16+8]; 
 274   2                 Dis_Play(x*8+i+1,y+1,dis_value);
 275   2              }
 276   1      } 
 277          void Display_Point(unsigned char px,unsigned char py,unsigned char pn)
 278          {
 279   1              unsigned char i,dis_value;
 280   1              for (i=0;i<4;i++)
 281   1              {
 282   2                 dis_value=Point_table[i+pn*8];
 283   2                 Dis_Play(px*8+i+1,py,dis_value);
 284   2                                      }
 285   1      }
 286          /*****************************************************************/
 287          /*函数名称: LCD_Print_Int.c                                      */
 288          /*函数功能: 显示字符,fb==1:反白显示                            */
 289          /*函数说明: 具体说明如下:
 290                       x---------------------------------------------横轴位置                                                                                       
 291                       y---------------------------------------------纵轴位置
 292                                   dat-----------------------------------待显示汉字的代码
 293                                                                           */
 294          /*修改记录: 无修改记录                                          */
 295          /*编写日期: 2007-3-17                                           */
 296          /*****************************************************************/ 
 297          
 298          void LCD_Print_Int(unsigned char x,unsigned char y,long dat)
 299          {
 300   1              unsigned char str[6];
 301   1              unsigned int i=0;
 302   1       
 303   1              if(dat==0)
C51 COMPILER V8.02   TS12864A                                                              05/16/2008 10:44:20 PAGE 6   

 304   1                      Display_Char(x,y,0);
 305   1              else
 306   1              {
 307   2                      while(dat)
 308   2                      {
 309   3                              str[i]=dat%10+'0';
 310   3                              dat=dat/10;
 311   3                              i++;
 312   3                      }
 313   2                      while(i)
 314   2                      {
 315   3                              Display_Char(x+6-i,y,str[i-1]-'0');        //    Display_Char(x+5-i,y,str[i-1]-'0');
 316   3                              i--;
 317   3                      }
 318   2              }
 319   1              
 320   1      }
 321          
 322          /*****************************************************************/
 323          /*函数名称: Display_Char.c                                      */
 324          /*函数功能: 清除字符                                            */
 325          /*函数说明: 具体说明如下:
 326                       x---------------------------------------------横轴位置                                                                                       
 327                       y---------------------------------------------纵轴位置
 328                                   n-------------------------------------清除字符的个数*/                                          
 329          /*修改记录: 无修改记录                                          */
 330          /*编写日期: 2007-3-17                                           */
 331          /*****************************************************************/
 332           
 333          void Clear_Area(unsigned char x,unsigned char y,unsigned char n)
 334          {
 335   1              unsigned char ct=0;
 336   1              for(ct=0;ct<n;ct++)
 337   1                      Display_Char(x+ct,y,64);
 338   1              delay_nms(10);          
 339   1      }
 340           
 341          
 342          /*****************************************************************/
 343          /*函数名称: ten_n.c                                             */
 344          /*函数功能: 保留的小数取整                                      */
 345          /*修改记录: 无修改记录                                          */
 346          /*编写日期: 2007-3-17                                           */
 347          /*****************************************************************/
 348          
 349          unsigned int ten_n(unsigned char n)
 350          {
 351   1              unsigned int k;
 352   1              if(n==0) return 1;
 353   1              k=ten_n(n-1)*10;
 354   1              return( k);
 355   1      } 
 356          
 357          /*****************************************************************/
 358          /*                            : end :                            */
 359          /*****************************************************************/
 360          
 361           void delay_17us()
 362           {
 363   1       
 364   1               unsigned char t=17;
 365   1                       while(--t)
C51 COMPILER V8.02   TS12864A                                                              05/16/2008 10:44:20 PAGE 7   

 366   1               {
 367   2               
 368   2                  _nop_();
 369   2               
 370   2               }  
 371   1       
 372   1       }
 373           
 374          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1261    ----
   CONSTANT SIZE    =   2280    ----
   XDATA SIZE       =      1      41
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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