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

📄 iic.lst

📁 一个基于C51开发的计价秤
💻 LST
📖 第 1 页 / 共 5 页
字号:
 108   2                      SCL=LOW;
 109   2                      Nop();/*>4.7us*/
 110   2                      Nop();
 111   2                      Nop();
 112   2                      Nop();
 113   2                      Nop();
 114   2                      Nop();
 115   2              }
 116   1              Nop();
 117   1              Nop();
 118   1          SDA=HIGH;
 119   1          Nop();
 120   1              Nop();   
 121   1          SCL=HIGH;
 122   1          Nop();/*>4us*/
 123   1              Nop();
 124   1              Nop();
 125   1              Nop();
 126   1              Nop();
 127   1          if(SDA==HIGH)
 128   1                      Ack=FALSE;     
 129   1              else 
 130   1                      Ack=TRUE;
 131   1          SCL=LOW;
 132   1          Nop();/*>4.7us*/
 133   1              Nop();
 134   1              Nop();
 135   1              Nop();
 136   1              Nop();
 137   1              Nop();
 138   1      }
 139          
 140          VOID IIC_Ack(BOOL ack)
 141          {
 142   1              if(ack==FALSE)
 143   1                      SDA=LOW;
 144   1              else 
 145   1                      SDA=HIGH;
 146   1              Nop(); 
 147   1              SCL=HIGH;
 148   1              Nop();/*>4us*/
 149   1              Nop();              
 150   1              Nop();
 151   1          Nop();
 152   1              Nop();
 153   1              SCL=LOW;           
 154   1          Nop();/*>4.7us*/
 155   1              Nop();
 156   1              Nop();
 157   1              Nop();
 158   1              Nop();
 159   1              Nop();   
 160   1      }
 161          
C51 COMPILER V7.50   IIC                                                                   05/27/2006 14:01:00 PAGE 11  

 162          /*
 163          BOOL IRcvByte(BYTE sla,BYTE *c)
 164          {
 165                  IIC_Start();
 166                  IIC_Write(sla+1);
 167                  if(ack==FALSE)return FALSE;
 168                  *c=IIC_Read();
 169                  IIC_Ack(TRUE);
 170                  IIC_Stop();
 171                  return TRUE;
 172          }
 173          
 174          BOOL IRcvStr(BYTE sla,BYTE suba,BYTE *s,BYTE no)
 175          {
 176                  BYTE i;
 177                  IIC_Start();
 178                  IIC_Write(sla);
 179                  if(ack==FALSE)return FALSE;
 180                  IIC_Write(suba);
 181                  if(ack==FALSE)return FALSE;
 182                  IIC_Start();
 183                  IIC_Write(sla+1);
 184                  if(ack==FALSE)return FALSE;
 185                  for(i=0;i<no-1;i++)
 186              {   
 187                          *s=IIC_Read();
 188                  IIC_Ack(FALSE);
 189                  s++;
 190              } 
 191                  *s=IIC_Read();
 192              IIC_Ack(TRUE);
 193                  IIC_Stop();
 194                  return TRUE;
 195          }
 196          */
 197          
 198          BOOL ISendByte(BYTE sla,BYTE c)
 199          {
 200   1              IIC_Start();
 201   1              IIC_Write(sla);
 202   1              if(Ack==FALSE)return FALSE;
 203   1              IIC_Write(c);
 204   1              if(Ack==FALSE)return FALSE;
 205   1              IIC_Stop();
 206   1              return TRUE;
 207   1      }
 208          
 209          BOOL ISendStr(BYTE sla,BYTE suba,BYTE *s,BYTE no)
 210          {
 211   1              BYTE data i;
 212   1              IIC_Start();
 213   1              IIC_Write(sla);
 214   1              if(Ack==FALSE)return FALSE;
 215   1              IIC_Write(suba);
 216   1              if(Ack==FALSE)return FALSE;
 217   1              for(i=0;i<no;i++)
 218   1          {   
 219   2              IIC_Write(*s);
 220   2              if(Ack==FALSE)return FALSE;
 221   2              s++;
 222   2          } 
 223   1              IIC_Stop();
C51 COMPILER V7.50   IIC                                                                   05/27/2006 14:01:00 PAGE 12  

 224   1              return TRUE;
 225   1      }
 226          
 227          BOOL Read_eeprom(BYTE sla,WORD adr,BYTE *s,BYTE no)
 228          {
 229   1              BYTE i;
 230   1              IIC_Start();
 231   1              IIC_Write(sla);
 232   1              if(Ack==FALSE)return FALSE;
 233   1              IIC_Write((adr&0xff00)>>8);
 234   1              if(Ack==FALSE)return FALSE;
 235   1              IIC_Write(adr&0x00ff);
 236   1              if(Ack==FALSE)return FALSE;
 237   1              IIC_Start();
 238   1              IIC_Write(sla+1);
 239   1              if(Ack==FALSE)return FALSE;
 240   1              for(i=0;i<no-1;i++)
 241   1          {   
 242   2                      *s=IIC_Read();
 243   2              IIC_Ack(FALSE);
 244   2              s++;
 245   2          } 
 246   1              *s=IIC_Read();
 247   1          IIC_Ack(TRUE);
 248   1              IIC_Stop();
 249   1              return TRUE;
 250   1      }
 251          
 252          BOOL Write_eeprom(BYTE sla,WORD adr,BYTE *s,BYTE no)
 253          {
 254   1              BYTE i;
 255   1              IIC_Start();
 256   1              IIC_Write(sla);
 257   1              if(Ack==FALSE)return FALSE;
 258   1              IIC_Write((adr&0xff00)>>8);
 259   1              if(Ack==FALSE)return FALSE;
 260   1              IIC_Write(adr&0x00ff);
 261   1              if(Ack==FALSE)return FALSE;
 262   1              for(i=0;i<no;i++)
 263   1          {   
 264   2              IIC_Write(*s);
 265   2              if(Ack==FALSE)return FALSE;
 266   2              s++;
 267   2          } 
 268   1              IIC_Stop();
 269   1              return TRUE;
 270   1      }
C51 COMPILER V7.50   IIC                                                                   05/27/2006 14:01:00 PAGE 13  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com002F (BEGIN)
0000         L?0048:
0000         L?0049:
0000 7401              MOV     A,#01H
0002 29                ADD     A,R1
0003 F9                MOV     R1,A
0004 E4                CLR     A
0005 3A                ADDC    A,R2
0006 FA                MOV     R2,A
0007 22                RET     
             ; FUNCTION Com002F (END)

             ; FUNCTION IIC_Start (BEGIN)
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
                                           ; SOURCE LINE # 20
0000 D291              SETB    P1_1
                                           ; SOURCE LINE # 21
0002 00                NOP     
                                           ; SOURCE LINE # 22
0003 D290              SETB    P1_0
                                           ; SOURCE LINE # 23
0005 00                NOP     
                                           ; SOURCE LINE # 24
0006 00                NOP     
                                           ; SOURCE LINE # 25
0007 00                NOP     
                                           ; SOURCE LINE # 26
0008 00                NOP     
                                           ; SOURCE LINE # 27
0009 00                NOP     
                                           ; SOURCE LINE # 28
000A 00                NOP     
                                           ; SOURCE LINE # 29
000B C291              CLR     P1_1
                                           ; SOURCE LINE # 30
000D 00                NOP     
                                           ; SOURCE LINE # 31
000E 00                NOP     
                                           ; SOURCE LINE # 32
000F 00                NOP     
                                           ; SOURCE LINE # 33
0010 00                NOP     
                                           ; SOURCE LINE # 34
0011 00                NOP     
                                           ; SOURCE LINE # 35
0012 C290              CLR     P1_0
                                           ; SOURCE LINE # 36
0014 00                NOP     
                                           ; SOURCE LINE # 37
0015 00                NOP     
                                           ; SOURCE LINE # 38
0016 00                NOP     
                                           ; SOURCE LINE # 39
0017 00                NOP     
                                           ; SOURCE LINE # 40
0018 00                NOP     
                                           ; SOURCE LINE # 41
0019 00                NOP     
C51 COMPILER V7.50   IIC                                                                   05/27/2006 14:01:00 PAGE 14  

                                           ; SOURCE LINE # 42
001A 22                RET     
             ; FUNCTION IIC_Start (END)

             ; FUNCTION IIC_Stop (BEGIN)
                                           ; SOURCE LINE # 44
                                           ; SOURCE LINE # 45
                                           ; SOURCE LINE # 46
0000 C291              CLR     P1_1
                                           ; SOURCE LINE # 47
0002 00                NOP     
                                           ; SOURCE LINE # 48
0003 D290              SETB    P1_0
                                           ; SOURCE LINE # 49
0005 00                NOP     
                                           ; SOURCE LINE # 50
0006 00                NOP     
                                           ; SOURCE LINE # 51
0007 00                NOP     
                                           ; SOURCE LINE # 52
0008 00                NOP     
                                           ; SOURCE LINE # 53
0009 00                NOP     
                                           ; SOURCE LINE # 54
000A D291              SETB    P1_1
                                           ; SOURCE LINE # 55
000C 00                NOP     
                                           ; SOURCE LINE # 56
000D 00                NOP     
                                           ; SOURCE LINE # 57
000E 00                NOP     
                                           ; SOURCE LINE # 58
000F 00                NOP     
                                           ; SOURCE LINE # 59
0010 22                RET     
             ; FUNCTION IIC_Stop (END)

             ; FUNCTION IIC_Read (BEGIN)
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 62
                                           ; SOURCE LINE # 63
;---- Variable 'IIC_data' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
                                           ; SOURCE LINE # 65
0002 D291              SETB    P1_1
                                           ; SOURCE LINE # 66
;---- Variable 'i' assigned to Register 'R6' ----
0004 FE                MOV     R6,A
0005         ?C0003:
                                           ; SOURCE LINE # 67
                                           ; SOURCE LINE # 68
0005 00                NOP     
                                           ; SOURCE LINE # 69
0006 C290              CLR     P1_0
                                           ; SOURCE LINE # 70
0008 00                NOP     
                                           ; SOURCE LINE # 71
0009 00                NOP     
                                           ; SOURCE LINE # 72

⌨️ 快捷键说明

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