📄 tlc1543.lst
字号:
C51 COMPILER V7.02a TLC1543 04/02/2003 01:07:39 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE TLC1543
OBJECT MODULE PLACED IN TLC1543.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE TLC1543.c DEBUG OBJECTEXTEND TABS(2)
stmt level source
1 /*
2 TLC1543//SPI port//11 channels Analog input//10 bit//10us Rate
3
4 2003.1.6
5 */
6 #include <AT89X52.H>
7 #include <INTRINS.h>
8
9 //hardware conection
10 #define CLOCK P1_2
11 #define D_IN P1_1
12 #define D_OUT P1_3
13 #define P_CS P1_0
14 #define EOC P1_4
15
16 typedef struct
17 {
18 unsigned char ah;
19 unsigned char al;
20 }word;
21
22
23 union bitseg
24 {
25 word byte;
26 unsigned int i;
27 };
28 //----------------------------------------
29 //data read from (port)channel of tlc1543
30 unsigned int tlc1543(unsigned char port){
31 1 unsigned char idata i;
32 1 union bitseg idata c;
33 1 c.byte.al=0,c.byte.ah=0;
34 1 CLOCK=0;
35 1 P_CS=0;//low level start a/d
36 1 port<<=4;//move to high 4bit
37 1 for(i=0;i<4;i++){//input channels signal
38 2 D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;
39 2 port<<=1;
40 2 }
41 1 for(i=0;i<6;i++){//fill 6 clock signal
42 2 CLOCK=1;CLOCK=0;
43 2 }
44 1 P_CS=1;
45 1 _nop_(); _nop_(); _nop_(); _nop_();
46 1 P_CS=0;//wait a/d conversion,EOC low is busy
47 1 for(i=0;i<2;i++){//get D9,D8 bit
48 2 D_OUT=1;
49 2 CLOCK=1;
50 2 c.byte.ah<<=1;
51 2 if(D_OUT)c.byte.ah|=0x01;
52 2 CLOCK=0;
53 2 }
54 1 for(i=0;i<8;i++){//get D7~D0 bit
55 2 D_OUT=1;
C51 COMPILER V7.02a TLC1543 04/02/2003 01:07:39 PAGE 2
56 2 CLOCK=1;
57 2 c.byte.al<<=1;
58 2 if(D_OUT)c.byte.al|=0x01;
59 2 CLOCK=0;
60 2 }
61 1 P_CS=1;
62 1 _nop_();
63 1 P1=0xff;
64 1 return c.i;
65 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 134 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 3
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 + -