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

📄 up51s007.lst

📁 UP51C开发板所有源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
0086 00              191             NOP     
0087 00              192             NOP     
0088 00              193             NOP     
0089 00              194             NOP     
008A A291            195             MOV     C,SDA                   ; 保存应答位到C
008C C290            196             CLR     SCL
008E 22              197             RET     
                     198     ; END OF SHOUT
                     199     
                     200     ;===============================================================================
----                 201             RSEG  CODE_SEG  
008F                 202     WRITE_BYTE:
                     203     ; 在指定地址写入数据
                     204     ; 传入参数: R7 --- 写入数据的地址
                     205     ; 传入参数: R5 --- 要写入的数据
                     206     ; 返回值:无
                     207     
                     208             USING   0
                     209     
008F AC07            210             MOV     R4,AR7
0091 120000   F      211             LCALL   START
                     212             
0094 7FA0            213             MOV     R7,#OP_WRITE            ; 写入器件地址和写命令
0096 120000   F      214             LCALL   SHOUT
                     215             
0099 AF04            216             MOV     R7,AR4                  ; 地址
009B 120000   F      217             LCALL   SHOUT
                     218             
009E AF05            219             MOV     R7,AR5                  ; 数据
00A0 120000   F      220             LCALL   SHOUT
                     221             
00A3 120000   F      222             LCALL   STOP
                     223     
00A6 7F0A            224             MOV     R7,#10                  ; 写入周期, 延时10ms
00A8 020000   F      225             LJMP    DELAYMS
                     226             
                     227     ; END OF WRITE_BYTE
                     228     
                     229     ;===============================================================================
----                 230             RSEG  CODE_SEG
00AB                 231     FILL_BYTE:
                     232     ; 填充数据到EEPROM内
                     233     ; 传入参数: R7 --- 要填充的数据
                     234     ; 返回值:无
                     235     
                     236             USING   0
                     237             
00AB 8F00     F      238             MOV     TMP3,R7
                     239     
00AD E4              240             CLR     A
00AE F500     F      241             MOV     TMP2,A
00B0                 242     FILL_LP:
00B0 AD00     F      243             MOV     R5,TMP3
00B2 AF00     F      244             MOV     R7,TMP2
00B4 120000   F      245             LCALL   WRITE_BYTE
                     246     
00B7 0500     F      247             INC     TMP2
00B9 E500     F      248             MOV     A,TMP2
00BB C3              249             CLR     C
00BC 947F            250             SUBB    A,#07FH
00BE 40F0            251             JC      FILL_LP
                     252             
                     253     ; END OF FILL_BYTE
                     254     
                     255     ;===============================================================================
----                 256             RSEG  CODE_SEG
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     5

00C0                 257     READ_CURRENT:
                     258     ; 在当前地址读取
                     259     ; 传入参数:无 
                     260     ; 返回值:R7 --- 读出的数据
                     261     
                     262             USING   0
00C0 120000   F      263             LCALL   START
                     264     
00C3 7FA1            265             MOV     R7,#OP_READ             ; 写入器件地址和读取命令
00C5 120000   F      266             LCALL   SHOUT
                     267             
00C8 120000   F      268             LCALL   SHIN                    ; 读取数据,保存在R7
                     269     
00CB 120000   F      270             LCALL   STOP
                     271     
00CE 22              272             RET     
                     273     ; END OF read_current
                     274     
                     275     ;===============================================================================
----                 276             RSEG  CODE_SEG
00CF                 277     READ_RANDOM:
                     278     ; 在指定地址读取
                     279     ; 传入参数:R7 --- 地址 
                     280     ; 返回值:R7 --- 读出的数据
                     281             
                     282             USING   0
00CF AD07            283             MOV     R5,AR7                  ; 暂存地址
                     284     
00D1 120000   F      285             LCALL   START
                     286     
00D4 7FA0            287             MOV     R7,#OP_WRITE            ; 写入器件地址和写入命令
00D6 120000   F      288             LCALL   SHOUT
                     289     
00D9 AF05            290             MOV     R7,AR5                  ; 写入地址
00DB 120000   F      291             LCALL   SHOUT
                     292     
00DE 120000   F      293             LCALL   READ_CURRENT            ; 在当前地址读取
                     294     
00E1 22              295             RET     
                     296     ; END OF READ_RANDOM
                     297     
                     298     ;===============================================================================
                     299     
----                 300             RSEG  CODE_SEG
00E2                 301     DELAYMS:
                     302     ; 延时子程序
                     303     ; 传入参数:R7 --- 延时值(MS) 
                     304     ; 返回值:无
                     305     
00E2 EF              306             MOV     A,R7
00E3 6009            307             JZ      END_DLYMS       
00E5                 308     DLY_LP1:
00E5 7EB9            309             MOV     R6,#185
00E7                 310     DLY_LP2:
00E7 00              311             NOP
00E8 00              312             NOP
00E9 00              313             NOP
00EA DEFB            314             DJNZ    R6,DLY_LP2
00EC DFF7            315             DJNZ    R7,DLY_LP1
                     316     
00EE                 317     END_DLYMS:
00EE 22              318             RET 
                     319             
                     320     ; END OF DELAYMS
                     321     
                     322     ;===============================================================================
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     6

----                 323             RSEG  CODE_SEG
00EF                 324     DIS_CODE:
                     325     ; 写入到AT24C01的数据串
                     326     
00EF 7E              327             DB      07EH
00F0 BD              328             DB      0BDH
00F1 DB              329             DB      0DBH
00F2 E7              330             DB      0E7H
00F3 DB              331             DB      0DBH
00F4 BD              332             DB      0BDH
00F5 7E              333             DB      07EH
00F6 FF              334             DB      0FFH
                     335     
                     336     
                     337             END
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     7

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
ADDR . . . . . . .  D ADDR   0000H   R   SEG=DATA_SEG
AR4. . . . . . . .  D ADDR   0004H   A   
AR5. . . . . . . .  D ADDR   0005H   A   
AR7. . . . . . . .  D ADDR   0007H   A   
CODE_SEG . . . . .  C SEG    00F7H       REL=UNIT
DATA_SEG . . . . .  D SEG    0003H       REL=UNIT
DELAYMS. . . . . .  C ADDR   00E2H   R   SEG=CODE_SEG
DIS_CODE . . . . .  C ADDR   00EFH   R   SEG=CODE_SEG
DLY_LP1. . . . . .  C ADDR   00E5H   R   SEG=CODE_SEG
DLY_LP2. . . . . .  C ADDR   00E7H   R   SEG=CODE_SEG
END_DLYMS. . . . .  C ADDR   00EEH   R   SEG=CODE_SEG
FILL_BYTE. . . . .  C ADDR   00ABH   R   SEG=CODE_SEG
FILL_LP. . . . . .  C ADDR   00B0H   R   SEG=CODE_SEG
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
MAIN_LP1 . . . . .  C ADDR   000FH   R   SEG=CODE_SEG
MAIN_LP2 . . . . .  C ADDR   0027H   R   SEG=CODE_SEG
MAX_ADDR . . . . .  N NUMB   007FH   A   
OP_READ. . . . . .  N NUMB   00A1H   A   
OP_WRITE . . . . .  N NUMB   00A0H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
READ_CURRENT . . .  C ADDR   00C0H   R   SEG=CODE_SEG
READ_RANDOM. . . .  C ADDR   00CFH   R   SEG=CODE_SEG
SCL. . . . . . . .  B ADDR   0090H.0 A   
SDA. . . . . . . .  B ADDR   0090H.1 A   
SHIN . . . . . . .  C ADDR   0056H   R   SEG=CODE_SEG
SHIN_LP. . . . . .  C ADDR   0058H   R   SEG=CODE_SEG
SHOUT. . . . . . .  C ADDR   006BH   R   SEG=CODE_SEG
SHOUT_LP . . . . .  C ADDR   006DH   R   SEG=CODE_SEG
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
START. . . . . . .  C ADDR   003AH   R   SEG=CODE_SEG
STOP . . . . . . .  C ADDR   0049H   R   SEG=CODE_SEG
TMP2 . . . . . . .  D ADDR   0001H   R   SEG=DATA_SEG
TMP3 . . . . . . .  D ADDR   0002H   R   SEG=DATA_SEG
WL007. . . . . . .  N NUMB   -----       
WRITE_BYTE . . . .  C ADDR   008FH   R   SEG=CODE_SEG


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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