📄 sio.lst
字号:
C51 COMPILER V3.20, SN-50203013 SIO 04/02/04 07:47:26 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE SIO
OBJECT MODULE PLACED IN SIO.OBJ
COMPILER INVOKED BY: D:\C51\C51.EXE SIO.C
stmt level source
1
2 #include<REG51.h>
3
4 #include </C51/string.h>
5 #include "sio.h"
6
7 //extern MSG_BUF can_in[1];
8
9 unsigned char rs232_in[8];
10 unsigned char send_NO;
11
12 #define OSC 20000000L /* Oscillator Frequency */
13
14 static void com_isr (void) interrupt 4 using 2
15 {
16 1 //------------------------------------------------
17 1 //Received data interrupt.
18 1 //------------------------------------------------
19 1 EA=0;
20 1 if (RI != 0)
21 1 {
22 2 RI = 0;
23 2 rs232_in[0] = SBUF;
24 2 }
25 1
26 1 //------------------------------------------------
27 1 //Transmitted data interrupt.
28 1 //------------------------------------------------
29 1 if (TI != 0)
30 1 {
31 2 TI = 0;
32 2 // if (send_NO <= can_in.LEN)
33 2 // {
34 2 // SBUF = can_in.BUF[send_NO];
35 2 // send_NO++;
36 2 // }
37 2 }
38 1
39 1 EA=1;
40 1 }
41
42 //--------------------------------------------------------------------------
43 //--------------------------------------------------------------------------
44 void com_initialize (void)
45 {
46 1 //------------------------------------------------
47 1 //Setup TIMER1 to generate the proper baud rate.
48 1 //------------------------------------------------
49 1 com_baudrate (19200);
50 1
51 1 //------------------------------------------------
52 1 //Clear com buffer indexes.
53 1 //------------------------------------------------
54 1 EA = 0; // Disable Interrupts
55 1
C51 COMPILER V3.20, SN-50203013 SIO 04/02/04 07:47:26 PAGE 2
56 1
57 1 //------------------------------------------------
58 1 //Setup serial port registers.
59 1 //------------------------------------------------
60 1 SM0 = 0; SM1 = 1; // serial port MODE 1
61 1 SM2 = 0;
62 1 REN = 1; // enable serial receiver
63 1 TI = 0; // clear transmit interrupt
64 1 RI = 0; // clear receiver interrupt
65 1
66 1 ES = 1; // enable serial interrupts
67 1 PS = 0; // set serial interrupts to low priority
68 1 EA = 1; // Enable Interrupts
69 1 }
70
71 //-----------------------------------------------------------------------
72 //----------------------------------------------------------------------
73 void com_baudrate (unsigned baudrate)
74 {
75 1 EA = 0; // Disable Interrupts
76 1
77 1 //------------------------------------------------
78 1 //Clear transmit interrupt and buffer.
79 1 //------------------------------------------------*/
80 1 TI = 0; // clear transmit interrupt */
81 1
82 1 /*------------------------------------------------
Set timer 1 up as a baud rate generator.
------------------------------------------------*/
85 1 TR1 = 0; // stop timer 1
86 1 ET1 = 0; // disable timer 1 interrupt
87 1
88 1 PCON |= 0x80; // 0x80=SMOD: set serial baudrate doubler
89 1
90 1 TMOD &= ~0xF0; // clear timer 1 mode bits
91 1 TMOD |= 0x20; // put timer 1 into MODE 2
92 1
93 1 TH1 = (unsigned char) (256 - (OSC / (16L * 12L * baudrate)));
94 1 TH1 = 0xFd;//38400
95 1 //TH1 = 0xF5;
96 1 TR1 = 1; // start timer 1
97 1
98 1 EA = 1; // Enable Interrupts
99 1 }
100
101 //------------------------------------------------------------------------------
102 //------------------------------------------------------------------------------*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 132 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -