Top Banner
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
27

22 Microcontroller Programs

Jan 19, 2015

Download

Education

babak

Microcontroller,
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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