Implementing a 4-bit counter using an 8051 and Interfacing it to an LCD
Introduction
In this lab, you will learn how to write a simple C program for 80X51 micro-controller, compile it using C51 compiler, and emulate it on an emulator using PDS51. The program will be used to control a simple 4-bit up-down counter, capable of counting from 0 to 15. At each step the count should be displayed in decimal format on the LCD.
Assignment
In this lab :
Apparatus Required
Schematic
Program
#pragma SMALL DB OE #include <reg51.h> #include "io.h" /* P0, P1, P2 and P3 are predefined port names and are bit addressable */ sbit reset = P0^4; /* bit 4 of Port 0 */ sbit up_down = P0^5; sbit load = P0^6; sbit Start_LCD = P0^7; /* bit 7 of Port 3 */ /* Delay function */ void delay() { int i, j; for(i=0; i<1000; i++) for(j=0; j<100; j++) i = i + 0; } /* Function to output the decimal value of the count on the LCD */ void PrintInt(unsigned char i) { char ch[4]; /* Write code to convert the count to a string value and use the PrintString function provided in io.c */ PrintString(ch); } void main(void) { unsigned char count = 0; InitIO(); /* Initialize the LCD */ while (1) { if (Start_LCD == 1) { ClearScreen(); PrintString("Ready..."); delay(); } else if (reset == 1) { /* Output 0 on the LCD */ } else if (load == 1) { /* Output the current value of Datain on the LCD */ } else { /* Check the Up/Down pin for 1 or 0 count up or down accordingly. Display each value on the LCD */ } } }
Procedure
P:\\Peart\cs122
C:\Temp\count.c
c51 count.c c51 io.cThis would generate object files: count.obj, io.obj
bl51 count.obj, io.obj to count.omf