📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/26/2008 13:35:49 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN ..\OUT\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Source\main.c BROWSE DEBUG OBJECTEXTEND PRINT(..\OUT\main.lst) OBJECT(..
-\OUT\main.obj)
stmt level source
1 /*
2 *****************************************************************************************************
3 *
4 * File name: main.c
5 *****************************************************************************************************
6 */
7 #include "..\head\includes.h"
8
9
10
11 /*
12 *****************************************************************************************************
13 * PORTA初始化
14 *****************************************************************************************************
15 */
16 xdata PSD_REGS PSD_reg _at_ 0x8000; //该地址与PSD软件里RAM配置的地址要一致
17 void Mcu_Port_Init(void)
18 {
19 1 PSD_reg.CONTROL_A.byte = 255;
20 1 PSD_reg.DIRECTION_A.byte = 255;
21 1
22 1 }
23
24 /*
25 *****************************************************************************************************
26 * 变量初始化
27 *****************************************************************************************************
28 */
29 void ValueInit(void)
30 {
31 1 LED(CONNECT_LED,ON); //在线LED
32 1 LED(RUN_LED,ON); //运行LED
33 1 DEFAULT_PIN = 1; //恢复出厂值引脚初始化为高电平
34 1 bConnect = FALSE; //设置未连接
35 1 HttpFlag = FALSE; //WEB模式
36 1 SendHeartFlag = FALSE; //已发送心跳包
37 1 ConnectNum = RECONNECT_NUM; //设置一个本地端口号重连几次
38 1 LocalPort = 1024; //本地端口初始设置为1024
39 1 ModelStatu = MODEL_CONFIG_STATU; //初始为配置状态
40 1 }
41
42 /*
43 *****************************************************************************************************
44 *FUNC: 各功能初始化
45 *NOTE:
46 *****************************************************************************************************
47 */
48 #if 0
#define VOID_FUNC_NUM 9
typedef void(*VoidFuncPtr)(void);
VoidFuncPtr code VoidInitFunc[VOID_FUNC_NUM]=
{
C51 COMPILER V7.06 MAIN 09/26/2008 13:35:49 PAGE 2
Mcu_Port_Init, //端口PORTA初始化
ValueInit, //变量值初始化
Uart0Init, //波特率要跟根据FALSH里的设置串口初始化
Uart0BufferInit, //串口缓冲区初始化
Timer0Init, //定时器初始化
Rtl8019Init, //初始化8019as
InitPingTable, //初始化PING表
InitArpTable, //初始化ARP表
TcpInit //初始化tcp套接字
};
#endif
66
67 void Mcu_Init(void)
68 {
69 1 #if 0
unsigned char i;
for (i=0; i<VOID_FUNC_NUM; i++) {
if (VoidInitFunc[i]) {
VoidInitFunc[i]();
}
}
#endif
78 1
79 1 Mcu_Port_Init(); //端口PORTA初始化
80 1 ValueInit(); //变量值初始化
81 1 NetConfigInit(); //网络配置初始化 这一定要在UART0INIT前,因为波特率是根据读出来配置
82 1 Uart0Init(); //波特率要跟根据FALSH里的设置串口初始化
83 1 Uart0BufferInit(); //串口缓冲区初始化
84 1 Timer0Init(); //定时器初始化
85 1 Rtl8019Init(); //初始化8019as
86 1 InitPingTable(); //初始化PING表
87 1 InitArpTable(); //初始化ARP表
88 1 TcpInit(); //初始化tcp套接字
89 1
90 1 DHCPInit();
91 1
92 1 #ifdef PROTOCOL_2004
Pro2004Init();
#endif
95 1 }
96
97 /*
98 *****************************************************************************************************
99 *FUNC: 模块参数配置
100 *NOTE:
101 1:TimerMil[T_DELAY_NUM] int型 每1MS自减一次.
102 2:1s之内有收到"0x30"空格键,进入配置,ModelStatu = MODEL_CONFIG_STATU
103 3:退出配置时ModelStatu = MODEL_RUN_STATU;以便主程序里判断
104 *****************************************************************************************************
105 */
106 void Model_Config(void)
107 {
108 1 unsigned char xdata key=0;
109 1
110 1 HintMsg(6,NULL);
111 1 TimerMil[T_DELAY_NUM] = 1500;
112 1 while (TimerMil[T_DELAY_NUM]) {
113 2 inRxBuf_Bak = inRxBuf; //减少分侦的可能
114 2 Mygetch(&key);
115 2 if ((key == 'S')||(key == 's')) {
116 3 break;
C51 COMPILER V7.06 MAIN 09/26/2008 13:35:49 PAGE 3
117 3 }
118 2 }
119 1 if ((key == 'S')||(key == 's')) {
120 2 ModelStatu = MODEL_CONFIG_STATU;
121 2 TimerSec[T_EXIT_CONFIG] = EXIT_CONFIG_SEC;
122 2 HintMsg(3,NULL); //提示进入配置
123 2 } else {
124 2 ModelStatu = MODEL_RUN_STATU;
125 2 HintMsg(4,NULL); //提示退出配置
126 2 }
127 1
128 1 DelayHMSM(0,0,0,100); //进入主程序前初始化指针,这里延时是让提示信息先发完
129 1 Uart0BufferInit(); //缓冲区指针一定要初始化
130 1 }
131
132 /*
133 *****************************************************************************************************
134 *FUNC:
135 *NOTE:
136 *****************************************************************************************************
137 */
138 void main(void)
139 {
140 1 //WDTEN(); //看门狗使能
141 1 WDTDIS();
142 1 Mcu_Init(); //单片机定时,串口初始化,网络配置初始化
143 1 Model_Config(); //是否进入配置状态
144 1
145 1 while(1) {
146 2 if (Query8019()) { //表示收到数据包
147 3 MainCycle();
148 3 }
149 2
150 2 Cycle10ms(); //10MS一个周期运行
151 2 Cycle1s(); //1S一个周期运行
152 2
153 2 Data2_Te2NetBuf(); //串口数据扫描,有数据存入Te2NetBuf
154 2 Parse_Te2NetBuf(); //如果Te2NetBuf有数据,解析 配置命令/发到NET
155 2 Parse_Net2TeBuf(); //如果Net2TeBuf有数据,解析 配置命令/发到终端
156 2 #ifdef PROTOCOL_2004
ParseReSentBuf();
#endif
159 2 }
160 1 }
161
162
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 232 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -