main.lst
来自「源码 : KIEL C 单片机 : C8051F320 功能 : U盘 (6」· LST 代码 · 共 179 行
LST
179 行
C51 COMPILER V6.12 MAIN 08/20/2006 21:10:48 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\keil\C51\BIN\c51.exe main.c DB OE
stmt level source
*** WARNING C500 IN LINE 1 OF MAIN.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
1
2 //头文件
3 /////////////////////////////
4 #include "c8051F320.h"
5 #include "stdio.h"
6 #include "intrins.h"
7 #include "Usb_FunDec.h"
8 #include "Usb_Parameter.h"
9 #include "Usb_Register.h"
10 #include "Usb_Request.h"
11 ///////////////////////////////////////////////////////////////////////////////////////
12 // 16-bit SFR declarations
13 sfr16 DP = 0x82; // data pointer
14 sfr16 TMR2RL = 0xca; // Timer2 reload
15 sfr16 TMR2 = 0xcc; // Timer2 counter
16 sfr16 TMR3 = 0x94; // Timer3 counter
17 sfr16 TMR3RL = 0x92; // Timer3 reload
18 sfr16 PCA0CP1 = 0xe9; // PCA0 Module 1 Capture/Compare
19 sfr16 PCA0CP2 = 0xeb; // PCA0 Module 2 Capture/Compare
20 sfr16 PCA0CP3 = 0xed; // PCA0 Module 3 Capture/Compare
21 sfr16 PCA0CP4 = 0xfd; // PCA0 Module 4 Capture/Compare
22 sfr16 PCA0CP0 = 0xfb; // PCA0 Module 0 Capture/Compare
23 sfr16 PCA0 = 0xf9; // PCA0 counter
24 ////////////////////////////////////////////////////////////////////////////////////////
25 //宏定义
26 #define System_Clock 12000000 //系统时钟
27 #define Baud_Rate 9600 //串口波特率
28 ////////////////////////////////////////////////////////////////////////////////////////
29 //位定义
30 sbit LED = P0^0; //LED控制脚
31 ////////////////////////////////////////////////////////////////////////////////////////
32 //函数申明
33 void Init_Device(void); //单片机初始化
34 void Reset_Sources_Init(void); //单片机复位源初始化
35 void Timer_Init(void); //定时器初始化
36 void UART_Init(void); //串口初始化
37 void ADC_Init(void); //AD转换器初始化
38 void Voltage_Reference_Init(void); //电压基准愿初始化
39 void Port_IO_Init(void); //IO口初始化
40 void Oscillator_Init(void); //系统时钟初始化
41 void Interrupts_Init(void); //中断源初始化
42 void Time_Delay(unsigned int time); //延时函数定义,时间为time毫秒
43 //////////////////////////////////////////////////////////////////////
44 //外部函数调用
45 extern void Flash_Init(void);
46 extern void Flash_Format16(void);
47 extern void Test_Flash(void);
48 extern void Flash_Verify(void);
49 ///////////////////////////////////////////////////////////////////////////////////////////////////
50
51 //主函数
52 void main ()
53 {
54 1 unsigned int i;
C51 COMPILER V6.12 MAIN 08/20/2006 21:10:48 PAGE 2
55 1 PCA0MD &= ~0x40; // 关看门狗
56 1 Init_Device(); // 单片机初始化
57 1 Flash_Init(); // FLASH初始化
58 1 Usb_Init(); // USB初始化
59 1 EA = 1; // 开中断中断
60 1
61 1 while (1)
62 1 {
63 2 Time_Delay(1);
64 2 LED=0;
65 2 }
66 1 }
*** WARNING C280 IN LINE 54 OF MAIN.C: 'i': unreferenced local variable
67
68
69
70 ////////////////////////////////////////////////////////////////////////////////////////////////////
71 //单片机初始化
72 void Init_Device(void)
73 {
74 1 Reset_Sources_Init();
75 1 Timer_Init();
76 1 UART_Init();
77 1 ADC_Init();
78 1 Voltage_Reference_Init();
79 1 Port_IO_Init();
80 1 Oscillator_Init();
81 1 Interrupts_Init();
82 1 }
83
84 void Reset_Sources_Init()
85 {
86 1 }
87
88 //定时器0使用系统时钟,为16位定时器方式;定时器1使用系统时钟的12分频,8位重装载方式,波特率发生器
89 void Timer_Init()
90 {
91 1 TCON = 0x40;
92 1 TMOD = 0x20;
93 1 CKCON = 0x01;
94 1 TL1 = -System_Clock/4/2/Baud_Rate;
95 1 TH1 = -System_Clock/4/2/Baud_Rate;
96 1 TR0=0;
97 1 TR1=1;
98 1 }
99
100 //8位方式,1起始位+8数据位+1停止位,接收容许,并且只有停止位为1时才触发接收中断
101 void UART_Init()
102 {
103 1 SCON0 = 0x30;
104 1 TI0=1; //为printf函数做准备
105 1 }
106
107 void ADC_Init()
108 {
109 1 }
110
111 void Voltage_Reference_Init()
112 {
113 1 }
114
115 void Port_IO_Init()
C51 COMPILER V6.12 MAIN 08/20/2006 21:10:48 PAGE 3
116 {
117 1 P0MDOUT = 0x11;
118 1 XBR0 = 0x01;
119 1 XBR1 = 0x40;
120 1 P2MDOUT = 0xBF;
121 1 }
122
123 //系统使用内部时钟,频率为12MHz,USB工作在全速,时钟为48MHz
124 void Oscillator_Init()
125 {
126 1 int i = 0;
127 1 CLKMUL = 0x80;
128 1 for (i = 0; i < 20; i++); // Wait 5us for initialization
129 1 CLKMUL |= 0xC0;
130 1 while ((CLKMUL & 0x20) == 0);
131 1 OSCICN = 0x83;
132 1
133 1 }
134
135 void Interrupts_Init()
136 {
137 1 EIE1 |= 0x02; // 允许USB中断
138 1 }
139 //////////////////////////////////////////////////////////////////////////////////////////////////
140 void Time_Delay(unsigned int time)
141 {
142 1 unsigned int i=0,j=0;
143 1 for(i=0;i<time;i++)
144 1 {
145 2 for(j=0;j<1200;j++)
146 2 {_nop_();}
147 2 }
148 1 }
149
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 159 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?