📄 main.lst
字号:
C51 COMPILER V6.02 MAIN 03/09/2006 22:51:38 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN D:\NEWWORK\51346B~1\WIEGEN~1\MAIN.OBJ
COMPILER INVOKED BY: C:\comp51v6\C51.EXE D:\NEWWORK\51346B~1\WIEGEN~1\MAIN.C DB SB OE OT(4)
stmt level source
1 //**********************************************
2 //文件:MAIN.C
3 //版本:V1.0
4 //编写人:马一兵
5 //编写日期:2005年12月10日
6 //修改日期:
7 //功能说明:
8 //**********************************************
9 #include<reg52.h>
10 #include<string.h>
11 #include <intrins.h>
12
13
14 sbit DATA0=P1^0;
15 sbit DATA1=P1^1;
16
17 unsigned char Wigen_counter;
18 unsigned char Wigen_ReciveBuf[27];
19
20
21 /******************************************************************/
22 /******************************************************************/
23 /***************************主程序*********************************/
24 /******************************************************************/
25 /******************************************************************/
26 void main(void)
27 {
28 1 unsigned char idata even;
29 1 unsigned char idata odd;
30 1 unsigned char idata i,j;
31 1 unsigned char idata WIGEN_BUF[6];
32 1 //外中断0初始化 //用于捕获WIGEN信号
33 1 EX0=1; //允许外中断0
34 1 PX0=1; //置为最高优先级
35 1 IT0=1; //负边沿触发中断
36 1
37 1 //开总中断
38 1 EA=1;
39 1
40 1
41 1 Wigen_counter=0;
42 1
43 1 while(Wigen_counter<26);
44 1
45 1
46 1
47 1 //判断奇偶校验是否正确
48 1 even=0;
49 1 for(j=0;j<3;j++)
50 1 {
51 2 WIGEN_BUF[j]=0;
52 2 for(i=(j*4);i<(j*4+4);i++)
53 2 {
54 3 WIGEN_BUF[j]=(WIGEN_BUF[j]<<1)&0xfe;
55 3 if(Wigen_ReciveBuf[i+1]==1)
C51 COMPILER V6.02 MAIN 03/09/2006 22:51:38 PAGE 2
56 3 {
57 4 WIGEN_BUF[j]=WIGEN_BUF[j]|0x01;
58 4 even=(~even)&0x01;
59 4 }
60 3 }
61 2 }
62 1 if(even!=Wigen_ReciveBuf[0])
63 1 {
64 2 //清除标志
65 2 Wigen_counter=0;
66 2 goto end;
67 2 }
68 1
69 1 odd=1;
70 1 for(j=3;j<6;j++)
71 1 {
72 2 WIGEN_BUF[j]=0;
73 2 for(i=(j*4);i<(j*4+4);i++)
74 2 {
75 3 WIGEN_BUF[j]=(WIGEN_BUF[j]<<1)&0xfe;
76 3 if(Wigen_ReciveBuf[i+1]==1)
77 3 {
78 4 WIGEN_BUF[j]=WIGEN_BUF[j]|0x01;
79 4 odd=(~odd)&0x01;
80 4 }
81 3 }
82 2 }
83 1 if(odd!=Wigen_ReciveBuf[25])
84 1 {
85 2 //清除标志
86 2 Wigen_counter=0;
87 2 goto end;
88 2 }
89 1
90 1 //清除标志
91 1 Wigen_counter=0;
92 1
93 1
94 1 //wigen数据接收正确,存在WIGEN_BUF中,加入你的处理
95 1
96 1 end:
97 1 Wigen_counter=0;
98 1
99 1
100 1
101 1 }
102
103
104
105
106
107 /******************************************************************/
108 /****************************外中断2子程序************************/
109 /******************************************************************/
110 void wigenISR (void) interrupt 0 using 1
111 {
112 1
113 1 //如果DATA0=1,则表示DATA1=0;
114 1 if(DATA0) Wigen_ReciveBuf[Wigen_counter++]=1;
115 1 else Wigen_ReciveBuf[Wigen_counter++]=0;
116 1
117 1 //D0和D1不能同时为0;
C51 COMPILER V6.02 MAIN 03/09/2006 22:51:38 PAGE 3
118 1
119 1 IE0 = 0; //Clear interrupt request flag
120 1
121 1 }
C51 COMPILER V6.02 MAIN 03/09/2006 22:51:38 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
wigenISR . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
even . . . . . . . . . . . . . . . . AUTO IDATA U_CHAR 0000H 1
odd. . . . . . . . . . . . . . . . . AUTO IDATA U_CHAR 0001H 1
i. . . . . . . . . . . . . . . . . . AUTO IDATA U_CHAR 0002H 1
j. . . . . . . . . . . . . . . . . . AUTO IDATA U_CHAR 0003H 1
WIGEN_BUF. . . . . . . . . . . . . . AUTO IDATA ARRAY 0004H 6
end. . . . . . . . . . . . . . . . . LABEL CODE LABEL ----- -----
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
DATA0. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
DATA1. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
C51 COMPILER V6.02 MAIN 03/09/2006 22:51:38 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
Wigen_ReciveBuf. . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 27
Wigen_counter. . . . . . . . . . . . . PUBLIC DATA U_CHAR 001BH 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 320 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 ----
IDATA SIZE = ---- 10
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 + -