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

📄 bc728x.lst

📁 这是铁路各工区
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  BC728X                                                                 11/29/2007 10:34:25 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE BC728X
OBJECT MODULE PLACED IN F:\YUN\安全牌\安全牌C\BC728X.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE F:\YUN\安全牌\安全牌C\BC728X.C DB SB OE

stmt level    source

   1          
   2          #include "fun.h"
   3          #include "var.h"
   4          
   5          //初始化BC728x
   6          void init_bc728x(void)
   7          {uchar i;
   8   1       RST=0;
   9   1       delay(0xff);
  10   1       RST=1;
  11   1       delay(0xff);
  12   1       for(i=0xf7;i>=0xe0;i--)
  13   1       {P2=i;
  14   2        while(rd_bc728x(A_ModReg)!=D_ModReg)wr_bc728x(A_ModReg,D_ModReg);      //工作模式设置
  15   2        wr_bc728x(A_Seg1Reg,D_SegBright);  //全亮
  16   2        wr_bc728x(A_Seg2Reg,D_SegBright);
  17   2       };
  18   1       for(i=5;i>0;i--)
  19   1       {kmg();
  20   2        delay(0xffff);
  21   2       };
  22   1       for(i=0xf7;i>=0xe0;i--)
  23   1       {P2=i;
  24   2        wr_bc728x(A_Seg1Reg,D_SegDark);    //全灭
  25   2        wr_bc728x(A_Seg2Reg,D_SegDark);
  26   2       };
  27   1       for(i=5;i>0;i--)
  28   1       {kmg();
  29   2        delay(0xffff);
  30   2       }
  31   1      }
  32          
  33          
  34          //写入BC728X,第一个参数为目标寄存器地址,第二个参数为要写入的数据
  35          void wr_bc728x(uchar reg_add,uchar reg_data)
  36          {send_byte(reg_add);      //发送寄存器地址
  37   1       send_byte(reg_data);     //发送数据字节
  38   1      }
  39          
  40          //读出BC728X内部寄存器的值,调用参数为寄存器地址
  41          uchar rd_bc728x(uchar reg_add)
  42          {send_byte(reg_add|0x80); //发送读指令(bit7=1)
  43   1       return(receive_byte());  //接收数据字节并返回
  44   1      }
  45          
  46          
  47          //向BC728X发送一个字节
  48          void send_byte(uchar out_byte)
  49          {uchar n;
  50   1       CLK=0;       //产生一个CLK脉冲
  51   1       CLK=1;
  52   1       do{CLK=0;    //发送CLK脉冲直至DAT为低电平
  53   2          CLK=0;
  54   2          CLK=1;
  55   2       }while(DAT);
C51 COMPILER V6.12  BC728X                                                                 11/29/2007 10:34:25 PAGE 2   

  56   1       CLK=0;       //15US之内再次输出一个CLK脉冲
  57   1       CLK=0;
  58   1       CLK=1;
  59   1       while(!DAT); //等待BC728X进入接收状态
  60   1       for(n=0;n<8;n++)
  61   1       {            //发送8个比特
  62   2        if((out_byte&0x80)==0)
  63   2        {DAT=0;     //如果待发BIT为0,置DAT为0
  64   3        }
  65   2        else
  66   2        {DAT=1;     //反之置为1
  67   3        }
  68   2        out_byte=out_byte*2;  //send_data 左移一位
  69   2        CLK=0;      //输出一个CLK脉冲
  70   2        CLK=0;
  71   2        CLK=1;
  72   2        delay(1);   //短暂延时
  73   2       }
  74   1       DAT=1;       //恢复DAT为高电平
  75   1       delay(2);    //指令间设置一个微小延时
  76   1      }
  77          
  78          //从BC728X接收一个字节
  79          
  80          uchar receive_byte(void)
  81          {uchar n,in_byte;
  82   1       CLK=0;       //只发送一个单一的CLK脉冲
  83   1       CLK=1;
  84   1       while(DAT);  //等待BC728X响应DAT为低电平
  85   1       CLK=0;       //收到响应,再发一个脉冲等待接收数据
  86   1       CLK=1;
  87   1       for(n=0;n<8;n++)
  88   1       {            //接收8个BIT
  89   2        delay(1);   //短暂延时
  90   2        in_byte=in_byte*2; //in_byte 左移一位
  91   2        if(DAT)     //如果DAT为1
  92   2        {in_byte=in_byte|0x01; //bit0=1
  93   3        }
  94   2        CLK=0;      //输出一个CLK脉冲
  95   2        CLK=1;
  96   2       }
  97   1       delay(2);    //指令间设置一个微小延时
  98   1       return(in_byte);
  99   1      }
 100          
 101          
 102          
 103          
 104          
 105          
 106          
 107          
 108          
 109          
 110          
 111          
 112          
 113          
 114          
 115          
 116          
 117          
C51 COMPILER V6.12  BC728X                                                                 11/29/2007 10:34:25 PAGE 3   

 118          
 119          
 120          
 121          
 122          
 123          
 124          
 125          
 126          
 127          
 128          
 129          
 130          
 131          
 132          
 133          
 134          
 135          
 136          
 137          
 138          
C51 COMPILER V6.12  BC728X                                                                 11/29/2007 10:34:25 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


receive_byte . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1

⌨️ 快捷键说明

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