📄 com.lst
字号:
C51 COMPILER V6.12 COM 05/09/2006 18:56:00 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN .\COM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\COM.C DEBUG OBJECTEXTEND
stmt level source
1 /*
2 * 单片机接收主机的数据,然后将数据传送到P0口, 并传回给主机; *
3 * 当按下K1=P1.4 时, 单片机发送字www.pp51.comr" 给主机 *
- *
4 * *
5 */
6
7 #include <reg51.h>
8 #include <intrins.h>
9
10 unsigned char key_s, key_v, tmp;
11
12 char code str[] = "AT+CGMI\r\n";
13
14
15 void send_str();
16 bit scan_key();
17 void proc_key();
18 void delayms(unsigned char ms);
19 void send_char(unsigned char txd);
20
21 sbit K1 = P1^4;
22
23 main()
24 {
25 1 TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
26 1 TH1 = 0xFA; // 波特率4800
27 1 TL1 = 0xFA;
28 1
29 1 SCON = 0x50; // 设定串行口工作方式
30 1 PCON &= 0xef; // 波特率不倍增
31 1
32 1 TR1 = 1; // 启动定时器1
33 1 IE = 0x0; // 禁止任何中断
34 1 //P3 = 0xfe;
35 1 while(1)
36 1 {
37 2 if(scan_key()) // 扫描按键
38 2 {
39 3 delayms(10); // 延时去抖动
40 3 if(scan_key()) // 再次扫描
41 3 {
42 4 key_v = key_s; // 保存键值
43 4 proc_key(); // 键处理
44 4 }
45 3 }
46 2 if(RI) // 是否有数据到来
47 2 {
48 3 RI = 0;
49 3 tmp = SBUF; // 暂存接收到的数据
50 3 // P0 = 0xfa; // 数据传送到P0口
51 3 // delayms(1000); // 延时去抖动
52 3 P0 = tmp; // 数据传送到P0口
53 3 if (tmp!=0x11)
54 3 send_char(tmp); // 回传接收到的数据
C51 COMPILER V6.12 COM 05/09/2006 18:56:00 PAGE 2
55 3 }
56 2 }
57 1 }
58
59 bit scan_key()
60 // 扫描按键
61 {
62 1 // key_s = 0x00;
63 1 key_s = K1;
64 1 return(key_s ^ key_v);
65 1 }
66
67 void proc_key()
68 // 键处理
69 {
70 1 if((key_v))
71 1 { // K1按下
72 2 send_str(); // 传送字串"welcome!...
73 2 }
74 1 }
75
76 void send_char(unsigned char txd)
77 // 传送一个字符
78 {
79 1 SBUF = txd;
80 1 while(!TI); // 等特数据传送
81 1 TI = 0; // 清除数据传送标志
82 1 }
83
84 void send_str()
85 // 传送字串
86 {
87 1 unsigned char i = 0;
88 1 while(str[i] != '\0')
89 1 {
90 2 SBUF = str[i];
91 2 while(!TI); // 等特数据传送
92 2 TI = 0; // 清除数据传送标志
93 2 i++; // 下一个字符
94 2 }
95 1 }
96
97 void delayms(unsigned char ms)
98 // 延时子程序
99 {
100 1 unsigned char i;
101 1 while(ms--)
102 1 {
103 2 for(i = 0; i < 120; i++);
104 2 }
105 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V6.12 COM 05/09/2006 18:56:00 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -