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

📄 bpqmb.lst

📁 rs485、八位扫描显示、按键、数字编码器
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   BPQMB                                                                 12/26/2006 17:28:03 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BPQMB
OBJECT MODULE PLACED IN F:\ERROR\BPMB\BPQMB.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE F:\ERROR\BPMB\BPQMB.C DB SB OE

line level    source

   1          #include <reg51.h>
   2          #include <staticv.h>
   3          #include <intrins.h>
   4          #include <24c04.h>
   5          #define zt_ 0
   6          #define gn_ 0
   7          #define dz_h 1
   8          #define dz_l 2
   9          #define sj_h 3
  10          #define sj_l 4
  11          #define jyh_l 5
  12          #define jyh_h 6
  13          #define jw_ 9
  14          #define _mima 1234
  15          #define dmima 5858
  16          sbit dsp_gz=P3^7;
  17          uchar t0yc=5,t0yc1=5,datap,sendp,dsp_p,takep;
  18          uint add_offset;
  19          uchar txd[7];
  20          uchar rxd[6];
  21          bit rxded,notbit1,notbit2,temp_bit;
  22          /*sbit dpc_a=P2^5;
  23          sbit dpc_b=P2^4;*/
  24          sbit dpc_a=P1^1;
  25          sbit dpc_b=P1^0;
  26          sbit spi_spe=P3^3;
  27          sbit spi_dat=P3^0;
  28          sbit spi_clk=P3^1;
  29          bit und_bit,sending,pass,passd,passf,ankey,on_off,error,send_com=1;
  30          bit inc_dec,db_3,da_3,set_send,k_abs,i_goon,d_goon;
  31          uchar st_con,menu_con,cmenu,con_num;
  32          uint password,set_data,fu_data,zu_data,pw_delay,pv_fu,pv_zu,pv1_zu,pv1_fu;
  33          uchar dela,delb,xh_jsk,xh_jsn;
  34          uchar ud_con,ture_ud,ncall_dsp;
  35          unsigned char displaya[4],displayb[4],ndsp=0;
  36          /*delay********************delay*********************delay*/
  37          /*void sytxd()
  38          {txd[0]=0x51;txd[1]=0x52;txd[2]=0xa3;txd[3]=0xa4;
  39          txd[4]=0x55;txd[5]=0x56;txd[6]=0xa7;txd[7]=0xa8;sending=1;} */
  40          void send_dat()
  41          {
  42   1      uchar num,temp;
  43   1      takep=0;
  44   1      spi_dat=0;
  45   1         spi_spe=1;
  46   1      while(spi_spe){;}
  47   1      while(!spi_spe){;}
  48   1          spi_spe=1;
  49   1      spi_clk=1;
  50   1      spi_dat=0;
  51   1      temp=txd[sendp];
  52   1      if(sendp<6)sendp++;
  53   1      else{sendp=0;
  54   2              send_com=0;
  55   2              sending=0;
C51 COMPILER V7.50   BPQMB                                                                 12/26/2006 17:28:03 PAGE 2   

  56   2             }
  57   1      for(num=8;num>0;num--)
  58   1         {     if(temp&0x80)
  59   2                spi_dat=1;
  60   2               else spi_dat=0;
  61   2              while(!spi_clk){;}
  62   2               while(spi_clk){;}
  63   2               temp<<=1;
  64   2          }
  65   1         if(send_com)spi_dat=0;else spi_dat=1;
  66   1      }
  67          void take_dat()
  68          {
  69   1      uchar num,temp;
  70   1      sendp=0;
  71   1      spi_dat=1;
  72   1      spi_spe=1;
  73   1      while(spi_spe){;}
  74   1      while(!spi_spe){;}
  75   1      spi_clk=1;
  76   1      temp=0;
  77   1      for(num=8;num>0;num--)
  78   1         {            temp<<=1;
  79   2              while(!spi_clk){;}
  80   2              if(spi_dat)
  81   2              temp++;
  82   2               while(spi_clk){;}
  83   2          }
  84   1           rxd[takep]=temp;
  85   1               spi_dat=1;
  86   1      if(takep<5)takep++;
  87   1      else
  88   1           {
  89   2           spi_dat=0;
  90   2           takep=0;
  91   2           rxded=send_com=1;
  92   2           }
  93   1      }
  94          /*定时器*******************定时器*******************定时器**/
  95          void tint1() interrupt 1   using 3
  96          {unsigned char temp=1,num,temp_del;
  97   1       TH0=0Xd5;
  98   1       TL0=0X00;
  99   1        TR0=1;
 100   1       t0yc--;
 101   1       if(t0yc==0)
 102   1       {t0yc=10;
 103   2       t0yc1--;
 104   2       notbit1=~notbit1;
 105   2       }
 106   1         if(t0yc1==0)
 107   1       {t0yc1=10;
 108   2        notbit2=~notbit2;
 109   2      if(pw_delay>0)pw_delay--;
 110   2      else {passd=passf=0;if((password!=0)&&(password>9999))pass=0;}
 111   2       }
 112   1       ET0=1;
 113   1       P0=0;
 114   1      dpc_a=0;
 115   1      dpc_b=0;
 116   1      dpc_a=1;
 117   1      dpc_b=1;
C51 COMPILER V7.50   BPQMB                                                                 12/26/2006 17:28:03 PAGE 3   

 118   1      dpc_a=0;
 119   1      dpc_b=0;
 120   1      temp_del=dsp_p+1;
 121   1      temp<<=dsp_p;
 122   1      P2&=0XF0;
 123   1      temp|=P2;
 124   1      P2=temp;
 125   1      if((notbit2)||(!und_bit)||((ndsp!=dsp_p)&&(ndsp!=0xff)))
 126   1      {num=displaya[dsp_p];
 127   2      if(dela==temp_del)num|=0x80;
 128   2      P0=num;
 129   2      dpc_a=0;
 130   2      dpc_a=1;
 131   2      }
 132   1      num=displayb[dsp_p];
 133   1      if(delb==temp_del)num|=0x80;
 134   1      P0=num;
 135   1      dpc_b=0;
 136   1      dpc_b=1;
 137   1      dsp_p++;
 138   1      if(dsp_p>3)dsp_p=0;
 139   1      }
 140          /*通讯设置********************通讯设置****************通讯设置**/
 141          void scr(void)
 142          {uchar temp;
 143   1      uint num=0;
 144   1      sendp=0;
 145   1      for(temp=0;temp<5;temp++)
 146   1       {num+=txd[temp];
 147   2       }
 148   1      txd[5]=num>>8;
 149   1      txd[6]=num&0xff;
 150   1      }
 151          void scanf_scr()
 152          {
 153   1      uchar i;
 154   1      uint temp=0;
 155   1      uint num;
 156   1      num=rxd[4]<<8;
 157   1      num&=0xff00;
 158   1      num|=rxd[5];
 159   1      for(i=0;i<4;i++)
 160   1      {temp+=rxd[i];}
 161   1      if(temp==num)temp_bit=1;
 162   1      else temp_bit=0;
 163   1      }
 164          
 165          /*通讯设置******************通讯设置**********通讯社制*/
 166          void rd_txd(uchar temp)
 167          {
 168   1      txd[gn_]=temp;
 169   1      if(menu_con==3)
 170   1      {
 171   2      txd[dz_l]=ud_con;
 172   2      txd[dz_h]=ture_ud;
 173   2      }
 174   1      else
 175   1      {
 176   2      txd[dz_l]=cmenu;
 177   2      txd[dz_h]=0;
 178   2      }
 179   1      txd[sj_l]=0;
C51 COMPILER V7.50   BPQMB                                                                 12/26/2006 17:28:03 PAGE 4   

 180   1      txd[sj_h]=0;
 181   1      scr();
 182   1      sending=1;
 183   1      }
 184          void ask_txd()
 185          {
 186   1      txd[gn_]=0;
 187   1      txd[dz_l]=cmenu;
 188   1      txd[dz_h]=0;
 189   1      txd[sj_h]=txd[sj_l]=0;
 190   1      scr();
 191   1      sending=1;
 192   1      }
 193          void gz_txd()
 194          {
 195   1      txd[gn_]=3;
 196   1      txd[dz_l]=cmenu;
 197   1      txd[dz_h]=menu_con;
 198   1      txd[sj_h]=txd[sj_l]=0;
 199   1      scr();
 200   1      sending=1;
 201   1      }
 202          void clr_txd()
 203          {txd[gn_]=6;
 204   1      txd[sj_h]=0;
 205   1      txd[sj_l]=1;
 206   1      scr();
 207   1      }
 208          void con_txd(uchar num)
 209          {
 210   1      txd[gn_]=10;
 211   1      txd[dz_h]=0;
 212   1      txd[dz_l]=cmenu;
 213   1      txd[sj_l]=num&0xff;
 214   1      txd[sj_h]=num>>8;
 215   1      scr();
 216   1      sending=1;
 217   1      }
 218          void cp_ps_txd(uchar num)
 219          {
 220   1      txd[gn_]=num;
 221   1      txd[dz_l]=add_offset&0xff;
 222   1      txd[dz_h]=add_offset>>8;
 223   1      txd[sj_l]=set_data&0xff;
 224   1      txd[sj_h]=set_data>>8;
 225   1      scr();
 226   1      sending=1;
 227   1      }
 228          void write_txd(uchar temp)
 229          {
 230   1      txd[gn_]=temp;
 231   1      if(menu_con==3)
 232   1              {
 233   2      txd[dz_l]=ud_con;
 234   2      txd[dz_h]=ture_ud;
 235   2              }
 236   1      else
 237   1       {
 238   2      txd[dz_l]=cmenu;
 239   2      txd[dz_h]=menu_con;
 240   2       }
 241   1      txd[sj_l]=set_data&0xff;
C51 COMPILER V7.50   BPQMB                                                                 12/26/2006 17:28:03 PAGE 5   

 242   1      txd[sj_h]=set_data>>8;
 243   1      scr();
 244   1      sending=1;
 245   1      }
 246          void admin_txd()
 247          {
 248   1       switch(cmenu)
 249   1      {case 0:set_data=0;break;
 250   2      case 1:txd[dz_l]=0;
 251   2      txd[gn_]=7;break;
 252   2      case 2:txd[dz_l]=1;
 253   2      txd[gn_]=7;break;
 254   2      case 3:txd[gn_]=8;

⌨️ 快捷键说明

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