📄 main.lst
字号:
C51 COMPILER V6.12 MAIN 06/23/2007 09:21:32 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //#include <stdio.h>
2 #include <string.h>
3 //#include <reg51.h> /* special function register declarations */
4
5 //#include "epphal.h"
6 #include "d12ci.h"
7 #include "mainloop.h"
8 #include "usb100.h"
9 #include "chap_9.h"
10 //#include "protodma.h"
11 #include"address.h"
12 //#include"2-16.h"
13 //#include"24C00.H"
14 sbit beep=P2^3;
15 sbit dula=P2^6;
16 sbit wela=P2^7;
17
18 /*
19 //*************************************************************************
20 // USB protocol function pointer arrays
21 //*************************************************************************
22 */
23
24 #define uchar unsigned char
25 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
26 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
27 uchar flag;
28 display(unsigned char num)
29 {
30 1 dula=0;
31 1 wela=0;
32 1 P0=table[num];
33 1 // P0=0xff;
34 1 dula=1;
35 1 dula=0;
36 1 P0=0xc0;
37 1 wela=1;
38 1 wela=0;
39 1
40 1 flag=0;
41 1 }
42
43 uchar j,k,i,l,A,H,C,D,E,F;
44 void lay(uchar i)
45 {
46 1 for(j=i;j>0;j--)
47 1 for(k=125;k>0;k--);
48 1 }
49 send(uchar m1_c,uchar m2_c,uchar m3_c,uchar m4_c,uchar m5_c,uchar m6_c) //数码管显示程序
50 {
51 1 dula=0;
52 1 P0=table[m1_c]; //第1位
53 1 dula=1;
54 1 dula=0;
55 1
C51 COMPILER V6.12 MAIN 06/23/2007 09:21:32 PAGE 2
56 1 wela=0;
57 1 P0=0x7e;
58 1 wela=1;
59 1 wela=0;
60 1 lay(5);
61 1
62 1 P0=table[m2_c]; //第2位
63 1 dula=1;
64 1 dula=0;
65 1
66 1 P0=0x7d;
67 1 wela=1;
68 1 wela=0;
69 1 lay(5);
70 1
71 1 dula=0;
72 1 P0=table[m3_c]; //第3位
73 1 dula=1;
74 1 dula=0;
75 1
76 1 wela=0;
77 1 P0=0x7b;
78 1 wela=1;
79 1 wela=0;
80 1 lay(5);
81 1
82 1 P0=table[m4_c]; //第4位
83 1 dula=1;
84 1 dula=0;
85 1
86 1 P0=0x77;
87 1 wela=1;
88 1 wela=0;
89 1 lay(5);
90 1
91 1 dula=0;
92 1 P0=table[m5_c]; //第5位
93 1 dula=1;
94 1 dula=0;
95 1
96 1 wela=0;
97 1 P0=0x6f;
98 1 wela=1;
99 1 wela=0;
100 1 lay(5);
101 1
102 1
103 1 P0=table[m6_c]; //第6位
104 1 dula=1;
105 1 dula=0;
106 1
107 1 P0=0x5f;
108 1 wela=1;
109 1 wela=0;
110 1 lay(5);
111 1 }
112
113 void EndpointII();//处理 2*16LCD和IIC
114 //USB标准请求
115 code void (*StandardDeviceRequest[])(void) =
116 {
117 get_status,
C51 COMPILER V6.12 MAIN 06/23/2007 09:21:32 PAGE 3
118 clear_feature,
119 reserved,
120 set_feature,
121 reserved,
122 set_address,
123 get_descriptor,
124 reserved,
125 get_configuration,
126 set_configuration,
127 get_interface,
128 set_interface,
129 reserved,
130 reserved,
131 reserved,
132 reserved
133 };
134
135 //用户厂商请求
136 code void (*VendorDeviceRequest[])(void) =
137 {
138 reserved,
139 reserved,
140 reserved,
141 reserved,
142 reserved,
143 reserved,
144 reserved,
145 reserved,
146 reserved,
147 reserved,
148 reserved,
149 reserved,
150 reserved,
151 reserved,
152 reserved,
153 reserved
154 };
155
156 /*
157 //*************************************************************************
158 // Public static data
159 //*************************************************************************
160 */
161
162 extern EPPFLAGS bEPPflags;
163 extern unsigned long ClockTicks;
164 extern unsigned char idata GenEpBuf[];
165 extern IO_REQUEST idata ioRequest;
166
167 extern unsigned char ioSize, ioCount;
168 extern unsigned char idata EpBuf[];
169 extern unsigned char idata mainbuflen;
170
171 CONTROL_XFER ControlData;
172 BOOL bNoRAM;
173
174 //定时器0初始化程序
175 //定时器用来定时检测按键状态
176 void init_timer0(void)
177 {
178 1 TMOD &= 0XF0; /* clear Timer 0 */
179 1 TMOD |= 0X1;
C51 COMPILER V6.12 MAIN 06/23/2007 09:21:32 PAGE 4
180 1 TL0 = 0X0; /* value set by user */
181 1 TH0 = 0X0; /* value set by user */
182 1 ET0 = 1; /* IE.1*/
183 1 TR0 = 1; /* TCON.4 start timer */
184 1 PT0 = 1;
185 1
186 1 EA = 1;
187 1 }
188
189 //中断设置
190 void init_special_interrupts(void)
191 {
192 1 IT1 = 0;
193 1 EX1 = 1;
194 1 PX1 = 0;
195 1 }
196
197 //I/O口初始化程序
198 void init_port()
199 {
200 1 P0 = 0xFF;
201 1 P1 = 0xFF;
202 1 P2 = 0xFF;
203 1 P3 = 0xFF;
204 1 }
205 void main(void)
206 {
207 1 // init_port();//初始化I/O口
208 1 // initlcd();
209 1 // printscreen("Hello!!" ,"Wellcome to USB");
210 1 init_timer0();//初始化定时器0
211 1 init_special_interrupts();//设置中断
212 1 // init();
213 1 display(1);
214 1 // while(1);
215 1 bEPPflags.value = 0;
216 1 reconnect_USB();//重新连接USB
217 1 /* Main program loop */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -