Over the last few years automobile designers have been focused on providing cost effective designs which maximize the car's horsepower, minimize the exhaust gas pollutants and provide high fuel efficiencies. Fuel injection systems, electronic spark control techniques and exhaust gas recirculation are some of the solutions that have been implemented.Electronic engine control systems have evolved at a very dramatic rate into very sophisticated microcontroller based systems. The real time nature of the problem, the complex inter-relationships among the variables and the mixture of analog/digital variables place stringent demands on the microcontroller. The microcontroller must support large levels of integration such as the inclusion of various peripherals. The real time nature of the problem require the microcontroller to have high execution speeds. The control aspect of the problem demands a large versatile I/O organization backed by a flexible interrupt structure. Additionally, the limited on board memory must be complemented by a powerful and efficient instruction set.The HPC16164, a 16 bit microcontroller, from National Semiconductor has several features that make it ideal for automotive control applications. Based around a 16-bit core capable of instruction cycle times of 118 ns at 17 MHz clock input, it offers the fast exection speeds required for real time applications. On chip 16KBytes of ROM and 512 Bytes of RAM prove ample for the various data tables and variables that need to be manipulated. On board peripherals such as powerful timers and fast A/D converter additionally make it very attractive for engine control applications. Finally, the large I/O requirements of the application are supported by a space conserving PLCC package.The paper examines in detail the control aspects of fuel injection and spark control sub-problems. Complex table lookups, interpolation methods involved with calculating and generating the fuel injector control and spark control signals illustrate the methods that can be effectively employed in the application.The paper discusses how the software development cycle can be reduced through the use of C functional libraries containing reusable code.