📄 pc_io_t1.lst
字号:
C51 COMPILER V6.21 PC_IO_T1 01/23/2002 18:05:23 PAGE 1
C51 COMPILER V6.21, COMPILATION OF MODULE PC_IO_T1
OBJECT MODULE PLACED IN PC_IO_T1.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE PC_IO_T1.c OPTIMIZE(6,SIZE) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*------------------------------------------------------------------*-
2
3 PC_IO_T1.C (v1.00)
4
5 ------------------------------------------------------------------
6
7 PC link library. Bidirectional. T1 used for baud rate generation.
8
9 Uses the UART, and Pins 3.1 (Tx) and 3.0 (Rx)
10
11 See text for details (Chapter 9).
12
13 COPYRIGHT
14 ---------
15
16 This code is associated with the book:
17
18 EMBEDDED C by Michael J. Pont
19 [Pearson Education, 2002: ISBN: 0-201-79523-X].
20
21 This code is copyright (c) 2001 by Michael J. Pont.
22
23 See book for copyright details and other information.
24
25 -*------------------------------------------------------------------*/
26
27 #include "Main.h"
28 #include "PC_IO_T1.h"
29
30 // ------ Public variable declarations -----------------------------
31
32 extern tByte In_read_index_G;
33 extern tByte In_waiting_index_G;
34
35 extern tByte Out_written_index_G;
36 extern tByte Out_waiting_index_G;
37
38 /*------------------------------------------------------------------*-
39
40 PC_LINK_IO_Init_T1()
41
42 This (generic) version uses T1 for baud rate generation.
43
44 -*------------------------------------------------------------------*/
45 void PC_LINK_IO_Init_T1(const tWord BAUD_RATE)
46 {
47 1 PCON &= 0x7F; // Set SMOD bit to 0 (don't double baud rates)
48 1
49 1 // Receiver enabled.
50 1 // 8-bit data, 1 start bit, 1 stop bit,
51 1 // Variable baud rate (asynchronous)
52 1 // Receive flag will only be set if a valid stop bit is received
53 1 // Set TI (transmit buffer is empty)
54 1 SCON = 0x72;
55 1
C51 COMPILER V6.21 PC_IO_T1 01/23/2002 18:05:23 PAGE 2
56 1 TMOD |= 0x20; // T1 in mode 2, 8-bit auto reload
57 1
58 1 TH1 = (256 - (tByte)((((tLong)OSC_FREQ / 100) * 3125)
59 1 / ((tLong) BAUD_RATE * OSC_PER_INST * 1000)));
60 1
61 1 TL1 = TH1;
62 1 TR1 = 1; // Run the timer
63 1 TI = 1; // Send first character (dummy)
64 1
65 1 // Set up the buffers for reading and writing
66 1 In_read_index_G = 0;
67 1 In_waiting_index_G = 0;
68 1 Out_written_index_G = 0;
69 1 Out_waiting_index_G = 0;
70 1
71 1 // Interrupt *NOT* enabled
72 1 ES = 0;
73 1 }
74
75 /*------------------------------------------------------------------*-
76 ---- END OF FILE -------------------------------------------------
77 -*------------------------------------------------------------------*/
78
79
80
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 64 ----
CONSTANT SIZE = ---- ----
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 + -