📄 test.lst
字号:
C51 COMPILER V7.50 TEST 02/06/2005 01:26:59 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test.c BROWSE DEBUG OBJECTEXTEND TABS(3)
line level source
1 // 采用查询方式进行串口通讯的例子
2
3 // 采用这种方式的弊端:
4 // 1.如果对方没有发送数据,则本机无限等待,而不能做其它事情
5 // 2.如果对方发送数据而本机正做其它事情,那么有可能丢失数据。
6
7 // 因此实际上串口接收常采用中断方式,串口发送则不需要。
8
9
10 #include <reg51.h>
11
12
13 //MCU51嵌入式专业仿真器占用3个字节程序空间0x003b,0x003c,0c003d,
14 //使用code数组声明防止编译器将函数定位于此三字节所在程序空间上
15 unsigned char code DX58[3] _at_ 0x003b;
16
17
18 extern void serial_init(void);
19 extern unsigned char getchar(void);
20 extern void putchar(unsigned char ch);
21 extern void puthex(unsigned char ch);
22
23 unsigned char j;
24
25 void main(void)
26 {
27 1 unsigned char i;
28 1
29 1 serial_init(); // 串口初始化
30 1
31 1
32 1 do {
33 2 ++i;
34 2 --i; // 观察断点
35 2
36 2
37 2 putchar(i); // 在串口显示接收到的ASCII数据(就是把原来收到的数据再送回串口)
38 2 putchar(' ');
39 2 putchar(' ');
40 2
41 2 putchar('0');
42 2 putchar('x');
43 2 puthex(i); // 在串口以十六进制格式显示接收的ASCII数据
44 2
45 2 putchar(' ');
46 2 putchar(' ');
47 2
48 2 ++i;
49 2 --i; // 观察断点
50 2 if(j==3)break;
51 2
52 2 }while(1);
53 1 do {
54 2 i=getchar(); // 如果没有收到串口数据则一直等待(查询接收串口数据的弊端)
55 2 i++;
C51 COMPILER V7.50 TEST 02/06/2005 01:26:59 PAGE 2
56 2 i--;
57 2 }while(1);
58 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 67 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
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 + -