PIC16C923-04I/CL Microchip Technology, PIC16C923-04I/CL Datasheet - Page 78

no-image

PIC16C923-04I/CL

Manufacturer Part Number
PIC16C923-04I/CL
Description
8-Bit CMOS Microcontroller with LCD Driver
Manufacturer
Microchip Technology
Datasheet
PIC16C9XX
FIGURE 11-21: OPERATION OF THE I
DS30444E - page 78
IDLE_MODE (7-bit):
if (Addr_match)
RCV_MODE:
if ((SSPBUF=Full) OR (SSPOV = 1))
else
Receive 8-bits in SSPSR;
Set interrupt;
XMIT_MODE:
While ((SSPBUF = Empty) AND (CKP=0)) Hold SCL Low;
Send byte;
Set interrupt;
if ( ACK Received = 1)
else if ( ACK Received = 0) Go back to XMIT_MODE;
IDLE_MODE (10-Bit):
If (High_byte_addr_match AND (R/W = 0))
else if (High_byte_addr_match AND (R/W = 1)
{
}
{
}
{
}
{
else PRIOR_ADDR_MATCH = FALSE;
}
Set SSPOV;
Do not acknowledge;
send ACK = 0;
Set interrupt;
if ((SSPBUF = Full) OR ((SSPOV = 1))
else
if (PRIOR_ADDR_MATCH)
transfer SSPSR
PRIOR_ADDR_MATCH = FALSE;
{
}
{
}
{
}
{
}
{
}
Do not acknowledge;
Set UA = 1;
Send ACK = 0;
While (SSPADD not updated) Hold SCL low;
Clear UA = 0;
Receive Low_addr_byte;
Set interrupt;
Set UA = 1;
If (Low_byte_addr_match)
send ACK = 0;
set XMIT_MODE;
Set SSPOV;
SSPBUF;
Set interrupt;
if (R/W = 1)
else if (R/W = 0) set RCV_MODE;
End of transmission;
Go back to IDLE_MODE;
{
}
2
C MODULE IN IDLE_MODE, RCV_MODE OR XMIT_MODE
PRIOR_ADDR_MATCH = TRUE;
Send ACK = 0;
while (SSPADD not updated) Hold SCL low;
Clear UA = 0;
Set RCV_MODE;
{
}
Send ACK = 0;
set XMIT_MODE;
1997 Microchip Technology Inc.

Related parts for PIC16C923-04I/CL