?? 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 * 函 數(shù) 名: SerialPort_init
9 * 功能描述: 串口1初始化,默認(rèn)為19200波特率
10 * 調(diào)用函數(shù): 無
11 * 全局變量:
12 * 輸 入:
13 * 返 回: 無
14 * 設(shè) 計 者: wangyong 日期:2004-10-20
15 * 修 改 者: wangyong 日期:2006-06-15
16 * 版 本: WTFISCAL04 REPORTV1.0D100
17 **********************************************************************/
18 void SerialPort_init()
19 {
20 1 /*
21 1 串口初始化,波特率的設(shè)置要根據(jù)具體的硬件平臺設(shè)置
22 1 */
23 1 ET0 = 0; //關(guān)定時器0中斷
24 1 ET1 = 0; //關(guān)定時器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; //開串口中斷(我們這里要通過串口中斷接收數(shù)據(jù))
34 1 EA=1; //開所有中斷
35 1 }
36
37
38 /**********************************************************************
39 * 函 數(shù) 名: SerialPort_send
40 * 功能描述: 發(fā)送數(shù)據(jù)
41 * 調(diào)用函數(shù): 無
42 * 全局變量:
43 * 輸 入: portnum--串口號(1:串口1; 2:串口2)
44 * 返 回: 無
45 * 設(shè) 計 者: 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 * 函 數(shù) 名: SerialPort_receive
57 * 功能描述: 接收數(shù)據(jù)
58 * 調(diào)用函數(shù): 無
59 * 全局變量:
60 * 輸 入:
61 * 返 回: 無
62 * 設(shè) 計 者: 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能發(fā)送數(shù)據(jù),但UART1不能發(fā)送數(shù)據(jù),用Keil C51軟仿真時,設(shè)置SCO
-N2中的TI=1,沒有中斷產(chǎn)生。請問是怎么回事,敬請回復(fù),謝謝。
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 -- 發(fā)布時間:2005-7-3 19:50:12
109
110 --
111 看看keil 里面串口2的中斷地址對嗎?應(yīng)該是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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -