com.lst
来自「学习单片机的程序集」· LST 代码 · 共 110 行
LST
110 行
C51 COMPILER V8.08 COM 10/27/2008 20:20:01 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN COM.OBJ
COMPILER INVOKED BY: D:\电子程序\C51\BIN\C51.EXE COM.C DEBUG OBJECTEXTEND
line 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[] = "机会好看";
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
26 1 TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
27 1 TH1 = 0xFD; // 波特率9600
28 1 TL1 = 0xFD;
29 1
30 1 SCON = 0x50; // 设定串行口工作方式
31 1 PCON &= 0xef; // 波特率不倍增
32 1
33 1 TR1 = 1; // 启动定时器1
34 1 IE = 0x0; // 禁止任何中断
35 1
36 1 while(1)
37 1 {
38 2
39 2 delayms(500);
40 2 send_str();
41 2 delayms(500);
42 2
43 2 if(RI) // 是否有数据到来
44 2 {
45 3 RI = 0;
46 3 tmp = SBUF; // 暂存接收到的数据
47 3 P0 = tmp; // 数据传送到P0口
48 3 send_char(tmp); // 回传接收到的数据
49 3 }
50 2 }
51 1 }
52
53
54 void send_char(unsigned char txd)
C51 COMPILER V8.08 COM 10/27/2008 20:20:01 PAGE 2
55 // 传送一个字符
56 {
57 1 SBUF = txd;
58 1 while(!TI); // 等特数据传送
59 1 TI = 0; // 清除数据传送标志
60 1 }
61
62 void send_str()
63 // 传送字串
64 {
65 1 unsigned char i = 0;
66 1 while(str[i] != '\0')
67 1 {
68 2 SBUF = str[i];
69 2 while(!TI); // 等特数据传送
70 2 TI = 0; // 清除数据传送标志
71 2 i++; // 下一个字符
72 2 }
73 1 }
74
75 void delayms(unsigned char ms)
76 // 延时子程序
77 {
78 1 unsigned char i;
79 1 while(ms--)
80 1 {
81 2 for(i = 0; i < 120; i++);
82 2 }
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 97 ----
CONSTANT SIZE = 9 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?