📄 test.lst
字号:
C51 COMPILER V7.06 TEST 12/30/2006 12:59:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEST.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #pragma NOAREGS
2 #include <reg52.h>
3 #include "CH375INC.H"
4
5 unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBFF1;
6 unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBFF0;
7
8 unsigned char volatile xdata AD0809_ADDR0 _at_ 0x8FF0;
9 unsigned char volatile xdata AD0809_ADDR1 _at_ 0x8FF2;
10 unsigned char volatile xdata AD0809_ADDR2 _at_ 0x8FF4;
11 unsigned char volatile xdata AD0809_ADDR3 _at_ 0x8FF6;
12 unsigned char volatile xdata AD0809_ADDR4 _at_ 0x8FF8;
13 unsigned char volatile xdata AD0809_ADDR5 _at_ 0x8FFA;
14 unsigned char volatile xdata AD0809_ADDR6 _at_ 0x8FFC;
15 unsigned char volatile xdata AD0809_ADDR7 _at_ 0x8FFE;
16
17 unsigned char ad;
18 unsigned char adcount;
19 unsigned char adbuf[8];
20
21 void delay2us( )
22 {
23 1 unsigned char i;
24 1 for ( i = 2; i != 0; i -- );
25 1 }
26
27 void Delay50ms( )
28 {
29 1 unsigned char i, j;
30 1 for ( i=200; i!=0; i-- ) for ( j=250; j!=0; j-- );
31 1 }
32
33 void CH375_WR_CMD_PORT( unsigned char cmd )
34 {
35 1 delay2us();
36 1 CH375_CMD_PORT=cmd;
37 1 delay2us();
38 1 }
39
40 void CH375_WR_DAT_PORT( unsigned char dat )
41 {
42 1 CH375_DAT_PORT=dat;
43 1 }
44
45 unsigned char CH375_RD_DAT_PORT( void )
46 {
47 1 return( CH375_DAT_PORT );
48 1 }
49
50 void CH375_Init( )
51 {
52 1 unsigned char i;
53 1
54 1 CH375_WR_CMD_PORT( CMD_SET_USB_MODE );
55 1 CH375_WR_DAT_PORT( 2 );
C51 COMPILER V7.06 TEST 12/30/2006 12:59:00 PAGE 2
56 1 for ( i=100; i!=0; i-- )
57 1 {
58 2 if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break;
59 2 }
60 1 IT0 = 0;
61 1 IE0 = 0;
62 1 EX0 = 1;
63 1 }
64
65 AD0809_INIT()
66 {
67 1 IT1 = 1;
68 1 IE1 = 0;
69 1 EX1 = 1;
70 1 }
71
72 void mCh375Interrupt( ) interrupt 0 using 1
73 {
74 1 unsigned char InterruptStatus;
75 1 CH375_WR_CMD_PORT( CMD_GET_STATUS );
76 1 InterruptStatus = CH375_RD_DAT_PORT( );
77 1
78 1 switch ( InterruptStatus )
79 1 {
80 2 case USB_INT_EP2_OUT:
81 2 {
82 3 break;
83 3 }
84 2 case USB_INT_EP2_IN:
85 2 {
86 3 CH375_WR_CMD_PORT( CMD_UNLOCK_USB );
87 3 break;
88 3 }
89 2 default:
90 2 {
91 3 CH375_WR_CMD_PORT( CMD_UNLOCK_USB );
92 3 break;
93 3 }
94 2 }
95 1 }
96
97 void mAD0809Interrupt( ) interrupt 2 using 2
98 {
99 1 switch(adcount)
100 1 {
101 2 case 0:
102 2 adbuf[0]=AD0809_ADDR0;
103 2 AD0809_ADDR1=1;
104 2 break;
105 2 case 1:
106 2 adbuf[1]=AD0809_ADDR1;
107 2 AD0809_ADDR2=1;
108 2 break;
109 2 case 2:
110 2 adbuf[2]=AD0809_ADDR2;
111 2 AD0809_ADDR3=1;
112 2 break;
113 2 case 3:
114 2 adbuf[3]=AD0809_ADDR3;
115 2 AD0809_ADDR4=1;
116 2 break;
117 2 case 4:
C51 COMPILER V7.06 TEST 12/30/2006 12:59:00 PAGE 3
118 2 adbuf[4]=AD0809_ADDR4;
119 2 AD0809_ADDR5=1;
120 2 break;
121 2 case 5:
122 2 adbuf[5]=AD0809_ADDR5;
123 2 AD0809_ADDR6=1;
124 2 break;
125 2 case 6:
126 2 adbuf[6]=AD0809_ADDR6;
127 2 AD0809_ADDR7=1;
128 2 break;
129 2 case 7:
130 2 adbuf[7]=AD0809_ADDR7;
131 2 AD0809_ADDR0=1;
132 2 break;
133 2 }
134 1 adcount++;
135 1 if(adcount==8)
136 1 {
137 2 adcount=0;
138 2 }
139 1 }
140
141 main( )
142 {
143 1 unsigned char i;
144 1 unsigned char data buffer[64];
145 1
146 1 Delay50ms( );
147 1
148 1 AD0809_INIT();
149 1 CH375_Init( );
150 1
151 1 PX1=1;
152 1 PX0=0;
153 1 EA = 1;
154 1
155 1 P1=0XFF;
156 1 adcount=0;
157 1 AD0809_ADDR0=1;
158 1
159 1 while ( 1 )
160 1 {
161 2 for ( i = 0; i < 8; i ++ )buffer[ i ]=adbuf[i];
162 2 buffer[8]=P1;
163 2 CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 );
164 2 CH375_WR_DAT_PORT( 64 );
165 2 for ( i = 0; i < 64; i++ ) CH375_WR_DAT_PORT(buffer[ i ]);
166 2 }
167 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 351 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 64
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 + -