📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 11/28/2007 08:39:31 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <Reg51.h>
2 #include <stdio.h>
3
4
5 sbit Data = P0^0;
6 unsigned char data start;
7 unsigned char data databuff;
8 unsigned char data result;
9
10 void main(void)
11 {
12 1 /***************************
13 1
14 1 串行通讯的波特率根据实际应用再修改
15 1
16 1 *********************************/
17 1 PCON = 0x80; //SMOD = 1
18 1 SCON = 0x50; //串口通讯采用方式1
19 1 TMOD = 0x20; //T1采用方式2
20 1 TL1 = 0xfd;
21 1 TH1 = 0xfd; //T1装初值
22 1 ES = 1; //开串口中断
23 1 ET1 = 1; //开T1中断
24 1 IT0 = 1; //中断0负边沿触发
25 1 EX0 = 1; //开外部中断0
26 1 EA = 1; //开所有中断
27 1 TR1 = 1; //T1开始计时
28 1 start = 0xff;
29 1 databuff = 0;
30 1 // for(;;);
31 1 }
32
33 void interrupter_0(void) interrupt 0 using 1
34 {
35 1 if( start == 0xff )
36 1 {
37 2 if(Data == 0) //开始接受起始位
38 2 {
39 3 start = 0;
40 3 databuff = 0;
41 3 }
42 2 }
43 1 else
44 1 {
45 2 if(start < 0x08) //接受数据位
46 2 {
47 3 if( Data == 1)
48 3 databuff += (1 << start);
49 3 }
50 2 else if( start == 0x08) //接受校验位
51 2 {
52 3
53 3 }
54 2 else //接受停止位
55 2 {
C51 COMPILER V7.00 MAIN 11/28/2007 08:39:31 PAGE 2
56 3 start = 0xff;
57 3 if( Data == 1)
58 3 {
59 4 result = databuff;
60 4 SBUF = result; //向上位机发送数据
61 4 }
62 3 else
63 3 result = 0xff;
64 3 }
65 2 start ++;
66 2 }
67 1 }
68
69 void serial(void) interrupt 4 using 2
70 {
71 1 if( TI == 1 )
72 1 TI = 0;
73 1 if( RI == 1 )
74 1 RI = 0;
75 1 }
76
77
78
79
80
81
82
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 127 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -