0% found this document useful (0 votes)
13 views

Embedded Clock Program

c language programming

Uploaded by

Kal El
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Embedded Clock Program

c language programming

Uploaded by

Kal El
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

ASSIGNMENT 5 TASK 1: Create the program of a digital clock display (using c language).

The LCD display is continuously updated after every second with the new value of current time in HH:MM:SS format. Programming:
#include <reg51.h> void lcdwrite (unsigned char value); void delay (unsigned long value); void cmdwrite (unsigned char cmd); void datawrite (unsigned char dat); void lcdstart(); void wordwrite (unsigned char *word); void numwrite (unsigned int number); void displaytime (unsigned int i,j,k); void delay (unsigned long j); #define lcddata P0 // data port lcd sbit rs=P2^3; // rs pin connecfgtion sbit rw=P2^4; // rw pin sbit e=P2^5; // e pin

void main() { unsigned int i,j,k; lcdstart(); //start lcd while(1) { { for (i=0; i<24; i++) cmdwrite(0x81); numwrite(i); wordwrite("h:"); delay(1000); for(j=0; j<60; j++) { cmdwrite(0x85); numwrite(j); wordwrite("m:"); delay(1000); for(k=0; k<60; k++) { cmdwrite(0x89); numwrite(k); wordwrite("s"); delay(10); } } } } }

void lcdwrite (unsigned char value) // send value to lcd { rw=0; // clr rw to write data lcddata=value; e=1; //enable lcd delay(250); e=0; delay(250);

} void delay (unsigned long value) { for ( ; value>0; value--); } void cmdwrite (unsigned char cmd) { rs=0; // selec command mode lcdwrite (cmd); // write to lcd } void datawrite (unsigned char dat) { rs=1; // select data mode lcdwrite (dat); } void lcdstart() { cmdwrite(0x38); cmdwrite(0x0c); cmdwrite(0x01); cmdwrite(0x06); } void wordwrite (unsigned char *word) { unsigned char i; for(i=0; word[i]!='\0';i++) { datawrite(word[i]); } } void numwrite (unsigned int number) { datawrite(0x30+(number%1000%100/10)); datawrite(0x30+(number%1000%100%10)); }

Simulation Figure:

You might also like