uart.lst
来自「stc15单片机测试程序V1.0版」· LST 代码 · 共 97 行
LST
97 行
C51 COMPILER V9.01 UART 07/28/2012 10:08:43 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UART.C BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "STC15F2K.h"
3 #include <intrins.H>
4
5 typedef unsigned char uchar;
6 typedef unsigned int uint;
7
8
9 bit busy;
10 uchar GetC;
11
12 void InitUART(void);
13 void SendData(uchar dat);
14 void SendString(uchar *s);
15
16 /*----------------------------
17 UART1初始化
18 -----------------------------*/
19 void InitUART(void)
20 {
21 1 SCON = 0x50; //8位可变波特率
22 1 AUXR1= AUXR1 & 0x3F;
23 1 AUXR = 0x40; //定时器1为1T模式
24 1 TMOD = 0x20; //定时器1为模式2(8位自动重载)
25 1 TL1 = 0xDC; //设置波特率重装值
26 1 TH1 = 0xDC;
27 1 TR1 = 1; //定时器1开始工作
28 1 ES = 1; //使能串口中断
29 1 EA = 1;
30 1
31 1 }
32
33
34 /*----------------------------
35 UART 中断服务程序
36 -----------------------------*/
37 void Uart() interrupt 4 using 1
38 {
39 1 if (RI)
40 1 {
41 2 RI = 0; //清除RI位
42 2 GetC = SBUF; //P0显示串口数据
43 2 }
44 1 if (TI)
45 1 {
46 2 TI = 0; //清除TI位
47 2 busy = 0; //清忙标志
48 2 }
49 1 }
50
51 /*----------------------------
52 发送串口数据
53 ----------------------------*/
54 void SendData(uchar dat)
55 {
C51 COMPILER V9.01 UART 07/28/2012 10:08:43 PAGE 2
56 1 while (busy); //等待前面的数据发送完成
57 1 busy = 1;
58 1 SBUF = dat; //写数据到UART数据寄存器
59 1 }
60
61 /*----------------------------
62 发送字符串
63 ----------------------------*/
64 void SendString(uchar *s)
65 {
66 1 while (*s) //检测字符串结束标志
67 1 {
68 2 SendData(*s++); //发送当前字符
69 2 }
70 1 }
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 86 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 3
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?