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

📄 text1.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
📖 第 1 页 / 共 3 页
字号:
 337          {
 338   1      //lcd_busy();
 339   1      di_12864 =1;
 340   1      rw_12864 =0;
 341   1      lcd_bus_12864 =dispdata;
 342   1      enable_12864 =1;
 343   1      _nop_();
 344   1      enable_12864 =0;
 345   1      }
 346          
 347          /*****位置 X 表示行, Y表示列 , Z 表示要亮的点 *********/
 348          void write(x,y,uchar c)
 349          {
 350   1      
 351   1       z=c;
 352   1       cs1_12864=0;
 353   1       cs2_12864=1;   //选择左屏幕
 354   1       if (y>64)
 355   1       {
 356   2       y=y-64 ;
 357   2       cs1_12864=1;
 358   2       cs2_12864=0;   //选择右屏幕
 359   2       }
 360   1         write_command_12864(row_12864+x);      //8大行位置 X 1到 8
 361   1         write_command_12864(col_12864+y);      //128 列位置 y 1 到 128
 362   1         write_data_12864(z);
 363   1       
 364   1      }
C51 COMPILER V7.20   TEXT1                                                                 08/22/2007 16:52:57 PAGE 7   

 365          
 366          uchar getkey()
 367          
 368          {
 369   1          unsigned char keycode=0xff,temp,i;
 370   1          P2=0x0f;
 371   1          temp=P2&0x0f;
 372   1          if(temp!=0x0f)        //判是否有键按下
 373   1          {
 374   2       //       beep=0;
 375   2              P2=0xef;          //自第0行开始扫描输出,自列读入键值
 376   2              for(i=0;i<4;i++)
 377   2              {
 378   3                  temp=P1&0x0f;
 379   3                  if(temp==0x07)     //判断第0列是否有键按下
 380   3                  {    
 381   4                      keycode=i*4+0;
 382   4                      break;
 383   4                  }
 384   3                  else if(temp==0x0b)//判断第1列是否有键按下
 385   3                  {
 386   4                      keycode=i*4+1;
 387   4                      break;                                                                                    
 388   4                  }
 389   3                  else if(temp==0x0d)//判断第2列是否有键按下
 390   3                  {
 391   4                      keycode=i*4+2;
 392   4                      break;
 393   4                  }
 394   3                  else if(temp==0x0e)//判断第3列是否有键按下
 395   3                  {
 396   4                      keycode=i*4+3;
 397   4                      break;
 398   4                  }
 399   3                  P2=(P2<<1)|0x1;
 400   3              }
 401   2      
 402   2               while((P1&0x0f)!=0x0f)   //等待释放
 403   2               {
 404   3                   P2=0x0f;
 405   3               }
 406   2      //      beep=1;                                             
 407   2              
 408   2           }
 409   1           return keycode;
 410   1      }
 411          
 412          
 413          
 414          
 415          void rewrite(uchar c)
 416          {
 417   1      
 418   1      
 419   1        write(x,y,c);
 420   1        y++;
 421   1        if (y==129)  {y=1;x++;}
 422   1        if (x==9)    { x=1;y=1;}
 423   1      
 424   1      }
 425          
 426          
C51 COMPILER V7.20   TEXT1                                                                 08/22/2007 16:52:57 PAGE 8   

 427          main()
 428          {
 429   1         uchar k=0;
 430   1         uint i,j; 
 431   1            init_lcd_12864();
 432   1        clear_screen_12864();
 433   1        while(1)
 434   1      
 435   1        {
 436   2      
 437   2          x=0;
 438   2        y=0;
 439   2        
 440   2      
 441   2      
 442   2      
 443   2        /* for(i=0;i<128*8;i++)
 444   2         { //k=i/12;
 445   2      
 446   2         write_command_12864(row_12864+x+1);    //8大行位置 X 1到 8
 447   2         write_command_12864(col_12864+y);      //128 列位置 y 1 到 128 
 448   2         write_data_12864 (0xff);
 449   2      
 450   2          y++;
 451   2      
 452   2      
 453   2              if(y==64) 
 454   2              {   
 455   2                   if((cs1_12864==0)&&(cs2_12864==1))
 456   2                       {
 457   2                          cs1_12864=1;
 458   2                              cs2_12864=0;
 459   2                       }
 460   2                       else
 461   2                       {
 462   2                          cs1_12864=0;
 463   2                              cs2_12864=1;
 464   2                              
 465   2                       }
 466   2                   y=0;  
 467   2          }
 468   2         
 469   2      
 470   2      
 471   2      
 472   2               
 473   2        }     */
 474   2         
 475   2      
 476   2       for (i=0;i<128*8;i++)
 477   2              {
 478   3              rewrite(pan[i]);
 479   3      
 480   3              } 
 481   2         for(j=0;j<30;j++)
 482   2              delay_12864 ();
 483   2              clear_screen_12864();
 484   2       for (i=0;i<128*8;i++)
 485   2              {
 486   3              rewrite(pan[i+1+i/64]);
 487   3         
 488   3      
C51 COMPILER V7.20   TEXT1                                                                 08/22/2007 16:52:57 PAGE 9   

 489   3              } 
 490   2      
 491   2      }
 492   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    485    ----
   CONSTANT SIZE    =   3102    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       5
   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 + -