📄 kd12ci.lst
字号:
25 =2 sfr TH1 = 0x8D;
26 =2 sfr P1 = 0x90;
27 =2 sfr SCON = 0x98;
28 =2 sfr SBUF = 0x99;
29 =2 sfr P2 = 0xA0;
30 =2 sfr IE = 0xA8;
31 =2 sfr P3 = 0xB0;
32 =2 sfr IP = 0xB8;
33 =2 sfr T2CON = 0xC8;
34 =2 sfr T2MOD = 0xC9;
35 =2 sfr RCAP2L = 0xCA;
36 =2 sfr RCAP2H = 0xCB;
37 =2 sfr TL2 = 0xCC;
38 =2 sfr TH2 = 0xCD;
39 =2 sfr PSW = 0xD0;
40 =2 sfr ACC = 0xE0;
41 =2 sfr B = 0xF0;
42 =2
43 =2 /*------------------------------------------------
44 =2 P0 Bit Registers
45 =2 ------------------------------------------------*/
46 =2 sbit P0_0 = 0x80;
47 =2 sbit P0_1 = 0x81;
48 =2 sbit P0_2 = 0x82;
49 =2 sbit P0_3 = 0x83;
50 =2 sbit P0_4 = 0x84;
51 =2 sbit P0_5 = 0x85;
52 =2 sbit P0_6 = 0x86;
53 =2 sbit P0_7 = 0x87;
54 =2
55 =2 /*------------------------------------------------
56 =2 PCON Bit Values
57 =2 ------------------------------------------------*/
58 =2 #define IDL_ 0x01
59 =2
60 =2 #define STOP_ 0x02
61 =2 #define PD_ 0x02 /* Alternate definition */
62 =2
63 =2 #define GF0_ 0x04
64 =2 #define GF1_ 0x08
65 =2 #define SMOD_ 0x80
C51 COMPILER V7.06 KD12CI 11/11/2003 20:11:03 PAGE 6
66 =2
67 =2 /*------------------------------------------------
68 =2 TCON Bit Registers
69 =2 ------------------------------------------------*/
70 =2 sbit IT0 = 0x88;
71 =2 sbit IE0 = 0x89;
72 =2 sbit IT1 = 0x8A;
73 =2 sbit IE1 = 0x8B;
74 =2 sbit TR0 = 0x8C;
75 =2 sbit TF0 = 0x8D;
76 =2 sbit TR1 = 0x8E;
77 =2 sbit TF1 = 0x8F;
78 =2
79 =2 /*------------------------------------------------
80 =2 TMOD Bit Values
81 =2 ------------------------------------------------*/
82 =2 #define T0_M0_ 0x01
83 =2 #define T0_M1_ 0x02
84 =2 #define T0_CT_ 0x04
85 =2 #define T0_GATE_ 0x08
86 =2 #define T1_M0_ 0x10
87 =2 #define T1_M1_ 0x20
88 =2 #define T1_CT_ 0x40
89 =2 #define T1_GATE_ 0x80
90 =2
91 =2 #define T1_MASK_ 0xF0
92 =2 #define T0_MASK_ 0x0F
93 =2
94 =2 /*------------------------------------------------
95 =2 P1 Bit Registers
96 =2 ------------------------------------------------*/
97 =2 sbit P1_0 = 0x90;
98 =2 sbit P1_1 = 0x91;
99 =2 sbit P1_2 = 0x92;
100 =2 sbit P1_3 = 0x93;
101 =2 sbit P1_4 = 0x94;
102 =2 sbit P1_5 = 0x95;
103 =2 sbit P1_6 = 0x96;
104 =2 sbit P1_7 = 0x97;
105 =2
106 =2 sbit T2 = 0x90; /* External input to Timer/Counter 2, clock out */
107 =2 sbit T2EX = 0x91; /* Timer/Counter 2 capture/reload trigger & dir ctl */
108 =2
109 =2 /*------------------------------------------------
110 =2 SCON Bit Registers
111 =2 ------------------------------------------------*/
112 =2 sbit RI = 0x98;
113 =2 sbit TI = 0x99;
114 =2 sbit RB8 = 0x9A;
115 =2 sbit TB8 = 0x9B;
116 =2 sbit REN = 0x9C;
117 =2 sbit SM2 = 0x9D;
118 =2 sbit SM1 = 0x9E;
119 =2 sbit SM0 = 0x9F;
120 =2
121 =2 /*------------------------------------------------
122 =2 P2 Bit Registers
123 =2 ------------------------------------------------*/
124 =2 sbit P2_0 = 0xA0;
125 =2 sbit P2_1 = 0xA1;
126 =2 sbit P2_2 = 0xA2;
127 =2 sbit P2_3 = 0xA3;
C51 COMPILER V7.06 KD12CI 11/11/2003 20:11:03 PAGE 7
128 =2 sbit P2_4 = 0xA4;
129 =2 sbit P2_5 = 0xA5;
130 =2 sbit P2_6 = 0xA6;
131 =2 sbit P2_7 = 0xA7;
132 =2
133 =2 /*------------------------------------------------
134 =2 IE Bit Registers
135 =2 ------------------------------------------------*/
136 =2 sbit EX0 = 0xA8; /* 1=Enable External interrupt 0 */
137 =2 sbit ET0 = 0xA9; /* 1=Enable Timer 0 interrupt */
138 =2 sbit EX1 = 0xAA; /* 1=Enable External interrupt 1 */
139 =2 sbit ET1 = 0xAB; /* 1=Enable Timer 1 interrupt */
140 =2 sbit ES = 0xAC; /* 1=Enable Serial port interrupt */
141 =2 sbit ET2 = 0xAD; /* 1=Enable Timer 2 interrupt */
142 =2
143 =2 sbit EA = 0xAF; /* 0=Disable all interrupts */
144 =2
145 =2 /*------------------------------------------------
146 =2 P3 Bit Registers (Mnemonics & Ports)
147 =2 ------------------------------------------------*/
148 =2 sbit P3_0 = 0xB0;
149 =2 sbit P3_1 = 0xB1;
150 =2 sbit P3_2 = 0xB2;
151 =2 sbit P3_3 = 0xB3;
152 =2 sbit P3_4 = 0xB4;
153 =2 sbit P3_5 = 0xB5;
154 =2 sbit P3_6 = 0xB6;
155 =2 sbit P3_7 = 0xB7;
156 =2
157 =2 sbit RXD = 0xB0; /* Serial data input */
158 =2 sbit TXD = 0xB1; /* Serial data output */
159 =2 sbit INT0 = 0xB2; /* External interrupt 0 */
160 =2 sbit INT1 = 0xB3; /* External interrupt 1 */
161 =2 sbit T0 = 0xB4; /* Timer 0 external input */
162 =2 sbit T1 = 0xB5; /* Timer 1 external input */
163 =2 sbit WR = 0xB6; /* External data memory write strobe */
164 =2 sbit RD = 0xB7; /* External data memory read strobe */
165 =2
166 =2 /*------------------------------------------------
167 =2 IP Bit Registers
168 =2 ------------------------------------------------*/
169 =2 sbit PX0 = 0xB8;
170 =2 sbit PT0 = 0xB9;
171 =2 sbit PX1 = 0xBA;
172 =2 sbit PT1 = 0xBB;
173 =2 sbit PS = 0xBC;
174 =2 sbit PT2 = 0xBD;
175 =2
176 =2 /*------------------------------------------------
177 =2 T2CON Bit Registers
178 =2 ------------------------------------------------*/
179 =2 sbit CP_RL2= 0xC8; /* 0=Reload, 1=Capture select */
180 =2 sbit C_T2 = 0xC9; /* 0=Timer, 1=Counter */
181 =2 sbit TR2 = 0xCA; /* 0=Stop timer, 1=Start timer */
182 =2 sbit EXEN2= 0xCB; /* Timer 2 external enable */
183 =2 sbit TCLK = 0xCC; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
184 =2 sbit RCLK = 0xCD; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
185 =2 sbit EXF2 = 0xCE; /* Timer 2 external flag */
186 =2 sbit TF2 = 0xCF; /* Timer 2 overflow flag */
187 =2
188 =2 /*------------------------------------------------
189 =2 T2MOD Bit Values
C51 COMPILER V7.06 KD12CI 11/11/2003 20:11:03 PAGE 8
190 =2 ------------------------------------------------*/
191 =2 #define DCEN_ 0x01 /* 1=Timer 2 can be configured as up/down counter */
192 =2 #define T2OE_ 0x02 /* Timer 2 output enable */
193 =2
194 =2 /*------------------------------------------------
195 =2 PSW Bit Registers
196 =2 ------------------------------------------------*/
197 =2 sbit P = 0xD0;
198 =2 sbit FL = 0xD1;
199 =2 sbit OV = 0xD2;
200 =2 sbit RS0 = 0xD3;
201 =2 sbit RS1 = 0xD4;
202 =2 sbit F0 = 0xD5;
203 =2 sbit AC = 0xD6;
204 =2 sbit CY = 0xD7;
205 =2
206 =2 /*------------------------------------------------
207 =2 Interrupt Vectors:
208 =2 Interrupt Address = (Number * 8) + 3
209 =2 ------------------------------------------------*/
210 =2 #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */
211 =2 #define TF0_VECTOR 1 /* 0x0B Timer 0 */
212 =2 #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */
213 =2 #define TF1_VECTOR 3 /* 0x1B Timer 1 */
214 =2 #define SIO_VECTOR 4 /* 0x23 Serial port */
215 =2
216 =2 #define TF2_VECTOR 5 /* 0x2B Timer 2 */
217 =2 #define EX2_VECTOR 5 /* 0x2B External Interrupt 2 */
218 =2
219 =2 #endif
220 =2
221 =2
2 =1
3 =1 #define EPP_PORT P1
4 =1 #define DATA_BUS P0
5 =1
6 =1 sbit MCU_SWM0 = P1^0;
7 =1 sbit MCU_SWM1 = P1^1;
8 =1 sbit MCU_LED0 = P1^2;
9 =1 sbit MCU_LED1 = P1^3;
10 =1
11 =1 sbit MCU_D12CS = P1^6;
12 =1 sbit MCU_D12RST = P1^7;
13 =1
14 =1 sbit D12SUSPD = P3^3;
15 =1
16 =1 #define DISABLE EA=0
17 =1 #define ENABLE EA=1
18 =1
4
5 extern EPPFLAGS bEPPflags;
6
7 //---------------------------------
8 void outportcmd(unsigned char value)
9 {
10 1 /*
11 1 // unsigned char xdata *ext_address;
12 1 // ext_address=D12_command;
13 1 // *ext_address = val; // write cycle
14 1 *((INT8 xdata *)D12_command) = val;
15 1 */
16 1 *((unsigned char xdata *)D12_COMMAND)=value;
C51 COMPILER V7.06 KD12CI 11/11/2003 20:11:03 PAGE 9
17 1 }
18 void outportdata(unsigned char value)
19 {
20 1 *((unsigned char xdata *)D12_DATA)=value;
21 1 }
22
23 unsigned char inportb(void)
24 {
25 1 /*
26 1 // unsigned char c;
27 1 // unsigned char xdata *ext_address;
28 1 // ext_address=(D12_data&0xff00);
29 1 // c = *ext_address ; // read cycle
30 1 // return c;
31 1 return *((INT8 xdata *)D12_data);
32 1 */
33 1 return *((unsigned xdata *)D12_DATA);
34 1 }
35 //--------------------------
36 void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
37 {
38 1 if(bEPPflags.bits.in_isr == 0)
39 1 DISABLE;
40 1
41 1 outportcmd(0xD0);
42 1 if(bEnable)
43 1 bAddress |= 0x80;
44 1 outportdata(bAddress);
45 1
46 1 if(bEPPflags.bits.in_isr == 0)
47 1 ENABLE;
48 1 }
49
50 void D12_SetEndpointEnable(unsigned char bEnable)
51 {
52 1 if(bEPPflags.bits.in_isr == 0)
53 1 DISABLE;
54 1
55 1 outportcmd(0xD8);
56 1 if(bEnable)
57 1 outportdata(1);
58 1 else
59 1 outportdata(0);
60 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -