📄 com.lst
字号:
C51 COMPILER V6.12 COM 04/20/2006 17:14:56 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN com.OBJ
COMPILER INVOKED BY: C:\c51\BIN\C51.EXE com.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include <main.h>
2
3 //*************************************
4 #define COM_MK_HEAD 0x7e /*协议头*/
5 #define COM_MK_ID 0x00 /*帧号*/
6 #define COM_MK_SUM 0x00 /*累加和*/
7 #define COM_MK_END 0x0d /*协议尾*/
8 //*************************************
9
10 byte idata com_st=COM_ST_IDLE;
11 byte com_command = 0x00; //命令字
12 byte idata rx_para[18];//定义rs232接收数组
13 byte idata tx_para[18];//定义rs232发送数组
14 byte com_para_len = EMPTY;//数据数组的长度
15 byte idata com_cs_len = EMPTY;
16 bit fctl = 0;
17 bit f1=0;
18
19 void init_com(void); //串口初始化子函数
20 void com_return_error(void);//通信出错子函数
21
22 void com_return_error(void)
23 {
24 1 _nop_();
25 1 _nop_();
26 1 _nop_();
27 1 _nop_();
28 1 _nop_();
29 1 _nop_();
30 1 _nop_();
31 1 _nop_();
32 1 com_st=COM_ST_IDLE;
33 1 }
34 void init_com(void)
35 {
36 1 TMOD=0x20; //定时器初始化,定时器T1为方式2,8位自动重装
37 1 TL1=0xfd;
38 1 TH1=0xfd; //设置9600波特率
39 1 SCON=0x50; //串口初始化,方式1
40 1 PCON=0x00;
41 1 ES=1; //允许串口中断
42 1 ET1=0; //禁止T1中断
43 1 TR1=1; //启动T1
44 1 IP=0x10; //串口高中断优先级
45 1 EA=1; //开中断
46 1 }
47
48 void int_1(void) interrupt 2 using 2
49 {
50 1 EX1 = 0;
51 1 f1 = 1;
52 1 }
53
54 void max3100_r_prc(void)
55 {
C51 COMPILER V6.12 COM 04/20/2006 17:14:56 PAGE 2
56 1 switch(com_st)
57 1 {
58 2
59 2 case COM_ST_IDLE:
60 2 com_cs_len = 0x00;
61 2 if(rx_para[0] == COM_MK_HEAD)
62 2 com_st=COM_ST_LEN;
63 2 break;
64 2 case COM_ST_LEN:
65 2 com_cs_len = rx_para[1]; //得到字长
66 2 com_st=COM_ST_ID;
67 2 break;
68 2 case COM_ST_ID:
69 2 if(rx_para[2] == COM_MK_ID)
70 2 {
71 3 com_st=COM_ST_CMD;
72 3 }
73 2 break;
74 2
75 2 case COM_ST_CMD:
76 2 com_command = rx_para[3];
77 2 com_st = COM_ST_CS;
78 2 break;
79 2 case COM_ST_CS:
80 2 com_st = COM_ST_SUM;
81 2 break;
82 2 case COM_ST_SUM:
83 2 com_st = COM_ST_END;
84 2 break;
85 2 case COM_ST_END:
86 2 if(rx_para[com_cs_len+3] == COM_MK_END)
87 2 {
88 3 com_st = COM_ST_IDLE;
89 3 fctl = 1;
90 3 set = 0;
91 3 }
92 2 break;
93 2 default:
94 2 com_st = COM_ST_IDLE;
95 2 break;
96 2
97 2 }
98 1
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 160 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = 38 ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -