📄 74hc595.lst
字号:
C51 COMPILER V9.00 74HC595 09/13/2012 17:12:02 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE 74HC595
OBJECT MODULE PLACED IN 74hc595.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 74hc595.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include<REGX52.H>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit din=P2^1;
5 sbit sck=P2^0;
6 sbit cs=P2^2;
7 uchar adata;
8 void delay(uint x);
9 void send(uchar ch);
10 void out(adata);
11 void _nop_();
12 void delay(uint x)
13 {
14 1 uchar tw;
15 1 while(x-->0)
16 1 {
17 2 for(tw=0;tw<125;tw++);
18 2 }
19 1 }
20 void send(uchar ch)
21 {
22 1 uchar bitcounter=8;
23 1 uchar tmp;
24 1 bit c;
25 1 do
26 1 {
27 2 tmp=ch;
28 2 sck=0;
29 2 if((tmp&0x80==0x80))
30 2 c=1;
31 2 else
32 2 c=0;
33 2 din=c;
34 2 sck=1;
35 2 tmp=ch<<1;
36 2 ch=tmp;
37 2 bitcounter--;
38 2 delay(1);
39 2 sck=0;
40 2 }
41 1 while(bitcounter);
42 1 }
43 void out(adata)
44 {
45 1 send(adata);
46 1 cs=0;
47 1 delay(1);
48 1 cs=1;
49 1 delay(1);
50 1 cs=0;
51 1 }
52 void main(void)
53 {
54 1 SP=0xcf;
55 1 EA=0;
C51 COMPILER V9.00 74HC595 09/13/2012 17:12:02 PAGE 2
56 1 delay(100);
57 1 adata=0x01;
58 1 out(adata);
59 1 delay(10);
60 1 }
C51 COMPILER V9.00 74HC595 09/13/2012 17:12:02 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION L?0016 (BEGIN)
0000 L?0017:
0000 7F01 MOV R7,#01H
0002 7E00 MOV R6,#00H
; FUNCTION _delay (BEGIN)
; SOURCE LINE # 12
;---- Variable 'tw' assigned to Register 'R5' ----
;---- Variable 'x' assigned to Register 'R6/R7' ----
; SOURCE LINE # 13
0004 ?C0001:
; SOURCE LINE # 15
0004 EF MOV A,R7
0005 1F DEC R7
0006 AA06 MOV R2,AR6
0008 7001 JNZ ?C0015
000A 1E DEC R6
000B ?C0015:
000B D3 SETB C
000C 9400 SUBB A,#00H
000E EA MOV A,R2
000F 9400 SUBB A,#00H
0011 400B JC ?C0006
; SOURCE LINE # 16
; SOURCE LINE # 17
0013 E4 CLR A
0014 FD MOV R5,A
0015 ?C0003:
0015 ED MOV A,R5
0016 C3 CLR C
0017 947D SUBB A,#07DH
0019 50E9 JNC ?C0001
001B 0D INC R5
001C 80F7 SJMP ?C0003
; SOURCE LINE # 18
; SOURCE LINE # 19
001E ?C0006:
001E 22 RET
; FUNCTION _delay (END)
; FUNCTION _send (BEGIN)
; SOURCE LINE # 20
;---- Variable 'ch' assigned to Register 'R4' ----
0000 AC07 MOV R4,AR7
; SOURCE LINE # 21
; SOURCE LINE # 22
;---- Variable 'bitcounter' assigned to Register 'R1' ----
0002 7908 MOV R1,#08H
0004 ?C0009:
; SOURCE LINE # 26
; SOURCE LINE # 27
;---- Variable 'tmp' assigned to Register 'R3' ----
0004 AB04 MOV R3,AR4
; SOURCE LINE # 28
0006 C2A0 CLR sck
; SOURCE LINE # 29
0008 EB MOV A,R3
0009 30E004 JNB ACC.0,?C0010
; SOURCE LINE # 30
000C D200 R SETB c
C51 COMPILER V9.00 74HC595 09/13/2012 17:12:02 PAGE 4
000E 8002 SJMP ?C0011
0010 ?C0010:
; SOURCE LINE # 32
0010 C200 R CLR c
0012 ?C0011:
; SOURCE LINE # 33
0012 A200 R MOV C,c
0014 92A1 MOV din,C
; SOURCE LINE # 34
0016 D2A0 SETB sck
; SOURCE LINE # 35
0018 EC MOV A,R4
0019 25E0 ADD A,ACC
001B FB MOV R3,A
; SOURCE LINE # 36
001C FC MOV R4,A
; SOURCE LINE # 37
001D 19 DEC R1
; SOURCE LINE # 38
001E 120000 R LCALL L?0016
; SOURCE LINE # 39
0021 C2A0 CLR sck
; SOURCE LINE # 40
; SOURCE LINE # 41
0023 E9 MOV A,R1
0024 70DE JNZ ?C0009
; SOURCE LINE # 42
0026 22 RET
; FUNCTION _send (END)
; FUNCTION _out (BEGIN)
; SOURCE LINE # 43
;---- Variable 'adata' assigned to Register 'R6/R7' ----
; SOURCE LINE # 44
; SOURCE LINE # 45
0000 120000 R LCALL _send
; SOURCE LINE # 46
0003 C2A2 CLR cs
; SOURCE LINE # 47
0005 120000 R LCALL L?0016
; SOURCE LINE # 48
0008 D2A2 SETB cs
; SOURCE LINE # 49
000A 120000 R LCALL L?0017
; SOURCE LINE # 50
000D C2A2 CLR cs
; SOURCE LINE # 51
000F 22 RET
; FUNCTION _out (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 52
; SOURCE LINE # 53
; SOURCE LINE # 54
0000 7581CF MOV SP,#0CFH
; SOURCE LINE # 55
0003 C2AF CLR EA
; SOURCE LINE # 56
0005 7F64 MOV R7,#064H
0007 7E00 MOV R6,#00H
0009 120000 R LCALL _delay
; SOURCE LINE # 57
C51 COMPILER V9.00 74HC595 09/13/2012 17:12:02 PAGE 5
000C 750001 R MOV adata,#01H
; SOURCE LINE # 58
000F AF00 R MOV R7,adata
0011 7E00 MOV R6,#00H
0013 120000 R LCALL _out
; SOURCE LINE # 59
0016 7F0A MOV R7,#0AH
0018 7E00 MOV R6,#00H
001A 020000 R LJMP _delay
; FUNCTION main (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 115 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -