📄 rs485通讯原理.lst
字号:
C51 COMPILER V7.06 RS485蚠裚訽理 06/16/2010 22:32:52 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE RS485蚠裚訽理
OBJECT MODULE PLACED IN .\obj\RS485通讯原理.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE RS485通讯原理.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\RS485通讯原理.lst) OB
-JECT(.\obj\RS485通讯原理.obj)
stmt level source
1
2 /*-----------------------------------------------
3 名称:串口通信 rs485
4 网站:www.doflye.net
5 编写:shifang
6 日期:2009.5
7 修改:无
8 内容:485 与 232 使用相同软件协议,是半双工,需要有2套开发板对发测试,或者使用
9 另外一个485设备配套,这里提供测试程序
10 ------------------------------------------------*/
11
12 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
13 #include"delay.h"
14 /*------------------------------------------------
15 硬件端口定义
16 ------------------------------------------------*/
17 sbit Ctrl_EN = P2^0; //发送接收控制端
18 /*------------------------------------------------
19 函数声明
20 ------------------------------------------------*/
21 void SendStr(unsigned char *s);
22 /*------------------------------------------------
23 串口初始化
24 ------------------------------------------------*/
25 void InitUART (void)
26 {
27 1
28 1 SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
29 1 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
30 1 TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
31 1 TR1 = 1; // TR1: timer 1 打开
32 1 EA = 1; //打开总中断
33 1 //ES = 1; //打开串口中断
34 1 }
35 /*------------------------------------------------
36 主函数
37 ------------------------------------------------*/
38 void main (void)
39 {
40 1
41 1 InitUART();
42 1
43 1 Ctrl_EN=1; //发送模式
44 1
45 1 while (1)
46 1 {
47 2 SendStr("UART test,技术论坛:www.doflye.net thank you!");
48 2 DelayMs(240);//延时循环发送
49 2 DelayMs(240);
50 2 }
51 1 }
52
53 /*------------------------------------------------
54 发送一个字节
C51 COMPILER V7.06 RS485蚠裚訽理 06/16/2010 22:32:52 PAGE 2
55 ------------------------------------------------*/
56 void SendByte(unsigned char dat)
57 {
58 1 SBUF = dat;
59 1 while(!TI);
60 1 TI = 0;
61 1 }
62 /*------------------------------------------------
63 发送一个字符串
64 ------------------------------------------------*/
65 void SendStr(unsigned char *s)
66 {
67 1 while(*s!='\0')// \0 表示字符串结束标志,通过检测是否字符串末尾
68 1 {
69 2 SendByte(*s);
70 2 s++;
71 2 }
72 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 67 ----
CONSTANT SIZE = 47 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -