📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 05/30/2005 21:27:00 PAGE 1
C51 COMPILER V7.06, 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
1
2 #include "common.h"
3
4 #define sl811_addr 0x3f00
5
6
7 /***********************************************************************************
8 * 函数名称:SYSCLK_Init;
9 *
10 * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
11 *
12 * 输入参数:none;
13 *
14 * 返回数据:none;
15 *
16 * 注意: none;
17 ************************************************************************************/
18
19 void SYSCLK_Init (void)
20 {
21 1 int i; // 延时计数器
22 1
23 1 OSCXCN = 0x67; // 使用外部22.1184MHz晶振
24 1
25 1 for(i=0; i<256; i++); // 等待1ms
26 1
27 1 while(!(OSCXCN & 0x80)); // 等待外部振荡器稳定
28 1
29 1 OSCICN = 0x88; // 切换到外部晶振
30 1 }
31
32 /***********************************************************************************
33 * 函数名称:PORT_Init;
34 *
35 * 函数功能描述:配置端口初始化,配置交叉开关和端口;
36 *
37 * 输入参数:none;
38 *
39 * 返回数据:none;
40 *
41 * 注意: none;
42 ************************************************************************************/
43
44 void PORT_Init (void)
45 {
46 1
47 1 XBR0 = 0x07; //设置XBR0
48 1 // XBR1 = 0x1e; //设置XBR1
49 1 XBR2 = 0x44; //打开交叉开关和弱上拉
50 1 // P3MDOUT = 0xff; //设置P3口全部推挽输出
51 1 P74OUT = 0xfb; //设置P4-P7口输出
52 1 P4 = 0xe0;
53 1
54 1 //外部存储器时序控制
55 1 EMI0CF=0x2f;
C51 COMPILER V7.06 MAIN 05/30/2005 21:27:00 PAGE 2
56 1 EMI0TC=0x21;
57 1 }
58
59
60 /************************************************************************************
61 // 主循环程序
62 *************************************************************************************/
63 void main(void)
64 {
65 1 unsigned char temp;
66 1 unsigned char flag = 0;
67 1
68 1 WDTCN = 0xde;
69 1 WDTCN = 0xad;
70 1
71 1 SYSCLK_Init();
72 1 PORT_Init();
73 1
74 1 Uart0_Init(BaudRate_115200);
75 1 Uart0_SendString("System started!\n");
76 1
77 1 flag=0;
78 1 while(1)
79 1 {
80 2 USBhard_Reset();
81 2 temp=SL811Read(IntStatus);
82 2 _nop_();
83 2 if ((temp&0x80)==0x80)
84 2 {
85 3 if (flag==0)
86 3 Uart0_SendString("Find U Disk!\n");
87 3 flag = 1;
88 3 }
89 2 else
90 2 {
91 3 if (flag==1)
92 3 Uart0_SendString("U Disk removed!\n");
93 3 flag = 0;
94 3 }
95 2
96 2 }
97 1
98 1 if ((temp&0x80)==0)
99 1 {
100 2 SL811Write(0x0e,0xff);
101 2 SL811Write(0x0e,0x0e);
102 2 SL811Write(0x05,0x21);
103 2 }
104 1 else if ((temp&0x80)==0x80)
105 1 {
106 2 SL811Write(0x0e,0xae);
107 2 SL811Write(0x0e,0x0e);
108 2 SL811Write(0x05,0x05);
109 2 }
110 1 else
111 1 SL811Write(0x0d,0xff);
112 1
113 1 SL811Write(0x00,0x50);
114 1 SL811Write(0x04,0x00);
115 1 SL811Write(0x00,0x01);
116 1 DelayMs(10);
117 1 // sl811_init();
C51 COMPILER V7.06 MAIN 05/30/2005 21:27:00 PAGE 3
118 1
119 1 while(1)
120 1 {
121 2
122 2 }
123 1
124 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -