📄 serial_inquiry.lst
字号:
C51 COMPILER V8.08 SERIAL_INQUIRY 05/28/2008 14:55:04 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE SERIAL_INQUIRY
OBJECT MODULE PLACED IN serial_inquiry.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE serial_inquiry.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //文件名:serial_inquiry.c
2 //说明:最简单的查询法串口通讯程序
3 //可以使用串口调试助手测试
4 //编写:王晓荣
5 //日期:20080401
6
7
8 #include <REGX51.H>
9
10 void init_serial(); // 串口初始化
11 void putch(unsigned char); //数据发送
12 unsigned char getch(void); //数据接收
13
14 main()
15 {
16 1 unsigned char ch;
17 1 //unsigned int i;
18 1 init_serial();
19 1 ch = 0;
20 1 while(1)
21 1 {
22 2 ch = getch(); //接收要快,会出现“漏码”现象
23 2 putch(ch);
24 2 putch(ch);
25 2 //for(i = 0; i < 1000; i++) ; //出现“漏码”现象
26 2 //“漏码”原因:未及时取SBUF中数据,被覆盖
27 2 //一组数据的发送是连续进行的
28 2 }
29 1 }
30
31 void init_serial() // 晶振:11.0592M
32 {
33 1 TMOD = 0x20; //定时器1用于串行通讯
34 1 TH1 = 256 - 12; //1.5: 波特率19200; 3: 波特率9600; 6:波特率4800; 12:波特率2400
35 1 TL1 = 256 - 12;
36 1 SCON = 0x50; //工作方式1
37 1 PCON &= 0xef; // 波特率不倍增
38 1 TR1 = 1;
39 1 RI = 0;
40 1 }
41
42 void putch(unsigned char ch)
43 {
44 1 SBUF = ch;
45 1 TI = 0;
46 1 while(!TI);
47 1 }
48
49 unsigned char getch(void)
50 {
51 1 while(!RI);
52 1 RI = 0;
53 1 return(SBUF);
54 1 }
55
C51 COMPILER V8.08 SERIAL_INQUIRY 05/28/2008 14:55:04 PAGE 2
56
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 57 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -