📄 do_1543.lst
字号:
C51 COMPILER V7.50 DO_1543 08/07/2000 10:52:56 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DO_1543
OBJECT MODULE PLACED IN do_1543.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE do_1543.c DEBUG OBJECTEXTEND CODE
line level source
1 #include "reg51.h"
2 #include "string.h"
3 #include "intrins.h"
4 #include "stdlib.h"
5
6
7 sbit EOC=P1^0;
8 sbit CLOCK=P1^1;
9 sbit ADDR=P1^2;
10 sbit DATAOUT=P1^3;
11 sbit _CS=P1^4;
12
13 #define uint unsigned int
14 #define uchar unsigned char
15
16 uint read1543(uchar port) //从TLC1543读取采样值,形参port是采样的通道号
17 {
18 1 uint data ad;uint data i;
19 1 uchar data al=0,ah=0;
20 1 _CS=1;
21 1 _nop_();_nop_();_nop_();
22 1 CLOCK=0;
23 1 _CS=0;
24 1 port<<=4;
25 1 for (i=0;i<4;i++) //把通道号打入1543
26 1 {
27 2 ADDR=(bit)(port&0x80);CLOCK=1;CLOCK=0;
28 2 port<<=1;
29 2 }
30 1 for (i=0;i<6;i++) //填充6个CLOCK
31 1 {
32 2 CLOCK=1;CLOCK=0;
33 2 }
34 1 _CS=1;
35 1 _nop_();_nop_();_nop_();
36 1 _nop_();_nop_();_nop_();
37 1 while(!EOC); //等待AD转换
38 1 _CS=0;
39 1 for (i=0;i<2;i++) //取D9,D8
40 1 {
41 2 DATAOUT=1;
42 2 CLOCK=1;
43 2 ah<<=1;
44 2 if(DATAOUT) ah|=0x01;
45 2 CLOCK=0;
46 2 }
47 1
48 1 for (i=0;i<8;i++) //取D7--D0
49 1 {
50 2 DATAOUT=1;
51 2 CLOCK=1;
52 2 al<<=1;
53 2 if(DATAOUT) al|=0x01;
54 2 CLOCK=0;
55 2 }
C51 COMPILER V7.50 DO_1543 08/07/2000 10:52:56 PAGE 2
56 1 _CS=1;
57 1 ad=(uint)ah;ad<<=8;ad|=(uint)al; //得到AD值
58 1 return (ad);
59 1 }
C51 COMPILER V7.50 DO_1543 08/07/2000 10:52:56 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _read1543 (BEGIN)
; SOURCE LINE # 16
;---- Variable 'port' assigned to Register 'R7' ----
; SOURCE LINE # 17
; SOURCE LINE # 19
;---- Variable 'al' assigned to Register 'R5' ----
0000 E4 CLR A
0001 FD MOV R5,A
;---- Variable 'ah' assigned to Register 'R6' ----
0002 FE MOV R6,A
; SOURCE LINE # 20
0003 D294 SETB _CS
; SOURCE LINE # 21
0005 00 NOP
0006 00 NOP
0007 00 NOP
; SOURCE LINE # 22
0008 C291 CLR CLOCK
; SOURCE LINE # 23
000A C294 CLR _CS
; SOURCE LINE # 24
000C EF MOV A,R7
000D C4 SWAP A
000E 54F0 ANL A,#0F0H
0010 FF MOV R7,A
; SOURCE LINE # 25
;---- Variable 'i' assigned to Register 'R2/R3' ----
0011 E4 CLR A
0012 FB MOV R3,A
0013 FA MOV R2,A
0014 ?C0001:
; SOURCE LINE # 26
; SOURCE LINE # 27
0014 EF MOV A,R7
0015 33 RLC A
0016 9292 MOV ADDR,C
0018 D291 SETB CLOCK
001A C291 CLR CLOCK
; SOURCE LINE # 28
001C EF MOV A,R7
001D 25E0 ADD A,ACC
001F FF MOV R7,A
; SOURCE LINE # 29
0020 0B INC R3
0021 BB0001 CJNE R3,#00H,?C0018
0024 0A INC R2
0025 ?C0018:
0025 EB MOV A,R3
0026 6404 XRL A,#04H
0028 4A ORL A,R2
0029 70E9 JNZ ?C0001
002B ?C0002:
; SOURCE LINE # 30
002B E4 CLR A
002C FA MOV R2,A
002D FB MOV R3,A
002E ?C0004:
; SOURCE LINE # 31
; SOURCE LINE # 32
C51 COMPILER V7.50 DO_1543 08/07/2000 10:52:56 PAGE 4
002E D291 SETB CLOCK
0030 C291 CLR CLOCK
; SOURCE LINE # 33
0032 0B INC R3
0033 BB0001 CJNE R3,#00H,?C0019
0036 0A INC R2
0037 ?C0019:
0037 EB MOV A,R3
0038 6406 XRL A,#06H
003A 4A ORL A,R2
003B 70F1 JNZ ?C0004
003D ?C0005:
; SOURCE LINE # 34
003D D294 SETB _CS
; SOURCE LINE # 35
003F 00 NOP
0040 00 NOP
0041 00 NOP
; SOURCE LINE # 36
0042 00 NOP
0043 00 NOP
0044 00 NOP
0045 ?C0007:
; SOURCE LINE # 37
0045 3090FD JNB EOC,?C0007
0048 ?C0008:
; SOURCE LINE # 38
0048 C294 CLR _CS
; SOURCE LINE # 39
004A E4 CLR A
004B FA MOV R2,A
004C FB MOV R3,A
004D ?C0009:
; SOURCE LINE # 40
; SOURCE LINE # 41
004D D293 SETB DATAOUT
; SOURCE LINE # 42
004F D291 SETB CLOCK
; SOURCE LINE # 43
0051 EE MOV A,R6
0052 25E0 ADD A,ACC
0054 FE MOV R6,A
; SOURCE LINE # 44
0055 309303 JNB DATAOUT,?C0012
0058 430601 ORL AR6,#01H
005B ?C0012:
; SOURCE LINE # 45
005B C291 CLR CLOCK
; SOURCE LINE # 46
005D 0B INC R3
005E BB0001 CJNE R3,#00H,?C0020
0061 0A INC R2
0062 ?C0020:
0062 EB MOV A,R3
0063 6402 XRL A,#02H
0065 4A ORL A,R2
0066 70E5 JNZ ?C0009
0068 ?C0010:
; SOURCE LINE # 48
0068 E4 CLR A
0069 FA MOV R2,A
006A FB MOV R3,A
C51 COMPILER V7.50 DO_1543 08/07/2000 10:52:56 PAGE 5
006B ?C0013:
; SOURCE LINE # 49
; SOURCE LINE # 50
006B D293 SETB DATAOUT
; SOURCE LINE # 51
006D D291 SETB CLOCK
; SOURCE LINE # 52
006F ED MOV A,R5
0070 25E0 ADD A,ACC
0072 FD MOV R5,A
; SOURCE LINE # 53
0073 309303 JNB DATAOUT,?C0016
0076 430501 ORL AR5,#01H
0079 ?C0016:
; SOURCE LINE # 54
0079 C291 CLR CLOCK
; SOURCE LINE # 55
007B 0B INC R3
007C BB0001 CJNE R3,#00H,?C0021
007F 0A INC R2
0080 ?C0021:
0080 EB MOV A,R3
0081 6408 XRL A,#08H
0083 4A ORL A,R2
0084 70E5 JNZ ?C0013
0086 ?C0014:
; SOURCE LINE # 56
0086 D294 SETB _CS
; SOURCE LINE # 57
0088 AF06 MOV R7,AR6
;---- Variable 'ad' assigned to Register 'R6/R7' ----
008A EF MOV A,R7
008B FE MOV R6,A
008C ED MOV A,R5
008D FF MOV R7,A
; SOURCE LINE # 58
; SOURCE LINE # 59
008E ?C0017:
008E 22 RET
; FUNCTION _read1543 (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 143 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -