📄 74hc595-165.lst
字号:
A51 MACRO ASSEMBLER 74HC595_165 09/16/2009 23:41:27 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN 74hc595-165.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 74hc595-165.SRC SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ; 74hc595-165.SRC generated from: 74hc595-165.c
2 ; COMPILER INVOKED BY:
3 ; C:\Keil\C51\BIN\C51.EXE 74hc595-165.c BROWSE DEBUG OBJECTEXTEND
4
5 $nomod51
6
7 NAME _74HC595_165
8
0080 9 P0 DATA 080H
0090 10 P1 DATA 090H
00A0 11 P2 DATA 0A0H
00B0 12 P3 DATA 0B0H
00B4 13 T0 BIT 0B0H.4
00D6 14 AC BIT 0D0H.6
00B5 15 T1 BIT 0B0H.5
0090 16 T2 BIT 090H.0
00AF 17 EA BIT 0A8H.7
0095 18 MOSIO BIT 090H.5
0096 19 R_CLK BIT 090H.6
0097 20 S_CLK BIT 090H.7
00A8 21 IE DATA 0A8H
00B5 22 IN_Dat BIT 0B0H.5
00B6 23 OE BIT 0B0H.6
00B4 24 IN_PL BIT 0B0H.4
00CE 25 EXF2 BIT 0C8H.6
00B7 26 RD BIT 0B0H.7
00AC 27 ES BIT 0A8H.4
00B8 28 IP DATA 0B8H
0098 29 RI BIT 098H.0
00B2 30 INT0 BIT 0B0H.2
00D7 31 CY BIT 0D0H.7
0099 32 TI BIT 098H.1
00B3 33 INT1 BIT 0B0H.3
00CB 34 RCAP2H DATA 0CBH
00BC 35 PS BIT 0B8H.4
0081 36 SP DATA 081H
0091 37 T2EX BIT 090H.1
00D2 38 OV BIT 0D0H.2
00CA 39 RCAP2L DATA 0CAH
00C9 40 C_T2 BIT 0C8H.1
00B6 41 WR BIT 0B0H.6
00CD 42 RCLK BIT 0C8H.5
00CC 43 TCLK BIT 0C8H.4
0099 44 SBUF DATA 099H
0087 45 PCON DATA 087H
0098 46 SCON DATA 098H
0089 47 TMOD DATA 089H
0088 48 TCON DATA 088H
0089 49 IE0 BIT 088H.1
008B 50 IE1 BIT 088H.3
00F0 51 B DATA 0F0H
00C8 52 CP_RL2 BIT 0C8H.0
00E0 53 ACC DATA 0E0H
00A9 54 ET0 BIT 0A8H.1
00AB 55 ET1 BIT 0A8H.3
008D 56 TF0 BIT 088H.5
00AD 57 ET2 BIT 0A8H.5
008F 58 TF1 BIT 088H.7
A51 MACRO ASSEMBLER 74HC595_165 09/16/2009 23:41:27 PAGE 2
00CF 59 TF2 BIT 0C8H.7
009A 60 RB8 BIT 098H.2
008C 61 TH0 DATA 08CH
00A8 62 EX0 BIT 0A8H.0
0088 63 IT0 BIT 088H.0
008D 64 TH1 DATA 08DH
009B 65 TB8 BIT 098H.3
00AA 66 EX1 BIT 0A8H.2
008A 67 IT1 BIT 088H.2
00CD 68 TH2 DATA 0CDH
00D0 69 P BIT 0D0H.0
009F 70 SM0 BIT 098H.7
008A 71 TL0 DATA 08AH
009E 72 SM1 BIT 098H.6
008B 73 TL1 DATA 08BH
009D 74 SM2 BIT 098H.5
00CC 75 TL2 DATA 0CCH
00B9 76 PT0 BIT 0B8H.1
00BB 77 PT1 BIT 0B8H.3
00D3 78 RS0 BIT 0D0H.3
00BD 79 PT2 BIT 0B8H.5
008C 80 TR0 BIT 088H.4
00D4 81 RS1 BIT 0D0H.4
008E 82 TR1 BIT 088H.6
00CA 83 TR2 BIT 0C8H.2
00B8 84 PX0 BIT 0B8H.0
00BA 85 PX1 BIT 0B8H.2
0083 86 DPH DATA 083H
0082 87 DPL DATA 082H
00CB 88 EXEN2 BIT 0C8H.3
009C 89 REN BIT 098H.4
00C8 90 T2CON DATA 0C8H
00B0 91 RXD BIT 0B0H.0
00B1 92 TXD BIT 0B0H.1
00D5 93 F0 BIT 0D0H.5
00D0 94 PSW DATA 0D0H
95 ?PR?_HC595SendData?74HC595_165 SEGMENT CODE
96 ?PR?ReHC74165?74HC595_165 SEGMENT CODE
97 EXTRN CODE (?C?LSHL)
98 EXTRN CODE (?C?LNOT)
99 PUBLIC ReHC74165
100 PUBLIC _HC595SendData
101 ;
102 ; /*************************此部分为74HC595的驱动程序使用SPI总线连接**********************
***************/
103
104 ; #include<reg52.h>
105 ; #include <intrins.h>
106 ; #include <Function.h>
107 ;
108 ; #define NOP() _nop_() /* 定义空指令 */
109 ; #define _Nop() _nop_() /*定义空指令*/
110 ;
111 ;
112 ; //SPI IO
113 ; sbit MOSIO =P1^5;
114 ; sbit R_CLK =P1^6;
115 ; sbit S_CLK =P1^7;
116 ; sbit IN_PL =P3^4; //74HC165 shift load 把数据加载到锁存器中
117 ; sbit IN_Dat=P3^5; //74HC165 output 数据移出
118 ; sbit OE =P3^6;
119 ;
120 ;
121 ;
122 ; /****************************************************************************************
*****************
A51 MACRO ASSEMBLER 74HC595_165 09/16/2009 23:41:27 PAGE 3
123 ; ** 函数名称: HC595SendData
124 ; ** 功能描述: 向SPI总线发送数据
125 ; *****************************************************************************************
****************/
126 ; void HC595SendData(unsigned int SendVal)
127
---- 128 RSEG ?PR?_HC595SendData?74HC595_165
0000 129 _HC595SendData:
130 USING 0
131 ; SOURCE LINE # 26
132 ;---- Variable 'SendVal?040' assigned to Register 'R4/R5' ----
0000 AD07 133 MOV R5,AR7
0002 AC06 134 MOV R4,AR6
135 ; {
136 ; SOURCE LINE # 27
137 ; unsigned char i;
138 ;
139 ; for(i=0;i<16;i++)
140 ; SOURCE LINE # 30
141 ;---- Variable 'i?041' assigned to Register 'R3' ----
0004 E4 142 CLR A
0005 FB 143 MOV R3,A
0006 144 ?C0001:
145 ; {
146 ; SOURCE LINE # 31
147 ; if((SendVal<<i)&0x8000) MOSIO=1; // set dataline high
148 ; SOURCE LINE # 32
0006 ED 149 MOV A,R5
0007 AE04 150 MOV R6,AR4
0009 A803 151 MOV R0,AR3
000B 08 152 INC R0
000C 8005 153 SJMP ?C0013
000E 154 ?C0012:
000E C3 155 CLR C
000F 33 156 RLC A
0010 CE 157 XCH A,R6
0011 33 158 RLC A
0012 CE 159 XCH A,R6
0013 160 ?C0013:
0013 D8F9 161 DJNZ R0,?C0012
0015 EE 162 MOV A,R6
0016 30E704 163 JNB ACC.7,?C0004
0019 D295 164 SETB MOSIO
001B 8002 165 SJMP ?C0005
001D 166 ?C0004:
167 ; else MOSIO=0;
168 ; SOURCE LINE # 33
001D C295 169 CLR MOSIO
001F 170 ?C0005:
171 ;
172 ; S_CLK=0;
173 ; SOURCE LINE # 35
001F C297 174 CLR S_CLK
175 ; NOP();
176 ; SOURCE LINE # 36
0021 00 177 NOP
178 ; NOP();
179 ; SOURCE LINE # 37
0022 00 180 NOP
181 ; S_CLK=1;
182 ; SOURCE LINE # 38
0023 D297 183 SETB S_CLK
184 ; }
185 ; SOURCE LINE # 39
0025 0B 186 INC R3
0026 BB10DD 187 CJNE R3,#010H,?C0001
A51 MACRO ASSEMBLER 74HC595_165 09/16/2009 23:41:27 PAGE 4
0029 188 ?C0002:
189 ;
190 ;
191 ; R_CLK=0; //set dataline low
192 ; SOURCE LINE # 42
0029 C296 193 CLR R_CLK
194 ; NOP();
195 ; SOURCE LINE # 43
002B 00 196 NOP
197 ; NOP();
198 ; SOURCE LINE # 44
002C 00 199 NOP
200 ; R_CLK=1; //片选
201 ; SOURCE LINE # 45
002D D296 202 SETB R_CLK
203 ; OE=0;
204 ; SOURCE LINE # 46
002F C2B6 205 CLR OE
206 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -