📄 config.lst
字号:
C51 COMPILER V8.08 CONFIG 03/02/2009 08:07:58 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE CONFIG
OBJECT MODULE PLACED IN .\Output-files\config.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Config\config.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\List-files\config.l
-st) OBJECT(.\Output-files\config.obj)
line level source
1 #include "..\ucos-ii\includes.h"
2
3 #define SYSCLK 22118400
4
5
6
7
8
9 extern void SYSCLK_Init(void);
10 extern void Port_Init(void);
11 extern void Time2_Init(void);
12 extern void UART1_Init(void);
13
14 void config(void)
15 {
16 1 WDTCN = 0xde;
17 1 WDTCN = 0xad;
18 1
19 1 SYSCLK_Init();
20 1 Port_Init ();
21 1 Time2_Init();
22 1 UART1_Init();
23 1
24 1 }
25
26
27
28 void Time2_Init (void)
29 {
30 1 char SFRPAGE_SAVE;
31 1
32 1 SFRPAGE_SAVE = SFRPAGE; // Preserve SFRPAGE
33 1
34 1 SFRPAGE = TMR2_PAGE;
35 1
36 1 TMR2CN = 0x00; // Timer in 16-bit auto-reload up timer
37 1 // mode
38 1 TMR2CF = 0x08; // SYSCLK is time base; no output;
39 1 // up count only
40 1 RCAP2 = - ((long) SYSCLK/1000);
41 1 //次数为SYSTEMCLOCK/1000 系统每次时间为1/SYSTEMCLOCK 所以就得出进行一次益处计数为1/1000秒
42 1 TMR2 = RCAP2;
43 1 TR2= 1;
44 1 ET2 = 1; // Timer2 interrupt enabled
45 1 }
46
47 void SYSCLK_Init (void)
48 {
49 1 char old_SFRPAGE = SFRPAGE;
50 1
51 1 unsigned int i;
52 1
53 1 SFRPAGE = CONFIG_PAGE; // Switch to Configuration Page
54 1
C51 COMPILER V8.08 CONFIG 03/02/2009 08:07:58 PAGE 2
55 1 OSCXCN = 0x67; // start external oscillator with
56 1 // 22.1184MHz crystal on TB
57 1
58 1 for (i=0; i <5000; i++) ; // XTLVLD blanking interval (>1ms)
59 1
60 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
61 1
62 1 //RSTSRC = 0x04; // enable missing clock detector reset
63 1
64 1 CLKSEL = 0x01; // change to external crystal
65 1
66 1 OSCICN = 0x83; // Enable internal oscillator
67 1
68 1 SFRPAGE = old_SFRPAGE; // restore SFRPAGE
69 1 }
70
71
72 void PORT_Init (void)
73 {
74 1 char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
75 1
76 1 SFRPAGE = CONFIG_PAGE;
77 1 //下面这段是恢复到UART1的配置。
78 1 P0MDOUT = 0x01;
79 1 P2MDOUT = 0x03;
80 1 XBR2 = 0x44;
81 1
82 1
83 1
84 1 /*P2MDOUT = 0x03;
85 1 P0MDOUT = 0x01;
86 1 XBR0 = 0x05; //这是针对UART0和SMBus的端口配置的
87 1 XBR2 = 0x40;
88 1 */
89 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
90 1
91 1 }
92
93
94
95 //-----------------------------------------------------------------------------
96 // UART0_Init
97 //-----------------------------------------------------------------------------
98 //
99 // Return Value : None
100 // Parameters : None
101 //
102 // Configure the UART1 using Timer1, for <baudrate> and 8-N-1.
103 //
104 //-----------------------------------------------------------------------------
105 void UART1_Init (void)
106 {
107 1 char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
108 1
109 1 SFRPAGE = UART1_PAGE; //////////////////////////////////////
110 1 SCON1 = 0x10; // Timer 1 generates UART0 baud rate and
111 1 // UART0 baud rate divide by two disabled
112 1
113 1 SFRPAGE = TIMER01_PAGE;
114 1 TMOD &= ~0xF0;
115 1 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload
116 1
C51 COMPILER V8.08 CONFIG 03/02/2009 08:07:58 PAGE 3
117 1
118 1 if (SYSCLK/BAUDRATE/2/256 < 1) {
119 2 TH1 = -(SYSCLK/BAUDRATE/2);
120 2 CKCON |= 0x10; // T1M = 1; SCA1:0 = xx
121 2 } else if (SYSCLK/BAUDRATE/2/256 < 4) {
122 2 TH1 = -(SYSCLK/BAUDRATE/2/4);
123 2 CKCON &= ~0x13; // Clear all T1 related bits
124 2 CKCON |= 0x01; // T1M = 0; SCA1:0 = 01
125 2 } else if (SYSCLK/BAUDRATE/2/256 < 12) {
126 2 TH1 = -(SYSCLK/BAUDRATE/2/12);
127 2 CKCON &= ~0x13; // T1M = 0; SCA1:0 = 00
128 2 } else {
129 2 TH1 = -(SYSCLK/BAUDRATE/2/48);
130 2 CKCON &= ~0x13; // Clear all T1 related bits
131 2 CKCON |= 0x02; // T1M = 0; SCA1:0 = 10
132 2 }
133 1
134 1 TL1 = TH1; // Initialize Timer1
135 1 TR1 = 1; // Start Timer1
136 1
137 1 SFRPAGE = UART1_PAGE;
138 1 TI1 = 1; // Indicate TX1 ready
139 1
140 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
141 1
142 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 138 ----
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 + -