📄 other.lst
字号:
C51 COMPILER V7.50 OTHER 03/30/2005 14:24:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE OTHER
OBJECT MODULE PLACED IN other.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE other.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "main.h"
2
3 CARDNO CardNo;
4
5 //偶校验函数.
6 //return:0 a的八位中1的个数位偶数
7 // 1 a的八位中1的个数位奇数
8 bit Even_Parity(unsigned char a)
9 {
10 1 unsigned char i,j,b;
11 1 bit Bit_EP;
12 1 for(i=0,j=0;i<8;i++)
13 1 {
14 2 b=a&0x01;
15 2 if(b==0x01)
16 2 {
17 3 j++;
18 3 b=0;
19 3 }
20 2 a=a>>1;
21 2 }
22 1 if((j&0x01)==0x01)Bit_EP=1;
23 1 else Bit_EP=0;
24 1 return(Bit_EP);
25 1 }
26
27 //奇校验函数.
28 //return:0 a的16位中1的个数为奇数
29 // 1 a的16位中1的个数为偶数
30 bit Odd_Parity(unsigned int a)
31 {
32 1 bit Bit_OP;
33 1 unsigned char i,j;
34 1 unsigned int b;
35 1 for(i=0,j=0;i<16;i++)
36 1 {
37 2 b=a&0x0001;
38 2 if(b==0x0001)
39 2 {
40 3 j++;
41 3 b=0;
42 3 }
43 2 a=a>>1;
44 2 }
45 1 if((j&0x01)==0x01)Bit_OP=0;
46 1 else Bit_OP=1;
47 1 return(Bit_OP);
48 1 }
49
50 //wiegand 26输出函数
51 void Wiegand_Out(void)
52 {
53 1 unsigned char i,fc;
54 1 unsigned int cc;
55 1 unsigned char cardno[26];
C51 COMPILER V7.50 OTHER 03/30/2005 14:24:45 PAGE 2
56 1 //偶校验位
57 1 if((Even_Parity(CardNo.FC))==1)cardno[0]=0x01;
58 1 else cardno[0]=0x00;
59 1 //奇校验位
60 1 if((Odd_Parity(CardNo.CC))==1)cardno[25]=0x01;
61 1 else cardno[25]=0x00;
62 1 //得到HID号的低8位
63 1 fc=CardNo.FC;
64 1 for(i=1;i<9;i++)
65 1 {
66 2 cardno[i]=(fc&0x80)>>7;
67 2 fc=fc<<1;
68 2 }
69 1 //得到16位机器号
70 1 cc=CardNo.CC;
71 1 for(i=9;i<25;i++)
72 1 {
73 2 if((cc&0x8000)==0x8000) cardno[i]=0x01;
74 2 else cardno[i]=0x00;
75 2 cc=cc<<1;
76 2 }
77 1
78 1 for( i=0;i<26;i++)
79 1 {
80 2 if(cardno[i]==0x01)
81 2 {
82 3 Data1=1;
83 3
84 3 //脉冲宽度100us
85 3 Delay100us(1);
86 3 //Delayms(20);
87 3 Data1=0;
88 3 }
89 2 else
90 2 {
91 3 //脉冲宽度100us
92 3 Data0=1;
93 3 Delay100us(1);
94 3 //Delayms(20);
95 3 Data0=0;
96 3 }
97 2 //脉冲间隔1ms
98 2 Delay100us(10);
99 2 //Delayms(50);
100 2 }
101 1 for( i=0;i<26;i++)
102 1 {
103 2 PutChar(cardno[i]);
104 2 }
105 1 }
106
107
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 27
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
C51 COMPILER V7.50 OTHER 03/30/2005 14:24:45 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -