main.lst
来自「stc15单片机测试程序V1.0版」· LST 代码 · 共 126 行
LST
126 行
C51 COMPILER V9.01 MAIN 07/28/2012 10:14:25 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************
2 实验名称:串口
3 程序说明:本程序测试了串口
4 实验平台:stc15单片机开发板v1.0版
5 日期:2012-05-27
6 QQ: 259902530
7 www.stcstudy.com 61mcu.taobao.com 版权所有
8 ***********************************************************/
9 /*-------------------------------------
10 UART1测试:使用波特率9600发送到单片机上
11 单片机将收到的程序发回PC。
12 可采用STC下载软件自带串口调试助手观察
13 ---------------------------------------*/
14
15 #include "STC15F2K.h"
16 #include <intrins.H>
17
18 typedef unsigned char uchar;
19 typedef unsigned int uint;
20
21
22 bit busy;
23 bit Flag;
24 uchar GetC;
25
26 void InitUART(void);
27 void SendData(uchar dat);
28 void SendString(uchar *s);
29
30 void main()
31 {
32 1 P2=0x01;
33 1 InitUART();
34 1 SendString("IAP15F2K61S2\r\nUart Test !\r\n");
35 1 while(1)
36 1 {
37 2 if(Flag)
38 2 {
39 3 SendData(GetC);
40 3 Flag=0;
41 3 }
42 2 }
43 1 }
44 /*----------------------------
45 UART1初始化
46 -----------------------------*/
47 void InitUART(void)
48 {
49 1 SCON = 0x50; //8位可变波特率
50 1 AUXR1= AUXR1 & 0x3F;
51 1 AUXR = 0x40; //定时器1为1T模式
52 1 TMOD = 0x20; //定时器1为模式2(8位自动重载)
53 1 TL1 = 0xDC; //设置波特率重装值
54 1 TH1 = 0xDC;
55 1 TR1 = 1; //定时器1开始工作
C51 COMPILER V9.01 MAIN 07/28/2012 10:14:25 PAGE 2
56 1 ES = 1; //使能串口中断
57 1 EA = 1;
58 1
59 1 }
60
61
62 /*----------------------------
63 UART 中断服务程序
64 -----------------------------*/
65 void Uart() interrupt 4 using 1
66 {
67 1 if (RI)
68 1 {
69 2 RI = 0; //清除RI位
70 2 GetC = SBUF; //P0显示串口数据
71 2 Flag=1;
72 2 }
73 1 if (TI)
74 1 {
75 2 TI = 0; //清除TI位
76 2 busy = 0; //清忙标志
77 2 }
78 1 }
79
80 /*----------------------------
81 发送串口数据
82 ----------------------------*/
83 void SendData(uchar dat)
84 {
85 1 while (busy); //等待前面的数据发送完成
86 1 busy = 1;
87 1 SBUF = dat; //写数据到UART数据寄存器
88 1 }
89
90 /*----------------------------
91 发送字符串
92 ----------------------------*/
93 void SendString(uchar *s)
94 {
95 1 while (*s) //检测字符串结束标志
96 1 {
97 2 SendData(*s++); //发送当前字符
98 2 }
99 1 }
100
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 115 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 3
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?