📄 initial.lst
字号:
C51 COMPILER V7.20 INITIAL 02/20/2006 10:13:56 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE INITIAL
OBJECT MODULE PLACED IN .\output\initial.obj
COMPILER INVOKED BY: D:\keil c51 v7.09\C51\BIN\C51.EXE initial.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\initial.lst) OBJ
-ECT(.\output\initial.obj)
line level source
1 #ifndef _INITIAL_C_
2 #define _INITIAL_C_
3
4 #include "api.h"
5 #include "ioserial.h"
6
7
8 void initial_global_variable( void )
9 {
10 1 SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
11 1 SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;
12 1
13 1 memset(psys, 0, sizeof(SYSTEM_INFOMATION) );
14 1 memset(psdev, 0, sizeof(SYSTEM_DEVICE_STATUS) );
15 1
16 1 psdev->protocol = SYSTEM_PROTOCOL_VERSION;
17 1 psdev->local.protect_condition = IDB_PROTECT_E_3;
18 1 psdev->remote.protect_condition = IDB_PROTECT_E_3;
19 1
20 1 psdev->local.soft_version = SYSTEM_SOFTWARE_VERSION;
21 1 psdev->remote.soft_version = SYSTEM_SOFTWARE_VERSION;
22 1
23 1 psys->setbuffer[1] |= SYSTEM_PROTECT_E_3;
24 1 psys->sendrc7017 = SETCMDSERIAL;
25 1 psys->SetCommandCounter = 0;
26 1 psys->system_type = 0xaa;
27 1 }
28
29 void initial_light( void )
30 {
31 1 BYTE counter;
32 1
33 1 for( counter=4; counter>=2;counter-- )
34 1 {
35 2 WriteChip( LOCAL_FIBERALARM_ADDR, ~(0x01<<counter) );
36 2 WriteChip( REMOTE_FIBERALARM_ADDR, ~(0x01<<counter) );
37 2 taskDelay( 300 );
38 2 RUN = ~RUN;
39 2 }
40 1 WriteChip( LOCAL_FIBERALARM_ADDR, 0xfd );
41 1 WriteChip( REMOTE_FIBERALARM_ADDR, 0xfd );
42 1 taskDelay( 300 );
43 1
44 1 WriteChip( LOCAL_FIBERALARM_ADDR, INVALID );
45 1 WriteChip( REMOTE_FIBERALARM_ADDR, INVALID );
46 1
47 1 for( counter=0; counter<gSystemInfo.max_system_e1; counter++ )
48 1 {
49 2 WriteChip( LOCAL_E1ALARM_ADDR, ~(0x01<<counter) );
50 2 WriteChip( REMOTE_E1ALARM_ADDR, ~(0x01<<counter) );
51 2 taskDelay( 300 );
52 2 RUN = ~RUN;
53 2 }
54 1 WriteChip( LOCAL_E1ALARM_ADDR, INVALID );
C51 COMPILER V7.20 INITIAL 02/20/2006 10:13:56 PAGE 2
55 1 WriteChip( REMOTE_E1ALARM_ADDR, INVALID );
56 1
57 1 /*写软件不环回*/
58 1 WriteChip( SOFTLOOP_ADDR, 0x00 );
59 1 }
60
61 void Init_w78e58_cpu(void)
62 {
63 1 CHPENR = 0x87;/*解锁、在华邦有辅助内部RAM时,它要控制使用辅助RAM的寄存器时需要解锁*/
64 1 CHPENR = 0x59;/*当解锁后控制完、需要写个0关锁*/
65 1 CC = 0x10;/*内部辅助RAM使用,0x00不使用*/
66 1 CHPENR = 0;/*关锁*/
67 1 CN = 0x00;/*读ROM*/
68 1 }
69
70 void initial_cpu( void )
71 {
72 1 DISABLE_INTERRUPT;
73 1
74 1 Init_w78e58_cpu();
75 1
76 1 TMOD = 0x21;
77 1
78 1 TH0 = 0xb8; //初始化定时器0
79 1 TL0 = 0x00; //22.1184MHz时钟下定时时间为10ms
80 1 TR0 = 1; //定时器运行控制位
81 1
82 1 TH1 = 0xfa; //22.1184MHz时钟下BOAU RATE 9600bps
83 1 TL1 = 0xfa;
84 1 TR1 = 1;
85 1
86 1 SCON = 0x50; //初始化串行口
87 1
88 1 P4CONA = 0x00;
89 1 P4CONB = 0x00;
90 1 XICON = 0x00;
91 1 CS = 0;
92 1 UD = 0;
93 1
94 1 INC = 0;
95 1
96 1 PS = 0; //串口优先级高
97 1 ET0 = 1; //定时器中断允许
98 1 ET1 = 0; //用于产生波特率,禁止中断
99 1 ES = 1;
100 1 PT0 = 0; //定时器优先级低
101 1
102 1 initIocomm();
103 1 }
104
105 #if _LCD_MENU_
106
107 BYTE check_system_i2c( void )
108 {
109 1 BYTE buffer[2][0x10],counter;
110 1
111 1 #if _LCD_MENU_
112 1 WP = LOW;
113 1 #endif
114 1 memset( buffer, 0, sizeof(buffer) );
115 1 for( counter=0; counter<0x10; counter++ )
116 1 buffer[0][counter] = counter;
C51 COMPILER V7.20 INITIAL 02/20/2006 10:13:56 PAGE 3
117 1
118 1 I2C_WriteData( 0, 0x10, &buffer[0][0] );
119 1 I2C_ReadData( 0, 0x10, &buffer[1][0] );
120 1 if( memcmp( &buffer[0][0], &buffer[1][0], 0x10 ) )
121 1 return FALSE;
122 1 else
123 1 return TRUE;
124 1 }
125
126 void init_system_i2c( void )
127 {
128 1 /*在没有检测到EEPROM时,程序是可以正常运行的,运行灯
129 1 将快速的闪烁*/
130 1
131 1 if( check_system_i2c() == TRUE )
132 1 {
133 2 gSystemInfo.run_time = 40;
134 2
135 2 init_system_infomation();
136 2 }
137 1 else
138 1 gSystemInfo.run_time = 10;
139 1 }
140
141 #endif
142
143 void initial_system( void )
144 {
145 1 DISABLE_INTERRUPT;
146 1
147 1 #if _LCD_MENU_
148 1 WP = HIGH;
149 1 #endif
150 1
151 1 initial_cpu();
152 1
153 1 /*在初始化CPU时打开了中断,在这再次关闭中断*/
154 1 DISABLE_INTERRUPT;
155 1 initial_global_variable();
156 1
157 1 #if _LCD_MENU_
158 1 /*先初始化LCD和菜单,再读EEPROM控制对比度*/
159 1 menu_key_voice( KEY_VOICE_DISABLE );
160 1 initial_menu();
161 1 init_system_i2c();
162 1 #else
gSystemInfo.run_time = 40;
#endif
165 1 initial_light();
166 1 initial_serial1();
167 1 system_watchdog( SYSTEM_NORMAL );
168 1
169 1 ENABLE_INTERRUPT;
170 1 }
171
172
173
174
175 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.20 INITIAL 02/20/2006 10:13:56 PAGE 4
CODE SIZE = 568 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 37
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 + -