📄 tx22-4.lst
字号:
C51 COMPILER V7.06 TX22_4 01/07/2007 11:12:07 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TX22_4
OBJECT MODULE PLACED IN tx22-4.OBJ
COMPILER INVOKED BY: C:\Keil7.06\C51\BIN\C51.EXE tx22-4.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* 文件名:TX22-4.C */
2 /* 程序功能:发送接收测试程序 */
3 #include<AT89X51.H> /* 头文件 */
4 char code str[] = "PC已接收到信息,OK!等待主机发送00指令!\0";
5 void send_str(); /* 发送函数 */
6 void send_char( ); /* 回传函数 */
7 sbit K1 = P3^2; /* 定义按键 */
8 unsigned char temp; /* 声明无符号字符变量temp */
9 main() /* 主函数 */
10 {
11 1 SCON = 0x50; /* 设定串行口工作方式1 */
12 1 TMOD = 0x20; /* 定时器1,自动重载,产生波特率 */
13 1 TH1 = 0xFD; /* 波特率9600 */
14 1 TR1 = 1; /* 启动定时器1 */
15 1
16 1 while(1) /* 无限循环 */
17 1 {
18 2 unsigned int j; /* 声明无符号整数变量j */
19 2 if (K1==0) /* 如果按键K1,则执行{ } */
20 2 {
21 3 for(j=0;j<20000;j++); /* 延时取抖动 */
22 3 while(!K1); /* 等待按键放开 */
23 3 send_str(); /* 调用发送字符串函数 */
24 3 }
25 2 if(RI) /* 是否有数据到来 */
26 2 {
27 3 RI = 0; /* 清除数据传送标志 */
28 3 temp = SBUF; /* 将接收到的数据暂存 temp中 */
29 3 P1 = temp&0x0f; /* 数据传送到P1口输出 */
30 3 send_char(); /* 调用回传函数 */
31 3 }
32 2 }
33 1 }
34
35 void send_char( ) /* 回传函数 */
36 {
37 1 SBUF = temp; /* 回传发送接收到的数据 */
38 1 while(!TI); /* 等特数据传送 */
39 1 TI = 0; /* 清除数据传送标志 */
40 1 }
41
42 void send_str() /* 发送字符串函数 */
43 {
44 1 unsigned char i = 0; /* 声明无符号字符变量i,初始i=0 */
45 1 while(str[i] != '\0') /* 遇到'\0',则停止发送 */
46 1 {
47 2 SBUF = str[i]; /* 发送字符串 */
48 2 while(!TI); /* 等特数据传送 */
49 2 TI = 0; /* 清除数据传送标志 */
50 2 i++; /* i加1, 下一个字符 */
51 2 }
52 1 }
53
54
55
C51 COMPILER V7.06 TX22_4 01/07/2007 11:12:07 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 89 ----
CONSTANT SIZE = 42 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 2
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 + -