📄 access.lst
字号:
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 1
C51 COMPILER V7.06, 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 CODE SYMBOLS PRIN
-T(.\Output\Access.lst) PREPRINT(.\Output\Access.i) 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 V7.06 ACCESS 11/21/2005 13:47:43 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;
bPanel_Status = Status ? 1 : 0;
}
/*
bit MCU_ReadPanelPower(void)
{
return(bPANEL_PWR);
}
*/
///////////////////////////////////////////////////////////////////////
// BACKLIGHT POWER Processor //
///////////////////////////////////////////////////////////////////////
void MCU_WriteBacklightPower(bit Status)
{
bLIGHT_PWR = (Status);
}
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 3
///////////////////////////////////////////////////////////////////////
// VGA CONNECT Processor //
///////////////////////////////////////////////////////////////////////
bit MCU_ReadVgaConnect(void)
{
return(bVGA_CONNECT);
}
#endif
119
120 void BitDly(void)
121 {
122 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
123 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
124 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
125 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
126 1 }
127
128 void I2CRead(unsigned char addr, unsigned char index, unsigned char count)
129 {
130 1 unsigned char n;
131 1
132 1 if (count)
133 1 {
134 2 I2CSendAddr(addr, index, 0);
135 2
136 2 I2CSendAddr(addr, 0, 1);
137 2
138 2 count = count - 1;
139 2
140 2 for (n = 0; n < count; n++) Data[n] = I2CGetByte(0);
141 2
142 2 Data[count] = I2CGetByte(1);
143 2
144 2 I2CSendStop();
145 2 }
146 1 }
147
148 void I2CWrite(unsigned char *array)
149 {
150 1 unsigned char n, len;
151 1
152 1 if (3 <= array[0])
153 1 {
154 2 len = array[0];
155 2 I2CSendAddr(array[1], array[2], 0);
156 2
157 2 for (n = 3; n < len; n++) I2CSendByte(array[n]);
158 2
159 2 I2CSendStop();
160 2 }
161 1 }
162
163
164 unsigned char I2CGetByte(unsigned char ack)
165 {
166 1 unsigned char r, m;
167 1
168 1 r = 0;
169 1 #if(MCU_TYPE == MCU_WINBOND)
170 1 for (m = 0; m < 8; m++) // Each bit at a time, MSB first
171 1 {
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 4
172 2 bIIC_SCL = 1;
173 2 BitDly(); // Delay
174 2
175 2 r = (r << 1) | bIIC_SDA;
176 2
177 2 bIIC_SCL = 0;
178 2 BitDly(); // Delay
179 2 }
180 1
181 1 // Send ACK according to 'ack'
182 1 bIIC_SDA = (bit)(ack & 0x01);
183 1 BitDly(); // Delay
184 1
185 1 bIIC_SCL = 1;
186 1 BitDly(); // Delay
187 1
188 1 bIIC_SCL = 0;
189 1 BitDly(); // Delay
190 1
191 1 bIIC_SDA = 1;
192 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
212 1
213 1 return (r);
214 1 }
215
216 void I2CSendByte(unsigned char send)
217 {
218 1 unsigned char m;
219 1 #if(MCU_TYPE == MCU_WINBOND)
220 1 for (m = 0; m < 8; m++)
221 1 {
222 2 bIIC_SDA = (bit)(send & 0x80); // Send each bit, MSB first
223 2 BitDly();
224 2
225 2 bIIC_SCL = 1;
226 2 BitDly();
227 2
228 2 bIIC_SCL = 0;
229 2
230 2 send = send << 1;
231 2 }
232 1
233 1 bIIC_SDA = 1;
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 5
234 1 bIIC_SCL = 1;
235 1 BitDly();
236 1
237 1 bIIC_SCL = 0;
238 1 BitDly();
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
256 1 }
257
258 void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
259 {
260 1 #if(MCU_TYPE == MCU_WINBOND)
261 1 bIIC_SCL = 1;
262 1 bIIC_SDA = 0; // Start
263 1 BitDly();
264 1
265 1 bIIC_SCL = 0;
266 1 I2CSendByte(addr + rd); // Send address byte
267 1
268 1 if (0 == rd) I2CSendByte(index); // Send index byte
269 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -