📄 comm232.lst
字号:
C51 COMPILER V7.06 COMM232 12/15/2008 11:13:24 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE COMM232
OBJECT MODULE PLACED IN Comm232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Comm232.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"include.h"
2
3 /********************************************************************************************************
-*
4 ** 函数名称: void Initiate_RS232(void)
5 ** 功能描述: 串口初始化函数
6 ** 输 入: 无
7 ** 输 出: 无
8 ** 全局变量:
9 ** 调用模块:
10 **
11 ** 作 者: 李伟
12 ** 日 期: 2008年12月09日
13 **-------------------------------------------------------------------------------------------------------
14 ** 修 改 人:
15 ** 日 期:
16 **-------------------------------------------------------------------------------------------------------
17 ********************************************************************************************************/
18 void Initiate_RS232(void)
19 {
20 1 ES = 0;
21 1 PCON |= 0x80; //SMOD=1
22 1 SCON = 0x50; //0101,0001 8位数据位,无奇偶校验
23 1 TMOD &= 0x0F;
24 1 TMOD |= 0x20; //设置T1为波特率发生器
25 1 TH1 = 0xFA; //11.0592MHz 晶振,波特率=9600
26 1 TL1 = 0xFA;
27 1 // AUXR |=0x10;
28 1 ES = 1; //允许串口中断
29 1 EA = 1; //开总中断
30 1 TR1 = 1; //开定时器1
31 1 }
32 /*********************************************************************************************************
33 ** 函数名称: void Suart_Send_Byte(uint8 Send_Byte)
34 ** 功能描述: 串口发送函数
35 ** 输 入: 无
36 ** 输 出: 无
37 ** 全局变量:
38 ** 调用模块:
39 **
40 ** 作 者: 李伟
41 ** 日 期: 2008年12月09日
42 **-------------------------------------------------------------------------------------------------------
43 ** 修 改 人:
44 ** 日 期:
45 **-------------------------------------------------------------------------------------------------------
46 ********************************************************************************************************/
47 void Suart_Send_Byte(uint8 Send_Byte)
48 {
49 1 ES = 0; //关串口中断
50 1 TI = 0; //清零串口发送完成中断请求标志
51 1 SBUF = Send_Byte;
52 1 //WDT_CONTR = 0x3c; /**********************喂狗**********************/
53 1 while(TI == 0); //等待发送完成
54 1 TI = 0; //清零串口发送完成中断请求标志
C51 COMPILER V7.06 COMM232 12/15/2008 11:13:24 PAGE 2
55 1 ES = 1; //允许串口中断
56 1
57 1 }
58 /*********************************************************************************************************
59 ** 函数名称: void CommSendByteWithChk(uint8 Commdata)
60 ** 功能描述:
61 ** 输 入: 无
62 ** 输 出: 无
63 ** 全局变量:
64 ** 调用模块:
65 **
66 ** 作 者: 李伟
67 ** 日 期: 2008年12月09日
68 **-------------------------------------------------------------------------------------------------------
69 ** 修 改 人:
70 ** 日 期:
71 **-------------------------------------------------------------------------------------------------------
72 ********************************************************************************************************/
73 void CommSendByteWithChk(uint8 Commdata)
74 {
75 1 uint8 i,j;
76 1 i = Commdata >> 4;
77 1 j = Commdata & 0x0F;
78 1 if(i<10)
79 1 i += 0x30;
80 1 else
81 1 i += 0x37;
82 1 if(j<10)
83 1 j += 0x30;
84 1 else
85 1 j += 0x37;
86 1 ComCalculChkSum += i;
87 1 ComCalculChkSum += j;
88 1 Suart_Send_Byte(i);
89 1 Suart_Send_Byte(j);
90 1 }
91 /*********************************************************************************************************
92 ** 函数名称: void CommSendByteWithoutChk(uint8 Commdata)
93 ** 功能描述:
94 ** 输 入: 无
95 ** 输 出: 无
96 ** 全局变量:
97 ** 调用模块:
98 **
99 ** 作 者: 李伟
100 ** 日 期: 2008年12月10日
101 **-------------------------------------------------------------------------------------------------------
102 ** 修 改 人:
103 ** 日 期:
104 **-------------------------------------------------------------------------------------------------------
105 ********************************************************************************************************/
106 void CommSendByteWithoutChk(uint8 Commdata)
107 {
108 1 uint8 i,j;
109 1 i = Commdata >> 4;
110 1 j = Commdata & 0x0F;
111 1 if(i<10)
112 1 i += 0x30;
113 1 else
114 1 i += 0x37;
115 1 Suart_Send_Byte(i);
116 1 if(j<10)
C51 COMPILER V7.06 COMM232 12/15/2008 11:13:24 PAGE 3
117 1 j += 0x30;
118 1 else
119 1 j += 0x37;
120 1 Suart_Send_Byte(j);
121 1 }
122 /*********************************************************************************************************
123 ** 函数名称: void CommSendWordWithChk(uint16 Commword)
124 ** 功能描述:
125 ** 输 入: 无
126 ** 输 出: 无
127 ** 全局变量:
128 ** 调用模块:
129 **
130 ** 作 者: 李伟
131 ** 日 期: 2008年12月10日
132 **-------------------------------------------------------------------------------------------------------
133 ** 修 改 人:
134 ** 日 期:
135 **-------------------------------------------------------------------------------------------------------
136 ********************************************************************************************************/
137 void CommSendWordWithChk(uint16 Commword)
138 {
139 1 CommSendByteWithChk((uint8)(Commword>>8));
140 1 CommSendByteWithChk((uint8)(Commword));
141 1 }
142 /*********************************************************************************************************
143 ** 函数名称: void Comm(void) interrupt 4
144 ** 功能描述: 串口中断函数
145 ** 输 入: 无
146 ** 输 出: 无
147 ** 全局变量:
148 ** 调用模块:
149 **
150 ** 作 者: 李伟
151 ** 日 期: 2008年12月10日
152 **-------------------------------------------------------------------------------------------------------
153 ** 修 改 人:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -