2 * This declarations of the PIC16C925 MCU.
4 * This file is part of the GNU PIC library for SDCC, originally
5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:03 UTC.
9 * SDCC is licensed under the GNU Public license (GPL) v2. Note that
10 * this license covers the code to the compiler and other executables,
11 * but explicitly does not cover any code or objects generated by sdcc.
13 * For pic device libraries and header files which are derived from
14 * Microchip header (.inc) and linker script (.lkr) files Microchip
15 * requires that "The header files should state that they are only to be
16 * used with authentic Microchip devices" which makes them incompatible
17 * with the GPL. Pic device libraries and header files are located at
18 * non-free/lib and non-free/include directories respectively.
19 * Sdcc should be run with the --use-non-free command line option in
20 * order to include non-free header files and libraries.
22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
25 #ifndef __PIC16C925_H__
26 #define __PIC16C925_H__
28 //==============================================================================
32 //==============================================================================
34 #ifndef NO_ADDR_DEFINES
36 #define INDF_ADDR 0x0000
37 #define TMR0_ADDR 0x0001
38 #define PCL_ADDR 0x0002
39 #define STATUS_ADDR 0x0003
40 #define FSR_ADDR 0x0004
41 #define PORTA_ADDR 0x0005
42 #define PORTB_ADDR 0x0006
43 #define PORTC_ADDR 0x0007
44 #define PORTD_ADDR 0x0008
45 #define PORTE_ADDR 0x0009
46 #define PCLATH_ADDR 0x000A
47 #define INTCON_ADDR 0x000B
48 #define PIR1_ADDR 0x000C
49 #define TMR1_ADDR 0x000E
50 #define TMR1L_ADDR 0x000E
51 #define TMR1H_ADDR 0x000F
52 #define T1CON_ADDR 0x0010
53 #define TMR2_ADDR 0x0011
54 #define T2CON_ADDR 0x0012
55 #define SSPBUF_ADDR 0x0013
56 #define SSPCON_ADDR 0x0014
57 #define CCPR1_ADDR 0x0015
58 #define CCPR1L_ADDR 0x0015
59 #define CCPR1H_ADDR 0x0016
60 #define CCP1CON_ADDR 0x0017
61 #define ADRESH_ADDR 0x001E
62 #define ADCON0_ADDR 0x001F
63 #define OPTION_REG_ADDR 0x0081
64 #define TRISA_ADDR 0x0085
65 #define TRISB_ADDR 0x0086
66 #define TRISC_ADDR 0x0087
67 #define TRISD_ADDR 0x0088
68 #define TRISE_ADDR 0x0089
69 #define PIE1_ADDR 0x008C
70 #define PCON_ADDR 0x008E
71 #define PR2_ADDR 0x0092
72 #define SSPADD_ADDR 0x0093
73 #define SSPSTAT_ADDR 0x0094
74 #define ADRESL_ADDR 0x009E
75 #define ADCON1_ADDR 0x009F
76 #define PORTF_ADDR 0x0107
77 #define PORTG_ADDR 0x0108
78 #define PMCON1_ADDR 0x010C
79 #define LCDSE_ADDR 0x010D
80 #define LCDPS_ADDR 0x010E
81 #define LCDCON_ADDR 0x010F
82 #define LCDD00_ADDR 0x0110
83 #define LCDD01_ADDR 0x0111
84 #define LCDD02_ADDR 0x0112
85 #define LCDD03_ADDR 0x0113
86 #define LCDD04_ADDR 0x0114
87 #define LCDD05_ADDR 0x0115
88 #define LCDD06_ADDR 0x0116
89 #define LCDD07_ADDR 0x0117
90 #define LCDD08_ADDR 0x0118
91 #define LCDD09_ADDR 0x0119
92 #define LCDD10_ADDR 0x011A
93 #define LCDD11_ADDR 0x011B
94 #define LCDD12_ADDR 0x011C
95 #define LCDD13_ADDR 0x011D
96 #define LCDD14_ADDR 0x011E
97 #define LCDD15_ADDR 0x011F
98 #define TRISF_ADDR 0x0187
99 #define TRISG_ADDR 0x0188
100 #define PMDATA_ADDR 0x018C
101 #define PMADR_ADDR 0x018D
102 #define PMDATH_ADDR 0x018E
103 #define PMADRH_ADDR 0x018F
105 #endif // #ifndef NO_ADDR_DEFINES
107 //==============================================================================
109 // Register Definitions
111 //==============================================================================
113 extern __at(0x0000) __sfr INDF
;
114 extern __at(0x0001) __sfr TMR0
;
115 extern __at(0x0002) __sfr PCL
;
117 //==============================================================================
120 extern __at(0x0003) __sfr STATUS
;
144 extern __at(0x0003) volatile __STATUSbits_t STATUSbits
;
155 //==============================================================================
157 extern __at(0x0004) __sfr FSR
;
159 //==============================================================================
162 extern __at(0x0005) __sfr PORTA
;
185 extern __at(0x0005) volatile __PORTAbits_t PORTAbits
;
194 //==============================================================================
197 //==============================================================================
200 extern __at(0x0006) __sfr PORTB
;
214 extern __at(0x0006) volatile __PORTBbits_t PORTBbits
;
225 //==============================================================================
228 //==============================================================================
231 extern __at(0x0007) __sfr PORTC
;
254 extern __at(0x0007) volatile __PORTCbits_t PORTCbits
;
263 //==============================================================================
266 //==============================================================================
269 extern __at(0x0008) __sfr PORTD
;
283 extern __at(0x0008) volatile __PORTDbits_t PORTDbits
;
294 //==============================================================================
297 //==============================================================================
300 extern __at(0x0009) __sfr PORTE
;
314 extern __at(0x0009) volatile __PORTEbits_t PORTEbits
;
325 //==============================================================================
327 extern __at(0x000A) __sfr PCLATH
;
329 //==============================================================================
332 extern __at(0x000B) __sfr INTCON
;
361 extern __at(0x000B) volatile __INTCONbits_t INTCONbits
;
374 //==============================================================================
377 //==============================================================================
380 extern __at(0x000C) __sfr PIR1
;
394 extern __at(0x000C) volatile __PIR1bits_t PIR1bits
;
403 //==============================================================================
405 extern __at(0x000E) __sfr TMR1
;
406 extern __at(0x000E) __sfr TMR1L
;
407 extern __at(0x000F) __sfr TMR1H
;
409 //==============================================================================
412 extern __at(0x0010) __sfr T1CON
;
420 unsigned NOT_T1SYNC
: 1;
421 unsigned T1OSCEN
: 1;
422 unsigned T1CKPS0
: 1;
423 unsigned T1CKPS1
: 1;
432 unsigned T1INSYNC
: 1;
448 extern __at(0x0010) volatile __T1CONbits_t T1CONbits
;
452 #define _NOT_T1SYNC 0x04
453 #define _T1INSYNC 0x04
454 #define _T1OSCEN 0x08
455 #define _T1CKPS0 0x10
456 #define _T1CKPS1 0x20
458 //==============================================================================
460 extern __at(0x0011) __sfr TMR2
;
462 //==============================================================================
465 extern __at(0x0012) __sfr T2CON
;
471 unsigned T2CKPS0
: 1;
472 unsigned T2CKPS1
: 1;
474 unsigned TOUTPS0
: 1;
475 unsigned TOUTPS1
: 1;
476 unsigned TOUTPS2
: 1;
477 unsigned TOUTPS3
: 1;
495 extern __at(0x0012) volatile __T2CONbits_t T2CONbits
;
497 #define _T2CKPS0 0x01
498 #define _T2CKPS1 0x02
500 #define _TOUTPS0 0x08
501 #define _TOUTPS1 0x10
502 #define _TOUTPS2 0x20
503 #define _TOUTPS3 0x40
505 //==============================================================================
507 extern __at(0x0013) __sfr SSPBUF
;
509 //==============================================================================
512 extern __at(0x0014) __sfr SSPCON
;
535 extern __at(0x0014) volatile __SSPCONbits_t SSPCONbits
;
546 //==============================================================================
548 extern __at(0x0015) __sfr CCPR1
;
549 extern __at(0x0015) __sfr CCPR1L
;
550 extern __at(0x0016) __sfr CCPR1H
;
552 //==============================================================================
555 extern __at(0x0017) __sfr CCP1CON
;
578 extern __at(0x0017) volatile __CCP1CONbits_t CCP1CONbits
;
587 //==============================================================================
589 extern __at(0x001E) __sfr ADRESH
;
591 //==============================================================================
594 extern __at(0x001F) __sfr ADCON0
;
602 unsigned GO_NOT_DONE
: 1;
626 unsigned NOT_DONE
: 1;
638 unsigned GO_DONE
: 1;
660 extern __at(0x001F) volatile __ADCON0bits_t ADCON0bits
;
663 #define _GO_NOT_DONE 0x04
665 #define _NOT_DONE 0x04
666 #define _GO_DONE 0x04
673 //==============================================================================
676 //==============================================================================
679 extern __at(0x0081) __sfr OPTION_REG
;
692 unsigned NOT_RBPU
: 1;
700 } __OPTION_REGbits_t
;
702 extern __at(0x0081) volatile __OPTION_REGbits_t OPTION_REGbits
;
711 #define _NOT_RBPU 0x80
713 //==============================================================================
716 //==============================================================================
719 extern __at(0x0085) __sfr TRISA
;
742 extern __at(0x0085) volatile __TRISAbits_t TRISAbits
;
751 //==============================================================================
754 //==============================================================================
757 extern __at(0x0086) __sfr TRISB
;
771 extern __at(0x0086) volatile __TRISBbits_t TRISBbits
;
782 //==============================================================================
785 //==============================================================================
788 extern __at(0x0087) __sfr TRISC
;
811 extern __at(0x0087) volatile __TRISCbits_t TRISCbits
;
820 //==============================================================================
823 //==============================================================================
826 extern __at(0x0088) __sfr TRISD
;
840 extern __at(0x0088) volatile __TRISDbits_t TRISDbits
;
851 //==============================================================================
854 //==============================================================================
857 extern __at(0x0089) __sfr TRISE
;
879 unsigned PSPMODE
: 1;
886 extern __at(0x0089) volatile __TRISEbits_t TRISEbits
;
893 #define _PSPMODE 0x10
901 //==============================================================================
904 //==============================================================================
907 extern __at(0x008C) __sfr PIE1
;
921 extern __at(0x008C) volatile __PIE1bits_t PIE1bits
;
930 //==============================================================================
933 //==============================================================================
936 extern __at(0x008E) __sfr PCON
;
940 unsigned NOT_BOR
: 1;
941 unsigned NOT_POR
: 1;
950 extern __at(0x008E) volatile __PCONbits_t PCONbits
;
952 #define _NOT_BOR 0x01
953 #define _NOT_POR 0x02
955 //==============================================================================
957 extern __at(0x0092) __sfr PR2
;
958 extern __at(0x0093) __sfr SSPADD
;
960 //==============================================================================
963 extern __at(0x0094) __sfr SSPSTAT
;
971 unsigned R_NOT_W
: 1;
974 unsigned D_NOT_A
: 1;
984 unsigned I2C_START
: 1;
985 unsigned I2C_STOP
: 1;
995 unsigned I2C_READ
: 1;
998 unsigned I2C_DATA
: 1;
1019 unsigned READ_WRITE
: 1;
1022 unsigned DATA_ADDRESS
: 1;
1043 unsigned NOT_WRITE
: 1;
1046 unsigned NOT_ADDRESS
: 1;
1052 extern __at(0x0094) volatile __SSPSTATbits_t SSPSTATbits
;
1056 #define _R_NOT_W 0x04
1058 #define _I2C_READ 0x04
1060 #define _READ_WRITE 0x04
1062 #define _NOT_WRITE 0x04
1064 #define _I2C_START 0x08
1066 #define _I2C_STOP 0x10
1067 #define _D_NOT_A 0x20
1069 #define _I2C_DATA 0x20
1071 #define _DATA_ADDRESS 0x20
1073 #define _NOT_ADDRESS 0x20
1077 //==============================================================================
1079 extern __at(0x009E) __sfr ADRESL
;
1081 //==============================================================================
1084 extern __at(0x009F) __sfr ADCON1
;
1107 extern __at(0x009F) volatile __ADCON1bits_t ADCON1bits
;
1115 //==============================================================================
1118 //==============================================================================
1121 extern __at(0x0107) __sfr PORTF
;
1135 extern __at(0x0107) volatile __PORTFbits_t PORTFbits
;
1146 //==============================================================================
1149 //==============================================================================
1152 extern __at(0x0108) __sfr PORTG
;
1166 extern __at(0x0108) volatile __PORTGbits_t PORTGbits
;
1177 //==============================================================================
1180 //==============================================================================
1183 extern __at(0x010C) __sfr PMCON1
;
1197 extern __at(0x010C) volatile __PMCON1bits_t PMCON1bits
;
1201 //==============================================================================
1204 //==============================================================================
1207 extern __at(0x010D) __sfr LCDSE
;
1221 extern __at(0x010D) volatile __LCDSEbits_t LCDSEbits
;
1232 //==============================================================================
1235 //==============================================================================
1238 extern __at(0x010E) __sfr LCDPS
;
1261 extern __at(0x010E) volatile __LCDPSbits_t LCDPSbits
;
1268 //==============================================================================
1271 //==============================================================================
1274 extern __at(0x010F) __sfr LCDCON
;
1316 extern __at(0x010F) volatile __LCDCONbits_t LCDCONbits
;
1328 //==============================================================================
1331 //==============================================================================
1334 extern __at(0x0110) __sfr LCDD00
;
1348 extern __at(0x0110) volatile __LCDD00bits_t LCDD00bits
;
1359 //==============================================================================
1362 //==============================================================================
1365 extern __at(0x0111) __sfr LCDD01
;
1379 extern __at(0x0111) volatile __LCDD01bits_t LCDD01bits
;
1390 //==============================================================================
1393 //==============================================================================
1396 extern __at(0x0112) __sfr LCDD02
;
1410 extern __at(0x0112) volatile __LCDD02bits_t LCDD02bits
;
1421 //==============================================================================
1424 //==============================================================================
1427 extern __at(0x0113) __sfr LCDD03
;
1441 extern __at(0x0113) volatile __LCDD03bits_t LCDD03bits
;
1452 //==============================================================================
1455 //==============================================================================
1458 extern __at(0x0114) __sfr LCDD04
;
1472 extern __at(0x0114) volatile __LCDD04bits_t LCDD04bits
;
1474 #define _LCDD04_SEG00 0x01
1475 #define _LCDD04_SEG01 0x02
1476 #define _LCDD04_SEG02 0x04
1477 #define _LCDD04_SEG03 0x08
1478 #define _LCDD04_SEG04 0x10
1479 #define _LCDD04_SEG05 0x20
1480 #define _LCDD04_SEG06 0x40
1481 #define _LCDD04_SEG07 0x80
1483 //==============================================================================
1486 //==============================================================================
1489 extern __at(0x0115) __sfr LCDD05
;
1503 extern __at(0x0115) volatile __LCDD05bits_t LCDD05bits
;
1505 #define _LCDD05_SEG08 0x01
1506 #define _LCDD05_SEG09 0x02
1507 #define _LCDD05_SEG10 0x04
1508 #define _LCDD05_SEG11 0x08
1509 #define _LCDD05_SEG12 0x10
1510 #define _LCDD05_SEG13 0x20
1511 #define _LCDD05_SEG14 0x40
1512 #define _LCDD05_SEG15 0x80
1514 //==============================================================================
1517 //==============================================================================
1520 extern __at(0x0116) __sfr LCDD06
;
1534 extern __at(0x0116) volatile __LCDD06bits_t LCDD06bits
;
1536 #define _LCDD06_SEG16 0x01
1537 #define _LCDD06_SEG17 0x02
1538 #define _LCDD06_SEG18 0x04
1539 #define _LCDD06_SEG19 0x08
1540 #define _LCDD06_SEG20 0x10
1541 #define _LCDD06_SEG21 0x20
1542 #define _LCDD06_SEG22 0x40
1543 #define _LCDD06_SEG23 0x80
1545 //==============================================================================
1548 //==============================================================================
1551 extern __at(0x0117) __sfr LCDD07
;
1565 extern __at(0x0117) volatile __LCDD07bits_t LCDD07bits
;
1567 #define _LCDD07_SEG24 0x01
1568 #define _LCDD07_SEG25 0x02
1569 #define _LCDD07_SEG26 0x04
1570 #define _LCDD07_SEG27 0x08
1571 #define _LCDD07_SEG28 0x10
1572 #define _LCDD07_SEG29 0x20
1573 #define _LCDD07_SEG30 0x40
1574 #define _LCDD07_SEG31 0x80
1576 //==============================================================================
1579 //==============================================================================
1582 extern __at(0x0118) __sfr LCDD08
;
1596 extern __at(0x0118) volatile __LCDD08bits_t LCDD08bits
;
1598 #define _LCDD08_SEG00 0x01
1599 #define _LCDD08_SEG01 0x02
1600 #define _LCDD08_SEG02 0x04
1601 #define _LCDD08_SEG03 0x08
1602 #define _LCDD08_SEG04 0x10
1603 #define _LCDD08_SEG05 0x20
1604 #define _LCDD08_SEG06 0x40
1605 #define _LCDD08_SEG07 0x80
1607 //==============================================================================
1610 //==============================================================================
1613 extern __at(0x0119) __sfr LCDD09
;
1627 extern __at(0x0119) volatile __LCDD09bits_t LCDD09bits
;
1629 #define _LCDD09_SEG08 0x01
1630 #define _LCDD09_SEG09 0x02
1631 #define _LCDD09_SEG10 0x04
1632 #define _LCDD09_SEG11 0x08
1633 #define _LCDD09_SEG12 0x10
1634 #define _LCDD09_SEG13 0x20
1635 #define _LCDD09_SEG14 0x40
1636 #define _LCDD09_SEG15 0x80
1638 //==============================================================================
1641 //==============================================================================
1644 extern __at(0x011A) __sfr LCDD10
;
1658 extern __at(0x011A) volatile __LCDD10bits_t LCDD10bits
;
1660 #define _LCDD10_SEG16 0x01
1661 #define _LCDD10_SEG17 0x02
1662 #define _LCDD10_SEG18 0x04
1663 #define _LCDD10_SEG19 0x08
1664 #define _LCDD10_SEG20 0x10
1665 #define _LCDD10_SEG21 0x20
1666 #define _LCDD10_SEG22 0x40
1667 #define _LCDD10_SEG23 0x80
1669 //==============================================================================
1672 //==============================================================================
1675 extern __at(0x011B) __sfr LCDD11
;
1689 extern __at(0x011B) volatile __LCDD11bits_t LCDD11bits
;
1691 #define _LCDD11_SEG24 0x01
1692 #define _LCDD11_SEG25 0x02
1693 #define _LCDD11_SEG26 0x04
1694 #define _LCDD11_SEG27 0x08
1695 #define _LCDD11_SEG28 0x10
1696 #define _LCDD11_SEG29 0x20
1697 #define _LCDD11_SEG30 0x40
1698 #define _LCDD11_SEG31 0x80
1700 //==============================================================================
1703 //==============================================================================
1706 extern __at(0x011C) __sfr LCDD12
;
1720 extern __at(0x011C) volatile __LCDD12bits_t LCDD12bits
;
1722 #define _LCDD12_SEG00 0x01
1723 #define _LCDD12_SEG01 0x02
1724 #define _LCDD12_SEG02 0x04
1725 #define _LCDD12_SEG03 0x08
1726 #define _LCDD12_SEG04 0x10
1727 #define _LCDD12_SEG05 0x20
1728 #define _LCDD12_SEG06 0x40
1729 #define _LCDD12_SEG07 0x80
1731 //==============================================================================
1734 //==============================================================================
1737 extern __at(0x011D) __sfr LCDD13
;
1751 extern __at(0x011D) volatile __LCDD13bits_t LCDD13bits
;
1753 #define _LCDD13_SEG08 0x01
1754 #define _LCDD13_SEG09 0x02
1755 #define _LCDD13_SEG10 0x04
1756 #define _LCDD13_SEG11 0x08
1757 #define _LCDD13_SEG12 0x10
1758 #define _LCDD13_SEG13 0x20
1759 #define _LCDD13_SEG14 0x40
1760 #define _LCDD13_SEG15 0x80
1762 //==============================================================================
1765 //==============================================================================
1768 extern __at(0x011E) __sfr LCDD14
;
1782 extern __at(0x011E) volatile __LCDD14bits_t LCDD14bits
;
1784 #define _LCDD14_SEG16 0x01
1785 #define _LCDD14_SEG17 0x02
1786 #define _LCDD14_SEG18 0x04
1787 #define _LCDD14_SEG19 0x08
1788 #define _LCDD14_SEG20 0x10
1789 #define _LCDD14_SEG21 0x20
1790 #define _LCDD14_SEG22 0x40
1791 #define _LCDD14_SEG23 0x80
1793 //==============================================================================
1796 //==============================================================================
1799 extern __at(0x011F) __sfr LCDD15
;
1813 extern __at(0x011F) volatile __LCDD15bits_t LCDD15bits
;
1815 #define _LCDD15_SEG24 0x01
1816 #define _LCDD15_SEG25 0x02
1817 #define _LCDD15_SEG26 0x04
1818 #define _LCDD15_SEG27 0x08
1819 #define _LCDD15_SEG28 0x10
1820 #define _LCDD15_SEG29 0x20
1821 #define _LCDD15_SEG30 0x40
1822 #define _LCDD15_SEG31 0x80
1824 //==============================================================================
1827 //==============================================================================
1830 extern __at(0x0187) __sfr TRISF
;
1834 unsigned TRISF0
: 1;
1835 unsigned TRISF1
: 1;
1836 unsigned TRISF2
: 1;
1837 unsigned TRISF3
: 1;
1838 unsigned TRISF4
: 1;
1839 unsigned TRISF5
: 1;
1840 unsigned TRISF6
: 1;
1841 unsigned TRISF7
: 1;
1844 extern __at(0x0187) volatile __TRISFbits_t TRISFbits
;
1846 #define _TRISF0 0x01
1847 #define _TRISF1 0x02
1848 #define _TRISF2 0x04
1849 #define _TRISF3 0x08
1850 #define _TRISF4 0x10
1851 #define _TRISF5 0x20
1852 #define _TRISF6 0x40
1853 #define _TRISF7 0x80
1855 //==============================================================================
1858 //==============================================================================
1861 extern __at(0x0188) __sfr TRISG
;
1865 unsigned TRISG0
: 1;
1866 unsigned TRISG1
: 1;
1867 unsigned TRISG2
: 1;
1868 unsigned TRISG3
: 1;
1869 unsigned TRISG4
: 1;
1870 unsigned TRISG5
: 1;
1871 unsigned TRISG6
: 1;
1872 unsigned TRISG7
: 1;
1875 extern __at(0x0188) volatile __TRISGbits_t TRISGbits
;
1877 #define _TRISG0 0x01
1878 #define _TRISG1 0x02
1879 #define _TRISG2 0x04
1880 #define _TRISG3 0x08
1881 #define _TRISG4 0x10
1882 #define _TRISG5 0x20
1883 #define _TRISG6 0x40
1884 #define _TRISG7 0x80
1886 //==============================================================================
1888 extern __at(0x018C) __sfr PMDATA
;
1889 extern __at(0x018D) __sfr PMADR
;
1890 extern __at(0x018E) __sfr PMDATH
;
1891 extern __at(0x018F) __sfr PMADRH
;
1893 //==============================================================================
1895 // Configuration Bits
1897 //==============================================================================
1899 #define _CONFIG1 0x2007
1901 //----------------------------- CONFIG1 Options -------------------------------
1903 #define _FOSC_LP 0x3FFC // LP oscillator.
1904 #define _LP_OSC 0x3FFC // LP oscillator.
1905 #define _FOSC_XT 0x3FFD // XT oscillator.
1906 #define _XT_OSC 0x3FFD // XT oscillator.
1907 #define _FOSC_HS 0x3FFE // HS oscillator.
1908 #define _HS_OSC 0x3FFE // HS oscillator.
1909 #define _FOSC_RC 0x3FFF // RC oscillator.
1910 #define _RC_OSC 0x3FFF // RC oscillator.
1911 #define _WDTE_OFF 0x3FFB // WDT disabled.
1912 #define _WDT_OFF 0x3FFB // WDT disabled.
1913 #define _WDTE_ON 0x3FFF // WDT enabled.
1914 #define _WDT_ON 0x3FFF // WDT enabled.
1915 #define _PWRTE_ON 0x3FF7 // PWRT enabled.
1916 #define _PWRTE_OFF 0x3FFF // PWRT disabled.
1917 #define _CP_ALL 0x3FCF // All memory is code protected.
1918 #define _CP_75 0x3FDF // 0000h-0EFFh code protected.
1919 #define _CP_50 0x3FEF // 0000h-07FFh code protected.
1920 #define _CP_OFF 0x3FFF // Code protection off.
1921 #define _BOREN_OFF 0x3FBF // BOR disabled.
1922 #define _BODEN_OFF 0x3FBF // BOR disabled.
1923 #define _BOREN_ON 0x3FFF // BOR enabled.
1924 #define _BODEN_ON 0x3FFF // BOR enabled.
1926 //==============================================================================
1928 #define _DEVID1 0x2006
1930 #define _IDLOC0 0x2000
1931 #define _IDLOC1 0x2001
1932 #define _IDLOC2 0x2002
1933 #define _IDLOC3 0x2003
1935 //==============================================================================
1937 #ifndef NO_BIT_DEFINES
1939 #define ADON ADCON0bits.ADON // bit 0
1940 #define GO_NOT_DONE ADCON0bits.GO_NOT_DONE // bit 2, shadows bit in ADCON0bits
1941 #define GO ADCON0bits.GO // bit 2, shadows bit in ADCON0bits
1942 #define NOT_DONE ADCON0bits.NOT_DONE // bit 2, shadows bit in ADCON0bits
1943 #define GO_DONE ADCON0bits.GO_DONE // bit 2, shadows bit in ADCON0bits
1944 #define CHS0 ADCON0bits.CHS0 // bit 3
1945 #define CHS1 ADCON0bits.CHS1 // bit 4
1946 #define CHS2 ADCON0bits.CHS2 // bit 5
1947 #define ADCS0 ADCON0bits.ADCS0 // bit 6
1948 #define ADCS1 ADCON0bits.ADCS1 // bit 7
1950 #define PCFG0 ADCON1bits.PCFG0 // bit 0
1951 #define PCFG1 ADCON1bits.PCFG1 // bit 1
1952 #define PCFG2 ADCON1bits.PCFG2 // bit 2
1953 #define PCFG3 ADCON1bits.PCFG3 // bit 3
1954 #define ADFM ADCON1bits.ADFM // bit 7
1956 #define CCP1M0 CCP1CONbits.CCP1M0 // bit 0
1957 #define CCP1M1 CCP1CONbits.CCP1M1 // bit 1
1958 #define CCP1M2 CCP1CONbits.CCP1M2 // bit 2
1959 #define CCP1M3 CCP1CONbits.CCP1M3 // bit 3
1960 #define CCP1Y CCP1CONbits.CCP1Y // bit 4
1961 #define CCP1X CCP1CONbits.CCP1X // bit 5
1963 #define RBIF INTCONbits.RBIF // bit 0
1964 #define INTF INTCONbits.INTF // bit 1
1965 #define T0IF INTCONbits.T0IF // bit 2, shadows bit in INTCONbits
1966 #define TMR0IF INTCONbits.TMR0IF // bit 2, shadows bit in INTCONbits
1967 #define RBIE INTCONbits.RBIE // bit 3
1968 #define INTE INTCONbits.INTE // bit 4
1969 #define T0IE INTCONbits.T0IE // bit 5, shadows bit in INTCONbits
1970 #define TMR0IE INTCONbits.TMR0IE // bit 5, shadows bit in INTCONbits
1971 #define PEIE INTCONbits.PEIE // bit 6
1972 #define GIE INTCONbits.GIE // bit 7
1974 #define LMUX0 LCDCONbits.LMUX0 // bit 0
1975 #define LMUX1 LCDCONbits.LMUX1 // bit 1
1976 #define CS0 LCDCONbits.CS0 // bit 2
1977 #define CS1 LCDCONbits.CS1 // bit 3
1978 #define VGEN LCDCONbits.VGEN // bit 4, shadows bit in LCDCONbits
1979 #define BIAS LCDCONbits.BIAS // bit 4, shadows bit in LCDCONbits
1980 #define WERR LCDCONbits.WERR // bit 5
1981 #define SLPEN LCDCONbits.SLPEN // bit 6
1982 #define LCDEN LCDCONbits.LCDEN // bit 7
1984 #define SEG00 LCDD00bits.SEG00 // bit 0
1985 #define SEG01 LCDD00bits.SEG01 // bit 1
1986 #define SEG02 LCDD00bits.SEG02 // bit 2
1987 #define SEG03 LCDD00bits.SEG03 // bit 3
1988 #define SEG04 LCDD00bits.SEG04 // bit 4
1989 #define SEG05 LCDD00bits.SEG05 // bit 5
1990 #define SEG06 LCDD00bits.SEG06 // bit 6
1991 #define SEG07 LCDD00bits.SEG07 // bit 7
1993 #define SEG08 LCDD01bits.SEG08 // bit 0
1994 #define SEG09 LCDD01bits.SEG09 // bit 1
1995 #define SEG10 LCDD01bits.SEG10 // bit 2
1996 #define SEG11 LCDD01bits.SEG11 // bit 3
1997 #define SEG12 LCDD01bits.SEG12 // bit 4
1998 #define SEG13 LCDD01bits.SEG13 // bit 5
1999 #define SEG14 LCDD01bits.SEG14 // bit 6
2000 #define SEG15 LCDD01bits.SEG15 // bit 7
2002 #define SEG16 LCDD02bits.SEG16 // bit 0
2003 #define SEG17 LCDD02bits.SEG17 // bit 1
2004 #define SEG18 LCDD02bits.SEG18 // bit 2
2005 #define SEG19 LCDD02bits.SEG19 // bit 3
2006 #define SEG20 LCDD02bits.SEG20 // bit 4
2007 #define SEG21 LCDD02bits.SEG21 // bit 5
2008 #define SEG22 LCDD02bits.SEG22 // bit 6
2009 #define SEG23 LCDD02bits.SEG23 // bit 7
2011 #define SEG24 LCDD03bits.SEG24 // bit 0
2012 #define SEG25 LCDD03bits.SEG25 // bit 1
2013 #define SEG26 LCDD03bits.SEG26 // bit 2
2014 #define SEG27 LCDD03bits.SEG27 // bit 3
2015 #define SEG28 LCDD03bits.SEG28 // bit 4
2016 #define SEG29 LCDD03bits.SEG29 // bit 5
2017 #define SEG30 LCDD03bits.SEG30 // bit 6
2018 #define SEG31 LCDD03bits.SEG31 // bit 7
2020 #define LP0 LCDPSbits.LP0 // bit 0
2021 #define LP1 LCDPSbits.LP1 // bit 1
2022 #define LP2 LCDPSbits.LP2 // bit 2
2023 #define LP3 LCDPSbits.LP3 // bit 3
2025 #define SE0 LCDSEbits.SE0 // bit 0
2026 #define SE5 LCDSEbits.SE5 // bit 1
2027 #define SE9 LCDSEbits.SE9 // bit 2
2028 #define SE12 LCDSEbits.SE12 // bit 3
2029 #define SE16 LCDSEbits.SE16 // bit 4
2030 #define SE20 LCDSEbits.SE20 // bit 5
2031 #define SE27 LCDSEbits.SE27 // bit 6
2032 #define SE29 LCDSEbits.SE29 // bit 7
2034 #define PS0 OPTION_REGbits.PS0 // bit 0
2035 #define PS1 OPTION_REGbits.PS1 // bit 1
2036 #define PS2 OPTION_REGbits.PS2 // bit 2
2037 #define PSA OPTION_REGbits.PSA // bit 3
2038 #define T0SE OPTION_REGbits.T0SE // bit 4
2039 #define T0CS OPTION_REGbits.T0CS // bit 5
2040 #define INTEDG OPTION_REGbits.INTEDG // bit 6
2041 #define NOT_RBPU OPTION_REGbits.NOT_RBPU // bit 7
2043 #define NOT_BOR PCONbits.NOT_BOR // bit 0
2044 #define NOT_POR PCONbits.NOT_POR // bit 1
2046 #define TMR1IE PIE1bits.TMR1IE // bit 0
2047 #define TMR2IE PIE1bits.TMR2IE // bit 1
2048 #define CCP1IE PIE1bits.CCP1IE // bit 2
2049 #define SSPIE PIE1bits.SSPIE // bit 3
2050 #define ADIE PIE1bits.ADIE // bit 6
2051 #define LCDIE PIE1bits.LCDIE // bit 7
2053 #define TMR1IF PIR1bits.TMR1IF // bit 0
2054 #define TMR2IF PIR1bits.TMR2IF // bit 1
2055 #define CCP1IF PIR1bits.CCP1IF // bit 2
2056 #define SSPIF PIR1bits.SSPIF // bit 3
2057 #define ADIF PIR1bits.ADIF // bit 6
2058 #define LCDIF PIR1bits.LCDIF // bit 7
2060 #define RD PMCON1bits.RD // bit 0
2062 #define RA0 PORTAbits.RA0 // bit 0
2063 #define RA1 PORTAbits.RA1 // bit 1
2064 #define RA2 PORTAbits.RA2 // bit 2
2065 #define RA3 PORTAbits.RA3 // bit 3
2066 #define RA4 PORTAbits.RA4 // bit 4
2067 #define RA5 PORTAbits.RA5 // bit 5
2069 #define RB0 PORTBbits.RB0 // bit 0
2070 #define RB1 PORTBbits.RB1 // bit 1
2071 #define RB2 PORTBbits.RB2 // bit 2
2072 #define RB3 PORTBbits.RB3 // bit 3
2073 #define RB4 PORTBbits.RB4 // bit 4
2074 #define RB5 PORTBbits.RB5 // bit 5
2075 #define RB6 PORTBbits.RB6 // bit 6
2076 #define RB7 PORTBbits.RB7 // bit 7
2078 #define RC0 PORTCbits.RC0 // bit 0
2079 #define RC1 PORTCbits.RC1 // bit 1
2080 #define RC2 PORTCbits.RC2 // bit 2
2081 #define RC3 PORTCbits.RC3 // bit 3
2082 #define RC4 PORTCbits.RC4 // bit 4
2083 #define RC5 PORTCbits.RC5 // bit 5
2085 #define RD0 PORTDbits.RD0 // bit 0
2086 #define RD1 PORTDbits.RD1 // bit 1
2087 #define RD2 PORTDbits.RD2 // bit 2
2088 #define RD3 PORTDbits.RD3 // bit 3
2089 #define RD4 PORTDbits.RD4 // bit 4
2090 #define RD5 PORTDbits.RD5 // bit 5
2091 #define RD6 PORTDbits.RD6 // bit 6
2092 #define RD7 PORTDbits.RD7 // bit 7
2094 #define RE0 PORTEbits.RE0 // bit 0
2095 #define RE1 PORTEbits.RE1 // bit 1
2096 #define RE2 PORTEbits.RE2 // bit 2
2097 #define RE3 PORTEbits.RE3 // bit 3
2098 #define RE4 PORTEbits.RE4 // bit 4
2099 #define RE5 PORTEbits.RE5 // bit 5
2100 #define RE6 PORTEbits.RE6 // bit 6
2101 #define RE7 PORTEbits.RE7 // bit 7
2103 #define RF0 PORTFbits.RF0 // bit 0
2104 #define RF1 PORTFbits.RF1 // bit 1
2105 #define RF2 PORTFbits.RF2 // bit 2
2106 #define RF3 PORTFbits.RF3 // bit 3
2107 #define RF4 PORTFbits.RF4 // bit 4
2108 #define RF5 PORTFbits.RF5 // bit 5
2109 #define RF6 PORTFbits.RF6 // bit 6
2110 #define RF7 PORTFbits.RF7 // bit 7
2112 #define RG0 PORTGbits.RG0 // bit 0
2113 #define RG1 PORTGbits.RG1 // bit 1
2114 #define RG2 PORTGbits.RG2 // bit 2
2115 #define RG3 PORTGbits.RG3 // bit 3
2116 #define RG4 PORTGbits.RG4 // bit 4
2117 #define RG5 PORTGbits.RG5 // bit 5
2118 #define RG6 PORTGbits.RG6 // bit 6
2119 #define RG7 PORTGbits.RG7 // bit 7
2121 #define SSPM0 SSPCONbits.SSPM0 // bit 0
2122 #define SSPM1 SSPCONbits.SSPM1 // bit 1
2123 #define SSPM2 SSPCONbits.SSPM2 // bit 2
2124 #define SSPM3 SSPCONbits.SSPM3 // bit 3
2125 #define CKP SSPCONbits.CKP // bit 4
2126 #define SSPEN SSPCONbits.SSPEN // bit 5
2127 #define SSPOV SSPCONbits.SSPOV // bit 6
2128 #define WCOL SSPCONbits.WCOL // bit 7
2130 #define BF SSPSTATbits.BF // bit 0
2131 #define UA SSPSTATbits.UA // bit 1
2132 #define R_NOT_W SSPSTATbits.R_NOT_W // bit 2, shadows bit in SSPSTATbits
2133 #define R SSPSTATbits.R // bit 2, shadows bit in SSPSTATbits
2134 #define I2C_READ SSPSTATbits.I2C_READ // bit 2, shadows bit in SSPSTATbits
2135 #define R_W SSPSTATbits.R_W // bit 2, shadows bit in SSPSTATbits
2136 #define READ_WRITE SSPSTATbits.READ_WRITE // bit 2, shadows bit in SSPSTATbits
2137 #define NOT_W SSPSTATbits.NOT_W // bit 2, shadows bit in SSPSTATbits
2138 #define NOT_WRITE SSPSTATbits.NOT_WRITE // bit 2, shadows bit in SSPSTATbits
2139 #define S SSPSTATbits.S // bit 3, shadows bit in SSPSTATbits
2140 #define I2C_START SSPSTATbits.I2C_START // bit 3, shadows bit in SSPSTATbits
2141 #define P SSPSTATbits.P // bit 4, shadows bit in SSPSTATbits
2142 #define I2C_STOP SSPSTATbits.I2C_STOP // bit 4, shadows bit in SSPSTATbits
2143 #define D_NOT_A SSPSTATbits.D_NOT_A // bit 5, shadows bit in SSPSTATbits
2144 #define D SSPSTATbits.D // bit 5, shadows bit in SSPSTATbits
2145 #define I2C_DATA SSPSTATbits.I2C_DATA // bit 5, shadows bit in SSPSTATbits
2146 #define D_A SSPSTATbits.D_A // bit 5, shadows bit in SSPSTATbits
2147 #define DATA_ADDRESS SSPSTATbits.DATA_ADDRESS // bit 5, shadows bit in SSPSTATbits
2148 #define NOT_A SSPSTATbits.NOT_A // bit 5, shadows bit in SSPSTATbits
2149 #define NOT_ADDRESS SSPSTATbits.NOT_ADDRESS // bit 5, shadows bit in SSPSTATbits
2150 #define CKE SSPSTATbits.CKE // bit 6
2151 #define SMP SSPSTATbits.SMP // bit 7
2153 #define C STATUSbits.C // bit 0
2154 #define DC STATUSbits.DC // bit 1
2155 #define Z STATUSbits.Z // bit 2
2156 #define NOT_PD STATUSbits.NOT_PD // bit 3
2157 #define NOT_TO STATUSbits.NOT_TO // bit 4
2158 #define RP0 STATUSbits.RP0 // bit 5
2159 #define RP1 STATUSbits.RP1 // bit 6
2160 #define IRP STATUSbits.IRP // bit 7
2162 #define TMR1ON T1CONbits.TMR1ON // bit 0
2163 #define TMR1CS T1CONbits.TMR1CS // bit 1
2164 #define NOT_T1SYNC T1CONbits.NOT_T1SYNC // bit 2, shadows bit in T1CONbits
2165 #define T1INSYNC T1CONbits.T1INSYNC // bit 2, shadows bit in T1CONbits
2166 #define T1OSCEN T1CONbits.T1OSCEN // bit 3
2167 #define T1CKPS0 T1CONbits.T1CKPS0 // bit 4
2168 #define T1CKPS1 T1CONbits.T1CKPS1 // bit 5
2170 #define T2CKPS0 T2CONbits.T2CKPS0 // bit 0
2171 #define T2CKPS1 T2CONbits.T2CKPS1 // bit 1
2172 #define TMR2ON T2CONbits.TMR2ON // bit 2
2173 #define TOUTPS0 T2CONbits.TOUTPS0 // bit 3
2174 #define TOUTPS1 T2CONbits.TOUTPS1 // bit 4
2175 #define TOUTPS2 T2CONbits.TOUTPS2 // bit 5
2176 #define TOUTPS3 T2CONbits.TOUTPS3 // bit 6
2178 #define TRISA0 TRISAbits.TRISA0 // bit 0
2179 #define TRISA1 TRISAbits.TRISA1 // bit 1
2180 #define TRISA2 TRISAbits.TRISA2 // bit 2
2181 #define TRISA3 TRISAbits.TRISA3 // bit 3
2182 #define TRISA4 TRISAbits.TRISA4 // bit 4
2183 #define TRISA5 TRISAbits.TRISA5 // bit 5
2185 #define TRISB0 TRISBbits.TRISB0 // bit 0
2186 #define TRISB1 TRISBbits.TRISB1 // bit 1
2187 #define TRISB2 TRISBbits.TRISB2 // bit 2
2188 #define TRISB3 TRISBbits.TRISB3 // bit 3
2189 #define TRISB4 TRISBbits.TRISB4 // bit 4
2190 #define TRISB5 TRISBbits.TRISB5 // bit 5
2191 #define TRISB6 TRISBbits.TRISB6 // bit 6
2192 #define TRISB7 TRISBbits.TRISB7 // bit 7
2194 #define TRISC0 TRISCbits.TRISC0 // bit 0
2195 #define TRISC1 TRISCbits.TRISC1 // bit 1
2196 #define TRISC2 TRISCbits.TRISC2 // bit 2
2197 #define TRISC3 TRISCbits.TRISC3 // bit 3
2198 #define TRISC4 TRISCbits.TRISC4 // bit 4
2199 #define TRISC5 TRISCbits.TRISC5 // bit 5
2201 #define TRISD0 TRISDbits.TRISD0 // bit 0
2202 #define TRISD1 TRISDbits.TRISD1 // bit 1
2203 #define TRISD2 TRISDbits.TRISD2 // bit 2
2204 #define TRISD3 TRISDbits.TRISD3 // bit 3
2205 #define TRISD4 TRISDbits.TRISD4 // bit 4
2206 #define TRISD5 TRISDbits.TRISD5 // bit 5
2207 #define TRISD6 TRISDbits.TRISD6 // bit 6
2208 #define TRISD7 TRISDbits.TRISD7 // bit 7
2210 #define TRISE0 TRISEbits.TRISE0 // bit 0
2211 #define TRISE1 TRISEbits.TRISE1 // bit 1
2212 #define TRISE2 TRISEbits.TRISE2 // bit 2
2213 #define TRISE3 TRISEbits.TRISE3 // bit 3
2214 #define TRISE4 TRISEbits.TRISE4 // bit 4, shadows bit in TRISEbits
2215 #define PSPMODE TRISEbits.PSPMODE // bit 4, shadows bit in TRISEbits
2216 #define TRISE5 TRISEbits.TRISE5 // bit 5, shadows bit in TRISEbits
2217 #define IBOV TRISEbits.IBOV // bit 5, shadows bit in TRISEbits
2218 #define TRISE6 TRISEbits.TRISE6 // bit 6, shadows bit in TRISEbits
2219 #define OBF TRISEbits.OBF // bit 6, shadows bit in TRISEbits
2220 #define TRISE7 TRISEbits.TRISE7 // bit 7, shadows bit in TRISEbits
2221 #define IBF TRISEbits.IBF // bit 7, shadows bit in TRISEbits
2223 #define TRISF0 TRISFbits.TRISF0 // bit 0
2224 #define TRISF1 TRISFbits.TRISF1 // bit 1
2225 #define TRISF2 TRISFbits.TRISF2 // bit 2
2226 #define TRISF3 TRISFbits.TRISF3 // bit 3
2227 #define TRISF4 TRISFbits.TRISF4 // bit 4
2228 #define TRISF5 TRISFbits.TRISF5 // bit 5
2229 #define TRISF6 TRISFbits.TRISF6 // bit 6
2230 #define TRISF7 TRISFbits.TRISF7 // bit 7
2232 #define TRISG0 TRISGbits.TRISG0 // bit 0
2233 #define TRISG1 TRISGbits.TRISG1 // bit 1
2234 #define TRISG2 TRISGbits.TRISG2 // bit 2
2235 #define TRISG3 TRISGbits.TRISG3 // bit 3
2236 #define TRISG4 TRISGbits.TRISG4 // bit 4
2237 #define TRISG5 TRISGbits.TRISG5 // bit 5
2238 #define TRISG6 TRISGbits.TRISG6 // bit 6
2239 #define TRISG7 TRISGbits.TRISG7 // bit 7
2241 #endif // #ifndef NO_BIT_DEFINES
2243 #endif // #ifndef __PIC16C925_H__