📄 lcd显示密码锁.lst
字号:
A51 MACRO ASSEMBLER LCD蟔示胈码薩 06/02/2005 00:38:54 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN .\LCD显示密码锁.obj
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE C:\Documents and Settings\Stars\桌面\LCD显示密码锁.ASM SET(SMALL) DEBUG PR
INT(.\LCD显示密码锁.lst) OBJECT(.\LCD显示密码锁.obj) EP
LOC OBJ LINE SOURCE
00B5 1 SCL EQU P3.5
00B6 2 SDA EQU P3.6
3 ;R1为接收数据的开始位置
4 ;R4为数据在2401内的存放地址
5 ;R5为读取数据的字节数
0000 7C01 6 MOV R4,#01H ;数据存储地址+读
0002 7D06 7 MOV R5,#06H
0004 7971 8 MOV R1,#71H
0006 120009 9 LCALL RD_BYTLOOP
0009 10 RD_BYTLOOP:
0009 120014 11 LCALL READ_BYTE
000C F7 12 MOV @R1,A
000D 09 13 INC R1
000E 0C 14 INC R4
000F 0C 15 INC R4
0010 DDF7 16 DJNZ R5,RD_BYTLOOP
0012 8017 17 JMP SEND_MES
18
19 ;IC卡读取数据入口函数,
0014 20 READ_BYTE:
0014 120041 21 LCALL START_BIT
0017 74A0 22 MOV A,#0A0H
0019 120072 23 LCALL SEND
001C 120041 24 LCALL START_BIT
001F EC 25 MOV A,R4
0020 120072 26 LCALL SEND
0023 E4 27 CLR A
0024 12004E 28 LCALL READ
0027 12008C 29 LCALL STOP_BIT
002A 22 30 RET
31
32
33 ;R1为写入数据的开始位置
34 ;R4为数据在2401内的存放地址
35 ;R5为写入数据的字节数
002B 36 SEND_MES:
002B 1141 37 CALL START_BIT
002D 7CA0 38 MOV R4,#0A0H
002F EC 39 MOV A, R4
0030 1172 40 CALL SEND
41
42
0032 7971 43 MOV R1,#71H
0034 7D06 44 MOV R5,#06H ;写第一页
0036 E7 45 WRI: MOV A,@R1
0037 1172 46 CALL SEND
0039 09 47 INC R1 ;地址加一
003A DDFA 48 DJNZ R5,WRI
003C 118C 49 CALL STOP_BIT
003E 80FE 50 JMP $
0040 22 51 RET
52
0041 53 START_BIT: ;起始位
0041 D2B6 54 SETB SDA
0043 D2B5 55 SETB SCL
0045 1197 56 CALL DELAY
0047 C2B6 57 CLR SDA
A51 MACRO ASSEMBLER LCD蟔示胈码薩 06/02/2005 00:38:54 PAGE 2
0049 1197 58 CALL DELAY
004B C2B5 59 CLR SCL
004D 22 60 RET
61
004E 62 READ: ;数据读取
004E D2B6 63 SETB SDA
0050 7A08 64 MOV R2,#08H
0052 C2B5 65 CLR SCL
0054 120097 66 LCALL DELAY
0057 00 67 NOP
0058 68 OUT1: ;读一位数据
0058 D2B5 69 SETB SCL
005A 120097 70 LCALL DELAY
005D A2B6 71 MOV C,SDA
005F 33 72 RLC A
0060 C2B5 73 CLR SCL
0062 120097 74 LCALL DELAY
0065 DAF1 75 DJNZ R2,OUT1
0067 120097 76 LCALL DELAY
006A D2B5 77 SETB SCL
006C 120097 78 LCALL DELAY
006F C2B5 79 CLR SCL
0071 22 80 RET
0072 7A08 81 SEND: MOV R2,#08H
0074 33 82 IN: RLC A ;传送
0075 92B6 83 MOV SDA,C
0077 D2B5 84 SETB SCL
0079 1197 85 CALL DELAY
007B C2B5 86 CLR SCL
007D 1197 87 CALL DELAY
007F DAF3 88 DJNZ R2,IN
0081 1197 89 CALL DELAY
0083 D2B5 90 SETB SCL ;确认信号
0085 1197 91 CALL DELAY
0087 C2B5 92 CLR SCL
0089 1197 93 CALL DELAY
008B 22 94 RET
95
008C 96 STOP_BIT: ;停止位
008C C2B6 97 CLR SDA
008E D2B5 98 SETB SCL
0090 1197 99 CALL DELAY
0092 D2B6 100 SETB SDA
0094 1197 101 CALL DELAY
0096 22 102 RET
0097 00 103 DELAY: NOP
0098 00 104 NOP
0099 22 105 RET
106 END
A51 MACRO ASSEMBLER LCD蟔示胈码薩 06/02/2005 00:38:54 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY. . . . . . . C ADDR 0097H A
IN . . . . . . . . C ADDR 0074H A
OUT1 . . . . . . . C ADDR 0058H A
P3 . . . . . . . . D ADDR 00B0H A
RD_BYTLOOP . . . . C ADDR 0009H A
READ . . . . . . . C ADDR 004EH A
READ_BYTE. . . . . C ADDR 0014H A
SCL. . . . . . . . B ADDR 00B0H.5 A
SDA. . . . . . . . B ADDR 00B0H.6 A
SEND . . . . . . . C ADDR 0072H A
SEND_MES . . . . . C ADDR 002BH A
START_BIT. . . . . C ADDR 0041H A
STOP_BIT . . . . . C ADDR 008CH A
WRI. . . . . . . . C ADDR 0036H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -