📄 serial.lst
字号:
C51 COMPILER V7.05 SERIAL 07/08/2005 11:42:14 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN SERIAL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SERIAL.C BROWSE MODDP2 DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <W77c32.h>
3 #include <string.h>
4 #include<intrins.h>
5 #include "serial.h"
6 //sbit R485=P1^4;
7 /*
8 #define CTS P1_0
9 #define RTS P1_1
10 #define DSR P1_4
11 #define DTR P1_5
12
13 #define LED0 P1_6
14 #define LED1 P1_7
15 //#define DTR1 P1_6
16 //#define RTS1 P1_7
17 //#define CTS1 P3_4
18 //#define DSR1 P3_5
19 #define RING P3_2
20 */
21 typedef unsigned short u16 ;
22 typedef unsigned char u8 ;
23 #define CLOCK 22118400L
24 //***********************串口初始化波特率定义*****原有********************
25 #define OSC_FREQ 22118400L
26 #define BAUD_115200 256 - (OSC_FREQ/192L)/115200L
27 #define BAUD_57600 256 - (OSC_FREQ/192L)/57600L
28 #define BAUD_38400 256 - (OSC_FREQ/192L)/38400L
29 #define BAUD_28800 256 - (OSC_FREQ/192L)/28800L
30 #define BAUD_19200 256 - (OSC_FREQ/192L)/19200L
31 #define BAUD_14400 256 - (OSC_FREQ/192L)/14400L
32 #define BAUD_9600 256 - (OSC_FREQ/192L)/9600L
33 #define BAUD_4800 256 - (OSC_FREQ/192L)/4800L
34 #define BAUD_2400 256 - (OSC_FREQ/192L)/2400L
35 #define BAUD_1200 256 - (OSC_FREQ/192L)/1200L
36
37 //====================Timer=============================================
38 //====================UART0=============================================
39 unsigned char data RX1buf[5],RXNUM=0,RecvBuff[40],RxPoint=0,RxLen=0;
40 bit RxFlag,Sflag=0;
41
42 #pragma OT(4,speed)
43
44 void ISR0(void) interrupt 0
45 {
46 1
47 1 }
48
49 void ISR2(void) interrupt 2
50 {
51 1
52 1 }
53
54 void ISR3(void) interrupt 3
55 {
C51 COMPILER V7.05 SERIAL 07/08/2005 11:42:14 PAGE 2
56 1
57 1 }
58
59 void ISR5(void) interrupt 5
60 {
61 1
62 1 }
63
64 void ISR6(void) interrupt 6
65 {
66 1
67 1 }
68
69 void ISR8(void) interrupt 8
70 {
71 1
72 1 }
73
74 void ISR9(void) interrupt 9
75 {
76 1
77 1 }
78 void ISR10(void) interrupt 10
79 {
80 1
81 1 }
82
83 void ISR11(void) interrupt 11
84 {
85 1
86 1 }
87
88 void ISR12(void) interrupt 12
89 {
90 1
91 1 }
92
93
94 //=========================================================================
95 //uart1 interrupt
96 //
97 //
98 /*=========================================================================
99 void ub1ISR(void) interrupt 7
100 {
101 if(RI_1)
102 {
103 RI_1=0;
104
105 RX1buf[RXNUM]=SBUF1;
106 RXNUM++;
107 if(RXNUM==5)RXNUM=0;
108
109 }
110 if(TI_1)
111 {
112 TI_1=0;
113
114 }
115 }
116 */
117
C51 COMPILER V7.05 SERIAL 07/08/2005 11:42:14 PAGE 3
118 //=========================================================================
119 //
120 //
121 //
122 //=========================================================================
123 // ===========================================================================
124 // TH1 = BPS = 256 - ( CLOCK/(384*BAUD) )
125 // Timer1, BAUD = 2400, TH1 = 0xE5(229), CLK = 25M HZ;
126 // Timer1, BAUD = 9600, TH1 = 0xF9(249), CLK = 25M HZ;
127 // Timer1, BAUD = 9600, TH1 = 0xFD(253), CLK = 11.059M HZ;
128 void UartInit(void)
129 {
130 1 //u8 c;
131 1 IE = 0 ; // Disable all interrupts
132 1 //==============
133 1 // Set Baurd Rate
134 1 // TH1 = BSP = 256 - CLK / (384*Baurd)
135 1 SCON=0x50; //Set UART to mode 1
136 1 SCON1=0x50; //Set UART1 to mode 1
137 1 //c=TMOD&0x0f;
138 1 //c|=0x20;
139 1 TMOD=0X21;//c; //Set timer 1 to mode 2(8-bit autoload)
140 1 PCON|=0x80; //double baurd rate
141 1 // BAUD_9600 ;
142 1 TH1=BAUD_19200;//0xfb; //TH1 = 256 - CLK / (384*Baurd) CLK=18.432M//COM1
143 1 TL1=TH1;
144 1
145 1 RCAP2L=0x70;//0xc0;//0xe0;;//0X70;//0xc0;//0xe0;//0XB8;//0xfdc0---1200//B8 9600//0xfb; //ffb8--9600 //fee
-0--2400//ff70--4800 //RCAP2HL=65536-f0sc/(32*bps) 70 ---4800
146 1 RCAP2H=0xff;//0xfd;//0xfe;; //0xfd;//0xfe;//0xff;
147 1
148 1
149 1 TR1=1; //Start timer 1
150 1 TR2=1; //Start timer 2
151 1
152 1
153 1 TI = 0;
154 1 RI = 0;
155 1 TI_1=0;
156 1 RI_1=0;
157 1
158 1 // enable interrupt register
159 1 ES1=1;
160 1 ES=1;
161 1 //IE = 0xd0; //(IE.7)EA=1 (IE.6)ES1=0 (IE.4)ES=1
162 1 } // end UartInit
163 //========================================================================
164 //
165 //
166 //
167
168 //====================================================================================
169 //
170 //
171 //====================================================================================
172
173 void InitREG()
174 {
175 1 TA=0xaa;
176 1 TA=0x55;
177 1 WDCON=0x80; //disable watchdog
178 1 _nop_();
C51 COMPILER V7.05 SERIAL 07/08/2005 11:42:14 PAGE 4
179 1 _nop_();
180 1 _nop_();
181 1 TA=0xaa;
182 1 TA=0x55;
183 1 CKCON=0XC1;//0xF9; //0xf9; timer1 clk=4; timer0 clk=4
184 1 _nop_();
185 1 _nop_();
186 1 _nop_();
187 1
188 1 PMR=0x41; //4 clk
189 1
190 1 EIE=0x00;
191 1 IE=0;
192 1 SADEN=0;
193 1 SADEN1=0;
194 1 T2CON=0x30; //the timer2 is used for baud rate of serial port 0
195 1 }
196
197
198
199
200 //========================================================================
201
202
203 /*--------------------------------------------------------------------
204 Start serial communications
205 --------------------------------------------------------------------*/
206 void Comm_On(void)
207 {
208 1
209 1
210 1 ES1=1; //Enable interrupt
211 1 // LED1=0;
212 1 }
213
214 /*--------------------------------------------------------------------
215 Shutdown serial communications
216 --------------------------------------------------------------------*/
217 void Comm_Off(void)
218 {
219 1
220 1
221 1 ES1=0; //Disable interrupt
222 1 }
223
224
225
226 /*--------------------------------------------------------------------
227 This routine sets the serial baud rate; will accept funny baud rates.
228 Setting the speed requires .
229
230 Input: <bd> : New baud rate
231 --------------------------------------------------------------------*/
232 /*void SetSpeed(long bd)
233 {
234 unsigned char c;
235
236 c=256-CLOCK/(64L*bd);
237 TH1 = c;
238 }*/
239
240 /*-------------------------------------------------------------------------
C51 COMPILER V7.05 SERIAL 07/08/2005 11:42:14 PAGE 5
241 Output a single character to the serial port
242
243 -------------------------------------------------------------------------*
244 void PutChar(unsigned char idata c)
245 {
246
247 SBUF=c;
248 while (!TI );
249 TI=0;
250 }
251
252 /*-------------------------------------------------------------------------
253 Output a single character to the serial port
254 -------------------------------------------------------------------------*/
255 void PutChar1(char c)
256 {
257 1 // R485=1;
258 1 SBUF1=c;
259 1 while (!TI_1);
260 1 TI_1=0;
261 1 }
262 //***************************************************************
263
264
265
266
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 108 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 48 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -