📄 uart0_f340.lst
字号:
C51 COMPILER V8.09 UART0_F340 05/19/2011 23:29:41 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE UART0_F340
OBJECT MODULE PLACED IN uart0_f340.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart0_f340.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <c8051f340.h>
2 #include <string.h>
3 #include "uart0_f340.h"
4 /*--------------------------------------------------------------*/
5
6 /*--------------------------------------------------------------*/
7 //??????
8 //P0.4棗 MCU TXD;
9 //P0.5棗MCU RXD;
10 /*--------------------------------------------------------------*/
11
12 /*--------------------------------------------------------------*/
13 //????
14 static char Byte; //???????(1??)
15 bit read_flag= 0 ; //???????
16 HexTable[]={'0','1','2','3','4','5','6','7','8','9',
17 'A','B','C','D','E','F'};//??????
18 /*--------------------------------------------------------------*/
19 /***********************************************************
20 ????:Oscillator_Init
21 ????:???????24M????????
22 ????:?
23 ????:?
24 ? ?:
25 ??:Oscillator_Init();
26 ***********************************************************/
27 void Oscillator_Init()//???????24M????????
28 {
29 1 int i = 0;
30 1 CLKMUL = 0x80;
31 1 for (i = 0; i < 20; i++); // Wait 5us for initialization
32 1 CLKMUL |= 0xC0;
33 1 while ((CLKMUL & 0x20) == 0);
34 1 CLKSEL = 0x02;
35 1 OSCICN = 0x83;
36 1 }
37 /***********************************************************
38 ????:UART_Init
39 ????:UART0????8?UART?
40 ????:?
41 ????:?
42 ? ?:??: UART_Init();
43 ***********************************************************/
44 void UART_Init()
45 {
46 1 SCON0 = 0x10; //(SCON0?8?)S0MODE=0 ???????8?UART
47 1 //(SCON0?5?)MCE0 =0 ???????????
48 1 //(SCON0?4?)REN0 =1 UART0 ????
49 1 }
50 /***********************************************************
51 ????:Interrupts_Init
52 ????:???????UART0??,????,??UART0??????
53 ????:?
54 ????:?
55 ? ?:
C51 COMPILER V8.09 UART0_F340 05/19/2011 23:29:41 PAGE 2
56 ***********************************************************/
57 void Interrupts_Init()
58 {
59 1 IP |= 0x10; // Make UART high priority
60 1 //(IP?4?)PS0=1
61 1 IE = 0x90; //(IE?7?)EA =1 ???????????????????????
62 1 //(IE?4?)ES0=1 ??UART0??
63 1 }
64 /***********************************************************
65 ????:Timer_Init
66 ????:???1????????1???8????,?????
67 ????:?
68 ????:?
69 ? ?: ??:Timer_Init();
70 ***********************************************************/
71 void Timer_Init()
72 {
73 1 TMOD = 0x20; //???1?????????8???? T1M1-T1M0
74 1 //CKCON = 0x01; //12MHZ?,SYSCLK/4
75 1 TCON = 0x40; // ????? TCON= 0x40 , START Timer1 ????1
76 1 TH1 = 0x98; //24MHZ?,???1?????? ??????9600bps
77 1 //TH1 = 0x64; //12MHZ?,???1?????? ??????9600bps
78 1
79 1 }
80 /***********************************************************
81 ????:Port_IO_Init
82 ????:??IO??????????
83 ????:?
84 ????:?
85 ? ?:
86 ??:Port_IO_Init();
87 ***********************************************************/
88 void Port_IO_Init() //??IO??????????
89 {
90 1 PCA0MD &= ~0x40; //????????,???????????
91 1 XBR0 = 0x01; //??uart0?IO?
92 1 XBR1 = 0x40;
93 1 P1MDOUT = 0xFF; //P1???????
94 1 P1MDIN = 0XFF;
95 1 P2MDOUT = 0xFF; //P2???????
96 1 P3MDOUT = 0xff;//P3口推挽输出
97 1 P3MDIN = 0Xff;//P3数字输入
98 1 }
99 /***********************************************************
100 ????:Init_Device
101 ????:C8051???
102 ????:?
103 ????:?
104 ? ?: ??:Init_Device();
105 ***********************************************************/
106
107 void Init_Device(void)
108 {
109 1 Oscillator_Init(); //???????24M????????
110 1 Timer_Init(); //??????
111 1 UART_Init(); //UART0???
112 1 Interrupts_Init(); //?????
113 1 Port_IO_Init(); //IO????
114 1 }
115 /***********************************************************
116 ????:UART0_Interrupt
117 ????:?????????????????,???????RI0,?????????read_flag
C51 COMPILER V8.09 UART0_F340 05/19/2011 23:29:41 PAGE 3
118 ????:?
119 ????:Byte
120 read_flag = 1
121 ? ?: ??:
122 ***********************************************************/
123 void UART0_Interrupt (void) interrupt 4
124 {
125 1 if (RI0 == 1)
126 1 {
127 2 RI0 = 0; // ???????RI0
128 2 Byte = SBUF0; // ?????????
129 2 read_flag= 1 ; //???????
130 2 }
131 1 }
132 /***********************************************************
133 ????:UART_Send_Char
134 ????:??????????
135 ????:uchar sendByte ??????(8 bit)
136 ????:?
137 ? ?:??:UART_Send_Char('0');
138 ***********************************************************/
139 void UART_Send_Char(uchar sendByte)
140 {
141 1 SBUF0=sendByte;
142 1 while (TI0== 0); //??????
143 1 TI0= 0; //???????TI0
144 1 }
145
146 /***********************************************************
147 ????:UART_Send_Str
148 ????:??????????
149 ????:char *str ????????
150 ????:?
151 ? ?: ??:UART_Send_Str("START:");
152 ***********************************************************/
153 void UART_Send_Str(char *s)
154 {
155 1 int len=strlen(s);
156 1 int i;
157 1 for(i=0;i<len;i++)
158 1 UART_Send_Char(s[i]);
159 1 }
160 /********************************************************************
161 ????:UART_Send_10Int
162 ????:??????????????
163 ????:x:???????
164 ? ?:??
165 ? ?: ??: UART_Send_10Int(13252);
166 ********************************************************************/
167 void UART_Put_Num(unsigned long int x)
168 {
169 1 int i;
170 1 uchar display_buffer[10];
171 1
172 1 for(i=9;i>=0;i--)
173 1 {
174 2 display_buffer[i]='0'+x%10;
175 2 x/=10;
176 2 }
177 1 for(i=0;i<9;i++)
178 1 {
179 2 if(display_buffer[i]!='0')break;
C51 COMPILER V8.09 UART0_F340 05/19/2011 23:29:41 PAGE 4
180 2 }
181 1 for(;i<10;i++) UART_Send_Char(display_buffer[i]);
182 1 }
183 /********************************************************************
184 ????:UART_Send_4Hex
185 ????:????????????
186 ????:?????? uint x?
187 ? ?:??
188 ? ?:??:UART_Send_4Hex(65535);
189 ********************************************************************/
190 void UART_Send_4Hex(uint x)
191 {
192 1 uchar i;
193 1 uchar display_buffer[7];
194 1 display_buffer[6]=0;
195 1 display_buffer[0]='0';
196 1 display_buffer[1]='x';
197 1 for(i=5;i>=2;i--) //??????4????HEX?
198 1 {
199 2 display_buffer[i]=HexTable[(x&0xf)];
200 2 x>>=4;
201 2 }
202 1 UART_Send_Str(display_buffer);
203 1 }
204 /********************************************************************
205 ????:UART_Send_8Hex
206 ????:????????????
207 ????:?????? unsigned long x?
208 ? ?:??
209 ? ?:??:UART_Send_8Hex(655351);
210 ********************************************************************/
211 void UART_Send_8Hex(unsigned long x)
212 {
213 1 uchar i;
214 1 uchar display_buffer[11];
215 1 display_buffer[10]=0;
216 1 display_buffer[0]='0';
217 1 display_buffer[1]='x';
218 1 for(i=9;i>=2;i--)
219 1 {
220 2 display_buffer[i]=HexTable[(x&0xf)];
221 2 x>>=4;
222 2 }
223 1 UART_Send_Str(display_buffer);
224 1 }
225 /**************************************************************************
226 - ????:51????????????
227 - ????:STC51????
228 - ????:??,?????
229 - ????:inf:????????????
230 dat:????,???????????????????
231 - ????:?
232 - ?:???????????????,???????
233 **************************************************************************/
234
235 void UART_Put_Inf(char *inf,unsigned long int dat)
236 {
237 1 UART_Send_Str(inf);
238 1 UART_Put_Num(dat);
239 1 UART_Send_Str("\r\n");
240 1 }
241
C51 COMPILER V8.09 UART0_F340 05/19/2011 23:29:41 PAGE 5
242 void UART_Send_Enter()
243 {
244 1 UART_Send_Str("\r\n");
245 1 }
246 /****************************end****************************/
247 /****************************end****************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 649 ----
CONSTANT SIZE = 3 ----
XDATA SIZE = 33 47
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -