22 microcontroller programs

27
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

Upload: babak

Post on 19-Jan-2015

1.079 views

Category:

Education


3 download

DESCRIPTION

Microcontroller,

TRANSCRIPT

Page 1: 22 Microcontroller Programs

1. ON OFF LED through a switch?2. ON OFF LED Sequentially with PORTB3. 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 furnace20. 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

Page 2: 22 Microcontroller Programs

Page | 1

Assignment No 2 Microcontroller

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;} }}

Page 3: 22 Microcontroller Programs

Page | 2

Assignment No 2 Microcontroller

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;

} }

Page 4: 22 Microcontroller Programs

Page | 3

Assignment No 2 Microcontroller

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); } }}

Page 5: 22 Microcontroller Programs

Page | 4

Assignment No 2 Microcontroller

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;}

}

Page 6: 22 Microcontroller Programs

Page | 5

Assignment No 2 Microcontroller

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;}

}

Page 7: 22 Microcontroller Programs

Page | 6

Assignment No 2 Microcontroller

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; } }

Page 8: 22 Microcontroller Programs

Page | 7

Assignment No 2 Microcontroller

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

Page 9: 22 Microcontroller Programs

Page | 8

Assignment No 2 Microcontroller

I++;}I=0;Unsigned char temp;While(i!=8){

Temp=Bitdata;Temp=Temp<<1;Bitdata=Bitdata>>1;

}}Q 11 write 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;

}}

Page 10: 22 Microcontroller Programs

Page | 9

Assignment No 2 Microcontroller

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 0void 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

Page 11: 22 Microcontroller Programs

Page | 10

Assignment No 2 Microcontroller

Q13 write a program to move a stepper motor for 30degree?Speciation of stepper motor .1deg/step

Calculation.1 degree = 1 step1deg =1/.1 step30 deg = 30/0.1step => 300 steps 300 / 4 =75

Void main (){ trisc=0; portc=0; int i,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; } }}

Page 12: 22 Microcontroller Programs

Page | 11

Assignment No 2 Microcontroller

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};unsigned int i,j,k,l; trisc=0; portc=0; while(1){ for(i=1; i<5; i++)

Page 13: 22 Microcontroller Programs

Page | 12

Assignment No 2 Microcontroller

{ 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]); } }}}

Q 15 write a program to write “ kicsit ” On LCD screen use Any port ?#define dataline portd#define rs portc.f0#define e portc.f1

void command(unsigned char x){ e=0; rs=0; dataline=x; e=1;

Page 14: 22 Microcontroller Programs

Page | 13

Assignment No 2 Microcontroller

delay_ms(50); e=0;}

void data(unsigned char y){ e=0; rs=1; dataline=y; e=1; delay_ms(50); e=0;

}

void main(){

trisd=0x00;trisc.f0=0;trisc.f1=0;

command(0x38); command(0x06); command(0x0c); command(0x01);

while(1){command(0x80);data('B');

command(0xc0);data('A');

command(0x82);data('B');

command(0xc2);data('R');

command(0x84);data('U');

command(0x85);data(' ');

command(0x86);data(' ');

Page 15: 22 Microcontroller Programs

Page | 14

Assignment No 2 Microcontroller

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 directionsbit LCD_RS_Direction at TRISD3_bit;sbit LCD_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;

Page 16: 22 Microcontroller Programs

Page | 15

Assignment No 2 Microcontroller

//INTCON2.INTEDG1=1; TRISB=0X0F; TRISC=0X00; //trisd=0;

//TRISC=0; Lcd_Init(); //Lcd_Out(1,4,"Well Come");

while(1) { }

}void interrupt(void){ if(INTCON.INT0IF==1 && flag==0) { Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Motor is OFF"); //Lcd_Out(2,4,scount ); INTCON.INT0IF=0; INTCON2.INTEDG0=0; flag=1; PORTC.f0=0; // PORTC.F0=~PORTC.F0; } if(INTCON.INT0IF==1 && flag==1) { Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Motor is ON"); //Lcd_Out(2,4,scount ); PORTC.f0=1; INTCON.INT0IF=0; flag=0; INTCON2.INTEDG0=1; // PORTC.F0=~PORTC.F0; }

}

Page 17: 22 Microcontroller Programs

Page | 16

Assignment No 2 Microcontroller

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 directionsbit LCD_RS_Direction at TRISD3_bit;sbit LCD_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;char scount[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");

Page 18: 22 Microcontroller Programs

Page | 17

Assignment No 2 Microcontroller

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 directionsbit LCD_RS_Direction at TRISD3_bit;sbit LCD_EN_Direction at TRISD2_bit;

Page 19: 22 Microcontroller Programs

Page | 18

Assignment No 2 Microcontroller

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;

void interrupt(void);void main() { char key; INTCON=0x90; INTCON3=0x08; INTCON2.INTEDG0=1; INTCON2.INTEDG1=1; TRISB=0X0F; TRISC=0X00; //trisd=0;

//TRISC=0; Lcd_Init(); //Lcd_Out(1,4,"Well Come");

while(1) { }

}void interrupt(void){ if(INTCON.INT0IF) { Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Motor is OFF"); //Lcd_Out(2,4,scount ); INTCON.INT0IF=0; PORTC=0X00; // PORTC.F0=~PORTC.F0; } if(INTCON3.INT1IF) { Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Motor is ON"); //Lcd_Out(2,4,scount ); PORTC=0XFF; INTCON3.INT1IF=0; // PORTC.F0=~PORTC.F0; }

}

Page 20: 22 Microcontroller Programs

Page | 19

Assignment No 2 Microcontroller

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 > Anticlockwise2> Clockwisesbit 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 directionsbit LCD_RS_Direction at TRISD3_bit;sbit LCD_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");

Page 21: 22 Microcontroller Programs

Page | 20

Assignment No 2 Microcontroller

Lcd_cmd(_Lcd_clear); m: Lcd_Out(1,1,"1 : For ClockWise :"); Lcd_Out(2,1,"2 : For AntiClockWise :"); while(1) { portb=0xf1; if(portb.f4==1) { //Lcd_Out(1,6,"7"); goto m; }portb=0xf4; if(portb.f4==1) {

//Lcd_Out(1,6,"1"); Lcd_cmd(_lcd_clear); lcd_out(1,1,"7 : To main"); Lcd_out(2,1,"Clockwise"); while(1){ PORTC.F0 = 1; delay_ms(50); PORTC.F0 = 0; PORTC.F1 = 1; delay_ms(50); PORTC.F1 = 0; PORTC.F2 = 1; delay_ms(50); PORTC.F2 = 0; PORTC.F3 = 1; DELAY_MS(50); PORTC.F3 = 0;

portb=0xf1; if(portb.f4==1) { //Lcd_Out(1,6,"7"); goto m; }

} } if(portb.f5==1) { Lcd_cmd(_lcd_clear); lcd_out(1,1,"7 : To main"); Lcd_Out(2,1,"AntiClockwise"); while(1){ PORTC.F3 = 1;

Page 22: 22 Microcontroller Programs

Page | 21

Assignment No 2 Microcontroller

delay_ms(50); PORTC.F3 = 0; PORTC.F2 = 1; delay_ms(50); PORTC.F2 = 0; PORTC.F1 = 1; delay_ms(50); PORTC.F1 = 0; PORTC.F0 = 1; DELAY_MS(50); PORTC.F0 = 0;

portb=0xf1; if(portb.f4==1) { //Lcd_Out(1,6,"7"); goto m; }} }

} }

Q22 Design a interface of stepper motor with microcontroller Degree of circular motion is Entered from keypad and displayed on LCD