You are on page 1of 5

DOS FUNCTIONS

PROGRAMS:
DISPLAY A CHARACTER

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OP1 DB 'A'
DATA ENDS
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AH, 02H
MOV DL, OP1

INT 21H
CODE ENDS
END START
END

READING A KEYBOARD WITHOUT ECHO

ASSUME CS:CODE
CODE SEGMENT
START:
MOV AH,08H
INT 21H
CODE ENDS
END START
END

INPUT A CHARACTER WITH ECHO

ASSUME CS:CODE
CODE SEGMENT
START:
MOV AH,01H
INT 21H
CODE ENDS
END START
END
8051-MICRO CONTROLLERS
DELAY GENERATION USING 1) Nested Loop & 2) Timers

8051 C program to toggle all the bits p0 continuously with a 50ms delay (Nested loop)

#include <reg51.h>
Void msdelay(unsigned int);
void main(void)
{
while(1)
{
P0=0X55;
msdelay(50);
P0=0xAA;
msdelay(50);
}
}
void msdelay(unsigned int itime)
{
unsigned int i,j;
for(i=0;i<itime;i++)
for(j=0;j<1275;j++);
}
8051 C program to toggle all the bits p0 continuously with a 50ms delay (Timers)

#include <reg51.h>
void T0M1delay(void);
void main(void)
{
while(1)
{
P0=0X55;
T0M1delay();
P0=0xAA;
T0M1delay();
}
}
void T0M1delay(void)
{
TMOD =0X01; // Timer 0, mode 1(16bit)

TL0=0XFD; // load TL0

TH0=0X4B; // load TH0

TR0=1; // turn on T0
while(TF0==0); // wait for TF0 to roll over
TR0=0; //turn off T0
TF0=0; // clear TF0
}

Calculations:
FFFFH-48FDH= B402H=46082+1=46083
Timer delay=46083*1.085microsec
=50ms
3. Counting of external event occurrence through port line

#include <reg51.h>
sbit SW=P3^5;
void main(void)
{
SW=1;
TMOD=0X05; //make T0 an input
TL0=0; // set count to 0
while(1)
{
do
{
TR0=1; // start timer
P1=TL0; //store the values in port1
}
while (TF0==0);
TR0=0; // wait here
TF0=0; // stop here
}
}

Detection of key closure(Connected to a port line ) by polling technique


#include<reg51.h>
sbit SW=P1^7;

void Msdelay(unsigned int itime)


{
unsigned int i,j;
for(i=0;i<itime;i++)
for(j=0;j<1275;j++);
}

void main()

{
SW=1;
while(1)
{
if (SW==0)
{
P2=0X66;
Msdelay(10000);
P2=0Xcc;
Msdelay(10000);
P2=0X99;
Msdelay(10000);
P2=0X33;
Msdelay(10000);
}
else
{
P2=0X66;
Msdelay(10000);
P2=0X33;
Msdelay(10000);
P2=0X99;
Msdelay(10000);
P2=0Xcc;
Msdelay(10000);
}
}
}

You might also like