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

📄 iic_bit.lst

📁 一款用51单片机写的俄罗斯方块游戏完整项目下载
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE IIC_BIT
OBJECT MODULE PLACED IN iic_bit.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iic_bit.c LARGE OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #define IIC_READ 0XA1    //定义读指令
   2          #define IIC_WRITE 0XA0   //定义写指令
   3          #define NOP _nop_()
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          #include "reg52.h"
   7          #define IIC_READ 0XA1    //定义读指令
   8          #define IIC_WRITE 0XA0   //定义写指令
   9          #define NOP _nop_()
  10          //#define SDA INT0
  11          //#define SCL T0
  12          //==============================
  13          uchar xdata buff[2000]; //save the byte read out  form iic device in test operation
  14          uchar xdata readbuff[232];//测试数组,暂存写入读出数据
  15          //uchar writebuff[32];
  16          //===============================
  17          sbit SDA=P3^5;//P2^7; //THE SDA BIT IS PORT 2 BIT 7
  18          sbit SCL=P3^4;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
  19          sbit SEN=P3^3;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
  20          sbit STE=P3^2;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
  21          
  22          uchar setclk[13]={0x00,0x00,0x12};
  23          uchar getclk[13];
  24          uchar const seg[11]={0x7f,0x44,0xbd,0xf5,0xe6,0xf3,0xfb,0x65,0xff,0xf7,0x00};
  25          uchar dis[8]={0,0,0,0};        //设置显示缓冲存储器
  26          
  27          uchar bdata bbyte;//定义位操作用数组,采用此方法可提高位操作速度
  28          sbit a0=bbyte^0;
  29          sbit a1=bbyte^1;
  30          sbit a2=bbyte^2;
  31          sbit a3=bbyte^3;
  32          sbit a4=bbyte^4;
  33          sbit a5=bbyte^5;
  34          sbit a6=bbyte^6;
  35          sbit a7=bbyte^7;
  36          delay(void);
  37          //========================================
  38          bit IFACK; //record the SDA state to confirn if ACK has happened 
  39          bit NO_ACK; //no ack flag
  40          bit BUS_FAULT; //bus fault flag
  41          //========================================
  42          code uchar  test_y_z[2000] =
  43          {
  44                  104,              //字体构成图象的宽度
  45                  46,             //字体构成图象的高度
  46                  0,               //字体的颜色
  47              0xff,            //字体的背景色
  48          
  49          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,
  50          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFE,0xDF,0x00,0x1C,0x0E,
  51          0x1D,0xFE,0xAF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFE,0xBF,0xF5,0xFD,0xEF,0xD0,0x21,0xB7,
  52          0xFF,0xFF,0xFF,0xF8,0xFF,0xFD,0x81,0x80,0x3C,0x0E,0xD7,0xBD,0xBF,0xFF,0xFF,0xFF,
  53          0xF8,0xFF,0xF9,0x7D,0xB5,0xBD,0xEE,0xD0,0x20,0x03,0xFF,0xFF,0xFF,0xF8,0xFF,0xF4,
  54          0xEF,0x80,0x3C,0x0E,0xD7,0xFD,0xBF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFD,0xAB,0xF7,0xFF,
  55          0xFE,0x10,0x3D,0x37,0xFF,0xFF,0xFF,0xF8,0xFF,0xFD,0xAB,0x00,0x00,0x03,0xD2,0xB8,
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 2   

  56          0xAF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFD,0x6D,0xEE,0xFB,0x7F,0x90,0x25,0xDF,0xFF,0xFF,
  57          0xFF,0xF8,0xFF,0xFC,0xED,0xC5,0xF9,0x06,0x4A,0xBD,0x9B,0xFF,0xFF,0xFF,0xF8,0xFF,
  58          0xFD,0xEF,0xF8,0xF6,0x7F,0xDA,0xBC,0x6B,0x7B,0xEF,0xBD,0xF8,0xFF,0xFD,0x8F,0x07,
  59          0x2F,0x03,0x1F,0x31,0xF3,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  60          0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  61          0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
  62          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xEA,0xFF,0xFF,
  63          0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xFF,0xFD,0xFF,0xF8,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,
  64          0xFF,0xFF,0xE0,0x3F,0xDC,0xFF,0xF8,0xC0,0x2F,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,
  65          0xBD,0x8C,0xFF,0xF8,0xF1,0xFF,0xFF,0xFF,0xC7,0xEF,0xFF,0xFC,0xFF,0xB9,0x04,0xFF,
  66          0xF8,0xE8,0xFF,0xFF,0xFF,0x07,0x1F,0x7F,0xFF,0x3F,0xF0,0x20,0xFF,0xF8,0xDB,0x7F,
  67          0xFF,0xFC,0x0C,0x1C,0x7F,0x7F,0xCF,0xEE,0x71,0xFF,0xF8,0xFB,0xF7,0xE3,0xF8,0x00,
  68          0x10,0xDF,0x8F,0xF3,0xFE,0x7D,0xFF,0xF8,0xFF,0xFB,0xC1,0xF0,0x00,0x00,0x97,0xC1,
  69          0xF8,0xFE,0xFF,0xEF,0xF8,0xFB,0xEB,0x98,0xE0,0x00,0x39,0x10,0xF0,0x3C,0x3F,0xFF,
  70          0xBF,0xF8,0xFF,0xF1,0xA4,0xE0,0x00,0x04,0x10,0x1C,0x06,0x1F,0x8F,0x97,0xF8,0xFF,
  71          0xD1,0x8A,0xC0,0x00,0x00,0x30,0x00,0x01,0x0F,0x07,0x8F,0xF8,0xFF,0xE0,0x8A,0x00,
  72          0x00,0x00,0x30,0x38,0x00,0x06,0x33,0x1B,0xF8,0xFF,0xA0,0x44,0x00,0x00,0x00,0x50,
  73          0x40,0x00,0x06,0x4B,0x17,0xF8,0xFF,0xC0,0x60,0x00,0x0F,0xC0,0x48,0x00,0x00,0x02,
  74          0xA2,0x05,0xF8,0xFF,0x40,0x70,0x00,0x3F,0xE0,0x88,0x00,0x00,0x00,0xA2,0x03,0xF8,
  75          0xFF,0x80,0xF8,0x00,0x00,0xF1,0x04,0x07,0xE0,0x00,0x44,0x01,0xF8,0xFE,0x81,0xE8,
  76          0x00,0x01,0xC2,0x04,0x4F,0xF8,0x00,0x0F,0x03,0xF8,0xFF,0x00,0x08,0x00,0x01,0x84,
  77          0x02,0x3E,0x00,0x00,0x1F,0x82,0xF8,0xFD,0x00,0x10,0x00,0x00,0x88,0x01,0x06,0x00,
  78          0x00,0x10,0x41,0xF8,0xFE,0x01,0xE0,0x01,0x13,0x08,0x00,0x87,0x00,0x00,0x10,0x01,
  79          0xB8,0xFF,0x06,0x20,0x00,0x88,0x10,0x00,0x43,0x00,0x00,0x10,0x01,0x18,0xFD,0x0A,
  80          0x10,0x01,0x44,0x10,0x00,0x22,0x00,0x00,0x18,0x01,0xB8,0xF8,0x11,0x10,0x00,0x80,
  81          0x10,0x00,0x21,0x91,0x00,0x14,0x01,0xF8,0xFC,0x10,0x88,0x70,0x00,0x10,0x00,0x10,
  82          0x22,0x03,0xE0,0x00,0xB8,0xFE,0x20,0x84,0x4C,0x00,0x20,0x00,0x10,0x45,0x05,0x31,
  83          0x00,0xF8,0xF4,0x20,0x43,0x8B,0x80,0xC0,0x00,0x10,0x02,0x08,0x88,0x80,0xB8,0xFC,
  84          0x20,0x40,0x08,0xFF,0x00,0x00,0x10,0x00,0x18,0x40,0x40,0x78,0xF6,0x20,0x40,0x08,
  85          0x80,0x00,0x00,0x08,0x00,0x68,0x40,0x00,0xD8,0xFC,0x20,0x40,0x08,0x80,0x00,0x00,
  86          0x06,0x03,0x90,0x20,0x20,0x68,
  87          
  88                       
  89          };
  90          code uchar  test_y_a[2000] =
  91          {
  92                  24,              //字体构成图象的宽度
  93                  240,             //字体构成图象的高度
  94                  0,               //字体的颜色
  95              0xff,            //字体的背景色
  96          
  97                        0x00,0x01,0x00,0x00,0x83,0x00,0x00,0x83,   //"单", 
  98                0x00,0x00,0x42,0x00,0x00,0x62,0x00,0x00,
  99                0x64,0x60,0x02,0x1F,0xE0,0x03,0xF8,0x60,
 100                0x02,0x18,0x40,0x02,0x1A,0x40,0x02,0xFE,
 101                0x40,0x02,0x98,0x40,0x02,0x18,0x40,0x02,
 102                0x3F,0xC0,0x03,0xF8,0x00,0x03,0x18,0x00,
 103                0x00,0x18,0x7C,0x01,0xFF,0xF0,0x3F,0x98,
 104                0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,
 105                0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,
 106          
 107                0x00,0x00,0x20,0x04,0x00,0xF0,0x04,0x7F,   //"用",
 108                0xE0,0x07,0xF8,0x20,0x06,0x10,0x20,0x06,
 109                0x10,0x20,0x06,0x10,0x20,0x06,0x1F,0xA0,
 110                0x06,0xFC,0x20,0x06,0x10,0x20,0x06,0x10,
 111                0x20,0x06,0x10,0x20,0x04,0x1F,0xA0,0x05,
 112                0xF8,0x20,0x04,0x10,0x20,0x04,0x10,0x20,
 113                0x04,0x10,0x20,0x08,0x10,0x20,0x08,0x10,
 114                0x20,0x18,0x10,0x20,0x10,0x11,0xA0,0x20,
 115                0x10,0xE0,0x60,0x10,0x60,0x00,0x00,0x00,
 116          
 117          
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 3   

 118          
 119                0x00,0x04,0x00,0x00,0x06,0x00,0x02,0x06,  //"片",
 120                0x00,0x03,0x06,0x00,0x01,0x06,0x00,0x01,
 121                0x06,0x00,0x01,0x06,0x00,0x01,0x06,0x00,
 122                0x01,0x06,0x78,0x01,0x3F,0xF0,0x01,0xF8,
 123                0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,
 124                0x03,0x00,0x03,0x7F,0x00,0x03,0xE3,0x00,
 125                0x02,0x03,0x00,0x02,0x03,0x00,0x02,0x03,
 126                0x00,0x06,0x03,0x00,0x04,0x03,0x00,0x04,
 127                0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,
 128          
 129                0x04,0x00,0x00,0x02,0x00,0x00,0x02,0x08,   //"机",
 130                0x40,0x02,0x0F,0xC0,0x02,0x08,0xC0,0x02,
 131                0x08,0xC0,0x02,0x68,0xC0,0x7F,0xE8,0xC0,
 132                0x66,0x08,0xC0,0x06,0x08,0xC0,0x07,0x08,
 133                0xC0,0x0F,0x88,0xC0,0x0A,0xD8,0xC0,0x0A,
 134                0x58,0xC0,0x12,0x18,0xC0,0x12,0x18,0xC0,
 135                0x22,0x10,0xC4,0x22,0x10,0xC4,0x42,0x10,
 136                0xC4,0x02,0x30,0xC6,0x02,0x20,0xC6,0x02,
 137                0x20,0xC6,0x06,0x40,0x7E,0x06,0x80,0x00,
 138          
 139                0x00,0x00,0x00,0x00,0x48,0x08,0x1F,0xEF,   //"驱",
 140                0xFC,0x1C,0x4E,0x00,0x00,0x48,0x20,0x04,
 141                0xC8,0x30,0x04,0xC8,0x30,0x04,0x8A,0x20,
 142                0x0C,0x89,0x60,0x08,0x89,0xE0,0x08,0xA8,
 143                0xC0,0x0B,0xE8,0xC0,0x1F,0x68,0xE0,0x00,
 144                0x68,0xA0,0x00,0x69,0xB0,0x01,0x49,0x30,
 145                0x1E,0x4A,0x10,0x70,0x4A,0x00,0x00,0x4C,
 146                0x00,0x02,0xC8,0x0C,0x03,0x8F,0xFE,0x01,
 147                0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 148          
 149                0x00,0x00,0x80,0x00,0x00,0xC0,0x00,0x00,  //"动",
 150                0xC0,0x00,0x00,0x80,0x03,0xF0,0x80,0x06,
 151                0x00,0x80,0x00,0x00,0x80,0x00,0x01,0x80,
 152                0x00,0x01,0x98,0x01,0xFF,0xF8,0x3F,0x0D,
 153                0x18,0x01,0x01,0x10,0x03,0x03,0x10,0x02,
 154                0x02,0x10,0x02,0x42,0x30,0x04,0x26,0x30,
 155                0x04,0x74,0x20,0x0F,0xBC,0x20,0x1E,0x08,
 156                0x20,0x18,0x08,0x60,0x00,0x11,0x60,0x00,
 157                0x20,0xC0,0x00,0x60,0xC0,0x00,0x80,0x00,
 158          
 159                0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x30,   //"电",
 160                0x00,0x00,0x30,0x00,0x08,0x20,0x40,0x08,
 161                0x27,0xC0,0x0F,0xFF,0xC0,0x0E,0x20,0xC0,
 162                0x0C,0x20,0x80,0x0C,0x26,0x80,0x04,0xFE,
 163                0x80,0x05,0xA0,0x80,0x04,0x20,0x80,0x04,
 164                0x20,0x80,0x04,0x3F,0x80,0x07,0xFC,0x00,
 165                0x0C,0x20,0x00,0x04,0x20,0x08,0x04,0x20,
 166                0x08,0x00,0x30,0x08,0x00,0x30,0x08,0x00,
 167                0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
 168          
 169                0x00,0x02,0x00,0x08,0x03,0x00,0x09,0x83,  //"脑",
 170                0x00,0x0F,0x81,0x00,0x08,0x80,0x0C,0x08,
 171                0x8F,0xFC,0x08,0xFC,0x00,0x08,0x80,0xC0,
 172                0x0F,0x88,0xC0,0x08,0x84,0x90,0x08,0xA5,
 173                0x98,0x08,0xB3,0x10,0x0F,0xB3,0x10,0x08,
 174                0x93,0x10,0x08,0x93,0x90,0x08,0x96,0x90,
 175                0x18,0x94,0xD0,0x10,0x98,0x10,0x10,0x90,
 176                0x10,0x10,0x90,0x10,0x37,0xBF,0xF0,0x23,
 177                0xB8,0x10,0x21,0x80,0x00,0x00,0x00,0x00,
 178          
 179                0x00,0x00,0x00,0x02,0x00,0xC0,0x03,0xFF, //"显",
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 4   

 180                0xC0,0x03,0xE0,0xC0,0x03,0x00,0xC0,0x03,
 181                0x06,0x80,0x03,0xFE,0x80,0x03,0x00,0x80,
 182                0x01,0x00,0x80,0x01,0x0F,0x80,0x03,0xFE,
 183                0x00,0x01,0x44,0x00,0x01,0x64,0x20,0x08,
 184                0x64,0x60,0x04,0x64,0x60,0x06,0x64,0xC0,
 185                0x03,0x64,0x80,0x03,0x65,0x00,0x02,0x65,
 186                0x00,0x00,0x64,0x00,0x00,0x64,0x08,0x00,
 187                0x7F,0xFC,0x1F,0xFC,0x00,0x00,0x00,0x00,
 188          
 189                0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x3F, //"示",
 190                0xE0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,
 191                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,
 192                0x07,0xFF,0xF0,0x1F,0x18,0x00,0x00,0x08,
 193                0x00,0x00,0x88,0x00,0x00,0xC9,0x00,0x01,
 194                0x88,0xC0,0x01,0x08,0x60,0x03,0x08,0x30,
 195                0x06,0x08,0x38,0x04,0x08,0x18,0x08,0x08,
 196                0x00,0x10,0x58,0x00,0x00,0x38,0x00,0x00,
 197                0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00
 198                       
 199          };
 200          
 201          
 202          
 203          
 204          void start(void)
 205          {
 206   1       SCL=0;
 207   1       SDA=1;
 208   1       SCL=1;
 209   1       SDA=0;
 210   1       SCL=0;
 211   1      }
 212          //=======================================
 213          //FUNCTION:ROUTES TO PROVIDE A STOP SIGNAL
 214          void stop(void)
 215          {
 216   1       SCL=0;
 217   1       SDA=0;
 218   1       SCL=1;
 219   1       SDA=1;
 220   1       SCL=0;
 221   1      }
 222          //=====================================
 223          //FUNCTION:ROUTES TO PROVIDE ACK SINGAL
 224          void ack(void)
 225          {
 226   1       SCL=0;
 227   1       SDA=0;
 228   1       SCL=1;
 229   1       SCL=0;
 230   1      }
 231          //=====================================
 232          //FUNCTION:ROUTES TO RELEASE THE SDA TO RECEIVE A ACK SIGNAL 
 233          //              OR TO PROVIDE A NO_ACK SIGNAL
 234          //type=1等待应答信号
 235          //type=0 产生无应答信号
 236          void nack(uchar type)
 237          {
 238   1      SCL=0;
 239   1      SDA=1;
 240   1      SCL=1;
 241   1      IFACK=SDA;
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 5   

 242   1      SCL=0;
 243   1       if(type)
 244   1       {
 245   2        if(IFACK)//如果无应答信号,则置标志位NO_ACK,程序中止
 246   2        { 
 247   3         NO_ACK=1;//用户可以加入自己的异常处理程序
 248   3         //while(1);
 249   3        }
 250   2        else NO_ACK=0;
 251   2       }
 252   1      }
 253          //=======================================================
 254          //FUNCTION:THE IIC DEVICE SHIFT OUT A BYTE  TO THE MASTER
 255          uchar  inbyte(void) {//从IIC器件中读出数据
 256   1       SDA=1;
 257   1       SCL=1;
 258   1       a7=SDA;
 259   1       SCL=0;
 260   1       SCL=1;
 261   1       a6=SDA;
 262   1       SCL=0;
 263   1       SCL=1;
 264   1       a5=SDA;
 265   1       SCL=0;
 266   1       SCL=1;
 267   1       a4=SDA;
 268   1       SCL=0;
 269   1       SCL=1;
 270   1       a3=SDA;
 271   1       SCL=0;
 272   1       SCL=1;
 273   1       a2=SDA;
 274   1       SCL=0;
 275   1       SCL=1;
 276   1       a1=SDA;
 277   1       SCL=0;
 278   1       SCL=1;
 279   1       a0=SDA;
 280   1       SCL=0;
 281   1       return(bbyte);
 282   1      }
 283          //=======================================================
 284          //FUNCTION:THE IIC DEVICE SHIFT IN A BYTE FROM THE MASTER 
 285          void outbyte(uchar outdata) {//将数据写放IIC器件
 286   1       bbyte=outdata;
 287   1       SDA=a7;
 288   1       SCL=1;
 289   1       SCL=0;
 290   1       SDA=a6;
 291   1       SCL=1;
 292   1       SCL=0;
 293   1       SDA=a5;
 294   1       SCL=1;
 295   1       SCL=0;
 296   1       SDA=a4;
 297   1       SCL=1;
 298   1       SCL=0;
 299   1       SDA=a3;
 300   1       SCL=1;
 301   1       SCL=0;
 302   1       SDA=a2;
 303   1       SCL=1;
C51 COMPILER V7.50   IIC_BIT                                                               10/30/2007 19:00:59 PAGE 6   

 304   1       SCL=0;
 305   1       SDA=a1;
 306   1       SCL=1;
 307   1       SCL=0;
 308   1       SDA=a0;
 309   1       SCL=1;
 310   1       SCL=0;
 311   1      }
 312          //======================================================
 313          //FUNCTION:BYTE WRITE.  'add'     THE WRITE ADDRESS, 'wbyte'   THE DATA WANT TO WRITE
 314          void writebyte(uint add,uchar wbyte)//add为写入地址,wbyte为写入数据
 315          {
 316   1       uchar temph,templ;
 317   1       temph=(uchar)(add/256);
 318   1       templ=(uchar)(add%256);
 319   1       if(!STE)
 320   1       return;

⌨️ 快捷键说明

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