from collections import defaultdict
from skidl import Pin, Part, Alias, SchLib, SKIDL, TEMPLATE

from skidl.pin import pin_types

SKIDL_lib_version = '0.0.1'

MCU_Microchip_8051 = SchLib(tool=SKIDL).add_parts(*[
        Part(**{ 'name':'AT89C2051-12P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C2051-12P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc0368.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C2051-12P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C2051-12S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C2051-12S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc0368.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C2051-12S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89x51xxA', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89x51xxA'}), 'ref_prefix':'U', 'fplist':['Package_QFP:TQFP-44_10x10mm_P0.8mm'], 'footprint':'Package_QFP:TQFP-44_10x10mm_P0.8mm', 'keywords':'Microcontroller 8051 TQFP', 'description':'', 'datasheet':'https://ww1.microchip.com/downloads/en/DeviceDoc/doc2487.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89x51xxA\n\nMicrocontroller 8051 TQFP', 'pins':[
            Pin(num='42',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='1',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='P3.5',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P3.6',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='XTAL2',func=pin_types.INPUT,unit=1),
            Pin(num='15',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='16',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='17',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='18',name='P2.0/A8',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P2.1/A9',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='P2.2/A10',func=pin_types.BIDIR,unit=1),
            Pin(num='21',name='P2.3/A11',func=pin_types.BIDIR,unit=1),
            Pin(num='22',name='P2.4/A12',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='P2.5/A13',func=pin_types.BIDIR,unit=1),
            Pin(num='24',name='P2.6/A14',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='P2.7/A15',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='~{PSEN}',func=pin_types.OUTPUT,unit=1),
            Pin(num='27',name='ALE',func=pin_types.OUTPUT,unit=1),
            Pin(num='28',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='29',name='~{EA}/V_{pp}',func=pin_types.INPUT,unit=1),
            Pin(num='3',name='P1.7/SCK',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='P0.7/AD7',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='P0.6/AD6',func=pin_types.BIDIR,unit=1),
            Pin(num='32',name='P0.5/AD5',func=pin_types.BIDIR,unit=1),
            Pin(num='33',name='P0.4/AD4',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='P0.3/AD3',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='P0.2/AD2',func=pin_types.BIDIR,unit=1),
            Pin(num='36',name='P0.1/AD1',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='P0.0/AD0',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='V_{cc}',func=pin_types.PWRIN,unit=1),
            Pin(num='39',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='4',name='RST',func=pin_types.INPUT,unit=1),
            Pin(num='40',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='44',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='5',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='7',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.3',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89x51xxJ', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89x51xxJ'}), 'ref_prefix':'U', 'fplist':['Package_LCC:PLCC-44'], 'footprint':'Package_LCC:PLCC-44', 'keywords':'Microcontroller 8051 PLCC', 'description':'', 'datasheet':'https://ww1.microchip.com/downloads/en/DeviceDoc/doc2487.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89x51xxJ\n\nMicrocontroller 8051 PLCC', 'pins':[
            Pin(num='4',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='1',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='10',name='RST',func=pin_types.INPUT,unit=1),
            Pin(num='11',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='13',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P3.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P3.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='XTAL2',func=pin_types.INPUT,unit=1),
            Pin(num='21',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='24',name='P2.0/A8',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='P2.1/A9',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='P2.2/A10',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='P2.3/A11',func=pin_types.BIDIR,unit=1),
            Pin(num='28',name='P2.4/A12',func=pin_types.BIDIR,unit=1),
            Pin(num='29',name='P2.5/A13',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='P2.6/A14',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='P2.7/A15',func=pin_types.BIDIR,unit=1),
            Pin(num='32',name='~{PSEN}',func=pin_types.OUTPUT,unit=1),
            Pin(num='33',name='ALE',func=pin_types.OUTPUT,unit=1),
            Pin(num='34',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='35',name='~{EA}/V_{pp}',func=pin_types.INPUT,unit=1),
            Pin(num='36',name='P0.7/AD7',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='P0.6/AD6',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='P0.5/AD5',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='P0.4/AD4',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='P0.3/AD3',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='P0.2/AD2',func=pin_types.BIDIR,unit=1),
            Pin(num='42',name='P0.1/AD1',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='P0.0/AD0',func=pin_types.BIDIR,unit=1),
            Pin(num='44',name='V_{cc}',func=pin_types.PWRIN,unit=1),
            Pin(num='5',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P1.7/SCK',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89x51xxP', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89x51xxP'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-40_W15.24mm'], 'footprint':'Package_DIP:DIP-40_W15.24mm', 'keywords':'Microcontroller 8051 DIP', 'description':'', 'datasheet':'https://ww1.microchip.com/downloads/en/DeviceDoc/doc2487.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89x51xxP\n\nMicrocontroller 8051 DIP', 'pins':[
            Pin(num='3',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='1',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P3.5',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P3.6',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='XTAL2',func=pin_types.INPUT,unit=1),
            Pin(num='19',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='21',name='P2.0/A8',func=pin_types.BIDIR,unit=1),
            Pin(num='22',name='P2.1/A9',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='P2.2/A10',func=pin_types.BIDIR,unit=1),
            Pin(num='24',name='P2.3/A11',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='P2.4/A12',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='P2.5/A13',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='P2.6/A14',func=pin_types.BIDIR,unit=1),
            Pin(num='28',name='P2.7/A15',func=pin_types.BIDIR,unit=1),
            Pin(num='29',name='~{PSEN}',func=pin_types.OUTPUT,unit=1),
            Pin(num='30',name='ALE',func=pin_types.OUTPUT,unit=1),
            Pin(num='31',name='~{EA}/V_{pp}',func=pin_types.INPUT,unit=1),
            Pin(num='32',name='P0.7/AD7',func=pin_types.BIDIR,unit=1),
            Pin(num='33',name='P0.6/AD6',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='P0.5/AD5',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='P0.4/AD4',func=pin_types.BIDIR,unit=1),
            Pin(num='36',name='P0.3/AD3',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='P0.2/AD2',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='P0.1/AD1',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='P0.0/AD0',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='V_{cc}',func=pin_types.PWRIN,unit=1),
            Pin(num='5',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P1.7/SCK',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='RST',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C2051-24P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C2051-24P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc0368.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C2051-24P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C2051-24S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C2051-24S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc0368.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C2051-24S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C4051-12P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C4051-12P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc1001.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C4051-12P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C4051-12S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C4051-12S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc1001.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C4051-12S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C4051-24P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C4051-24P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc1001.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C4051-24P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89C4051-24S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89C4051-24S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc1001.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89C4051-24S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89S2051-24P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89S2051-24P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc3390.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89S2051-24P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89S2051-24S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89S2051-24S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc3390.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89S2051-24S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89S4051-24P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89S4051-24P'}), 'ref_prefix':'U', 'fplist':['Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm', 'Package_DIP:DIP-20_W7.62mm'], 'footprint':'Package_DIP:DIP-20_W7.62mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc3390.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89S4051-24P\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'AT89S4051-24S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'AT89S4051-24S'}), 'ref_prefix':'U', 'fplist':['Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm'], 'footprint':'Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm', 'keywords':'MCS-51 8bit Flash Microcontroller', 'description':'', 'datasheet':'http://ww1.microchip.com/downloads/en/DeviceDoc/doc3390.pdf', 'search_text':'/usr/share/kicad/symbols/MCU_Microchip_8051.kicad_sym\nAT89S4051-24S\n\nMCS-51 8bit Flash Microcontroller', 'pins':[
            Pin(num='1',name='RST/VPP',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='P3.7',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='P1.0',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='P1.1',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='P1.2',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='P1.3',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='P1.4',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='P1.5',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='P1.6',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='P1.7',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='P3.0',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='3',name='P3.1',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='XTAL2',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='XTAL1',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='P3.2',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='P3.3',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='P3.4',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='P3.5',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] })])