?? mcu.lst
字號:
C51 COMPILER V8.01 MCU 11/28/2006 08:08:05 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MCU
OBJECT MODULE PLACED IN ..\..\1out\mcu.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\kernal\mcu.c BROWSE INCDIR(..\..\inc;..\..\mslib;..\..\Device;..\..\k
-ernal;..\..\msFunc;..\..\pc;..\..\tv) DEBUG OBJECTEXTEND PRINT(..\..\1out\mcu.lst) OBJECT(..\..\1out\mcu.obj)
line level source
1 #define _MCU_C_
2
3 #include "types.h"
5 #include "misc.h"
6 #include "DEBUG.h"
7 #include "Reg52.h"
8 #include "ms_reg.h"
9 #include "ms_rwreg.h"
10 #include "mcu.h"
11
12 void Init_MCU(void)
13 {
14 1 EA=0;
15 1
16 1 g_bMcuUseNewClock = 0;
17 1
18 1 Init_IOPorts();
19 1 Init_SerialPort();
20 1 Init_Timer();
21 1 Init_ExternalInterrupt();
22 1 EA=1;
23 1 }
24
25
26 // Initialize I/O setting
27 void Init_IOPorts(void)
28 {
29 1 #if 1
30 1 #if(ENABLE_WATCH_DOG)
31 1 PWDT = 0x50;
32 1 PWDT1 = 0xA0;
33 1 #else
PWDT = 0x55;
PWDT1 = 0xAA;
#endif
37 1
38 1 WDTCON = 0x00; // disable WDT.
39 1
40 1 #else
PWDT = 0x55;
PWDT1 = 0xAA;
#if(ENABLE_WATCH_DOG)
WDTCON = 0x02; // enable WDT.
#else
WDTCON = 0x00; // disable WDT.
#endif
#endif
49 1 //600ms
50 1 CKCON = 0x98;//0xD8;//0xC0;
51 1 P0 = Init_P0_Value;//0xFE;
52 1 //P0SEL = 0xf9;
53 1 //P0IO = 0xf9;
54 1
C51 COMPILER V8.01 MCU 11/28/2006 08:08:05 PAGE 2
55 1 P1SEL = 0xff;
56 1 P1IO = 0xff;
57 1
58 1 P4 = Init_P4_Value;//0xFD;
59 1
60 1 #ifdef P6_GPIO_Enable
61 1 P6_IO_Ctrl|= 0xF0;
62 1 P6|=Init_P6_Value;
63 1 #endif
64 1
65 1 #ifdef P5_GPIO_Enable
P5_IO_Ctrl|=0x0F;
P5|=Init_P5_Value;
#endif
69 1 }
70
71 /* initialize 8051 CPU timer & interrupt routine */
72 /* TCON.7( TF1): Timer 1 overflow flag */
73 /* TCON.6( TR1): Timer 1 stop/start bit */
74 /* TCON.5( TF0): Timer 0 overflow flag */
75 /* TCON.4( TR0): Timer 0 stop/start bit */
76 /* TCON.3( IE1): Timer 1 INT1 interrupt flag */
77 /* TCON.2( IT1): Timer 1 INT1 interrupt style setup*/
78 /* TCON.1( IE0): Timer 0 /INT0 interrupt flag */
79 /* TCON.0( IT0): Timer 0 /INT0 interrupt style setup */
80
81 void Init_ExternalInterrupt(void)
82 {
83 1 //INT0 setting
84 1 //for DDC2BI
85 1 IT0 = 0; // set INT0 type(edge triger)
86 1 PX0 = 1; // set INT0 priority high
87 1 EX0 = 1; // enable INT0 interrupt
88 1
89 1 //INT1 setting
90 1 IT1 = 1; // set INT1 type(edge triger)
91 1 PX1 = 0; // set INT1 priority high
92 1 EX1 = 1; // enable INT1 interrupt
93 1
94 1 //TIMER0 setting
95 1 //McuInitTimer0();
96 1
97 1 //Timer1 setting for uart
98 1
99 1 //TIMER2 setting
100 1 T2CON = 0x00;
101 1 T2MOD = 0x00;
102 1
103 1 EA = 1; // interrupt enable
104 1 }
105
106 void Init_Timer(void)
107 {
108 1 TMOD = (TMOD & 0xf0) | 0x01; // set TIMER0 mode 1
109 1 PT0 = 0; // set TIMER0 priority low
110 1 TR0 = 1; // TIMER0 enable
111 1 ET0 = 1; // enable TIMER0 interrupt
112 1 }
113
114 /*----------Timer 2 -------------------*/
115 /* T2CON.7( TF2): overflow flag */
116 /* T2CON.6( EXF2): extern enable flag */
C51 COMPILER V8.01 MCU 11/28/2006 08:08:05 PAGE 3
117 /* T2CON.5( RCLK): receive clock */
118 /* T2CON.4( TCLK): transfer clock */
119 /* T2CON.3( EXEN2): extern enable flag */
120 /* T2CON.2( TR2): stop/start timer 2 */
121 /* T2CON.1( C_T2): intern clock(0)/extern counter(1) switch */
122 /* T2CON.0(CP_RL2): capture flag */
123
124 void Init_SerialPort(void)
125 {
126 1 // timer1, mode 2, 8-bit auto reload
127 1 TMOD = (TMOD & 0x0f) | 0x20; // timer1, mode 2, 8-bit reload
128 1
129 1 // Timer1: Uart baudrate generator
130 1 TH1 = TIMER1_MODE2_TH1; // set timer1(buad rate)
131 1 TR1 = 1; // timer1 run
132 1
133 1 // UART
134 1 SCON = 0x50; // mode 1, 8-bit UART, enable receive
135 1 if(_SMOD) PCON |= 0x80;
136 1 RI = 0;
137 1 TI = 0; // clear transfer flag
138 1
139 1 PS = 0; // set uart priority low
140 1 ES = 1; // enable uart interrupt
141 1 // reset Uart variables
142 1 #if (IR_TIMER_SEL == IR_USE_TIMER1)
g_bUartDisable = 0;
#endif
145 1 g_UartCommand.Index = 0;
146 1
147 1 g_bDebugASCIICommandFlag = _DISABLE;
148 1 g_bDebugProgStopFlag = FALSE;
149 1 }
150
151 #if ENABLE_MCU_USE_INTERNAL_CLOCK
152 void McuUseInternalClock(void)
153 {
154 1 WORD wTmp;
155 1
156 1 wTmp = ((DWORD)NEW_MCU_XTAL_CLK_HZ*_SMOD+NEW_MCU_XTAL_CLK_HZ+(TIMER1_MODE2_DIVIDER/2))/TIMER1_MODE2_DI
-VIDER;
157 1 //printf("\r\nNew TIMER1_MODE2_TH1=%d", wTmp);
158 1
159 1 //msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
160 1 msWriteByte( BK0_EE_PDMD2, BK0_EE_VAL );
161 1
162 1 ES = 0;
163 1 TR1 = 0;
164 1 RI = 0;
165 1 TI = 0; // clear transfer flag
166 1
167 1 TH1 = 256 - wTmp;
168 1 g_bMcuUseNewClock = 1;
169 1
170 1 TR1 = 1;
171 1 ES = 1;
172 1 }
173 #endif
174
175 #if(ENABLE_WATCH_DOG)
176 void McuWatchDogSetTimer(EnuWatchDogTime WatchDogType)
177 {
C51 COMPILER V8.01 MCU 11/28/2006 08:08:05 PAGE 4
178 1 if(WatchDogType==WatchDogTime_5S) //5 s'
179 1 CKCON = 0xD8;
180 1 else //600 ms
181 1 CKCON = 0x98;
182 1 }
183
184 void WatchDogClear(void)
185 {
186 1 WDTCON = 1;
187 1 }
188 #else
void WatchDogClear(void)
{}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 179 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -