?? uart.lst
字號(hào):
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN Uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe Uart.c DB OE
stmt level source
1
2 // 引用外部頭文件
3
4 #include "c8051F020.h"
5 #include "uart.h"
6
7
8 /***********************************************************************************
9 * 函數(shù)名稱(chēng):Uart0_Init;
10 *
11 * 函數(shù)功能描述:Uart0初始化;
12 *
13 * 輸入?yún)?shù):unsigned char類(lèi)型,發(fā)送數(shù)據(jù)波特率;
14 *
15 * 返回?cái)?shù)據(jù):none;
16 *
17 * 注意: none;
18 ************************************************************************************/
19
20 void Uart0_Init(unsigned char BaudRate) //Uart0初始化
21 {
22 1
23 1 TR1=0; // 關(guān)閉定時(shí)器Timer1
24 1 ET1=0; // 關(guān)閉定時(shí)器Timer1中斷
25 1 PT1=0; // 關(guān)閉定時(shí)器Timer1中斷優(yōu)先權(quán)
26 1 TMOD&= 0x0f; // TMOD: 定時(shí)器1, 模式2, 8位重載
27 1 TMOD|= 0x20; // TMOD: 定時(shí)器1, 模式2, 8位重載
28 1
29 1 SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX
30 1 PCON |= 0x80; // SMOD00 = 1
31 1
32 1 if (BaudRate>=BaudRate_4800)
33 1 {
34 2 CKCON |= 0x10; // 定時(shí)器Timer1使用系統(tǒng)時(shí)鐘作為時(shí)間基準(zhǔn)
35 2 TH1 = -(SYSCLK/1200/(BaudRate*16)); // 設(shè)置定時(shí)器Timer1重載值
36 2 }
37 1 else
38 1 {
39 2 CKCON &= ~0x10; // 定時(shí)器Timer1使用系統(tǒng)時(shí)鐘作為時(shí)間基準(zhǔn)
40 2 TH1 = -(SYSCLK/1200/(BaudRate*16*12)); // 設(shè)置定時(shí)器Timer1重載值
41 2 }
42 1
43 1 ES0=0; // 關(guān)閉串口Uart0中斷
44 1 PS=0; // 關(guān)閉串口Uart0中斷優(yōu)先權(quán)
45 1
46 1 TI0 = 1; // Indicate TX0 ready
47 1 RI0 = 0; // Indicate RX0 ready
48 1
49 1 TR1=1; // 打開(kāi)串口Uart0
50 1 }
51
52 /***********************************************************************************
53 * 函數(shù)名稱(chēng):Uart0_Enable;
54 *
55 * 函數(shù)功能描述:Uart0初始化;
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 2
56 *
57 * 輸入?yún)?shù):bool類(lèi)型,打開(kāi)輸入1;關(guān)閉輸入0;
58 *
59 * 返回?cái)?shù)據(jù):none;
60 *
61 * 注意: none;
62 ************************************************************************************/
63
64 void Uart0_Enable(bool Flag)
65 {
66 1 if (Flag)
67 1 TR1=1; // 打開(kāi)串口Uart0
68 1 else
69 1 TR1=0; // 關(guān)閉串口Uart0
70 1 }
71
72 /***********************************************************************************
73 * 函數(shù)名稱(chēng):Uart0_SendString;
74 *
75 * 函數(shù)功能描述:Uart0初始化;
76 *
77 * 輸入?yún)?shù): unsigned char類(lèi)型指針,發(fā)送數(shù)據(jù);
78 *
79 * 返回?cái)?shù)據(jù):none;
80 *
81 * 注意: none;
82 ************************************************************************************/
83
84 void Uart0_SendString(unsigned char *pt)
85 {
86 1 while(*pt)
87 1 {
88 2 Uart0_SendByte(*pt++);
89 2 }
90 1 }
91
92 /***********************************************************************************
93 * 函數(shù)名稱(chēng):Uart0_SendByte;
94 *
95 * 函數(shù)功能描述:Uart0初始化;
96 *
97 * 輸入?yún)?shù):unsigned char類(lèi)型指針,發(fā)送數(shù)據(jù);
98 *
99 * 返回?cái)?shù)據(jù):none;
100 *
101 * 注意: none;
102 ************************************************************************************/
103
104 void Uart0_SendByte(unsigned char value)
105 {
106 1 while(!TI0); // 等待發(fā)送1個(gè)字節(jié)數(shù)據(jù)完成
107 1 SBUF0=value; // 發(fā)送數(shù)據(jù)到uart0
108 1 TI0=0; // 清除中斷標(biāo)志
109 1 }
110
111 /***********************************************************************************
112 * 函數(shù)名稱(chēng):Uart0_ReceiveData;
113 *
114 * 函數(shù)功能描述:Uart0初始化;
115 *
116 * 輸入?yún)?shù):none;
117 *
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 3
118 * 返回?cái)?shù)據(jù):unsigned char類(lèi)型,接收數(shù)據(jù);
119 *
120 * 注意: none;
121 ************************************************************************************/
122 unsigned char Uart0_ReceiveData(void)
123 {
124 1 if(RI0)
125 1 {
126 2 SCON0&=~0x01; // 清除RI1標(biāo)志位
127 2 return SBUF0;
128 2 }
129 1 return 0xff;
130 1 }
131
132
133 /***********************************************************************************/
134 // 文件結(jié)束
135 /***********************************************************************************/
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -