?? 51 c
字號:
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 + -