📄 huangjian8563main.lst
字号:
C51 COMPILER V8.02 HUANGJIAN8563MAIN 11/03/2008 23:38:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE HUANGJIAN8563MAIN
OBJECT MODULE PLACED IN huangjian8563main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE huangjian8563main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<intrins.h>
3
4 #define uchar unsigned char
5
6 code uchar led[]={0x11,0xd7,0x32,0x92,0xd4,0x18,0x98,0xd3,0x10,0x90,0xfe,0xff};
7
8 uchar d[]={0,0x20,0,0,0,0,0};
9
10 uchar *p=d;
11
12
13 sbit sda_8563=P0^7;
14 sbit scl_8563=P0^6;
15 sbit sda_164=P0^2;
16 sbit scl_164=P0^3;
17
18
19
20 delay(uchar i)
21
22 {
23 1 while(--i);
24 1
25 1 }
26
27
28 void start()
29 {
30 1
31 1
32 1 sda_8563=1;
33 1 scl_8563=1;
34 1 delay(2);
35 1 sda_8563=0;
36 1 delay(2);
37 1 scl_8563=0;
38 1 }
39
40
41
42 void stop()
43 { sda_8563=0;
44 1 scl_8563=1;
45 1 delay(2);
46 1 sda_8563=1;
47 1 }
48
49
50
51 void wrbyte(uchar dat)
52
53
54 {
55 1
C51 COMPILER V8.02 HUANGJIAN8563MAIN 11/03/2008 23:38:14 PAGE 2
56 1 int i;
57 1 scl_8563=0;
58 1 for(i=0;i<8;i++)
59 1 { if(dat&0x80)sda_8563=1; else sda_8563=0;
60 2 scl_8563=1;
61 2 delay(2);
62 2 scl_8563=0;
63 2 dat<<=1;
64 2 }
65 1 sda_8563=1;
66 1 scl_8563=1;
67 1 scl_8563=0;
68 1 }
69
70 uchar rebyte()
71 { int i;
72 1 uchar a=0;
73 1 sda_8563=1;
74 1 for(i=0;i<8;i++)
75 1 { scl_8563=1;
76 2 a<<=1;
77 2 a|=sda_8563;
78 2 scl_8563=0;
79 2 delay(2);
80 2 }
81 1 sda_8563=1;
82 1 scl_8563=1;
83 1 scl_8563=0;
84 1 return(a);
85 1 }
86
87 void refrom8563()
88 { int i;
89 1 for(i=0;i<3;i++)
90 1 { start();
91 2 wrbyte(0xa2);
92 2 wrbyte(0xa2+i);
93 2 start();
94 2 wrbyte(0xa3);
95 2 switch(i)
96 2 { case 0:*(p+i)=(rebyte())&0x7f;break;
97 3 case 1:*(p+i)=(rebyte())&0x7f;break;
98 3 case 2:*(p+i)=(rebyte())&0x3f;break;
99 3 default:break;
100 3 }
101 2 stop();
102 2 }
103 1 }
104
105 void wrto8563()
106 {int i;
107 1 wrbyte(0xa2);
108 1 wrbyte(0xa2+i);
109 1 wrbyte(d[i]);
110 1 stop();
111 1 }
112
113 shift(uchar t)
114 { int i,dat;
115 1 dat=d[t];
116 1 scl_164=0;
117 1 for(i=0;i<8;i++)
C51 COMPILER V8.02 HUANGJIAN8563MAIN 11/03/2008 23:38:14 PAGE 3
118 1 { if(dat&0x80)sda_164=1;else sda_164=0;
119 2 scl_164=1;
120 2 scl_164=0;
121 2 dat<<=1;
122 2 }
123 1 }
124
125 void display()
126 { int i;
127 1 for(i=0;i<3;i++)
128 1 {
129 2 shift(0xff);
130 2 shift(*(p+i)&0x0f);
131 2 shift((*(p+i)&0xf0)>>4 );
132 2 }
133 1 }
134
135 /* main()
136 {
137 wrto8563();
138
139 while(1)
140 { int y;
141
142 refrom8563();
143
144 display();
145
146 for(y=0;y<200;y++);
147
148 delay(0xff);
149 }
150
151 }
152 */
153
154 main()
155 {
156 1
157 1 wrto8563();
158 1 while(1)
159 1 {
160 2 int y;
161 2 refrom8563();
162 2
163 2 display();
164 2 for(y=0;y<1000;y++)
165 2 delay(200);
166 2 }
167 1
168 1 }
169
170
171
172
173
174
175
176
177
178
179
C51 COMPILER V8.02 HUANGJIAN8563MAIN 11/03/2008 23:38:14 PAGE 4
180
181
182
183
184
185
186
187
188
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 403 ----
CONSTANT SIZE = 12 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 8
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 + -