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

📄 cat1161.lst

📁 压缩包中包括多个常用的汇编
💻 LST
📖 第 1 页 / 共 2 页
字号:
 159   1          SCL=0;
 160   1      }
 161          
 162          /****************************************************************************/
 163          /* 函数名:iic_receive_byte                                                 */
 164          /* 功  能:MCU从iic设备接收一个字节                                         */
 165          /* 作  者:spot                                                             */
 166          /* 输  入:无                                                               */
 167          /* 输  出:ddata   接收数据                                                 */
 168          /*                                                                          */
 169          /* 历史记录:                                                               */
 170          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
 171          /****************************************************************************/
 172          u_char iic_receive_byte(void)
 173          {
 174   1          u_char i=8;
 175   1          u_char ddata=0;
 176   1      
 177   1          SDA=1;
 178   1          while(i--)
 179   1          {
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 4   

 180   2              ddata <<= 1;
 181   2              SCL=0;
 182   2              iic_wait();
 183   2              SCL=1;
 184   2              iic_wait();
 185   2              ddata |= SDA;
 186   2          }
 187   1          SCL=0;
 188   1          return ddata;
 189   1      }
 190          
 191          /****************************************************************************/
 192          /* 函数名:write_iic_data                                                   */
 193          /* 功  能:向iic设备写入N个字节                                             */
 194          /* 作  者:spot                                                             */
 195          /* 输  入:                                                                 */
 196          /*         write_data              存放写入字节的数组                       */
 197          /*         address                 指定从address处开始写入                  */
 198          /*         num                     写入的字节数                             */
 199          /*                                                                          */
 200          /* 输  出:无                                                               */
 201          /*                                                                          */
 202          /* 历史记录:                                                               */
 203          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
 204          /****************************************************************************/
 205          void write_iic_data(u_char write_data[], u_char address, u_char num)
 206          {
 207   1          u_char n;
 208   1      
 209   1          iic_start();
 210   1          iic_send_byte(0xa0);
 211   1          iic_wait_ack();
 212   1          iic_send_byte(address);
 213   1          iic_wait_ack();
 214   1      
 215   1          for(n=0; n<num; n++)
 216   1          {
 217   2              iic_send_byte(write_data[n]);
 218   2              iic_wait_ack();
 219   2          }
 220   1      
 221   1          iic_stop();
 222   1      }
 223          
 224          /****************************************************************************/
 225          /* 函数名:read_iic_data                                                    */
 226          /* 功  能:从iic设备读取N个字节                                             */
 227          /* 作  者:spot                                                             */
 228          /* 输  入:                                                                 */
 229          /*         read_data               存放读取字节的数组                       */
 230          /*         address                 指定从address处开始读取                  */
 231          /*         num                     读取的字节数                             */
 232          /*                                                                          */
 233          /* 输  出:无                                                               */
 234          /*                                                                          */
 235          /* 历史记录:                                                               */
 236          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
 237          /****************************************************************************/
 238          void read_iic_data(u_char read_data[], u_char address, u_char num)
 239          {
 240   1          u_char n;
 241   1      
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 5   

 242   1          iic_start();
 243   1          iic_send_byte(0xa0);
 244   1          iic_wait_ack();
 245   1          iic_send_byte(address);
 246   1          iic_wait_ack();
 247   1      
 248   1          iic_start();
 249   1          iic_send_byte(0xa1);
 250   1          iic_wait_ack();
 251   1      
 252   1          for (n=0; n<num; n++)
 253   1          {
 254   2              read_data[n] = iic_receive_byte();
 255   2      
 256   2              if (n != (num - 1))     /* 最后一个数据不应答 */
 257   2              {
 258   3                  iic_ack();
 259   3              }
 260   2          }
 261   1      
 262   1          iic_no_ack();
 263   1          iic_stop();
 264   1      }
 265          
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 6   

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


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
iic_no_ack . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
u_long . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
u_short. . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
_read_iic_data . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  read_data. . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  num. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
iic_receive_byte . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ddata. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
_write_iic_data. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  write_data . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  num. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
u_int. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_iic_send_byte . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  sbyte. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
iic_ack. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
iic_start. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
iic_wait . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0007H  -----
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0085H  1
iic_wait_ack . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0012H  -----
  errtime. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
iic_stop . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0084H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
u_char . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    256    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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