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

📄 text1.lst

📁 单片机控制的AD对正弦波信号采样后用12864的液晶显示出来
💻 LST
📖 第 1 页 / 共 2 页
字号:
 190   1      
 191   1              p_E=1;
 192   1              p_E=0;
 193   1      }
 194          
 195          /**********************************************
 196          设置行值和列值
 197          ***********************************************/
 198          void lcd_setxy(unsigned char x,unsigned char y)
 199          {
 200   1              if(y<64)
 201   1              {
 202   2                      //写行地址left
 203   2                      lcd_busy();
 204   2                      p_RS=0;
 205   2                      p_RW=0;
 206   2      
 207   2                      p_CSA=1;
 208   2                      p_CSB=0;
 209   2      
 210   2                      DATA=0xb8|x;
 211   2              
 212   2                      p_E=1;
 213   2                      p_E=0;
 214   2      
 215   2                      //写列地址left
 216   2                      lcd_busy();
 217   2                      p_RS=0;
 218   2                      p_RW=0;
 219   2      
 220   2                      p_CSA=1;
 221   2                      p_CSB=0;
 222   2      
 223   2                      DATA=0x40|y;
 224   2      
 225   2                      p_E=1;
 226   2                      p_E=0;
 227   2              }
 228   1              else
 229   1              {
 230   2                      //y=y-64;
 231   2                      //写行地址right
 232   2                      lcd_busy();
 233   2                      p_RS=0;
 234   2                      p_RW=0;
 235   2      
 236   2                      p_CSA=0;
 237   2                      p_CSB=1;
 238   2              
 239   2                      DATA=0xb8|x;
 240   2              
C51 COMPILER V8.08   TEXT1                                                                 10/31/2008 13:44:40 PAGE 5   

 241   2                      p_E=1;
 242   2                      p_E=0;
 243   2      
 244   2                      //写列地址right
 245   2                      lcd_busy();
 246   2                      p_RS=0;
 247   2                      p_RW=0;
 248   2      
 249   2                      p_CSA=0;
 250   2                      p_CSB=1;
 251   2      
 252   2                      DATA=0x40|y;
 253   2      
 254   2                      p_E=1;
 255   2                      p_E=0;
 256   2      
 257   2              }
 258   1      }
 259          
 260          /**********************************************
 261          画点i(0-63),j(0-127)
 262          ***********************************************/
 263          void lcd_writepoint(unsigned char i,unsigned char j)
 264          {
 265   1              unsigned char x,y,data_t=0x00;
 266   1              y=j;
 267   1      
 268   1              if(i>=0&&i<=7)
 269   1              {
 270   2                      x=0;
 271   2                      data_t=(0x01<<i);
 272   2              }
 273   1              else if(i>=8&&i<=15)
 274   1              {
 275   2                      x=1;
 276   2                      data_t=(0x01<<(i-8));
 277   2              }
 278   1              else if(i>=16&&i<=23)
 279   1              {
 280   2                      x=2;
 281   2                      data_t=(0x01<<(i-16));
 282   2              }
 283   1              else if(i>=24&&i<=31)
 284   1              {
 285   2                      x=3;
 286   2                      data_t=(0x01<<(i-24));
 287   2              }
 288   1              else if(i>=32&&i<=39)
 289   1              {
 290   2                      x=4;
 291   2                      data_t=(0x01<<(i-32));
 292   2              }
 293   1              else if(i>=40&&i<=47)
 294   1              {
 295   2                      x=5;
 296   2                      data_t=(0x01<<(i-40));
 297   2              }
 298   1              else if(i>=48&&i<=55)
 299   1              {
 300   2                      x=6;
 301   2                      data_t=(0x01<<(i-48));
 302   2              }
C51 COMPILER V8.08   TEXT1                                                                 10/31/2008 13:44:40 PAGE 6   

 303   1              else if(i>=56&&i<=63)
 304   1              {
 305   2                      x=7;
 306   2                      data_t=(0x01<<(i-56));
 307   2              }
 308   1              lcd_busy();
 309   1              lcd_setxy(x,y);
 310   1      
 311   1              p_RS=1;
 312   1              p_RW=0;
 313   1      
 314   1              if(y<64)
 315   1              {
 316   2                      p_CSA=1;
 317   2                      p_CSB=0;
 318   2              }
 319   1              else
 320   1              {
 321   2                      p_CSA=0;
 322   2                      p_CSB=1;
 323   2              }
 324   1              DATA=data_t;
 325   1              
 326   1              p_E=1;
 327   1              p_E=0;
 328   1      }
 329          
 330          /**********************************************
 331          写数据,给所有单元都写入0
 332          ***********************************************/
 333          void lcd_writedata(unsigned char x,unsigned char y)
 334          {
 335   1              lcd_busy();
 336   1              lcd_setxy(x,y);         //set x,y address
 337   1      
 338   1              p_RS=1;                         //write data
 339   1              p_RW=0;                         //write
 340   1      
 341   1              if(y<64)
 342   1              {
 343   2                      p_CSA=1;
 344   2                      p_CSB=0;
 345   2              }
 346   1              else
 347   1              {
 348   2                      p_CSA=0;
 349   2                      p_CSB=1;
 350   2              }
 351   1              DATA=0x00;
 352   1      
 353   1              p_E=1;
 354   1              p_E=0;
 355   1      }
 356          
 357          
 358          
 359          /**********************************************
 360          清屏
 361          ***********************************************/
 362          void lcd_clear(void)
 363          {
 364   1              unsigned char i,j;
C51 COMPILER V8.08   TEXT1                                                                 10/31/2008 13:44:40 PAGE 7   

 365   1              for(i=0;i<8;i++)
 366   1                      for(j=0;j<128;j++)
 367   1                              lcd_writedata(i,j);
 368   1      }
 369          
 370          
 371          
 372          
 373          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    689    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       6
   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 + -