📄 main.lst
字号:
C51 COMPILER V8.09 MAIN 08/07/2008 14:48:43 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: D:\PROGRAM\KEIL\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 unsigned char i,n,j;
3 unsigned char indata,OutData;
4 unsigned char tosin[96];
5 unsigned char flag;
6
7 void ComOutChar(unsigned char OutData) ;
8
9 void main(void)
10 {
11 1 n=0;
12 1 j=0;
13 1 flag=0;
14 1 SCON=0x50; //通讯方式一
15 1
16 1 TMOD=0X21; //定时器0方式一 定时器1方式二,用于产生波物率
17 1 PCON=0X80; //SMOD=1
18 1 RI=0;
19 1 TI=0;
20 1 TH0=0xFE;
21 1 TL0=0x5A;
22 1 TH1=0xf3;
23 1 TL1=0xf3; //波特率9600 24HZ
24 1
25 1 ES=1; //串行中断使能
26 1
27 1 TR1=1; //定时器开启
28 1 EA=1;
29 1 while(1)
30 1 {
31 2 if(flag==1) //每接收完一组新数据,将收到的数据发送一遍给上位机
32 2 {
33 3 if(j==95)
34 3 {
35 4 j=0;
36 4 flag=0;
37 4 }
38 3 else
39 3 {
40 4 ComOutChar(tosin[j]);
41 4 j++;
42 4 }
43 3 }
44 2 }
45 1 }
46
47
48 void ComOutChar(unsigned char OutData)
49 {
50 1 SBUF = OutData;
51 1 while(!TI);
52 1 TI = 0;
53 1 }
54
55
C51 COMPILER V8.09 MAIN 08/07/2008 14:48:43 PAGE 2
56 void timer0(void) interrupt 1
57
58 {
59 1 TR0=0;
60 1 if(i==95)
61 1 i=0;
62 1 P1= tosin[i];
63 1 i++;
64 1
65 1 TH0=0xFE;
66 1 TL0=0x5A;
67 1
68 1 TR0=1;
69 1 }
70
71 void ComInINT(void) interrupt 4 using 2
72 {
73 1 if (RI) /*判断是不是收完字符 */
74 1 {
75 2 RI=0;
76 2 n++;
77 2 if(n==95)
78 2 {
79 3 ET0=1; //开定时器0中断
80 3 TR0=1;
81 3 n=0;
82 3 flag=1;
83 3 }
84 2
85 2 tosin[n]=SBUF;
86 2
87 2 }
88 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 162 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 102 ----
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 + -