My Homemade AT89C2051 Development Board
First and foremost we need to install a compiler and we need a programmer to load the code into the microcontroller. In my case, I use TL866A Universal Programmer.
So let’s start with the installation of the compiler:
// install SDCC package: apt install sdcc // test instalation sdcc --version
TL866A Universal Programmer
The next step is to install the programmer software:
// install dependencies for minipro apt install build-essential pkg-config git libusb-1.0-0-dev // get source code of minipro git clone https://gitlab.com/DavidGriffith/minipro.git // compile minipro software cd minipro make // install application sudo make install // udev configuration sudo cp udev/*.rules /etc/udev/rules.d/ sudo udevadm trigger // add user to the plugdev group sudo usermod -a -G plugdev YOUR-USER // test instalation minipro --version
For this occasion, I wrote the Blink c program for AT89C2051 and compiled it using SDCC on Debian Linux.
// ********************************************************
// Program:     Blink LED example
// Author:      Elvis Baketa
// Processor:   AT89C2051
// Oscillator:  12 MHz
// Compiler:    SDCC (Linux)
// Version:     0.1
// Comment:     
// ********************************************************
#include "at89x051.h"
// declare function
void delayms(void);
void delay(int data);
// main function
void main(void)
{
    // declare variable
    int i = 0;
    
    // run once
    P1_0 = 1;
    
    // loop forever
    while(1)
    {
        // turn LED on
        P1_0 = 0;
        // wait 1 second
        delay(1000);
        // turn LED off
        P1_0 = 1;
        // wait 1 second
        delay(1000);
    }
}
// delay one milisecond
void delayms(void)
{
    int i;
    // count to 33 for 1 ms delay
    for (i = 0; i < 34; i++);
}
// amount of milisecond to delay
void delay(int data)
{
    int i;
    for (i = 0; i < data; i++)
    {
        delayms();
    }
}
You can find source code on GitHub repo blink at89c2051.
Until next time.


 
						