📄 access.lst
字号:
C51 COMPILER V6.20c ACCESS 04/15/2004 12:59:25 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE ACCESS
OBJECT MODULE PLACED IN .\Output\Access.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Code\Access.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Output\Ac
-cess.lst) OBJECT(.\Output\Access.obj)
stmt level source
1 #define __ACCESS__
2
3 #include "reg52.h"
4 #include "intrins.h"
5
6 #include "Header\MAIN_DEF.H"
7 #include "Header\ACCESS.h"
8 #include "Header\CONFIG.H"
9 #include "Header\MTV512.H"
10 #include "Header\OSD.H"
11 #include "Header\Power_Ctrl.h"
12
13 #if (MCU_TYPE == MCU_MTV512)
///////////////////////////////////////////////////////////////////////
// SCL Processor
- //
///////////////////////////////////////////////////////////////////////
void MCU_WriteI2cScl(bit Status)
{
bIIC_SCL = Status;
}
///////////////////////////////////////////////////////////////////////
// SDA Processor
- //
///////////////////////////////////////////////////////////////////////
void MCU_WriteI2cSda(bit Status)
{
bIIC_SDA = Status;
}
bit MCU_ReadI2cSda(void)
{
return (bIIC_SDA);
}
///////////////////////////////////////////////////////////////////////
// RTD Reset Processor
- //
///////////////////////////////////////////////////////////////////////
#if (RESET_TYPE == RESET_IN)
void MCU_WriteRtdReset(bit Status)
{
bRTD_RST = Status;
}
bit MCU_ReadRtdReset(void)
{
return (bRTD_RST);
}
#endif
///////////////////////////////////////////////////////////////////////
// RTD SDIO Processor
- //
C51 COMPILER V6.20c ACCESS 04/15/2004 12:59:25 PAGE 2
///////////////////////////////////////////////////////////////////////
/*
void MCU_WriteRtdSdio(bit Status)
{
bRTD_SDIO_0 = Status;
}
bit MCU_ReadRtdSdio(void)
{
return(bRTD_SDIO_0);
}
///////////////////////////////////////////////////////////////////////
// RTD Sclk Processor
- //
///////////////////////////////////////////////////////////////////////
void MCU_WriteRtdSclk(bit Status)
{
bRTD_SCLK = Status;
}
///////////////////////////////////////////////////////////////////////
// RTD Scsb Processor
- //
///////////////////////////////////////////////////////////////////////
void MCU_WriteRtdScsb(bit Status)
{
bRTD_SCSB = Status;
}
*/
///////////////////////////////////////////////////////////////////////
// VIDEO POWER Processor //
///////////////////////////////////////////////////////////////////////
#if (VIDEO_CHIP != VDC_NONE)
void MCU_WriteVideoPower(bit Status)
{
bVDC_PWR = Status;
}
#endif
///////////////////////////////////////////////////////////////////////
// PANEL POWER Processor /
-/
///////////////////////////////////////////////////////////////////////
void MCU_WritePanelPower(bit Status)
{
bPANEL_PWR = Status;
}
///////////////////////////////////////////////////////////////////////
// BACKLIGHT POWER Processor //
///////////////////////////////////////////////////////////////////////
void MCU_WriteBacklightPower(bit Status)
{
bLIGHT_PWR = (Status);
}
///////////////////////////////////////////////////////////////////////
// VGA CONNECT Processor //
///////////////////////////////////////////////////////////////////////
bit MCU_ReadVgaConnect(void)
{
C51 COMPILER V6.20c ACCESS 04/15/2004 12:59:25 PAGE 3
return (bVGA_CONNECT);
}
#endif
114
115 void BitDly(void)
116 {
117 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
118 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
119 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
120 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
121 1 }
122
123 void I2CRead(unsigned char addr, unsigned char index, unsigned char count)
124 {
125 1 unsigned char n;
126 1
127 1 if (count)
128 1 {
129 2 I2CSendAddr(addr, index, 0);
130 2
131 2 I2CSendAddr(addr, 0, 1);
132 2
133 2 count = count - 1;
134 2
135 2 for (n = 0; n < count; n++) Data[n] = I2CGetByte(0);
136 2
137 2 Data[count] = I2CGetByte(1);
138 2
139 2 I2CSendStop();
140 2 }
141 1 }
142
143 void I2CWrite(unsigned char *array)
144 {
145 1 unsigned char n, len;
146 1
147 1 if (3 <= array[0])
148 1 {
149 2 len = array[0];
150 2 I2CSendAddr(array[1], array[2], 0);
151 2
152 2 for (n = 3; n < len; n++) I2CSendByte(array[n]);
153 2
154 2 I2CSendStop();
155 2 }
156 1 }
157
158
159 unsigned char I2CGetByte(unsigned char ack)
160 {
161 1 unsigned char r, m;
162 1
163 1 r = 0;
164 1
165 1 #if (MCU_TYPE == MCU_STD8051)
166 1 for (m = 0; m < 8; m++) // Each bit at a time, MSB first
167 1 {
168 2 bIIC_SCL = 1;
169 2 BitDly(); // Delay
170 2
171 2 r = (r << 1) | bIIC_SDA;
C51 COMPILER V6.20c ACCESS 04/15/2004 12:59:25 PAGE 4
172 2
173 2 bIIC_SCL = 0;
174 2 BitDly(); // Delay
175 2 }
176 1
177 1 // Send ACK according to 'ack'
178 1 bIIC_SDA = (bit)(ack & 0x01);
179 1 BitDly(); // Delay
180 1
181 1 bIIC_SCL = 1;
182 1 BitDly(); // Delay
183 1
184 1 bIIC_SCL = 0;
185 1 BitDly(); // Delay
186 1
187 1 bIIC_SDA = 1;
188 1
189 1 #else
for (m = 0; m < 8; m++) // Each bit at a time, MSB first
{
MCU_WriteI2cScl(_HIGH);
BitDly(); // Delay
r = (r << 1) | MCU_ReadI2cSda();
MCU_WriteI2cScl(_LOW);
BitDly(); // Delay
}
// Send ACK according to 'ack'
MCU_WriteI2cSda((bit)(ack & 0x01));
BitDly(); // Delay
MCU_WriteI2cScl(_HIGH);
BitDly(); // Delay
MCU_WriteI2cScl(_LOW);
BitDly(); // Delay
MCU_WriteI2cSda(_HIGH);
#endif
209 1
210 1 return (r);
211 1 }
212
213 void I2CSendByte(unsigned char send)
214 {
215 1 unsigned char m;
216 1
217 1 #if (MCU_TYPE == MCU_STD8051)
218 1
219 1 for (m = 0; m < 8; m++)
220 1 {
221 2 bIIC_SDA = (bit)(send & 0x80); // Send each bit, MSB first
222 2 BitDly();
223 2
224 2 bIIC_SCL = 1;
225 2 BitDly();
226 2
227 2 bIIC_SCL = 0;
228 2
229 2 send = send << 1;
230 2 }
231 1
232 1 bIIC_SDA = 1;
233 1 bIIC_SCL = 1;
C51 COMPILER V6.20c ACCESS 04/15/2004 12:59:25 PAGE 5
234 1 BitDly();
235 1
236 1 bIIC_SCL = 0;
237 1 BitDly();
238 1
239 1 #else
for (m = 0; m < 8; m++)
{
MCU_WriteI2cSda((bit)(send & 0x80)); // Send each bit, MSB first
BitDly();
MCU_WriteI2cScl(_HIGH);
BitDly();
MCU_WriteI2cScl(_LOW);;
send = send << 1;
}
MCU_WriteI2cSda(_HIGH);
MCU_WriteI2cScl(_HIGH);
BitDly();
MCU_WriteI2cScl(_LOW);;
BitDly();
#endif
257 1 }
258
259 void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
260 {
261 1 #if (MCU_TYPE == MCU_STD8051)
262 1
263 1 bIIC_SCL = 1;
264 1 bIIC_SDA = 0; // Start
265 1 BitDly();
266 1
267 1 bIIC_SCL = 0;
268 1 I2CSendByte(addr + rd); // Send address byte
269 1
270 1 if (0 == rd) I2CSendByte(index); // Send index byte
271 1
272 1 #else
MCU_WriteI2cScl(_HIGH);
MCU_WriteI2cSda(_LOW); // Start
BitDly();
MCU_WriteI2cScl(_LOW);;
I2CSendByte(addr + rd); // Send address byte
if (0 == rd) I2CSendByte(index); // Send index byte
#endif
283 1 }
284
285 void I2CSendStop(void)
286 {
287 1 #if (MCU_TYPE == MCU_STD8051)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -