📄 serialport.lst
字号:
C51 COMPILER V7.10 SERIALPORT 03/30/2007 17:05:59 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE SERIALPORT
OBJECT MODULE PLACED IN SerialPort.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SerialPort.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <stdio.h>
2 #include <reg51.h>
3 #include "ext_var.h"
4 #include "SerialPort.h"
5
6
7 /**********************************************************************
8 * 函 数 名: SerialPort_init
9 * 功能描述: 串口1初始化,默认为19200波特率
10 * 调用函数: 无
11 * 全局变量:
12 * 输 入:
13 * 返 回: 无
14 * 设 计 者: wangyong 日期:2004-10-20
15 * 修 改 者: wangyong 日期:2006-06-15
16 * 版 本: WTFISCAL04 REPORTV1.0D100
17 **********************************************************************/
18 void SerialPort_init()
19 {
20 1 /*
21 1 串口初始化,波特率的设置要根据具体的硬件平台设置
22 1 */
23 1 ET0 = 0; //关定时器0中断
24 1 ET1 = 0; //关定时器1中断
25 1
26 1 SCON = 0x50; //串口方式1,8位自装载模式
27 1 TMOD = 0x20; //定时器1
28 1 TH1 = 0xf7; // 33MHz晶振, 19200bps
29 1 TL1 = 0xf7;
30 1 PCON = 0x80; //SMOD=1
31 1 TR1 = 1;
32 1
33 1 ES=1; //开串口中断(我们这里要通过串口中断接收数据)
34 1 EA=1; //开所有中断
35 1 }
36
37
38 /**********************************************************************
39 * 函 数 名: SerialPort_send
40 * 功能描述: 发送数据
41 * 调用函数: 无
42 * 全局变量:
43 * 输 入: portnum--串口号(1:串口1; 2:串口2)
44 * 返 回: 无
45 * 设 计 者: wangyong 日期:2004-10-20
46 * 修 改 者: wangyong 日期:2006-06-22
47 * 版 本: WTFISCAL04 REPORTV1.0D100
48 **********************************************************************/
49 void SerialPort_send(uchar outdata)
50 {
51 1 SBUF = outdata;
52 1 while(!TI);TI=0;
53 1 }
54
55 /**********************************************************************
C51 COMPILER V7.10 SERIALPORT 03/30/2007 17:05:59 PAGE 2
56 * 函 数 名: SerialPort_receive
57 * 功能描述: 接收数据
58 * 调用函数: 无
59 * 全局变量:
60 * 输 入:
61 * 返 回: 无
62 * 设 计 者: wangyong 日期:2004-10-20
63 * 修 改 者: wangyong 日期:2005-10-20
64 * 版 本: WTFISCAL04 REPORTV1.0D100
65 **********************************************************************/
66 /*
67 uchar SerialPort_receive()
68 {
69 while(!RI);RI=0;
70 return SBUF;
71 }
72 */
73
74 /*
75
76 -- uPSD3212 的 双串口初始化
77 版主您好,以下是我的串口初始化代码,问题是UART能发送数据,但UART1不能发送数据,用Keil C51软仿真时,设置SCO
-N2中的TI=1,没有中断产生。请问是怎么回事,敬请回复,谢谢。
78
79 //------------------------UART and Timer 1-----------------------------------
80 SCON = 0xD0; //UART: 11 bits(a Start Bit,8 data bits,a 9th data bit,a Stop Bit).
81
82 TMOD &= ~0xF0; // clear Timer1 mode bits
83 TMOD |= 0x20; // put Timer1 into MODE 2
84 TR1 = 0; //stop timer 1.
85 TL1 = 208; //1200 bps
86 TH1 = TL1;
87 T2CON = 0x00; // Timer1 used to generate the buadrate of UART1.
88 TR1 = 1; //start Timer1
89 ET1 = 0;
90 ES = 1;
91
92 //------------------------UART1 and Timer 2-----------------------------------
93 SCON2 = 0x50; //UART1 : 9600 bps ( 10 bits: a start bit, 8 data bits, a stop bit)
94 TR2 = 0; //stop timer 2
95 RCAP2L = 0xB8;
96 RCAP2H = 0xFF;
97 TL2 = RCAP2L;
98 TH2 = RCAP2H;
99 PCON = 0x0C; //Timer2 used to generate the buadrate of UART2.
100 TR2 = 1; //start Timer2.
101
102 IEA = 0x12;
103 EA = 1;
104
105 --------------------------------------------------------------------------------
106
107 -- 作者:penger
108 -- 发布时间:2005-7-3 19:50:12
109
110 --
111 看看keil 里面串口2的中断地址对吗?应该是interrupt 9
112
113
114 */
C51 COMPILER V7.10 SERIALPORT 03/30/2007 17:05:59 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 34 ----
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 + -