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

📄 text2.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
📖 第 1 页 / 共 2 页
字号:
 216   1       while(lcd_busy());           //等待空闲
 217   1       lcd_bus=lcddata;                 //在下沿的时候写数据
 218   1       rs=1;
 219   1       rw=0;
 220   1       _nop_();
 221   1       e=1;
 222   1       _nop_();
 223   1       _nop_();
 224   1       e=0;
 225   1       //lcd_bus=0xff;
 226   1      }
 227          
 228          
 229          /************液晶的清屏************/
 230          void lcd_clear(void)
 231          {
 232   1        lcd_wrcmd(0x01);         //液晶清屏控制字     并延时>40us
 233   1        delay(100);
 234   1      }
 235          
 236          /***********1602液晶的初始化***************/
 237          void lcd_init(void)
 238          {
 239   1        lcd_wrcmd(0x38);              //功能设置-----8位数据接口,两行显示,5*7点阵字符显示
 240   1        delay(100);
C51 COMPILER V7.20   TEXT2                                                                 07/20/2007 10:39:41 PAGE 5   

 241   1        lcd_wrcmd(0x0c);             //显示开关控制----显示开关开,光标开关关,闪烁开关关
 242   1        delay(100);
 243   1        lcd_wrcmd(0x06);             //输入方式设置,AC自增1, S=0;
 244   1        delay(100);              
 245   1        lcd_wrcmd(0x01);         //清屏
 246   1        delay(100);
 247   1      }
 248          
 249          
 250          /**********4*4矩阵键盘****************/
 251          /************
 252           矩阵键盘
 253          D---------P1.0
 254          C---------P1.1
 255          B---------P1.2
 256          A---------P1.3
 257          1---------P1.4
 258          2---------P1.5
 259          3---------P1.6
 260          4---------P1.7
 261          按键值的分布
 262             D   C  B  A
 263          1〔15 14 13 12〕
 264          2〔11 10  9  8〕
 265          3〔 7  6  5  4〕
 266          4〔 3  2  1  0〕
 267          利用已有的那个按键程序  
 268          *************/
 269          /*
 270          uchar getkey_ii()
 271          {
 272              unsigned char keycode=0xff,temp,i;
 273              P1=0x0f;
 274                  temp=P1&0x0f; 
 275                  if(temp!=0x0f)              //有键按下
 276                  {
 277                     // beep=0;
 278                      P1=0x7f;
 279                      for(i=0;i<4;i++)
 280                          {
 281                                  temp=P1&0x0f;
 282                      if(temp==0x07)
 283                          {    
 284                                      keycode=i*4;
 285                                          break;
 286                                  }
 287                          else if(temp==0x0b)
 288                                  {
 289                              keycode=i*4+1;
 290                                          break;                                                                                                                    
 291                                  }
 292                      else if(temp==0x0d)
 293                                  {
 294                              keycode=i*4+2;
 295                                          break;
 296                                  }
 297                      else if(temp==0x0e)
 298                                  {
 299                              keycode=i*4+3;
 300                                          break;
 301                                  }
 302                                  P1=(P1>>1)|0x80;
C51 COMPILER V7.20   TEXT2                                                                 07/20/2007 10:39:41 PAGE 6   

 303                          }
 304          
 305                       while((P1&0x0f)!=0x0f)   {P1=0x0f; }     //等待释放
 306                        //         beep=1;                                                                             
 307                      
 308                   }
 309                   return keycode;
 310          }
 311          
 312           */
 313          
 314          /************单个读键****************/
 315          
 316          //没有按键时返回键值0;
 317          //
 318          //P2.3  P2.2  P2.1  P2.0
 319          // 1     2        3              4
 320          
 321           /*
 322          unsigned char getkey()             
 323          {
 324           unsigned char k,tem,keytem;
 325           keytem=0;
 326           tem=P2&0x0f;
 327           if(tem!=0x0f)
 328                  {
 329                      for(k=0;k<10;k++)  delay(250);                                //加延时防抖
 330                          tem=P2&0x0f;
 331                          if(tem!=0x0f)
 332                           {     if(tem==0x07) keytem=1;          //      按下去的键对应的位是0;
 333                            else if(tem==0x0b) keytem=2;
 334                            else if(tem==0x0d) keytem=3;
 335                        else if(tem==0x0e) keytem=4;
 336                       }
 337                   }
 338                  while(tem!=0x0f) tem=P2 & 0x0f;  //等待按键释放
 339                  return(keytem);
 340          }
 341          
 342           */
 343          
 344          
 345          /************无线键盘4*4****************/
 346          //无线键盘的四个译码输出口从低到高依次对应于P1口的低四位
 347          //下面是无线键盘的键值分布
 348          // 8 4 2 1 码输出;
 349          // 返回的直接就是键值 (很好用)
 350          
 351          /*
 352          uchar getkey_juzhen()
 353          {
 354                  unsigned char keytem=0,k,tem;
 355                  tem=P1&0x0f;
 356              for(k=0;k<10;k++)   delay(100);              //加延时防抖
 357                  tem=P1&0x0f;
 358                  keytem=tem;
 359                  while((tem=P1&0x0f)!=0);                         //等待按键释放
 360                  return(keytem);
 361          }
 362          
 363          */
 364          
C51 COMPILER V7.20   TEXT2                                                                 07/20/2007 10:39:41 PAGE 7   

 365          
 366          /*
 367          main()
 368          {                                        
 369             uchar result;
 370             result=adc_tlc0838(0);
 371             while(1);
 372          }
 373          */
 374          
 375          
 376          void main()
 377          {       
 378   1              unsigned int  result,result1;
 379   1          unsigned char i;
 380   1              unsigned int t;
 381   1              unsigned char str0[]="System of P.H.Y";
 382   1          unsigned char str1[]="    2005/7/28";
 383   1              unsigned char str2[]="      20:27";
 384   1              unsigned char str3[]="v";
 385   1              unsigned char str4[]=".";
 386   1              unsigned char kk=0x80; 
 387   1      //      unsigned char key;
 388   1              unsigned int count1=10;
 389   1              unsigned int count2=297;
 390   1              delay(2);
 391   1      
 392   1              lcd_bus=0xff;
 393   1              lcd_init();
 394   1              lcd_wrcmd(kk+0x00);
 395   1              for(i=0;i<15;i++)   lcd_wrdata(str0[i]);
 396   1          for(t=0;t<1000;t++) delay(250);
 397   1              lcd_clear();
 398   1          while(1)
 399   1              {                                                                                   
 400   2                       result=adc_tlc0838(0);
 401   2                      //  key=getkey_ii();
 402   2                      //  hexstoascii2(count1);
 403   2              //   hexstoascii3(count2);
 404   2                           result1=2*result;
 405   2                       hexstoascii3(result1);
 406   2                      //  if(key==0)
 407   2                       // lcd_clear();
 408   2                          lcd_wrcmd(kk+0x00);
 409   2                          for(i=0;i<13;i++)     lcd_wrdata(str1[i]);
 410   2                              lcd_wrcmd(kk+0x46);       lcd_wrdata(d[0]);
 411   2                                      lcd_wrcmd(kk+0x48);
 412   2                                      for(i=1;i<3;i++)      lcd_wrdata(d[i]);
 413   2                                      lcd_wrcmd(kk+0x4a);   lcd_wrdata(str3[0]);
 414   2                                      lcd_wrcmd(kk+0x47);   lcd_wrdata(str4[0]);
 415   2                      //       }
 416   2              }
 417   1      
 418   1      }
 419          
 420          
 421          
 422          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    725    ----
C51 COMPILER V7.20   TEXT2                                                                 07/20/2007 10:39:41 PAGE 8   

   CONSTANT SIZE    =    170    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6      50
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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