📄 595_4bit_good闪烁.lst
字号:
A51 MACRO ASSEMBLER 595_4BIT_GOOD闪烁 10/18/2008 14:16:57 PAGE 1
MACRO ASSEMBLER A51 V1.11
OBJECT MODULE PLACED IN 595_4BIT_GOOD闪烁.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE 595_4BIT_GOOD闪烁.ASM DB
LOC OBJ LINE SOURCE
1 ;******************************************************************
2 ;模块名: C52开发板 硬件型号: STC89C52
3 ;创建人: 张轩伟 日期: 2008_10_15
4 ;修改人: 张轩伟 日期: 2008_10_16
5 ;功能描述: 595串行驱动4位八段数码管,闪烁及左推显示GOOD
6 ;其他说明: 采用查询表格方式
7 ;版本: 1.0
8 ;******************************************************************
00A4 9 CLK BIT P2.4
00A3 10 STB BIT P2.3
00A2 11 SDATA BIT P2.2
0060 12 BUFF EQU 60H
0000 13 ORG 0000H
0000 0130 14 AJMP MAIN
0030 15 ORG 0030H
0030 758160 16 MAIN: MOV SP,#60H
17 ;LCALL DELAY
0033 12003B 18 LCALL INIAL
0036 1200A0 19 DIS: LCALL RIGHT
0039 80FB 20 JMP DIS
21 ;==================================================================
22 ;初始化程序
23 ;==================================================================
003B 75A000 24 INIAL: MOV P2,#00H ;初始化P2.0口
003E 7820 25 MOV R0,#20H ;初始化传送位数。32位,四片595串联
0040 7908 26 MOV R1,#08H ;初始化传送位数。8 位,一片595数据
0042 7A04 27 MOV R2,#04H
0044 22 28 RET
29 ;==================================================================
30 ;传送1位数据
31 ;==================================================================
0045 33 32 S_BIT: RLC A ;带进位右移A中数据,
0046 92A2 33 MOV SDATA,C ;由SDATA串行发送数据
0048 C2A4 34 CLR CLK ;CLK低
004A D2A4 35 SETB CLK ;CLK高
004C C2A4 36 CLR CLK ;CLK低,,,完成上升沿过程,将数据打入移位寄存器
37
38 ;CLR STB ;STB低
39 ;SETB STB ;STB高
40 ;CLR STB ;STB低,,,完成上升沿过程,将数据打入存储寄存器
004E 22 41 RET
42 ;==================================================================
43 ;传送8位数据
44 ;==================================================================
004F 7908 45 S_8BIT: MOV R1,#08H ;传送8位数据
0051 C2A3 46 CLR STB ;清STB
0053 C2A4 47 CLR CLK ;清CLK
0055 120045 48 S_82: LCALL S_BIT
0058 D9FB 49 DJNZ R1,S_82 ;8位数据依次打入,循环8次
50 ;CLR STB ;STB低
51 ;SETB STB ;STB高
52 ;CLR STB ;STB低,,,完成上升沿过程,将数据打入存储寄存器
005A 22 53 RET
54 ;==================================================================
55 ;传送32位数据
56 ;==================================================================
005B 7B04 57 S_FBIT: MOV R3,#04H ;决定传送的位数,04表示32位
58
A51 MACRO ASSEMBLER 595_4BIT_GOOD闪烁 10/18/2008 14:16:57 PAGE 2
005D E4 59 S_F2: CLR A
005E 93 60 MOVC A,@A+DPTR
005F A3 61 INC DPTR
0060 12004F 62 LCALL S_8BIT
0063 DBF8 63 DJNZ R3,S_F2
0065 C2A3 64 CLR STB
0067 D2A3 65 SETB STB
0069 C2A3 66 CLR STB ;32位数据全部打出
006B 22 67 RET
68 ;==================================================================
69 ;GOOD
70 ;==================================================================
006C 900102 71 GOOD: MOV DPTR,#G_TAB
006F 12005B 72 LCALL S_FBIT
0072 22 73 RET
74 ;==================================================================
75 ;OOOO
76 ;==================================================================
0073 900106 77 ZERO: MOV DPTR,#Z_TAB
0076 12005B 78 LCALL S_FBIT
0079 22 79 RET
80 ;==================================================================
81 ;测试
82 ;==================================================================
007A 900102 83 CS: MOV DPTR,#G_TAB
007D 12005B 84 LCALL S_FBIT
0080 22 85 RET
86 ;==================================================================
87 ;闪烁子程序
88 ;==================================================================
0081 12006C 89 LIGHT: LCALL GOOD
0084 1200FA 90 LCALL DELAY
0087 1200FA 91 LCALL DELAY
008A 1200FA 92 LCALL DELAY
008D 1200FA 93 LCALL DELAY
0090 120073 94 LCALL ZERO
0093 1200FA 95 LCALL DELAY
0096 1200FA 96 LCALL DELAY
0099 1200FA 97 LCALL DELAY
009C 1200FA 98 LCALL DELAY
99
009F 22 100 RET
101 ;==================================================================
102 ;右推子程序
103 ;==================================================================
00A0 E4 104 RIGHT: CLR A
00A1 90010A 105 MOV DPTR,#G1
00A4 12005B 106 LCALL S_FBIT
00A7 1200F1 107 LCALL DE_10
00AA E4 108 CLR A
00AB 90010E 109 MOV DPTR,#G2
00AE 12005B 110 LCALL S_FBIT
00B1 1200F1 111 LCALL DE_10
00B4 E4 112 CLR A
00B5 900112 113 MOV DPTR,#G3
00B8 12005B 114 LCALL S_FBIT
00BB 1200F1 115 LCALL DE_10
00BE E4 116 CLR A
00BF 900102 117 MOV DPTR,#G_TAB
00C2 12005B 118 LCALL S_FBIT
00C5 1200F1 119 LCALL DE_10
00C8 E4 120 CLR A
00C9 900116 121 MOV DPTR,#G4
00CC 12005B 122 LCALL S_FBIT
00CF 1200F1 123 LCALL DE_10
00D2 E4 124 CLR A
A51 MACRO ASSEMBLER 595_4BIT_GOOD闪烁 10/18/2008 14:16:57 PAGE 3
00D3 90011A 125 MOV DPTR,#G5
00D6 12005B 126 LCALL S_FBIT
00D9 1200F1 127 LCALL DE_10
00DC E4 128 CLR A
00DD 90011E 129 MOV DPTR,#G6
00E0 12005B 130 LCALL S_FBIT
00E3 1200F1 131 LCALL DE_10
00E6 E4 132 CLR A
00E7 900106 133 MOV DPTR,#Z_TAB
00EA 12005B 134 LCALL S_FBIT
00ED 1200F1 135 LCALL DE_10
00F0 22 136 RET
137 ;==================================================================
138 ;延时程序
139 ;==================================================================
00F1 7BA4 140 DE_10: MOV R3,#0A4H
00F3 7CFF 141 DELY: MOV R4,#0FFH
00F5 DCFE 142 DJNZ R4,$
00F7 DBFA 143 DJNZ R3,DELY
00F9 22 144 RET
00FA 7D08 145 DELAY: MOV R5,#08H
00FC 1200FA 146 DE_1: LCALL DELAY
00FF DDFB 147 DJNZ R5,DE_1
0101 22 148 RET
149 ;==================================================================
150 ;1、2、3、4
151 ;==================================================================
0102 A1 152 G_TAB: DB 0a1H
0103 A3 153 DB 0a3H
0104 A3 154 DB 0a3H
0105 90 155 DB 090H
0106 FF 156 Z_TAB: DB 0FFH
0107 FF 157 DB 0FFH
0108 FF 158 DB 0FFH
0109 FF 159 DB 0FFH
010A FF 160 G1: DB 0FFH
010B FF 161 DB 0FFH
010C FF 162 DB 0FFH
010D A1 163 DB 0A1H
010E FF 164 G2: DB 0FFH
010F FF 165 DB 0FFH
0110 A1 166 DB 0A1H
0111 A3 167 DB 0A3H
0112 FF 168 G3: DB 0FFH
0113 A1 169 DB 0A1H
0114 A3 170 DB 0A3H
0115 A3 171 DB 0A3H
0116 A3 172 G4: DB 0A3H
0117 A3 173 DB 0A3H
0118 90 174 DB 090H
0119 FF 175 DB 0FFH
011A A3 176 G5: DB 0A3H
011B 90 177 DB 090H
011C FF 178 DB 0FFH
011D FF 179 DB 0FFH
011E 90 180 G6: DB 090H
011F FF 181 DB 0FFH
0120 FF 182 DB 0FFH
0121 FF 183 DB 0FFH
184 END
A51 MACRO ASSEMBLER 595_4BIT_GOOD闪烁 10/18/2008 14:16:57 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
BUFF . . . . . . . N NUMB 0060H A
CLK. . . . . . . . B ADDR 00A0H.4 A
CS . . . . . . . . C ADDR 007AH A
DELAY. . . . . . . C ADDR 00FAH A
DELY . . . . . . . C ADDR 00F3H A
DE_1 . . . . . . . C ADDR 00FCH A
DE_10. . . . . . . C ADDR 00F1H A
DIS. . . . . . . . C ADDR 0036H A
G1 . . . . . . . . C ADDR 010AH A
G2 . . . . . . . . C ADDR 010EH A
G3 . . . . . . . . C ADDR 0112H A
G4 . . . . . . . . C ADDR 0116H A
G5 . . . . . . . . C ADDR 011AH A
G6 . . . . . . . . C ADDR 011EH A
GOOD . . . . . . . C ADDR 006CH A
G_TAB. . . . . . . C ADDR 0102H A
INIAL. . . . . . . C ADDR 003BH A
LIGHT. . . . . . . C ADDR 0081H A
MAIN . . . . . . . C ADDR 0030H A
P2 . . . . . . . . D ADDR 00A0H A
RIGHT. . . . . . . C ADDR 00A0H A
SDATA. . . . . . . B ADDR 00A0H.2 A
SP . . . . . . . . D ADDR 0081H A
STB. . . . . . . . B ADDR 00A0H.3 A
S_82 . . . . . . . C ADDR 0055H A
S_8BIT . . . . . . C ADDR 004FH A
S_BIT. . . . . . . C ADDR 0045H A
S_F2 . . . . . . . C ADDR 005DH A
S_FBIT . . . . . . C ADDR 005BH A
ZERO . . . . . . . C ADDR 0073H A
Z_TAB. . . . . . . C ADDR 0106H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -