📄 txd8951.lst
字号:
C51 COMPILER V8.15 TXD8951 10/20/2008 22:31:59 PAGE 1
C51 COMPILER V8.15, COMPILATION OF MODULE TXD8951
OBJECT MODULE PLACED IN txd8951.OBJ
COMPILER INVOKED BY: D:\4-Keil C51 v8.15\C51\BIN\C51.EXE txd8951.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 *
3 * 文件名称:txd8951.c
4 *
5 * 功能描述:串口发送数据。
6 * 发起通信请求(发送呼叫号),等待应答
7 接收到应答号,通信建立,开始数据传输
8 *
9 * 开发环境:IDE为Keil uVision3 v8.09a。MCU为AT89S52,晶振频率12M。
10 *
11 * 文件版本 v1.0
12 *
13 * 创建时间:2008/10/20
14 *
15 * 修改记录:无
16 *
17 ******************************************************************************/
18 #include <reg51.h>
19 //#define uchar unsigned char
20 //#define uint unsigned int
21 /*******************************************************************************
22 *
23 * 描述: 串口通信初始化,设置串口工作在模式1下,接收使能,使用Timer1工作在模式2下,
24 * 波特率2400
25 *
26 * 参数: 无
27 *
28 * 返回: 无
29 *
30 ******************************************************************************/
31 void init_serialcom()
32 { SCON=0x50; //设置串口工作在模式1下,接收使能
33 1 TMOD=0x20; //使用Timer1工作在模式2下
34 1 TH1=0xF3; //波特率2400
35 1 TL1=0xF3;
36 1 TR1=1; //启动Timer1
37 1 }
38 /*******************************************************************************
39 *
40 * 描述: 向串口发送一个字符或一个字节。
41 *
42 * 参数: ch 待发送字符或字节
43 *
44 * 返回: 无
45 *
46 ******************************************************************************/
47 void send_char_com(unsigned char ch)
48 { SBUF=ch; //发送ch
49 1 while(TI==0); //等待发送完毕(TI=1)
50 1 TI=0;
51 1 }
52 /*******************************************************************************
53 *
54 * 描述: 向串口发送一个字符串或多个字节。
55 *
C51 COMPILER V8.15 TXD8951 10/20/2008 22:31:59 PAGE 2
56 * 参数: str 待发送字符串或多字节首地址
57 * strlen 待发送字符串或多字节长度
58 *
59 * 返回: 无
60 *
61 ******************************************************************************/
62 void send_string_com(unsigned char *str,unsigned int strlen)
63 { unsigned int k=0;
64 1 do
65 1 {
66 2 send_char_com(*(str+k));
67 2 k++;
68 2 }while(k<strlen);
69 1 }
70
71
72 main()
73 { unsigned char response; //判断通信是否建立用
74 1 //bit flag=0; //发送标志位,由形参传递,flag=1是发送,flag=0不发送
75 1 unsigned char num; //待发送数据
76 1 init_serialcom(); //串口通信初始化
77 1
78 1 do
79 1 { SBUF=0x99; //发送呼叫号99H
80 2 while(!TI); //判断是否发送完毕,完毕(TI=1)开始接收应答
81 2 TI=0;
82 2 while(!RI); //串口接收到数据(RI=1)
83 2 RI=0; //
84 2 response=SBUF; //
85 2 }while(response!=0x01); //判断接收到的数据是否为应答号01H。如果不是正确的应答号,就重呼
86 1
87 1 while(1)
88 1 { P2=0x00;
89 2 //flag=0;
90 2 if(P2!=0x00) //有按键按下,发送相应按键值
91 2 { switch(P2) //取按键值,并进行相应转换,将P2口的按键值转换为1~8的数据
92 3 { case 0x01:num=0x01;break;
93 4 case 0x02:num=0x02;break;
94 4 case 0x04:num=0x03;break;
95 4 case 0x08:num=0x04;break;
96 4 case 0x10:num=0x05;break;
97 4 case 0x20:num=0x06;break;
98 4 case 0x40:num=0x07;break;
99 4 case 0x80:num=0x08;break;
100 4 }
101 3 //flag=1; //发送标志位置1
102 3 send_char_com(num);//serial_send(flag,num) ;
103 3 }
104 2 }
105 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 176 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -