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

📄 board_type.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BOARD_TYPE
OBJECT MODULE PLACED IN board_type.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE board_type.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS DEBUG OBJECTEXTEND

line level    source

   1          #include <REG54.H>
   2          #include "rc7820.h"
   3          #include "rc7860.h"
   4          #include "f2rc7820.h"
   5          #include "f2rc7860.h"
   6          #include "cmd_para_save.h"
   7          #include "rc7860.h"
   8          #include "ep1k50.h"
   9          
  10          extern void init_7820(void);
  11          extern void init_7860(void);
  12          extern void init_se0111(unsigned char slot);
  13          extern void init_se0121(unsigned char slot);
  14          extern unsigned char se0111_reg_rd(unsigned char Haddr,unsigned char Laddr,unsigned char slot);
  15          extern void se0111_reg_wr(unsigned char Haddr,unsigned char Laddr,unsigned char value,unsigned char slot);
  16          extern unsigned char se0121_reg_rd(unsigned char Laddr,unsigned char slot);
  17          extern void se0121_reg_wr(unsigned char Laddr,unsigned char value,unsigned char slot);
  18          extern void init_se0121(unsigned char slot);
  19          extern void f2_rc7820(void);
  20          extern unsigned char f2rc7820_rd(unsigned char f2addr) large reentrant;
  21          extern void f2rc7820_wr(unsigned char f2addr,unsigned char value) large reentrant;
  22          extern void f2_rc7860(void);
  23          extern unsigned char f2rc7860_rd(unsigned int f2addr) large reentrant;
  24          extern void f2rc7860_wr(unsigned int f2addr,unsigned char value) large reentrant;
  25          extern void reset_f2rc7860(void);
  26          extern void SetResRdyTbl(unsigned char prio) large reentrant;
  27          extern unsigned char GetResRdyTbl(unsigned char prio) large reentrant;
  28          extern unsigned char xdata tx_buf[];
  29          extern unsigned char xdata tx_buf_pointer;
  30          extern bit tx_done;
  31          extern unsigned long int xdata commandid;
  32          unsigned char xdata start_flg[4] = {1,1,1,1};                                   //查询单盘是否初始化标志位
  33          unsigned char xdata start_flg_EOS[4] = {1,1,1,1};
  34          unsigned char xdata board_flg[4] = {0,0,0,0};                                   //是否调用单盘初始化函数标志位
  35          unsigned char xdata hold_board[4] = {0,0,0,0};                                  //单盘保持标志,防止单盘抖动用
  36          
  37          extern unsigned char xdata lparray2m[3][21];
  38          extern unsigned char xdata lparray_EOS[3];
  39          extern unsigned char xdata EB_2M[3][21];
  40          extern unsigned long int xdata REI_2M[3][21];
  41          extern unsigned long int xdata REI_2M_15min[3][21];
  42          extern unsigned int xdata PJC_2M[3][21];
  43          extern unsigned int xdata PJC_2M_15min[3][21];
  44          extern unsigned int xdata NJC_2M[3][21];
  45          extern unsigned int xdata NJC_2M_15min[3][21];
  46          extern unsigned char xdata lparrayf[4];
  47          extern unsigned int xdata B1[4];
  48          extern unsigned int xdata B2[4];
  49          extern unsigned long int xdata REI_MS[4];
  50          extern unsigned long int xdata REI_MS_15min[4];
  51          extern unsigned int xdata B3[4];
  52          extern unsigned long int xdata REI_HP[4];
  53          extern unsigned long int xdata REI_HP_15min[4];
  54          extern unsigned int xdata OFS[4];
  55          extern unsigned int xdata OFS_15min[4];
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 2   

  56          extern unsigned int xdata PJC_HP[4];
  57          extern unsigned int xdata PJC_HP_15min[4];
  58          extern unsigned int xdata NJC_HP[4];
  59          extern unsigned int xdata NJC_HP_15min[4];
  60          extern unsigned char xdata timeslot_2M[3][21];
  61          
  62          unsigned char xdata board_type[4][2] = {{4,4},{1,0},{2,0},{3,0}};       //定义插盘类型数组,第一位表示槽号,第二
             -位表示盘号
  63          
  64          unsigned char get_board_type(struct cmd_para_save *get_board){
  65   1      //C30读取槽位中的插盘类型
  66   1      unsigned char xdata boardid;
  67   1      unsigned char xdata return_value;
  68   1      
  69   1              boardid = get_board -> board_num;
  70   1      
  71   1              switch (boardid){
  72   2              case 1: P1 = 0x20;
  73   2                              return_value = XBYTE[0xA400];
  74   2                              P1 = 0xFF;
  75   2                              if (return_value == 0x51){
  76   3                                      return_value = 2;                               //查到插盘为AMB(2M盘)
  77   3                              }
  78   2                              else if (return_value == 0x57){
  79   3                                      return_value = 3;
  80   3                              }
  81   2                              else return_value = 0;
  82   2                              break;
  83   2              case 2: P1 = 0x60;
  84   2                              return_value = XBYTE[0xA400];
  85   2                              P1 = 0xFF;
  86   2                              if (return_value == 0x51){
  87   3                                      return_value = 2;                               //查到插盘为AMB(2M盘)
  88   3                              }
  89   2                              else if (return_value == 0x57){
  90   3                                      return_value = 3;
  91   3                              }
  92   2                              else return_value = 0;
  93   2                              break;
  94   2              case 3: P1 = 0x40;
  95   2                              return_value = XBYTE[0xA400];
  96   2                              P1 = 0xFF;
  97   2                              if (return_value == 0x51){
  98   3                                      return_value = 2;                               //查到插盘为AMB(2M盘)
  99   3                              }
 100   2                              else if (return_value == 0x57){
 101   3                                      return_value = 3;
 102   3                              }
 103   2                              else return_value = 0;
 104   2                              break;
 105   2              case 4: P1 = 0x10;
 106   2                              return_value = XBYTE[0xB000];
 107   2                              P1 = 0xFF;
 108   2                              if (return_value == 0x55){
 109   3                                      return_value = 4;                               //查到插盘为OTB-1
 110   3                              }
 111   2                              else return_value = 0;
 112   2                              break;
 113   2              default: return_value = 6;
 114   2                               break;
 115   2              }
 116   1              if (!GetResRdyTbl(13))
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 3   

 117   1                      SetResRdyTbl(13);
 118   1              return (return_value);
 119   1      }
 120          
 121          
 122          void report_board_type(unsigned char value){
 123   1      //C30回应函数
 124   1              tx_buf[0] = '$';
 125   1              tx_buf[1] = '2';
 126   1              tx_buf[2] = '1';
 127   1              tx_buf[3] = 0x43;
 128   1              tx_buf[4] = 0x33;
 129   1              tx_buf[5] = 0x30;
 130   1              tx_buf[6] = '0';
 131   1              tx_buf[7] = '0';
 132   1              tx_buf[8] = '0';
 133   1              tx_buf[9] = '2';
 134   1              if (value == 6){
 135   2                      tx_buf[10] = '2';
 136   2              }
 137   1              else tx_buf[10] = '0';
 138   1              tx_buf[11] = value + 0x30;
 139   1              tx_buf[12] = '*';
 140   1              tx_buf_pointer = 0;     
 141   1              while(tx_buf[tx_buf_pointer] != '*'){
 142   2                      SBUF = tx_buf[tx_buf_pointer];
 143   2                      while(tx_done == 0);
 144   2                      tx_done = 0;
 145   2                      tx_buf_pointer++;
 146   2              }
 147   1              SBUF = tx_buf[tx_buf_pointer];          //发送最后一个字符'*'
 148   1              while(tx_done == 0);
 149   1              tx_done = 0;
 150   1      }
 151          
 152          
 153          unsigned char get_board_state(struct cmd_para_save *get_board){
 154   1      //C31读取槽位中的插盘状态
 155   1      unsigned char xdata boardid;
 156   1      unsigned char xdata return_value;
 157   1      
 158   1              boardid = get_board -> board_num;
 159   1      
 160   1              switch (boardid){
 161   2              case 1: P1 = 0x20;
 162   2                              return_value = XBYTE[0xA400];
 163   2                              P1 = 0xFF;
 164   2                              if (return_value == 0x51){
 165   3                                      return_value = 1;                               //查到插盘为AMB(2M盘)
 166   3                              }
 167   2                              else if (return_value == 0x57){
 168   3                                      return_value = 1;                               //查到插盘为EOS
 169   3                              }
 170   2                              else return_value = 2;
 171   2                              break;
 172   2              case 2: P1 = 0x60;
 173   2                              return_value = XBYTE[0xA400];
 174   2                              P1 = 0xFF;
 175   2                              if (return_value == 0x51){
 176   3                                      return_value = 1;                               //查到插盘为AMB(2M盘)
 177   3                              }
 178   2                              else if (return_value == 0x57){
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 4   

 179   3                                      return_value = 1;                               //查到插盘为EOS
 180   3                              }
 181   2                              else return_value = 2;
 182   2                              break;
 183   2              case 3: P1 = 0x40;
 184   2                              return_value = XBYTE[0xA400];
 185   2                              P1 = 0xFF;
 186   2                              if (return_value == 0x51){
 187   3                                      return_value = 1;                               //查到插盘为AMB(2M盘)
 188   3                              }
 189   2                              else if (return_value == 0x57){
 190   3                                      return_value = 1;                               //查到插盘为EOS
 191   3                              }
 192   2                              else return_value = 2;
 193   2                              break;
 194   2              case 4: P1 = 0x10;
 195   2                              return_value = XBYTE[0xB000];
 196   2                              P1 = 0xFF;
 197   2                              if (return_value == 0xAA){
 198   3                                      return_value = 1;                               //查到插盘为OTB-1
 199   3                              }
 200   2                              else return_value = 2;
 201   2                              break;
 202   2              default: return_value = 3;
 203   2                               break;
 204   2              }
 205   1              if (!GetResRdyTbl(14))
 206   1                      SetResRdyTbl(14);
 207   1              return (return_value);
 208   1      }
 209          
 210          
 211          void report_board_state(unsigned char value){
 212   1      //C31回应函数
 213   1              tx_buf[0] = '$';
 214   1              tx_buf[1] = '2';
 215   1              tx_buf[2] = '1';
 216   1              tx_buf[3] = 0x43;
 217   1              tx_buf[4] = 0x33;
 218   1              tx_buf[5] = 0x31;
 219   1              tx_buf[6] = '0';
 220   1              tx_buf[7] = '0';
 221   1              tx_buf[8] = '0';
 222   1              tx_buf[9] = '2';
 223   1              if (value == 3){

⌨️ 快捷键说明

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