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

📄 24c02.lst

📁 本程序演示 :以非利普TEA5767 为核心的
💻 LST
字号:
C51 COMPILER V7.50   24C02                                                                 04/09/2008 23:05:40 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: F:\C51\BIN\C51.EXE 24c02.c LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2           好利来音响部设计
   3           未经同意不得散布于网络
   4           2005年2月15日
   5          */
   6          #define uchar unsigned char
   7          #define uint  unsigned int
   8          #define ulong unsigned long
   9          #include <reg52.h>
  10          #include <absacc.h>
  11          #include "intrins.h"
  12          #define iicadd 0x10;
  13          sbit da=P1^7;
  14          sbit cl=P1^6;
  15          sbit ff=P1^5;
  16          void delaytime(uint time)
  17          { bit a=0;
  18   1        for(;time!=0;time--)
  19   1        {
  20   2        a=1;
  21   2        a=0;
  22   2        }
  23   1      }
  24          
  25          extern uchar remkey;
  26          void sta_24c02()         //启动总线传输
  27           {
  28   1         da=1;
  29   1         delaytime(2);
  30   1         cl=1;
  31   1         delaytime(2);
  32   1         da=0;
  33   1         delaytime(2);
  34   1         cl=0;
  35   1       }
  36          void stop_24c02()       //结束总线传输
  37          {
  38   1        da=0;
  39   1        delaytime(2);
  40   1        cl=1;
  41   1        delaytime(2);
  42   1        da=1;
  43   1        delaytime(2);
  44   1        da=0;
  45   1        delaytime(2);
  46   1        cl=0;
  47   1        delaytime(2);
  48   1      }
  49          void mack_24c02()//发送应答位
  50          {
  51   1         da=0;
  52   1         delaytime(2);
  53   1         cl=1;
  54   1         delaytime(2);
  55   1         cl=0;
C51 COMPILER V7.50   24C02                                                                 04/09/2008 23:05:40 PAGE 2   

  56   1         delaytime(2);
  57   1         da=1;
  58   1         delaytime(2);
  59   1      }
  60          void nmack_24c02()//发送非应答位
  61          {
  62   1        da=1;
  63   1        delaytime(2);
  64   1        cl=1;
  65   1        delaytime(2);
  66   1        cl=0;
  67   1        delaytime(2);
  68   1        da=0;
  69   1        delaytime(2);
  70   1      
  71   1      }
  72          bit cack_24c02() //发送状态检测
  73          {
  74   1        bit a=0;
  75   1        da=1;
  76   1       delaytime(2);
  77   1        cl=1;
  78   1        delaytime(2);
  79   1        if(da==0)
  80   1         {
  81   2         delaytime(2);
  82   2         cl=0;
  83   2         delaytime(2);
  84   2         return(0);
  85   2         }
  86   1        else
  87   1         {
  88   2         delaytime(2);
  89   2         cl=0;
  90   2         return(1);
  91   2         }
  92   1      }
  93          void wr1_24c02(void)//写数据1
  94          {
  95   1         da=1;
  96   1         delaytime(2);
  97   1         cl=1;
  98   1         delaytime(2);
  99   1         cl=0;
 100   1         delaytime(2);
 101   1         da=0;
 102   1         delaytime(2);
 103   1      }
 104          void wr0_24c02()//写数据0
 105          {
 106   1        da=0;
 107   1        delaytime(2);
 108   1        cl=1;
 109   1        delaytime(2);
 110   1        cl=0;
 111   1        delaytime(2);
 112   1      }
 113          wrbyt_24c02(uchar byt)//写一个字节的数据到总线上
 114          {
 115   1        uchar temp=0x00;
 116   1        uchar count;
 117   1        for(count=0;count<8;count++)
C51 COMPILER V7.50   24C02                                                                 04/09/2008 23:05:40 PAGE 3   

 118   1          {
 119   2            if((byt<<count)&0x80)
 120   2              wr1_24c02();
 121   2            else
 122   2              wr0_24c02();
 123   2           }
 124   1      }
 125          uchar rdbyt_24c02() //从总线上读取一个字节的数据
 126          {
 127   1        uchar a=0,i=0;
 128   1        for(i=0;i<8;i++)
 129   1         {
 130   2           da=1;
 131   2           delaytime(2);
 132   2           cl=1;
 133   2           if(da==1)
 134   2            {
 135   3                 a=(a<<1)+1;
 136   3             cl=0;
 137   3            }
 138   2           else if(da==0)
 139   2           {
 140   3             a=a<<1;
 141   3             cl=0;
 142   3           }
 143   2         }
 144   1          return(a);
 145   1      }
 146          bit wrnbyt(uchar add,uchar start,uchar num,uchar *k) //向24C02(ADD)从字节(START)开始写(NUM)个字节
 147          {
 148   1          uchar *p=k;
 149   1              uchar dk;
 150   1          for(dk=0;dk<num;dk++,p++)
 151   1              {
 152   2          sta_24c02();
 153   2          wrbyt_24c02(add);
 154   2          mack_24c02();
 155   2          wrbyt_24c02(start);
 156   2              start=start+1;
 157   2          mack_24c02();
 158   2          wrbyt_24c02(*p);
 159   2          mack_24c02();
 160   2          stop_24c02();
 161   2              delaytime(5000);
 162   2          }
 163   1              return(1);
 164   1       }
 165          bit rdnbyt(uchar add,uchar start,uchar num,uchar a[])  //从24C02(ADD)字节(START)开始读取(NUM)个字节

⌨️ 快捷键说明

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