📄 com.lst
字号:
C51 COMPILER V7.06 COM 06/25/2008 15:44:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN COM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe COM.C DB OE
stmt level source
1 //********************************************************************************************************
-******************
2 #include <c8051F020.h>
3 #include "HEAD.H"
4 //********************************************************************************************************
-******************
5 void Com0_Init(void)
6 {
7 1 SCON0 = 0x50; // SCON0: 模式1, 8位UART, 允许RX
8 1 TMOD |= 0x20; // TMOD: 定时器1, 模式2, 8位重装
9 1 TH1 = -(SYSCLK/BAUDRATE/16); // 按波特率设置定时器1重装值
10 1 TR1 = 1; // 起动定时器1
11 1 CKCON |= 0x10; // 定时器1使用系统时钟为时基
12 1 PCON |= 0x80; // SMOD00 = 1
13 1
14 1 ES0 = 1; // UART0中断允许
15 1
16 1 DatLong=0x00;
17 1 }
18 //********************************************************************************************************
-******************
19 void Enter_UART0(void) interrupt 4
20 {
21 1 RI0 = 0;
22 1 DatPocket[DatLong]=SBUF0;
23 1 Timer0_ReSet();
24 1 DatLong++;
25 1 ComFlag=0x01;
26 1 }
27 //********************************************************************************************************
-******************
28 void Com0_Send_Char(unsigned char datas)
29 {
30 1 SBUF0 = datas;
31 1 while(!TI0);
32 1 TI0=0;
33 1 }
34 //********************************************************************************************************
-******************
35 void Com0_Send_String(unsigned char *string,unsigned int bytes)
36 {
37 1 xdata unsigned int i;
38 1
39 1 for(i=0;i<bytes;i++)
40 1 Com0_Send_Char(string[i]);
41 1 }
42
43 //********************************************************************************************************
-******************
44 /*
45 unsigned char Com0_Get_Char(void)
46 {
47 while(RI0 == 0);
48 RI0 = 0;
49
C51 COMPILER V7.06 COM 06/25/2008 15:44:08 PAGE 2
50 return SBUF0;
51 }
52 */
53
54 //********************************************************************************************************
-******************
55 void Com1_Init(void)
56 {
57 1 SCON1 = 0x50; //"S1MODE - MCE1 REN1 TB81 RB81 TI1 RI1"
58 1 TMOD |= 0x20; //Timer1 Mode,"GATE1 C/T1 T1M1 T1M0 GATE0 C/T0 T0M1 T0M0"
59 1 TH1 = -(SYSCLK/BAUDRATE/16); // 按波特率设置定时器1重装值
60 1 TR1 = 1; // 起动定时器1
61 1 CKCON |= 0x10; // 定时器1使用系统时钟为时基
62 1 PCON |= 0x80; // SMOD00 = 1
63 1
64 1 /*
65 1 PCON &=~0x80; // 串口波特率加倍使能。0:串口波特率为SCON中的串口方式定义值;1:加倍
66 1 // SCON = 0x70; // Mode 1: 8-Bit UART, Variable Baud Rate ,receive enable.
67 1 CKCON = 0x00; // Timer 2,1,0 uses the system clock divided by 12.
68 1 T2CON |= 0x30; // RCLK和TCLK中有任何一个被置‘1’时,定时器2中断被自动禁止
69 1 // 定时器被强制工作于波特率发生器方式并使用SYSCLK/2作为时钟源。
70 1 RCAP2H = 0xFF; // 9600=(1/16)*(11059200/2)/(65536-X).0xFFDC=9600,0xFFED=19200,0xFFF7=38400,0xFFFD=115200
71 1 RCAP2L = 0xFA;
72 1 TR2 = 1; // 时钟2使能
73 1 */
74 1
75 1 EIE2 |= 0x40;//ES1 = 1;//允许UART1中断
76 1
77 1 DatLong=0x00;
78 1 }
79 //********************************************************************************************************
-******************
80 void Enter_UART1(void) interrupt 20
81 {
82 1 SCON1 &=~0x01;
83 1 DatPocket[DatLong]=SBUF1;
84 1 Timer0_ReSet();
85 1 DatLong++;
86 1 ComFlag=0x02;
87 1 }
88 //********************************************************************************************************
-******************
89 void Com1_Send_Char (unsigned char data1)
90 {
91 1 SBUF1 = data1;
92 1 while(!(SCON1 & 0x02));
93 1 SCON1 &=~0x02;
94 1 }
95 //********************************************************************************************************
-******************
96 void Com1_Send_String(unsigned char *string,unsigned int bytes)
97 {
98 1 xdata unsigned int i;
99 1 xdata unsigned int j;
100 1
101 1 CTRL485 = 1;
102 1 for(j=0;j<200;j++);
103 1
104 1 for(i=0;i<bytes;i++)
105 1 Com1_Send_Char(string[i]);
106 1
107 1 for(j=0;j<100;j++);
C51 COMPILER V7.06 COM 06/25/2008 15:44:08 PAGE 3
108 1 CTRL485 = 0;
109 1 }
110 //********************************************************************************************************
-******************
111 void Com_Send_String(unsigned char *string,unsigned int bytes,unsigned char flag)
112 {
113 1 if(flag==0x01)
114 1 Com0_Send_String(string,bytes);
115 1 else if(flag==0x02)
116 1 Com1_Send_String(string,bytes);
117 1 }
118 //********************************************************************************************************
-******************
119 // The End
120 //********************************************************************************************************
-******************
121
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 456 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 6
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
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 + -