The SDCC Open Knowledge Resource



Welcome


This site is meant as an soft- and hardware application supplement to Sandeep Dutta´s free ANSI C-Compiler for MCS51 targets, SDCC.


Because the SDCC mailing list isn´t the right place to discuss things like "How is a LCD controlled in C language..." some programmers decided to make their useful routines and knowledge available for other programmers. This is the right place! The wheel musn´t be invented two times...


The SDCC OKR is also a good starting point for newbies on SDCC and/or micros.


The SDCC OKR is a page where everybody can publish some useful basic or special (of course tested!) ANSI-C routines which can be compiled and used with SDCC.


How can i publish some code?


Just send a mail with a one-line-description of the package contents, your name, your e-mail-address and the compressed package attached, to the SDCC OKR Page Master (a package should contain the well commented sourcecode, a detailed description of the functionality and maybe schematics and these things).


In the meantime, SDCC supports much more than the MCS51.  So if you wrote some code for a special platform, don´t hesitate to publish this code too!


And now, have fun programming your µC by using SDCC...



Resources


 Controlling displays...
 Serial communication via U(S)ART...
 Inter IC communication (I2C)...
 Serial peripheral interface (SPI)...
 MCS51 internals...
 Analog to digital conversion...
 Universal serial bus (USB)...
 Keyboards and keypads...
 Mathematics...
 Multitasking systems...
 Hardware around MCS51...
 Miscellaneous...
  Controlling displays...    

Top 

    Library for controlling the AV1624 LC-display   Jelmer Vernooij
    Some drivers to control a T6963 based LCD (8x6 font)   Holger Klabunde
    Some drivers to control a T6963 based LCD (8x8 font)   Holger Klabunde
    Simple drivers for LCDs based on the T6963 controller   Erik Andersson
    Some basic routines to control a LCD in 4-bit mode   Thorsten Godau
  Serial communication via U(S)ART...    

Top 

    A simple console for micros   Gregory L. Montgomery
    A commandline interpreter for variable length input   Sten D. Iversen
    Code for 8051 series UART (interrupt driven, uses timer1)   Victoria Welch
  Inter IC communication (I2C)...    

Top 

    C-bus serial interface (e.g. CMX860, CMX624, CMX644...)   Pedro I. Martos
    Communication with I2C-EEPROMs (24C01/02/04/08/16)   Pedro I. Martos
    Basic functions for I2C bus (msi2cbasic.zip)   Michael Schmitt
    PCF8574A 8-Bit I/O-Port Extender (req. msi2cbasic.zip)   Michael Schmitt
    MAX517 8-Bit DAC (req. msi2cbasic.zip)   Michael Schmitt
    LM75 temperature sensor (req. msi2cbasic.zip)   Michael Schmitt
    AT24C256 32KByte serial EEPROM (req. msi2cbasic.zip)   Michael Schmitt
    Some basic low- and high-level I2C-routines   Thorsten Godau
  Serial peripheral interface (SPI)...    

Top 

    A basic routine to write a Motorola PLL via SPI   Thorsten Godau
  MCS51 internals...    

Top 

    A generic putchar() example   Sten D. Iversen
    EEPROM routines for the AT89S8252   Ahmad Husni
  Analog to digital conversion...    

Top 

    Functions for controlling the ADC0808   Remco den Breeje
  Universal serial bus (USB)...    

Top 

    To SDCC ported code for the SiLabs F320   Mukund Deshmukh
  Keyboards and keypads...    

Top 

    A simple keyboard driver without using interrups   Manoel Andrade
  Mathematics...    

Top 

    64 points complex floating point FFT routine   Ioan Petrescu
    SQRT (Newton-Raphson method) for SDCC/MCS51   Frank van der Hulst
    Fast CRC16 for CCITT V.41 standard   Michael Schmitt
    Fast CRC16 calculation (with table and fix polynomial)   Thorsten Godau
    A math routine to calculate the atan(x/y) using CORDIC   Thorsten Godau
  Multitasking systems...    

Top 

    The FreeRTOS™ Homepage   Richard Barry
    A multitasking scheduler for MSC51   Stephan Le Meunier
  Hardware around MCS51...    

Top 

    µAnt51 - A universal and modular µC-board German flag   Thorsten Godau
    AT89C2051-based melody generator   S. Anantha Narayanan
    Dual 8-bit interrupt on change peripheral adapter for 8051   Ioan Petrescu
    SimmStick programmer application for SDCC   Andrew Macaulay
    An ATMEL uC-Programmer package   Peter Cassar
  Miscellaneous...    

Top 

    A tool for counting machine cycles of functions (mcs51)   Stephan Le Meunier
    A RTTTL interpreter (ringtone generator) for micros   Manoel Andrade
    An ISR-example for PICmicros   Micah Carrick
    Adapted PAULMON2 monitor program for SAB80C535   Alex Ratzefumm
    A basic c-template for µC projects   Thorsten Godau
    A true type font based on the HD44780U(A00) LCD   Thorsten Godau
    Updated StartUpCode main() incl. UART, Timer, WDT   Michael Schmitt
    The Final Word on the 8051 (local copy)