?? cygnalcon.lst
字號:
C51 COMPILER V8.17 CYGNALCON 03/26/2009 14:31:59 PAGE 1
C51 COMPILER V8.17, COMPILATION OF MODULE CYGNALCON
OBJECT MODULE PLACED IN .\out-files\cygnalcon.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE User Files\cygnalcon.c LARGE BROWSE INCDIR(.\smaRTC;.\SMBus) DEBUG OBJECTEX
-TEND PRINT(.\list-files\cygnalcon.lst) TABS(2) OBJECT(.\out-files\cygnalcon.obj)
line level source
1
2 #include <c8051f410.h> // SFR declarations
3 #include <stdio.h>
4
5 //-----------------------------------------------------------------------------
6 // Global CONSTANTS
7 //-----------------------------------------------------------------------------
8
9 #define SYSCLK 24500000 // SYSCLK frequency in Hz
10 #define BAUDRATE 115200 // Baud rate of UART in bps
11
12 //-----------------------------------------------------------------------------
13 // Function PROTOTYPES
14 //-----------------------------------------------------------------------------
15
16 void SYSCLK_Init (void);
17 void UART0_Init (void);
18 void PORT_Init (void);
19
20
21 void Flash_Init() //Flash :40ns
22 {
23 1 PFE0CN &= ~0x20;
24 1 ONESHOT = 0x07;
25 1 PFE0CN |= 0x20;
26 1 }
27
28
29 void config (void)
30 {
31 1 PCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer enable)
32 1
33 1 SYSCLK_Init (); // Initialize Oscillator
34 1 PORT_Init(); // Initialize Port I/O
35 1 Flash_Init();
36 1 UART0_Init();
37 1
38 1 }
39 //-----------------------------------------------------------------------------
40 // Initialization Subroutines
41 //-----------------------------------------------------------------------------
42
43 //-----------------------------------------------------------------------------
44 // PORT_Init
45 //-----------------------------------------------------------------------------
46
47 void PORT_Init (void)
48 {
49 1 // P0.0 - SDA (SMBus), Open-Drain, Digital
50 1 // P0.1 - SCL (SMBus), Open-Drain, Digital
51 1 // P0.2 - CEX0 (PCA), Push-Pull, Digital
52 1 // P0.3 - CEX1 (PCA), Push-Pull, Digital
53 1 // P0.4 - TX0 (UART0), Push-Pull, Digital
54 1 // P0.5 - RX0 (UART0), Open-Drain, Digital
C51 COMPILER V8.17 CYGNALCON 03/26/2009 14:31:59 PAGE 2
55 1 // P0.6 - Unassigned, Push-Pull, Digital
56 1 // P0.7 - Unassigned, Push-Pull, Digital
57 1
58 1 // P1.0 - Unassigned, Push-Pull, Digital
59 1 // P1.1 - Unassigned, Push-Pull, Digital
60 1 // P1.2 - Unassigned, Push-Pull, Digital
61 1 // P1.3 - Unassigned, Push-Pull, Digital
62 1 // P1.4 - Unassigned, Push-Pull, Digital
63 1 // P1.5 - Unassigned, Push-Pull, Digital
64 1 // P1.6 - Unassigned, Push-Pull, Digital
65 1 // P1.7 - Unassigned, Push-Pull, Digital
66 1
67 1 // P2.0 - Unassigned, Open-Drain, Digital
68 1 // P2.1 - Unassigned, Open-Drain, Digital
69 1 // P2.2 - Unassigned, Open-Drain, Digital
70 1 // P2.3 - Unassigned, Open-Drain, Digital
71 1 // P2.4 - Unassigned, Open-Drain, Digital
72 1 // P2.5 - Unassigned, Open-Drain, Digital
73 1 // P2.6 - Unassigned, Open-Drain, Digital
74 1 // P2.7 - Unassigned, Open-Drain, Digital
75 1
76 1 P0MDOUT = 0xDC;
77 1 P1MDOUT = 0xFF;
78 1 XBR0 = 0x05;
79 1 XBR1 = 0x42;
80 1
81 1 }
82
83 //-----------------------------------------------------------------------------
84 // SYSCLK_Init
85 //-----------------------------------------------------------------------------
86
87 void SYSCLK_Init (void)
88 {
89 1 OSCICN = 0x87; // configure internal oscillator for
90 1 // 24.5MHz
91 1 //RSTSRC = 0x04; // enable missing clock detector
92 1 }
93
94 //-----------------------------------------------------------------------------
95 // UART0_Init
96 //-----------------------------------------------------------------------------
97 // Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
98 //-----------------------------------------------------------------------------
99
100 void UART0_Init (void)
101 {
102 1 SCON0 = 0x10; // SCON0: 8-bit variable bit rate
103 1 // level of STOP bit is ignored
104 1 // RX enabled
105 1 // ninth bits are zeros
106 1 // clear RI0 and TI0 bits
107 1 if (SYSCLK/BAUDRATE/2/256 < 1) {
108 2 TH1 = -(SYSCLK/BAUDRATE/2);
109 2 CKCON |= 0x08; // T1M = 1; SCA1:0 = xx
110 2 } else if (SYSCLK/BAUDRATE/2/256 < 4) {
111 2 TH1 = -(SYSCLK/BAUDRATE/2/4);
112 2 CKCON &= ~0x0B; // T1M = 0; SCA1:0 = 01
113 2 CKCON |= 0x01;
114 2 } else if (SYSCLK/BAUDRATE/2/256 < 12) {
115 2 TH1 = -(SYSCLK/BAUDRATE/2/12);
116 2 CKCON &= ~0x0B; // T1M = 0; SCA1:0 = 00
C51 COMPILER V8.17 CYGNALCON 03/26/2009 14:31:59 PAGE 3
117 2 } else if (SYSCLK/BAUDRATE/2/256 < 48) {
118 2 TH1 = -(SYSCLK/BAUDRATE/2/48);
119 2 CKCON &= ~0x0B; // T1M = 0; SCA1:0 = 10
120 2 CKCON |= 0x02;
121 2 } else {
122 2 while (1); // Error. Unsupported baud rate
123 2 }
124 1
125 1 TL1 = TH1; // init Timer1
126 1 TMOD &= ~0xf0; // TMOD: timer 1 in 8-bit autoreload
127 1 TMOD |= 0x20;
128 1 TR1 = 1; // START Timer1
129 1 TI0 = 1; // Indicate TX0 ready
130 1 }
131
132
133
134
135
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 65 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
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 + -