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

📄 testpromain.lst

📁 00ic-51开发板的预先烧写的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 229   2                      TI=0;
 230   2              }
 231   1              EA=1;
 232   1      
 233   1      }
 234          
 235          char key1_flag=0;
 236          char key2_flag=0;
 237          void ext_int0() interrupt 0    //外部中断0服务程序
 238          {  
 239   1              EA = 0;
C51 COMPILER V7.20   TESTPROMAIN                                                           11/17/2005 10:16:36 PAGE 5   

 240   1              Delay(4000);
 241   1              key1_flag=1;
 242   1              EA = 1;
 243   1      }
 244          void ext_int1() interrupt 2    //外部中断1服务程序
 245          {  
 246   1              EA = 0;
 247   1              Delay(4000);
 248   1              key2_flag=1;
 249   1              EA = 1;
 250   1      }
 251          
 252          //中断源编号为4,即串口中断
 253          void getch(void) interrupt 4 
 254          {
 255   1                      
 256   1              uchar m;
 257   1              EA=0;
 258   1          //清除中断标志,硬件置位,软件清零
 259   1              RI=0; 
 260   1              //接受串口缓冲区数据             
 261   1              m=SBUF;
 262   1              if(m==0x80)               //向开发板串口发送的数据
 263   1              {
 264   2                      
 265   2                      test_serial();
 266   2      
 267   2              }
 268   1          //通过串口缓冲区向外发送数据
 269   1              //SBUF=m;    
 270   1              //判断是否发送结束:TI==1为结束
 271   1              //while(TI==0); 
 272   1              //发送结束标志清零
 273   1              //TI=0; 
 274   1              EA=1;
 275   1                           
 276   1      }
 277          /*
 278          code char num_data[]={"0123456789"};
 279          void send_serial_data(char dat)
 280          {
 281                  SBUF=dat;
 282                  while(TI==0);
 283                  TI=0;   
 284          }
 285          */
 286          
 287          /*
 288          void longdelay(uchar s)  //长延时
 289          {
 290                   while(s--)
 291                   {
 292                          _delay(60) ;
 293                   }
 294          }
 295          */
 296          void _delay(uchar ms)
 297          {       // 延时子程序
 298   1               uchar i ;
 299   1               while(ms--)
 300   1               {
 301   2                      for(i = 0 ; i<250;i++) ;
C51 COMPILER V7.20   TESTPROMAIN                                                           11/17/2005 10:16:36 PAGE 6   

 302   2               }
 303   1      }
 304          /*
 305          BOOL lcd_bz()
 306          {       // 测试LCD忙碌状态
 307                   BOOL result ;
 308                   rs = 0 ;
 309                   rw = 1 ;
 310                   ep = 1 ;
 311                   result = (BOOL)(P0 & 0x80) ;
 312                   ep = 0 ;
 313                   return result ; 
 314          }
 315          */
 316          
 317          void lcd_wcmd(uchar cmd)
 318          {       // 写入指令数据到LCD
 319   1              //while(lcd_bz()) ;
 320   1              _delay(1);
 321   1              rs = 0 ;
 322   1              rw = 0 ;
 323   1              ep = 0 ;
 324   1              P0 = cmd ;
 325   1              ep = 1 ;
 326   1              ep = 0 ;  
 327   1      }
 328          
 329          void lcd_pos(uchar pos)
 330          {       //设定显示位置
 331   1              lcd_wcmd(pos | 0x80) ;
 332   1      }
 333          
 334          void lcd_wdat(uchar dat) 
 335          {       //写入字符显示数据到LCD
 336   1              //while(lcd_bz()) ;
 337   1              _delay(1);
 338   1              rs = 1 ;
 339   1              rw = 0 ;
 340   1              ep = 0 ;
 341   1              P0 = dat ;
 342   1              ep = 1 ;
 343   1              ep = 0 ; 
 344   1      }
 345          
 346          void lcd_init()
 347          {       //LCD初始化设定
 348   1               lcd_wcmd(0x38) ;   //function set
 349   1               _delay(1) ;
 350   1               lcd_wcmd(0x38) ;   //function set
 351   1               _delay(1) ;
 352   1               lcd_wcmd(0x08) ;   //display on/off
 353   1               _delay(1) ;
 354   1               lcd_wcmd(0x01) ;   //清除LCD的显示内容
 355   1               _delay(1) ;
 356   1               lcd_wcmd(0x06) ;   //entry mode set
 357   1               _delay(1) ;
 358   1               lcd_wcmd(0x0c) ;   //entry mode set
 359   1               _delay(1) ;
 360   1      }
 361          
 362          
 363          void display(uchar pos, uchar *q)
C51 COMPILER V7.20   TESTPROMAIN                                                           11/17/2005 10:16:36 PAGE 7   

 364          { 
 365   1               uchar i ;
 366   1               //lcd_wcmd(0x01) ; //clear 
 367   1               _delay(10) ;
 368   1               lcd_pos(pos) ;
 369   1               for(i=0 ;i<16;i++)
 370   1               {
 371   2                        lcd_wdat(*q) ;
 372   2                        q++ ;
 373   2                        _delay(60) ;
 374   2               } 
 375   1      }
 376          
 377          void test_lcd(void)
 378          {
 379   1              CE573=0;  //1
 380   1              display(0x00,dis1) ;
 381   1              display(0x40,dis2) ;
 382   1              display(0x14,dis1) ;
 383   1              display(0x54,dis2) ;
 384   1              P0=0xFF;
 385   1              CE573=1;         //0
 386   1      }
 387          
 388          
 389          main()
 390          {
 391   1      
 392   1              initmpu();
 393   1              lcd_init(); 
 394   1              Delay(10000);   
 395   1              
 396   1      
 397   1                
 398   1                      test_led();
 399   1                      test_digseg();  
 400   1                      test_beep();
 401   1                      test_lcd();
 402   1              
 403   1                      test_serial();
 404   1      
 405   1                      while(1)
 406   1                      {
 407   2                              if(key1_flag)
 408   2                              {
 409   3                                      key1_flag=0;
 410   3                                      P0=digseg[1];
 411   3                                      P1=0xFE;
 412   3      
 413   3      
 414   3              
 415   3                              }
 416   2                              else if(key2_flag)
 417   2                              {
 418   3                                      key2_flag=0;
 419   3                                      P0=digseg[2];
 420   3                                      P1=0xFC;
 421   3                                              
 422   3                              }
 423   2                              else if(check_K3())
 424   2                              {
 425   3                                      P0=digseg[3];
C51 COMPILER V7.20   TESTPROMAIN                                                           11/17/2005 10:16:36 PAGE 8   

 426   3                                      P1=0xF8;
 427   3              
 428   3                              }
 429   2                              else if(check_K4())
 430   2                              {
 431   3                                      P0=digseg[4];
 432   3                                      P1=0xF0;
 433   3                              }
 434   2                              else if(check_K5())
 435   2                              {
 436   3                                      P0=digseg[5];
 437   3                                      P1=0xE0;        
 438   3                              }
 439   2                              SEL_D1;
 440   2                              _delay(600);
 441   2                              REL_D1;
 442   2                              _delay(600);
 443   2                              
 444   2                      }
 445   1      
 446   1              
 447   1      
 448   1              
 449   1                                        
 450   1      }


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