网站导航: 首页 > 设计参考 > 正文 文章搜索
24C02读写汇编程序
 
文章编号:
081207170235
文章分类: 单片机 51系列
点 击:
...
关 键 词: 24C02
文章来源:
网络
摘 要:

 
  1. ;简洁的24C02读写汇编程序   
  2. ;--------------------------------------------   
  3.     I2C_SDA          EQU P1.6   ; PIN 5   
  4.     I2C_SCL          EQU P1.7   ; PIN 6   
  5.     
  6. ;=============================================   
  7. I2C_WRITE:  ;  WRITE 8 BYTES TO EEROM ; INPUT: A - A*8 = EEROM START ADDR    
  8.             ;                                  R0 - RAN START ADDR   
  9.             ;                            USE: C, A, R0, R6, R7   
  10.     
  11.       ACALL I2C_START    
  12.       ACALL OUT    
  13.       MOV R6#8    
  14. WR_LP:MOV A, @R0    
  15.       ACALL OUT    
  16.       INC R0    
  17.       DJNZ R6, WR_LP    
  18.       AJMP I2C_STOP      
  19.     
  20. ;==========================================   
  21. I2C_READ:   ;  READ 8 BYTES FROM EEROM ; INPUT: A - A*8 = EEROM START ADDR    
  22.             ;                                   R0 - RAN START ADDR   
  23.             ;                            USE: C, A, R0, R6, R7   
  24.           
  25.       ACALL I2C_START    
  26.       ACALL OUT    
  27.       MOV R6#8    
  28.       MOV A#0A1H; #RDCMD   
  29.       ACALL OUTS    
  30. BRDLP:    
  31.           MOV R7#8    
  32.           SETB I2C_SDA    
  33. INLP:     CLR  I2C_SCL    
  34.           ACALL DELAY6    
  35.           SETB  I2C_SCL    
  36.           NOP    
  37.           MOV C, I2C_SDA    
  38.           RLC A    
  39.           DJNZ R7, INLP    
  40.           CLR   I2C_SCL    
  41.           MOV @R0A    
  42.           INC R0    
  43.    DJNZ R6, ACKLP    
  44. ;;;;----------------------------   
  45. I2C_STOP:    
  46.           CLR I2C_SDA    
  47.           ACALL DELAY5    
  48.           SETB I2C_SCL    
  49.           ACALL DELAY5    
  50.           SETB I2C_SDA    
  51. DELAY6:    
  52.           NOP    
  53. DELAY5:    
  54.           NOP    
  55.           RET    
  56. ;;-----------------------------   
  57. I2C_START:    
  58.       SWAP A    
  59.       RR A    
  60.       MOV R6A    
  61.       MOV A#0A0H; #WTCMD   
  62.       ACALL OUTS    
  63.       MOV AR6    
  64.       RET    
  65. ;-------------------------------                     
  66. ACKLP:    
  67.       CLR I2C_SDA     
  68.       SETB I2C_SCL    
  69.       ACALL DELAY5    
  70.       CLR I2C_SCL    
  71.       AJMP BRDLP    
  72. ;=======================   
  73. OUTS:    
  74.       SETB I2C_SDA      
  75.       SETB I2C_SCL     
  76.       ACALL DELAY5     
  77.       CLR I2C_SDA      
  78.       ACALL DELAY5     
  79.       CLR I2C_SCL      
  80. ;========================   
  81. OUT:    
  82.       SETB C    
  83.       MOV R7#9    
  84. OTLP: RLC A    
  85.       NOP    
  86.       MOV I2C_SDA, C    
  87.       NOP    
  88.       NOP    
  89.       SETB I2C_SCL    
  90.       ACALL DELAY5    
  91.       CLR  I2C_SCL    
  92.       DJNZ R7, OTLP    
  93.       RET    
  94. ;========================   
  95. END  

 

 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4