1. 1. ON OFF LED through a switch?
2. ON OFF LED Sequentially with PORTB
3. Display Seven segments from 0 to 9?
4.
5. read data byte on port C and send it on port B?
6. read data byte on portc and send it on portb in inverted form?
7. out a byte of data 0xAA on portb.f0 serially one bit at a time. LSB should go first
continuously?
8. out a byte of data 0x45 on portb.f0 serially one bit at a time MSB should go first
(continuously)?
9. in byte of data on portb .f0 serially one bit a time continuously MSB Should
come first?
10. in a byte of data through Portb.f0 serially one bit at a time LSB should
come first?
11. ON OFF a 220V bulb through a switch?
12. control the direction of DCMOTOR portC through a switch on Portb?
13. move a stepper motor for 30degree?
14. Design a circuit to control the direction of stepper motor [full torque] .
15. write “ kicsit ” On LCD screen use Any port ?
16. write “kicsit” On LCD screen using port b only?
17. Design a program to of Pressure controller using pressure switch.
18. write a program to count the number of Person Entering In a gate, And display
the result on the screen (LCD);
19. Design a temperature control system for furnace. Two temperature switches are
installed in a furnace to measure the hot and cold of furnace
20. Design a interface of keypad and display on LCD.
21. design the interface of stepper motor to control the direction of stepper motor
with Key pad?
22. Design a interface of stepper motor with microcontroller Degree of circular
motion is Entered from keypad and displayed on LCD
2. Assignment No 2 Microcontroller
Page | 1
Q .1 Write a program to ON OFF LED trough a switch?
void main ()
{
trisc.f0=0;
trisb.f0=1;
portc.f0=0;
while(1)
{
if(portb.f0==1)
{
portc.f0=1;
}
else
{
portc.f0=0;
}
}
}
3. Assignment No 2 Microcontroller
Page | 2
Q .2 Write a program to ON OFF LED Sequentially with PORTB.
void main(void)
{
trisb=0x00;
portb=0x00;
while(1)
{
portb.f0=1;
Delay_ms(100);
portb.f0=0;
portb.f1=1;
Delay_ms(100);
portb.f1=0;
portb.f2=1;
Delay_ms(100);
portb.f2=0;
portb.f3=1;
Delay_ms(100);
portb.f3=0;
portb.f4=1;
Delay_ms(100);
portb.f4=0;
portb.f5=1;
Delay_ms(100);
portb.f5=0;
portb.f6=1;
Delay_ms(100);
portb.f6=0;
portb.f7=1;
Delay_ms(100);
portb.f7=0;
}
}
4. Assignment No 2 Microcontroller
Page | 3
Q. 3 write a program to Display Seven segments from 0 to 9?
void main ()
{
unsigned char n[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int i;
trisc=0;
portc=0;
while(1)
{
for(i=0;i<10;i++)
{
portc=n[i];
delay_ms(300);
}
}
}
5. Assignment No 2 Microcontroller
Page | 4
Q5. Write a program to read data byte on port C and send it on port B?
Void main()
{
TRISC=0;
TRISB=1;
While(1){
Portb=portc;
}
}
6. Assignment No 2 Microcontroller
Page | 5
Q6. Write a program to read data byte on portc and send it on portb in inverted form?
Void main()
{
TRISC=0;
TRISB=1;
While(1){
Port B= ~ port C;
}
}
7. Assignment No 2 Microcontroller
Page | 6
Q 7 Write a program to out a byte of data 0xAA on portb.f0 serially one bit at a time.
LSB should go first continuously?
void main ()
{
int i=0;
unsigned char a;
unsigned char x=0xaa;
trisb.f0=0;
portb.f0=0;
a=x;
while(1)
{
portb.f0=a;
delay_ms(200);
a=a>>1;
if(i==8)
{
a=x;
i=0;
}
i=i+1;
}}
8. Assignment No 2 Microcontroller
Page | 7
Q 8 write a program to out a byte of data 0x45 on portb.f0 serially one bit at a time
MSB should go first (continuously)?
void main ()
{
int i=7;
unsigned char a=0x45;
unsigned char x=0x45;
a=x;
trisb.f0=0;
while(1)
{
a=a>>i;
portb.f0=a;
delay_ms(200);
a=x;
i--;
if(i<0)
{
i=7;
}
}
}
Q9 write a program to in byte of data on portb .f0 serially one bit a time continuously
MSB Should come first?
Void main()
{
Unsigned char bitdata;
Int i=0;
TRISB.F0=1;
PORTB.F0=0;
While (i!=8)
{
Bitdata=PORTB.F0;
Bitdata=bitdata<<1;
I++;
}
}
Q10 .write a program to in a byte of data through Portb.f0 serially one bit at a time LSB
should come first?
Void main()
{
TRISB=1;
PORTB=0;
While(i!=8)
{
Bitdata=PORTB.F0; // Lsb come first
Bitdata=Bitdata<<1; //at the end we get inverted form
9. Assignment No 2 Microcontroller
Page | 8
I++;
}
I=0;
Unsigned char temp;
While(i!=8)
{
Temp=Bitdata;
Temp=Temp<<1;
Bitdata=Bitdata>>1;
}
}
Q 11write a program to ON OFF a 220V bulb through a switch?
void main()
{
trisc=0;
portc=0;
trisb.f0=1;
while(1)
{
if(portb.f0==1)
{
portc.f0=1;
}
else
portc.f0=0;
}
}
10. Assignment No 2 Microcontroller
Page | 9
Q 12 writes a program to control the direction of DCMOTOR portC through a switch
on Portb?
#define sw1 portb.f0
#define sw2 portb.f1
#define ON 1
#define OFF 0
void main()
{
TRISB=1;
portb=0;
TRISC=0;
while (1)
{
if(sw1==ON)
{ portc.f3=OFF;
portc.f1=OFF;
Delay_ms(10);
portc.f0=ON;
portc.f2=ON;
delay_ms(200);
}
if(sw2==ON)
{
portc.f0=OFF;
portc.f2=OFF;
delay_ms(10);
portc.f3=ON;
portc.f1=ON;
delay_ms(100);
}
}
}
C0 C1 C2 C3 DIRECTION
1 0 1 0 CLOCKWICE
0 1 0 1 ANTICLOCKWISE
11. Assignment No 2 Microcontroller
Page | 10
Q13 write a program to move a stepper motor for 30degree?
Speciation of stepper motor .1deg/step
Calculation
.1 degree = 1 step
1deg =1/.1 step
30 deg = 30/0.1step => 300 steps 300 / 4 =75
Void main ()
{
trisc=0;
portc=0;
inti,j=0;
unsigned char a[4]={0x01,0x02,0x04,0x08};
while(1)
{
for(i=0;i<75;i++)
{
for(j=0;j<4;j++)
{
portc=a[j];
delay_ms(100);
//portc=0;
}
//portc=0;
}
}
}
12. Assignment No 2 Microcontroller
Page | 11
Q14 Design a circuit to control the direction of stepper motor [full torque] .
void step(unsigned char x)
{
portc=x;
delay_ms(200);
//portc=0x00;
}
void step1(unsigned char y)
{
portc=y;
delay_ms(200);
//portc=0x00;
}
void main()
{
unsigned char n[4]= {0x01,0x02,0x04,0x08};
unsigned char u[4]= {0x08,0x04,0x02,0x01};
unsignedinti,j,k,l;
trisc=0;
portc=0;
while(1){
for(i=1; i<5; i++)
13. Assignment No 2 Microcontroller
Page | 12
{
for(j=0; j<4; j++)
{
step(n[j]);
}
}
delay_ms(100);
portc=0;
for(k=1; k<5; k++)
{
for(l=0; l<4; l++)
{
step1(u[l]);
}
}
}
}
Q15 write a program to write “ kicsit ” On LCD screen use Any port ?
#define datalineportd
#define rs portc.f0
#define e portc.f1
void command(unsigned char x)
{
e=0;
rs=0;
dataline=x;
e=1;
15. Assignment No 2 Microcontroller
Page | 14
command(0x87);
data('D');
command(0x88);
data('O');
command(0x89);
data('N');
}
}
Q 16 writes a program to write “kicsit” On LCD screen using port b only?
[We solve it through command]
void main(void)
{
TRISD=0x00;
LCD_Init(&PORTD);
Lcd_Cmd(Lcd_Clear);
Lcd_Out(1,1,"KICSIT");
While(1){
}
}
Q 17 Design a program to of Pressure controller using pressure switch.
Specification of Pressure switch
100 baar =break (OFF =0)
50 baar =Make (ON 1)
sbit LCD_RS at RD3_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D4 at RD4_bit;
// Pin direction
sbitLCD_RS_Direction at TRISD3_bit;
sbitLCD_EN_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD4_bit;
int flag=0;
void interrupt(void);
void main() {
char key;
INTCON=0x90;
//INTCON3=0x08;
INTCON2.INTEDG0=1;
17. Assignment No 2 Microcontroller
Page | 16
Q18 write a program to count the number of Person Entering In a gate, And display
the result on the screen (LCD);
sbit LCD_RS at RD3_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D4 at RD4_bit;
// Pin direction
sbitLCD_RS_Direction at TRISD3_bit;
sbitLCD_EN_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD4_bit;
int count=0;
charscount[10];
void interrupt(void);
void main() {
char key;
INTCON=0x90;
INTCON2.INTEDG0=1;
TRISB=0X0F;
//TRISC=0X00;
//trisd=0;
//TRISC=0;
Lcd_Init();
//Lcd_Out(1,4,"Well Come");
18. Assignment No 2 Microcontroller
Page | 17
while(1)
{
}
}
void interrupt(void)
{
if(INTCON.INT0IF)
{
count++;
IntToStr(count,scount);
Lcd_Out(1,1,"Count =");
Lcd_Out(2,4,scount );
INTCON.INT0IF=0;
// PORTC.F0=~PORTC.F0;
}
}
Q19 Design a temperature control system for furnace. Two temperature switches are
installed in a furnace to measure the hot and cold of furnace
HOT>100 output = 1;
Cold<35 output=1;
sbit LCD_RS at RD3_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D4 at RD4_bit;
// Pin direction
sbitLCD_RS_Direction at TRISD3_bit;
sbitLCD_EN_Direction at TRISD2_bit;
20. Assignment No 2 Microcontroller
Page | 19
Q20 Design a interface of keypad and display on LCD.
Q21 design the interface of stepper motor to control the direction of stepper
motor with Key pad?
1 > Anticlockwise
2> Clockwise
sbit LCD_RS at RD3_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D4 at RD4_bit;
// Pin direction
sbitLCD_RS_Direction at TRISD3_bit;
sbitLCD_EN_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD7_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD4_bit;
clockmotor();
void main() {
char key;
TRISB=0XF0;
TRISC=0X00;
trisd=0;
Lcd_Init();
Lcd_Out(1,4,"Well Come");
//Lcd_Out(2,1,"Press Any Key");