Skip to content
EmbeddedPlayX

Reference

Register reference

All 17 registers used by the seven missions, with addresses and bit tables.

On this page
  1. Register map
  2. OSCCON — 0x20
  3. TRISA — 0x21
  4. PORTA — 0x22
  5. TRISB — 0x23
  6. PORTB — 0x24
  7. ADCON0 — 0x25
  8. ADCON1 — 0x26
  9. T0CON — 0x27
  10. T1CON — 0x28
  11. EECON0 — 0x29
  12. EECON1 — 0x2A
  13. TXSTA — 0x2B
  14. RCSTA — 0x2C
  15. SSPCON0 — 0x2D
  16. SSPCON1 — 0x2E
  17. I2CCON0 — 0x2F
  18. I2CCON1 — 0x30

Register map

AddressRegisterUsed in
0x20OSCCONAll levels
0x21TRISALevel 1
0x22PORTALevel 1
0x23TRISBLevel 1
0x24PORTBLevel 1
0x25ADCON0Level 2
0x26ADCON1Level 2
0x27T0CONLevel 3
0x28T1CONLevel 3
0x29EECON0Level 4
0x2AEECON1Level 4
0x2BTXSTALevel 5
0x2CRCSTALevel 5
0x2DSSPCON0Level 6
0x2ESSPCON1Level 6
0x2FI2CCON0Level 7
0x30I2CCON1Level 7

Note

OSCCON is required by every level and must be 0x05. Bits marked “not used” are not needed for the win value and should be left at 0.

17 of 17 registers

OSCCON 0x20

OSCCON0x20
Bit(s)FieldWhen 1 / value meaningWhen 0
7:3—Not used (leave 0)
2:1IRCF1:IRCF000 = 1 MHz
01 = 2 MHz
10 = 4 MHz
11 = 8 MHz
0SCS01 = Internal oscillator on0 = Internal oscillator not enabled

TRISA 0x21

TRISA0x21
Bit(s)FieldWhen 1 / value meaningWhen 0
7:0RA7…RA01 = RAn is an input0 = RAn is an output

PORTA 0x22

PORTA0x22
Bit(s)FieldWhen 1 / value meaningWhen 0
7:0RA7…RA01 = RAn drives 5 V (needs TRISA bit n = 0)0 = RAn does not drive 5 V (an input pin reads the outside level)

TRISB 0x23

TRISB0x23
Bit(s)FieldWhen 1 / value meaningWhen 0
7:0RB7…RB01 = RBn is an input0 = RBn is an output

PORTB 0x24

PORTB0x24
Bit(s)FieldWhen 1 / value meaningWhen 0
7:0RB7…RB01 = RBn drives 5 V (needs TRISB bit n = 0)0 = RBn does not drive 5 V (an input pin reads the outside level)

ADCON0 0x25

ADCON00x25
Bit(s)FieldWhen 1 / value meaningWhen 0
7:6ADCS1:ADCS000 = Conversion clock = Fosc/4
01 = Conversion clock = Fosc/16
10 = Conversion clock = Fosc/32
11 = Conversion clock = Fosc/64
5—Not used (leave 0)
4:2CHS2:CHS0000 = Channel AN0
001 = Channel AN1
010 = Channel AN2
011 = Channel AN3
100 = Channel AN4
101 = Channel AN5
110 = Channel AN6
111 = Channel AN7
1GO/DONEConversion GO/DONE bit: not part of the win value (leave 0)
0ADON1 = Converter on0 = Converter off

ADCON1 0x26

ADCON10x26
Bit(s)FieldWhen 1 / value meaningWhen 0
7:6ADCS1:ADCS000 = Conversion clock = Fosc/4
01 = Conversion clock = Fosc/16
10 = Conversion clock = Fosc/32
11 = Conversion clock = Fosc/64
5—Not used (leave 0)
4:2CHS2:CHS0000 = Channel AN0
001 = Channel AN1
010 = Channel AN2
011 = Channel AN3
100 = Channel AN4
101 = Channel AN5
110 = Channel AN6
111 = Channel AN7
1GO/DONEConversion GO/DONE bit: not part of the win value (leave 0)
0ADON1 = Converter on0 = Converter off

T0CON 0x27

T0CON0x27
Bit(s)FieldWhen 1 / value meaningWhen 0
7:6—Not used (leave 0)
5:4T0PS1:T0PS000 = Prescaler 1:16
01 = Prescaler 1:8
10 = Prescaler 1:4
11 = Prescaler 1:2
3PSA1 = Prescaler NOT assigned (timer runs at the full clock)0 = Prescaler ASSIGNED (inverted: 0 = assigned)
2T0SESelects the increment edge: not part of the win value (leave 0)
1T08BIT1 = 8-bit mode0 = 16-bit mode
0TMR0ON1 = Timer on0 = Timer off

T1CON 0x28

T1CON0x28
Bit(s)FieldWhen 1 / value meaningWhen 0
7:6—Not used (leave 0)
5:4T1PS1:T1PS000 = Prescaler 1:16
01 = Prescaler 1:8
10 = Prescaler 1:4
11 = Prescaler 1:2
3PSA1 = Prescaler NOT assigned (timer runs at the full clock)0 = Prescaler ASSIGNED (inverted: 0 = assigned)
2T1SESelects the increment edge: not part of the win value (leave 0)
1T18BIT1 = 8-bit mode0 = 16-bit mode
0TMR1ON1 = Timer on0 = Timer off

EECON0 0x29

EECON00x29
Bit(s)FieldWhen 1 / value meaningWhen 0
7:3—Not used (leave 0)
2WR1 = Initiate a write0 = No write initiated
1RD1 = Initiate a read0 = No read initiated
0EEPGD1 = Access flash program memory0 = Access EEPROM data memory

EECON1 0x2A

EECON10x2A
Bit(s)FieldWhen 1 / value meaningWhen 0
7:3—Not used (leave 0)
2WR1 = Initiate a write0 = No write initiated
1RD1 = Initiate a read0 = No read initiated
0EEPGD1 = Access flash program memory0 = Access EEPROM data memory

TXSTA 0x2B

TXSTA0x2B
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4TX99-bit transmit bit: not part of the win value (leave 0)
3BRGHBRGH bit: not part of the win value (leave 0)
2SYNCSYNC bit: not part of the win value (leave 0)
1TXEN1 = Transmitter enabled0 = Transmitter disabled
0SPEN1 = Serial port enabled0 = Serial port disabled

RCSTA 0x2C

RCSTA0x2C
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4RX99-bit receive bit: not part of the win value (leave 0)
3BRGHBRGH bit: not part of the win value (leave 0)
2SYNCSYNC bit: not part of the win value (leave 0)
1CREN1 = Receiver enabled0 = Receiver disabled
0SPEN1 = Serial port enabled0 = Serial port disabled

SSPCON0 0x2D

SSPCON00x2D
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4CKETransmit edge: not part of the win value (leave 0)
3CKPClock idle level: not part of the win value (leave 0)
2:1SSPM1:SSPM000 = SPI Slave, Fosc/4
01 = SPI Slave, Fosc/16
10 = SPI Master, Fosc/4
11 = SPI Master, Fosc/16
0SPEN1 = Serial port enabled0 = Serial port disabled

SSPCON1 0x2E

SSPCON10x2E
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4CKETransmit edge: not part of the win value (leave 0)
3CKPClock idle level: not part of the win value (leave 0)
2:1SSPM1:SSPM000 = SPI Slave, Fosc/4
01 = SPI Slave, Fosc/16
10 = SPI Master, Fosc/4
11 = SPI Master, Fosc/16
0SPEN1 = Serial port enabled0 = Serial port disabled

I2CCON0 0x2F

I2CCON00x2F
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4CKETransmit edge: not part of the win value (leave 0)
3CKPClock idle level: not part of the win value (leave 0)
2:1SSPM1:SSPM000 = I²C Slave, 10-bit, Fosc/4
01 = I²C Slave, 7-bit, Fosc/16
10 = I²C Master, 10-bit, Fosc/4
11 = I²C Master, 7-bit, Fosc/16
0SPEN1 = Serial port enabled0 = Serial port disabled

I2CCON1 0x30

I2CCON10x30
Bit(s)FieldWhen 1 / value meaningWhen 0
7:5—Not used (leave 0)
4CKETransmit edge: not part of the win value (leave 0)
3CKPClock idle level: not part of the win value (leave 0)
2:1SSPM1:SSPM000 = I²C Slave, 10-bit, Fosc/4
01 = I²C Slave, 7-bit, Fosc/16
10 = I²C Master, 10-bit, Fosc/4
11 = I²C Master, 7-bit, Fosc/16
0SPEN1 = Serial port enabled0 = Serial port disabled