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

📄 i2c.l

📁 使用三星芯片的控制程序,可供三星8位MCU初学者参考!
💻 L
📖 第 1 页 / 共 2 页
字号:
  186  0DBD   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  187  0DC0   FF                 nop
  188  0DC1   AF         	ret        
  189                    ;***********************************************
  190                    
  191                    ;***********************************************
  192  0DC2              I2C_stop:       
  193  0DC2   FF         	nop
  194  0DC3   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  195  0DC6   FF                 nop
  196  0DC7   56 E2 EF           and I2C_PORT,#I2C_SDA0  ;SDA=0
  197  0DCA   FF                 nop
  198  0DCB   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  199  0DCE   FF                 nop
  200  0DCF   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1	
  201  0DD2   FF                 nop
  202  0DD3   AF         	ret        
  203                    ;***********************************************
  204                    
  205                    ;***********************************************
  206  0DD4              I2C_ask:      
  207  0DD4   FF         	nop
  208  0DD5   56 E2 EF           and I2C_PORT,#I2C_SDA0  ;SDA=0
  209  0DD8   FF                 nop
  210  0DD9   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  211  0DDC   FF                 nop
  212  0DDD   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  213  0DE0   FF                 nop
  214  0DE1   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1
  215  0DE4   FF                 nop
  216  0DE5   AF         	ret        
  217                    ;***********************************************
  218                    
  219                    ;***********************************************
  220  0DE6              I2C_noask:      
  221  0DE6   FF         	nop
  222  0DE7   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1
  223  0DEA   FF                 nop
  224  0DEB   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  225  0DEE   FF                 nop
  226  0DEF   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  227  0DF2   FF                 nop
  228  0DF3   AF         	ret        
  229                    ;***********************************************
  230                    
  231                    ;***********************************************
  232  0DF4              I2C_cack:      
  233  0DF4   FF         	nop
  234  0DF5   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1
  235  0DF8   FF                 nop
  236  0DF9   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  237  0DFC   E6 16 00           ld  I2C_ack_flag,#00H
  238  0DFF   76 E2 10           tm  p2,#00010000B
  239  0E02   EB 03              jr  nz,I2C_nocack
  240  0E04   E6 16 01           ld  I2C_ack_flag,#01H
  241  0E07              I2C_nocack:
  242  0E07   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  243  0E0A   FF                 nop                        
  244  0E0B   AF         	ret        
  245                    ;***********************************************
  246                    
  247                    ;***********************************************
  248  0E0C              WRbyte:
  249  0E0C   0C 08              ld  r0,#08H
  250  0E0E              wlp:
  251  0E0E   10 17              rlc  I2C_wrdata
  252  0E10   7B 02              jr   c,wr1
  253  0E12   8B 10              jr   wr0
  254                            
  255  0E14              wr1:
  256  0E14   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1
  257  0E17   FF                 NOP
  258  0E18   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  259  0E1B   FF                 nop
  260  0E1C   FF                 nop
  261  0E1D   FF                 nop
  262  0E1E   FF                 nop
  263  0E1F   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  264  0E22   8B 10              jr  wlp1
  265                            
  266  0E24              wr0:
  267  0E24   56 E2 EF           and I2C_PORT,#I2C_SDA0  ;SDA=0
  268  0E27   FF                 NOP
  269  0E28   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  270  0E2B   FF                 nop
  271  0E2C   FF                 nop
  272  0E2D   FF                 nop
  273  0E2E   FF                 nop
  274  0E2F   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  275  0E32   8B 00              jr  wlp1
  276                    
  277  0E34              wlp1:
  278  0E34   26 C0 01           sub  r0,#01H
  279  0E37   EB D5              jr   nz,wlp
  280  0E39   AF                 ret
  281                    ;***************************************************
  282                    
  283                    ;***************************************************
  284  0E3A              RDbyte:
  285  0E3A   0C 08              ld  r0,#08H
  286  0E3C              rlp:
  287  0E3C   46 E2 10           or  I2C_PORT,#I2C_SDA1  ;SDA=1
  288  0E3F   FF                 nop
  289  0E40   46 E2 20           or  I2C_PORT,#I2C_SCL1  ;SCL=1
  290  0E43   FF                 nop
  291  0E44   76 E2 10           tm  I2C_PORT,#I2C_SDA1  ;SDA=0 ?
  292  0E47   6B 05              jr  z,rd_0
  293  0E49   46 18 80           or I2C_rddata,#80H
  294  0E4C   8B 03              jr  rlp1
  295  0E4E              rd_0:   
  296  0E4E   56 18 7F           and  I2C_rddata,#7FH  
  297  0E51              rlp1:
  298  0E51   56 E2 DF           and I2C_PORT,#I2C_SCL0  ;SCL=0
  299  0E54   90 18              rl   I2C_rddata
  300  0E56   26 C0 01           sub  r0,#01H
  301  0E59   EB E1              jr   nz,rlp
  302  0E5B   AF                 ret
  303                    ;***************************************************
  304                    
  305                    ;***************************************************
  306  0E5C              WR_24C02:
  307  0E5C   F6 0D B0           call  I2C_start
  308  0E5F   E6 17 A0           ld  I2C_wrdata,#0A0H   ;write 24c02 dress
  309  0E62   F6 0E 0C           call  WRbyte
  310  0E65   F6 0D F4           call  I2C_cack
  311  0E68   76 16 01           tm  I2C_ack_flag,#01H
  312  0E6B   6B 12              jr  z,exit_wr
  313                            
  314  0E6D   E4 1A 17           ld  I2C_wrdata,I2C_dress        ;write eeprom dress
  315  0E70   F6 0E 0C           call  WRbyte
  316  0E73   F6 0D F4           call  I2C_cack
  317  0E76              wrdata:
  318  0E76   E4 19 17           ld  I2C_wrdata,I2C_data        ;write  data to 24C02
  319  0E79   F6 0E 0C           call  WRbyte
  320  0E7C   F6 0D F4           call  I2C_cack
  321                    
  322  0E7F              exit_wr:
  323  0E7F   F6 0D C2           call  I2C_stop
  324  0E82   AF                 ret        
  325                    ;***************************************************
  326                    
  327                    ;***************************************************
  328  0E83              RD_24C02:
  329  0E83   F6 0D B0           call  I2C_start
  330  0E86   E6 17 A0           ld  I2C_wrdata,#0A0H   ;write 24c02 dress A0H
  331  0E89   F6 0E 0C           call  WRbyte
  332  0E8C   F6 0D F4           call  I2C_cack
  333  0E8F   76 16 01           tm  I2C_ack_flag,#01H
  334  0E92   6B 23              jr  z,exit_rd
  335                            
  336  0E94   E4 1A 17           ld  I2C_wrdata,I2C_dress        ;write eeprom dress
  337  0E97   F6 0E 0C           call  WRbyte
  338  0E9A   F6 0D F4           call  I2C_cack
  339                            
  340  0E9D   F6 0D B0           call  I2C_start
  341  0EA0   E6 17 A0           ld  I2C_wrdata,#0A0H     ;read 24c02 dress A1H
  342  0EA3   F6 0E 0C           call  WRbyte
  343  0EA6   F6 0D F4           call  I2C_cack
  344  0EA9   76 16 01           tm  I2C_ack_flag,#01H
  345  0EAC   6B 09              jr  z,exit_rd
  346  0EAE              rddata:
  347  0EAE   F6 0E 3A           call  RDbyte
  348  0EB1   E4 18 19           ld  I2C_data,I2C_rddata ;save read data
  349  0EB4   F6 0D E6           call  I2C_noask
  350                    
  351  0EB7              exit_rd:
  352  0EB7   F6 0D C2           call  I2C_stop
  353  0EBA   AF                 ret  
  354                    ;******************************************************
  355                    
  356                    ;******************************************************
  357  0EBB              restore:
  358  0EBB   E6 1A 12           ld  I2C_dress,#lamp_status_dress
  359  0EBE   F6 0E 83           call  RD_24C02
  360  0EC1   E4 19 12           ld  lamp_status,I2C_data
  361                            
  362  0EC4   E6 1A 13           ld  I2C_dress,#sound_status_dress
  363  0EC7   F6 0E 83           call  RD_24C02
  364  0ECA   E4 19 13           ld  sound_status,I2C_data
  365                            
  366  0ECD   E6 1A 14           ld  I2C_dress,#fire_value_dress
  367  0ED0   F6 0E 83           call  RD_24C02
  368  0ED3   E4 19 14           ld   fire_value,I2C_data
  369                            
  370  0ED6   E6 1A 15           ld  I2C_dress,#temp_value_dress
  371  0ED9   F6 0E 83           call  RD_24C02
  372  0EDC   E4 19 15           ld  temp_value,I2C_data
  373  0EDF   AF                 ret
  374                    ;******************************************************
  375  0EE0              .end


Total 208 Lines Assembled - 0 Errors, 0 Warnings
Total code size 0x130


⌨️ 快捷键说明

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