📄 24c02.lst
字号:
C51 COMPILER V7.50 24C02 04/09/2008 23:05:40 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: F:\C51\BIN\C51.EXE 24c02.c LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 好利来音响部设计
3 未经同意不得散布于网络
4 2005年2月15日
5 */
6 #define uchar unsigned char
7 #define uint unsigned int
8 #define ulong unsigned long
9 #include <reg52.h>
10 #include <absacc.h>
11 #include "intrins.h"
12 #define iicadd 0x10;
13 sbit da=P1^7;
14 sbit cl=P1^6;
15 sbit ff=P1^5;
16 void delaytime(uint time)
17 { bit a=0;
18 1 for(;time!=0;time--)
19 1 {
20 2 a=1;
21 2 a=0;
22 2 }
23 1 }
24
25 extern uchar remkey;
26 void sta_24c02() //启动总线传输
27 {
28 1 da=1;
29 1 delaytime(2);
30 1 cl=1;
31 1 delaytime(2);
32 1 da=0;
33 1 delaytime(2);
34 1 cl=0;
35 1 }
36 void stop_24c02() //结束总线传输
37 {
38 1 da=0;
39 1 delaytime(2);
40 1 cl=1;
41 1 delaytime(2);
42 1 da=1;
43 1 delaytime(2);
44 1 da=0;
45 1 delaytime(2);
46 1 cl=0;
47 1 delaytime(2);
48 1 }
49 void mack_24c02()//发送应答位
50 {
51 1 da=0;
52 1 delaytime(2);
53 1 cl=1;
54 1 delaytime(2);
55 1 cl=0;
C51 COMPILER V7.50 24C02 04/09/2008 23:05:40 PAGE 2
56 1 delaytime(2);
57 1 da=1;
58 1 delaytime(2);
59 1 }
60 void nmack_24c02()//发送非应答位
61 {
62 1 da=1;
63 1 delaytime(2);
64 1 cl=1;
65 1 delaytime(2);
66 1 cl=0;
67 1 delaytime(2);
68 1 da=0;
69 1 delaytime(2);
70 1
71 1 }
72 bit cack_24c02() //发送状态检测
73 {
74 1 bit a=0;
75 1 da=1;
76 1 delaytime(2);
77 1 cl=1;
78 1 delaytime(2);
79 1 if(da==0)
80 1 {
81 2 delaytime(2);
82 2 cl=0;
83 2 delaytime(2);
84 2 return(0);
85 2 }
86 1 else
87 1 {
88 2 delaytime(2);
89 2 cl=0;
90 2 return(1);
91 2 }
92 1 }
93 void wr1_24c02(void)//写数据1
94 {
95 1 da=1;
96 1 delaytime(2);
97 1 cl=1;
98 1 delaytime(2);
99 1 cl=0;
100 1 delaytime(2);
101 1 da=0;
102 1 delaytime(2);
103 1 }
104 void wr0_24c02()//写数据0
105 {
106 1 da=0;
107 1 delaytime(2);
108 1 cl=1;
109 1 delaytime(2);
110 1 cl=0;
111 1 delaytime(2);
112 1 }
113 wrbyt_24c02(uchar byt)//写一个字节的数据到总线上
114 {
115 1 uchar temp=0x00;
116 1 uchar count;
117 1 for(count=0;count<8;count++)
C51 COMPILER V7.50 24C02 04/09/2008 23:05:40 PAGE 3
118 1 {
119 2 if((byt<<count)&0x80)
120 2 wr1_24c02();
121 2 else
122 2 wr0_24c02();
123 2 }
124 1 }
125 uchar rdbyt_24c02() //从总线上读取一个字节的数据
126 {
127 1 uchar a=0,i=0;
128 1 for(i=0;i<8;i++)
129 1 {
130 2 da=1;
131 2 delaytime(2);
132 2 cl=1;
133 2 if(da==1)
134 2 {
135 3 a=(a<<1)+1;
136 3 cl=0;
137 3 }
138 2 else if(da==0)
139 2 {
140 3 a=a<<1;
141 3 cl=0;
142 3 }
143 2 }
144 1 return(a);
145 1 }
146 bit wrnbyt(uchar add,uchar start,uchar num,uchar *k) //向24C02(ADD)从字节(START)开始写(NUM)个字节
147 {
148 1 uchar *p=k;
149 1 uchar dk;
150 1 for(dk=0;dk<num;dk++,p++)
151 1 {
152 2 sta_24c02();
153 2 wrbyt_24c02(add);
154 2 mack_24c02();
155 2 wrbyt_24c02(start);
156 2 start=start+1;
157 2 mack_24c02();
158 2 wrbyt_24c02(*p);
159 2 mack_24c02();
160 2 stop_24c02();
161 2 delaytime(5000);
162 2 }
163 1 return(1);
164 1 }
165 bit rdnbyt(uchar add,uchar start,uchar num,uchar a[]) //从24C02(ADD)字节(START)开始读取(NUM)个字节
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -