📄 uart_040.lst
字号:
C51 COMPILER V7.50 UART_040 12/06/2006 11:05:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE UART_040
OBJECT MODULE PLACED IN uart_040.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe uart_040.c DB OE
line level source
1 #include "c8051F040.h"
2 #define uchar unsigned char
3 #define uint unsigned int
4
5 void port_init();
6 void os_init();
7 void uart_init();
8 void time_init();
9 /*************************************************************************
10 *
11 *主函数
12 **************************************************************************/
13 void main()
14 {
15 1 uchar g;
16 1 WDTCN = 0xDE; // 关闭看门狗
17 1 WDTCN = 0xAD;
18 1 os_init(); //晶振初始化
19 1 port_init(); //端口初始化
20 1 uart_init();
21 1 time_init();
22 1 SFRPAGE = CONFIG_PAGE;
23 1 IE = 0x90; //开中断
24 1
25 1
26 1 while(1)
27 1 {
28 2 SFRPAGE = UART0_PAGE;
29 2
30 2
31 2 g=SBUF0;
32 2 SFRPAGE = UART0_PAGE;
33 2 while(RI0==0); RI0=0;
34 2
35 2 {
36 3 SFRPAGE = UART0_PAGE;
37 3 SBUF0=g;
38 3
39 3 while(TI0==0);
40 3 SFRPAGE = UART0_PAGE;
41 3 TI0=0;
42 3
43 3 }
44 2 }
45 1
46 1
47 1 }
48 /*************************************************************************
49 *
50 *端口初始化函数
51 **************************************************************************/
52 void port_init()
53 {
54 1 SFRPAGE = CONFIG_PAGE;
55 1
C51 COMPILER V7.50 UART_040 12/06/2006 11:05:33 PAGE 2
56 1 XBR0 = 0x04;
57 1 XBR2 = 0x40;
58 1
59 1 P0MDOUT = 0X10;
60 1
61 1 }
62 /*************************************************************************
63 *
64 *系统时钟初始化,选择外部晶体振荡器
65 **************************************************************************/
66 void os_init()
67 {
68 1 int i = 0;
69 1 SFRPAGE = CONFIG_PAGE;
70 1 OSCXCN = 0x67; //外部22.1184M晶振
71 1 for (i = 0; i < 3000; i++); //等待外部晶振稳定
72 1 while ((OSCXCN & 0x80) == 0);
73 1 CLKSEL = 0x01; //系统时钟不分频
74 1
75 1 }
76 /*************************************************************************
77 *
78 *串口初始化,选择UART1
79 **************************************************************************/
80 void uart_init()
81 {
82 1 SFRPAGE = UART0_PAGE;
83 1 SCON0 = 0x50; //允许uart1
84 1
85 1 }
86 /*************************************************************************
87 *
88 *定时器初始化,作为UART0的波特率发生器
89 *************************************************************************/
90 void time_init()
91 {
92 1 SFRPAGE = TIMER01_PAGE;
93 1 TCON = 0X40;
94 1 TMOD = 0x20;
95 1 CKCON = 0X10;
96 1 TH1 = 0xb8;
97 1 TR1=1;
98 1
99 1
100 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 118 ----
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 + -