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

📄 iic_asm.lst

📁 一段C的小程序
💻 LST
字号:
A51 MACRO ASSEMBLER  IIC_ASM                                                              12/12/2005 16:58:38 PAGE     1


MACRO ASSEMBLER A51 V7.03
OBJECT MODULE PLACED IN IIC_ASM.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE IIC_ASM.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  0091                 1     SCL     bit  P1.1    ;24c512时钟口线   //这是我的片选信号P23()
  0090                 2     SDA     bit  P1.0    ;24c512数据口线  //这是我的片选信号P22()
  00A3                 3     WP     bit  P2.3     ;24c512数据口线  //这是我的片选信号P22()
                       4     
  0060                 5     index   equ  60h
  0061                 6     addrlo  equ  61h
  0062                 7     addrhi  equ  62h
  0063                 8     kount   equ  63h  ;24c512占用RAM 地址60---63h
  0064                 9     EnableWrite  equ 64h ;如果写入的地址小于150h,这时该值为aa-->enable ,else 不能写!
                      10     
                      11     DDDDDCODE SEGMENT CODE  UNIT  ;程序段
                      12     
                      13     ;*********************************************************
                      14     ;H_ADDR IN R7;L_ADDR IN R5; BYTE NUMBER IN R3
                      15     ;*********************************************************
                      16     ;24C512写程序
                      17     ;要写的数据r3个防在RAM oxd0 开始;
                      18     ;写入24C512的r7_r5开始的地址
                      19     PUBLIC _IIC_WRITE_ONEBYTE
----                  20     RSEG DDDDDCODE
0000 78D0             21     _IIC_WRITE_ONEBYTE: mov r0,#0d0h
0002 7CA6             22                         mov r4,#0a6h
0004 8B63             23                         mov kount,r3
0006 8860             24                         mov index,r0
0008 8D61             25                         mov addrlo,r5
000A 8F62             26                         mov addrhi,r7   ;0020,40,8
                      27                         ;---------------------------------------------
000C BF0007           28                        cjne r7,#000h,writeokA  ;如果低位为0
                      29     
000F 7864             30                         mov r0,#064h
0011 B6AA1C           31                         cjne @r0, #0aah ,endme
0014 8011             32                                jmp writeok
                      33                         ;---------------------------------------------
0016                  34     writeokA:
0016 BF010E           35                         cjne r7,#001h,writeok  ;如果低位为1
0019 BD5002           36                         cjne r5,#050h,writeokB  ;如果高位为1
001C 8009             37                                jmp writeok
                      38     
001E 5007             39     writeokB:    jnc  writeok
0020 7864             40                         mov r0,#064h
0022 B6AA0B           41                         cjne @r0, #0aah ,endme
0025 8000             42                         jmp writeok
                      43     
                      44     
                      45     
0027 78D0             46     writeok:            mov r0,#0d0h
0029 C2A3             47                         CLR WP
002B 120000   F       48                         call  write_block    
002E D2A3             49                         SETB WP
0030                  50     endme:
0030 7800             51                       mov r0,#000h
0032 8864             52                       mov EnableWrite,r0
0034 22               53                         ret
                      54     ;24C512读程序
                      55     ;从24C512 的r7_r5地址读出r3个数据放在oxd0;
                      56     PUBLIC _IIC_READ_ONEBYTE              ;入口地址
----                  57     RSEG   DDDDDCODE
0035 78D0             58     _IIC_READ_ONEBYTE:    mov r0,#0d0H
A51 MACRO ASSEMBLER  IIC_ASM                                                              12/12/2005 16:58:38 PAGE     2

0037 7CA6             59                           mov r4,#0a6h
0039 8D61             60                           mov addrlo,r5   ;0020 READ
003B 8F62             61                           mov addrhi,r7
003D 8B63             62                           mov kount,r3
003F 8860             63                           mov index ,r0
0041 120000   F       64                           call  verify_block_fill
0044 22               65                           ret
                      66     ;以下为读写模块;请不要改变

⌨️ 快捷键说明

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