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

📄 lesson10.lst

📁 基于8051的生产线记件系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
 356   4                                              beep = 0;//提示键盘按下
 357   4                                              delay(50,100);
 358   4                                              beep = 1;
 359   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 360   4                                              for(j = 1;j < 7;j++)
 361   4                                              {
 362   5                                                      uc_device_sub_addr = 0x00 + ((j) << 3);//EEPROM 首地址
 363   5                                                      IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);//以页方式读取//读出的数据保存在数组g
             -_uc_data_receive中
 364   5                                                      temp += g_uc_data_receive[2];
 365   5                                              }
 366   4                                              g_uc_hr_cnt = 0xFF;//不显示
 367   4                                              g_uc_min_cnt = temp >> 8;//显示数据的高8位
 368   4                                              g_uc_sec_cnt = temp & 0x00FF;//显示数据的低8位
 369   4                                              if((g_uc_sec_cnt&0x0F) > 9)//总和的结果应该以10进制的形式显示给用户
 370   4                                              {
 371   5                                                      temp = (g_uc_sec_cnt&0xF0) + 1;
 372   5                                                      g_uc_sec_cnt = (temp << 4) + ((g_uc_sec_cnt&0x0F) - 10);
 373   5                                              }
 374   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 375   4                                              break;
 376   4                                      case 0xA4://模拟断电保存//断电时保存地址:0x40
 377   4                                              ET0 = 0;//禁止T0
 378   4                                              ET1 = 0;
 379   4                                              TR0 = 0;//停止T0
 380   4                                              TR1 = 0;
 381   4                                              EX0 = 0;//禁止外部中断0
 382   4      
 383   4                                              beep = 0;//提示键盘按下
 384   4                                              delay(50,100);
 385   4                                              beep = 1;
 386   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 387   4                                              uc_device_sub_addr = 0x40;//断电保存数据的EEPROM地址
 388   4                                              g_uc_data_send[0] = g_st_current_time.min;//断电时间
 389   4                                              g_uc_data_send[1] = g_st_current_time.sec;
 390   4                                              g_uc_data_send[2] = g_uc_log_number;//断电时刻的记录
 391   4                                              ISendStr(uc_device_addr,uc_device_sub_addr,g_uc_data_send,3);//以页方式读取//读出的数据保存在数组g_uc
             -_data_receive中
 392   4                                              break;
 393   4                                      case 0xA5:
 394   4                                              ET0 = 0;//禁止T0
 395   4                                              ET1 = 0;
 396   4                                              TR0 = 0;//停止T0
 397   4                                              TR1 = 0;
 398   4                                              EX0 = 0;//禁止外部中断0
 399   4                                              time1_serial_init();
 400   4                                              for(j = 0;j < 7;j++)
 401   4                                              {
 402   5                                                      uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wr
             -ite.
 403   5                                                      uc_device_sub_addr = 0x00 + ((g_uc_recv_serial_cnt) << 3);
 404   5                                                      IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);
 405   5                                                      memcpy(uc_temp_receive[j],g_uc_data_receive,3);
 406   5                                              }
 407   4                                              TR1 = 1;//start the timer1, not enable T1 interrupt
 408   4                                              ES = 1;//enable serial interrupt
 409   4                                              g_uc_sec_cnt = 0xAA;
 410   4                                              g_uc_min_cnt = 0xAA;
C51 COMPILER V7.50   LESSON10                                                              06/19/2006 21:28:10 PAGE 8   

 411   4                                              g_uc_hr_cnt = 0xA2;
 412   4                                              display_led(g_uc_hr_cnt,g_uc_min_cnt,g_uc_sec_cnt);//display "1",ready for receive the serial data
 413   4                                              while(g_uc_recv_serial_cnt < 7)//waiting for 11 times serial interrupt
 414   4                                              {
 415   5                                                      _nop_();
 416   5                                              }
 417   4                                              g_uc_recv_serial_cnt = 0;
 418   4                                              ES = 0;//mask the serial interrupt
 419   4                                              EA = 0;//mask all interrupt
 420   4                                              g_uc_sec_cnt = 0xA3;
 421   4                                              g_uc_min_cnt = 0xAA;
 422   4                                              g_uc_hr_cnt = 0xAA;
 423   4                                              display_led(g_uc_hr_cnt,g_uc_min_cnt,g_uc_sec_cnt);//display "1",ready for receive the serial data
 424   4      
 425   4                                              beep = 0;//提示键盘按下
 426   4                                              delay(50,100);
 427   4                                              beep = 1;
 428   4                                              /*for(j = 1;j < 7;j++)//send data to IBM
 429   4                                              {
 430   4                                                      //uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 
             -write.
 431   4                                                      //uc_device_sub_addr = 0x00 + ((j) << 3);
 432   4                                                      //IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);
 433   4                                                      //SBUF = g_uc_data_receive[0];
 434   4                                                      SBUF = 0x30;
 435   4                                                      while(TI == 0)
 436   4                                                      {
 437   4                                                              delay(3,255);
 438   4                                                      }
 439   4                                                      TI = 0;
 440   4                                                      SBUF = 0x31;
 441   4                                                      while(TI == 0)
 442   4                                                      {
 443   4                                                              delay(3,255);
 444   4                                                      }
 445   4                                                      TI = 0;
 446   4                                                      SBUF = 0x32;
 447   4                                                      while(TI == 0)
 448   4                                                      {
 449   4                                                              delay(3,255);
 450   4                                                      }
 451   4                                                      TI = 0;
 452   4                                                      beep = 0;
 453   4                                                      delay(50,100);
 454   4                                                      beep = 1;
 455   4                                              }*/
 456   4                                              /*SBUF = 0x21;//发送回车,提示PC数据发送完毕
 457   4                                              while(TI == 0)
 458   4                                              {
 459   4                                                      delay(3,255);
 460   4                                              }
 461   4                                              TI = 0;*/
 462   4      
 463   4                                              beep = 0;//提示键盘按下
 464   4                                              delay(50,100);
 465   4                                              beep = 1;
 466   4                                              break;
 467   4                                      case 0xB0://显示当前记录
 468   4                                              TR0 = 0;//暂停T0
 469   4                                              beep = 0;//提示键盘按下
 470   4                                              delay(50,100);
 471   4                                              beep = 1;
C51 COMPILER V7.50   LESSON10                                                              06/19/2006 21:28:10 PAGE 9   

 472   4                                              g_uc_hr_cnt = 0xFF;
 473   4                                              g_uc_min_cnt = 0xFF;
 474   4                                              g_uc_sec_cnt = g_uc_log_number;
 475   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 476   4      
 477   4                                              delay(255,255);
 478   4                                              delay(255,255);
 479   4                                              delay(255,255);
 480   4                                              g_st_current_time.sec += 2;//给时钟进行时间补偿2s               
 481   4                                              TR0 = 1;//重新启动T0
 482   4                                              break;
 483   4                                      case 0xB1://第1段存放密码,从第2段开始存放采集的记录值
 484   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 485   4                                              uc_device_sub_addr = 0x00 + ((1) << 3);//EEPROM 首地址
 486   4                                              IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);//以页方式读取//读出的数据保存在数组g_
             -uc_data_receive中
 487   4                                              g_uc_hr_cnt = g_uc_data_receive[0];
 488   4                                              g_uc_min_cnt = g_uc_data_receive[1];
 489   4                                              g_uc_sec_cnt = g_uc_data_receive[2];
 490   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 491   4                                              beep = 0;//连续发声
 492   4                                              delay(50,100);
 493   4                                              beep = 1;
 494   4                                              break;
 495   4                                      case 0xB2:
 496   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 497   4                                              uc_device_sub_addr = 0x00 + ((2) << 3);//EEPROM 首地址
 498   4                                              IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);//以页方式读取//读出的数据保存在数组g_
             -uc_data_receive中
 499   4                                              g_uc_hr_cnt = g_uc_data_receive[0];
 500   4                                              g_uc_min_cnt = g_uc_data_receive[1];
 501   4                                              g_uc_sec_cnt = g_uc_data_receive[2];
 502   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 503   4                                              beep = 0;//连续发声
 504   4                                              delay(50,100);
 505   4                                              beep = 1;
 506   4                                              break;
 507   4                                      case 0xB3:
 508   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 509   4                                              uc_device_sub_addr = 0x00 + ((3) << 3);//EEPROM 首地址
 510   4                                              IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);//以页方式读取//读出的数据保存在数组g_
             -uc_data_receive中
 511   4                                              g_uc_hr_cnt = g_uc_data_receive[0];
 512   4                                              g_uc_min_cnt = g_uc_data_receive[1];
 513   4                                              g_uc_sec_cnt = g_uc_data_receive[2];
 514   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 515   4                                              beep = 0;//连续发声
 516   4                                              delay(50,100);
 517   4                                              beep = 1;
 518   4                                              break;
 519   4                                      case 0xB4:
 520   4                                              uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wri
             -te.
 521   4                                              uc_device_sub_addr = 0x00 + ((4) << 3);//EEPROM 首地址
 522   4                                              IRcvStr(uc_device_addr,uc_device_sub_addr,g_uc_data_receive,3);//以页方式读取//读出的数据保存在数组g_
             -uc_data_receive中
 523   4                                              g_uc_hr_cnt = g_uc_data_receive[0];
 524   4                                              g_uc_min_cnt = g_uc_data_receive[1];
 525   4                                              g_uc_sec_cnt = g_uc_data_receive[2];
C51 COMPILER V7.50   LESSON10                                                              06/19/2006 21:28:10 PAGE 10  

 526   4                                              display_led(g_uc_hr_cnt ,g_uc_min_cnt ,g_uc_sec_cnt);
 527   4                                              beep = 0;//连续发声
 528   4                                              delay(50,100);
 529   4                                              beep = 1;

⌨️ 快捷键说明

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