Lesson 8

  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lesson 8 as PDF for free.

More details

  • Words: 1,373
  • Pages: 14
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 ‫ﺍﻟﺘﺠﺮﺑﺔ‬

   

  functions B7B0  

void main() {trisb=0; portb=0;

 

while(1)

 

{portb=0b10000001;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11000011;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11100111;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11111111;delay_ms(100); portb=~portb; } }

delay_ms(100);

             

   10000001              portb=~portb;011111110                            1100000011       0011111100portb=~portb; ١٥٩

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬      B7 B0 invert  showahmad    

Invert(0b100000001);

   Portb=0b100000001; delay_ms(100); Portb=~portb; delay_ms(100);

   

Invert(0b11100111);

 

  Portb=0b111000111; delay_ms(100); Portb=~portb; delay_ms(100);

 

Portbinvert( );                      

١٦٠

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬ Invert   void main   void invert(char aaa) { portb=aaa; delay_ms(100);

‫ اﻟﺬي ﻧﺨﺒﺮ‬ ‫ﻫﺬا ﻫﻮ‬

 

‫ﻓﻴﻪ اﻟﻤﻴﻜﺮوﻛﻨﺘﺮوﻟﺮ ﺑﺎﻟﻮﻇﻴﻔﺔ اﻟﺘﻲ‬ invert ‫ﺳﻴﺆدﻳﻬﺎ اﻷﻣﺮ اﻟﺠﺪﻳﺪ‬

 

portb=~portb; delay_ms(100); }

‫ﻫﺬا اﻷﻣﺮ ﻋﻨﺪﻣﺎ ﻧﻜﺘﺒﻪ ﻓﺈن اﻟﻤﻴﻜﺮوﻛﻨﺘﺮوﻟﺮ‬ ‫ﻳﺒﺪأ ﺑﺘﻨﻔﻴﺬ اﻷواﻣﺮ اﻟﺘﻲ ﺑﺪاﺧﻞ ﺗﻌﺮﻳﻒ اﻟﺪاﻟﺔ‬ ‫ ﻳﺴﺎوي اﻟﻘﻴﻤﺔ اﻟﺘﻲ‬aaa ‫و ﻳﺠﻌﻞ اﻟﻤﺘﻐﻴﺮ‬ ‫ﻛﺘﺒﻨﺎﻫﺎ ﺑﻴﻦ اﻟﻘﻮﺳﻴﻦ اﻟﺨﺎﺻﻴﻦ ﺑﺎﻷﻣﺮ‬

void main() {trisb=0;portb=0;

Invert (

While(1){invert(0b11000011); } }

 

);

         

 void main                   main     while(1)       trisb=0;portb=0;    invert invert(0b11000011);

 

 void invert( char aaa)   invert void   charaaa ١٦١

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬  aaa invert(0b11000011);  0b11000011aaainvert( ); Invert 0b11000011portb Portb=aaa;                 Portb=~portb;   invert(0b11000011);   while(1)     void main() {trisb=0;portb=0; while(1) {portb=0b10000001;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11000011;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11100111;delay_ms(100); portb=~portb;

delay_ms(100);

Portb=0b11111111;delay_ms(100); portb=~portb; } }

١٦٢

delay_ms(100);

 



‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬  

void invert(char aaa)

 

{ portb=aaa; delay_ms(100); portb=~portb; delay_ms(100);

   

} void main(){trisb=0;portb=0; while(1){ invert(0b10000001); invert(0b11000011); invert(0b11100111); invert(0b11111111); } }

         

portbinvert portb      B7B0    A0   A1  

١٦٣



‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬  

void main(){char x;



trisb=0;portb=0; trisa.f0=1;trisa.f1=1; for(x=0;x<2;x++){

portb=0b00000001;delay_ms(200); portb=0b00000011;delay_ms(200); portb=0b00000111;delay_ms(200); portb=0b00001111;delay_ms(200); portb=0b00011111;delay_ms(200); portb=0b00111111;delay_ms(200);

‫ﺣﺮﻛﺔ اﻟﻠﻴﺪات ﻣﻦ‬ ‫اﻟﻴﻤﻴﻦ ﻟﻠﻴﺴﺎر‬ ‫وﺗﺘﻜﺮر ﻣﺮﺗﻴﻦ‬ ‫ﻷﻧﻬﺎ داﺧﻞ ﺟﻤﻠﺔ‬ for

portb=0b01111111;delay_ms(200); portb=0b11111111;delay_ms(200);} for(x=0;x<3;x++){portb=0b10000000;delay_ms(200); portb=0b11000000;delay_ms(200); portb=0b11100000;delay_ms(200); portb=0b11110000;delay_ms(200); portb=0b11111000;delay_ms(200);

‫ﺣﺮﻛﺔ اﻟﻠﻴﺪات ﻣﻦ‬ ‫اﻟﻴﺴﺎر ﻟﻠﻴﻤﻴﻦ‬ ‫وﺗﺘﻜﺮر ﺛﻼث‬ ‫ﻣﺮات‬

portb=0b11111100;delay_ms(200); portb=0b11111110;delay_ms(200); portb=0b11111111;delay_ms(200);} while(1){ if(porta.f0==0){

portb=0b00000001;delay_ms(200); portb=0b00000011;delay_ms(200); portb=0b00000111;delay_ms(200); portb=0b00001111;delay_ms(200); portb=0b00011111;delay_ms(200); portb=0b00111111;delay_ms(200); portb=0b01111111;delay_ms(200); portb=0b11111111;delay_ms(200);}

if(porta.f1==0) {portb=0b10000000;delay_ms(200); portb=0b11000000;delay_ms(200); portb=0b11100000;delay_ms(200); portb=0b11110000;delay_ms(200); portb=0b11111000;delay_ms(200); portb=0b11111100;delay_ms(200); portb=0b11111110;delay_ms(200); portb=0b11111111;delay_ms(200);} } ١٦٤

}

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬   If           A1  A0  while(1)  if(porta.f0==0)  if  A0  If     A1           if(porta.f1==0)   functions                 right_left  left_right   

١٦٥

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬ Void right_left(){

portb=0b00000001;delay_ms(200); portb=0b00000011;delay_ms(200); portb=0b00000111;delay_ms(200); portb=0b00001111;delay_ms(200); portb=0b00011111;delay_ms(200); portb=0b00111111;delay_ms(200); portb=0b01111111;delay_ms(200); portb=0b11111111;delay_ms(200);}

Void left_right(){portb=0b10000000;delay_ms(200); portb=0b11000000;delay_ms(200); portb=0b11100000;delay_ms(200); portb=0b11110000;delay_ms(200); portb=0b11111000;delay_ms(200); portb=0b11111100;delay_ms(200); portb=0b11111110;delay_ms(200); portb=0b11111111;delay_ms(200);} void main(){char x; trisb=0;portb=0; trisa.f0=1;trisa.f1=1; for(x=0;x<2;x++)right_left(); for(x=0;x<3;x++)left_right(); while(1){ if(porta.f0==0) right_left(); if(porta.f1==0) left_right(); } }

                           

  right_left();  left_right();     ١٦٦

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬ functions        parameters   void any_name()



{ ‫ﻫﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﱵ ﺳﺘﻨﻔﺬ ﻋﻨﺪﻣﺎ ﻧﺴﺘﺪﻋﻲ ﻫﺬه اﻟﺪاﻟﺔ‬

 

}

 

void main() {………… ………… any name(); }

   

‫ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ اﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ ﻟﺘﻨﻔﺬ‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷواﻣﺮ ﻧﻜﺘﺐ اﺳﻤﻬﺎ ﺛﻢ‬ ( ) ‫ﻧﺘﺒﻌﻬﺎ ﺑﻘﻮﺳﻴﻦ ﻓﺎرﻏﻴﻦ‬

attention   attention();   void attention()

 

{ char kk; for(kk=0;kk<5;kk++){ porta.f0=1; delay_ms(100); porta.f0=0; delay_ms(100); } } ١٦٧



‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬  void main()attention();  { }

 b5b0   b6        B1           b7    b2  

 

                  

void attention() { char kk;

 

for(kk=0;kk<5;kk++){porta.f0=1; delay_ms(100);porta.f0=0; delay_ms(100); } }

 

void main() { trisb.f0=1; trisb.f1=1; trisb.f2=1; ‫اﺟﻌﻞ اﻟﺜﻼث اﻟﻤﻮﺻﻞ ﺑﻪ اﻟﺴﻮﻳﺘﺸﺎت ﻛﺪﺧﻞ‬

 

trisb.f5=0; trisb.f6=0; trisb.f7=0; ‫اﺟﻌﻞ اﻟﺜﻼث أﻃﺮف اﻟﻤﻮﺻﻞ ﺑﻬﺎ اﻟﻠﻴﺪات ﻛﺨﺮج‬ trisa.f0=0;

‫اﺟﻌﻞ اﻟﻄﺮف اﻟﻤﻮﺻﻞ ﺑﻪ اﻟﻠﻴﺪ اﻟﺨﺎص ﺑﺎﻟﺘﺤﺬﻳﺮ ﻛﺨﺮج‬

while(1){ portb.f5=0;portb.f6=0;portb.f7=0; if(portb.f0==0) {mm1: portb.f5=1;

‫اﻃﻔﺊ اﻟﻠﻴﺪات ﻓﻲ اﻟﺒﺪاﻳﺔ وﺑﻌﺪ رﻓﻊ اﻟﻴﺪ ﻣﻦ ﻋﻠﻰ أي ﺳﻮﻳﺘﺶ‬

 

‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول ﻗﻢ ﺑﺈﺿﺎءة اﻟﻠﻴﺪ اﻷول‬

if(portb.f1==0||portb.f2==0) attention();‫ﺑﺘﺤﺬﻳﺮ اﻟﻤﺴﺘﺨﺪم إذا ﺿﻐﻂ ﻋﻠﻰ أي ﺳﻮﻳﺘﺶ آﺧﺮ‬ ‫ ﻗﻢ‬ if(portb.f0==0)goto mm1; ‫إذا ﻛﻨﺎ ﺿﺎﻏﻄﻴﻦ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول ﻛﺮر ﻣﺎ ﺳﺒﻖ ﻣﺮة أﺧﺮى‬

}

‫اي واﺟﻌﻞ اﻟﻠﻴﺪ اﻷول ﻣﻀﻴﺌﺎ‬

if(portb.f1==0) {mm2 portb.f6=1; ‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻟﺜﺎﻧﻲ ﻗﻢ ﺑﺈﺿﺎءة اﻟﻠﻴﺪ اﻟﺜﺎﻧﻲ وإذا ﺗﻢ اﻟﻀﻐﻂ‬ if(portb.f0==0||portb.f2==0) attention(); (‫ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول أو اﻟﺜﺎﻟﺚ ﻗﻢ ﺑﻌﻤﻠﻴﺔ اﻟﺘﺤﺬﻳﺮ)اﺳﺘﺪاﻋﺎء اﻟﺪاﻟﺔ‬ if(portb.f1==0)goto mm2; ‫إذا ﻛﻨﺎ ﻣﺴﺘﻤﺮﻳﻦ ﻓﻲ اﻟﻀﻐﻂ ﻗﻢ ﺑﺘﻜﺮار ﻣﺎﺳﺒﻖ‬ } if(portb.f2==0) { portb.f7=1; ‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻟﺜﺎﻟﺚ ﻗﻢ ﺑﺈﺿﺎءة اﻟﻠﻴﺪ اﻟﺜﺎﻟﺚ وإذا ﺿﻐﻄﻨﺎ أﺛﻨﺎء ذﻟﻚ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول‬ if(portb.f0==0||portb.f1==0) attention(); if(portb.f2==0)goto mm1; } } }

١٦٨

‫أو اﻟﺜﺎﻧﻲ ﻗﻢ ﺑﺎﺳﺘﺪﻋﺎء داﻟﺔ اﻟﺘﻨﺒﻴﻪ‬

         

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬                  ()     void any_name(char nn)

 

{ ‫ﻫﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﱵ ﺳﺘﻨﻔﺬ ﻋﻨﺪﻣﺎ ﻧﺴﺘﺪﻋﻲ ﻫﺬه اﻟﺪاﻟﺔ‬ } void main() {………… ………… any name(‫;)ﻫﻨﺎ ﻧﻜﺘﺐ أي رﻗﻢ أو ﻣﺘﻐﲑ‬ }

‫ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ اﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ ﻟﺘﻨﻔﺬ ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬ ‫اﻷواﻣﺮ ﻧﻜﺘﺐ اﺳﻤﻬﺎ ﺛﻢ ﻧﺘﺒﻌﻬﺎ ﺑﻘﻮﺳﻴﻦ ) ( وﻧﻜﺘﺐ‬ nn ‫داﺧﻞ اﻟﻘﻮﺳﻴﻦ اﻟﺮﻗﻢ اﻟﺬي ﺳﻴﻤﺮر إﻟﻰ اﻟﻤﺘﻐﻴﺮ‬ ‫ ﻳﺴﺎوي ﻫﺬا اﻟﺮﻗﻢ اﻟﻤﻜﺘﻮب‬nn ‫ﻟﻴﺼﺒﺢ‬

       

parameters  invert   portb  portb void MNO(char ww,int yy)

 

{char x; portb=ww;

 

for(x=0;x
١٦٩

‫ وﻫﺬا اﻟﺮﻗﻢ‬ww ‫ ﻫﻮ اﻟﺬي ﺳﻴﺘﻢ وﺿﻌﻪ ﻓﻲ اﻟﻤﺘﻐﻴﺮ‬0xff ‫اﻟﺮﻗﻢ‬ char ‫ ﻟﺬﻟﻚ ﺳﻨﺠﻌﻞ اﻟﻤﺘﻐﻴﺮ ﻣﻦ اﻟﻨﻮع‬٢٥٥ ‫ﻟﻦ ﻳﺰﻳﺪ ﻋﻦ‬

 

‫ وﺑﻤﺎ أن ﻫﺬا اﻟﻤﺘﻐﻴﺮ ﻗﺪ‬yy ‫ ﻫﻲ ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ‬١٥٠٠ ‫واﻟﻘﻴﻤﺔ‬ int ‫ ﻟﺬﻟﻚ ﺟﻌﻠﻨﺎه ﻣﻦ اﻟﻨﻮع‬٢٥٥ ‫ﻳﺄﺧﺬ ﻗﻴﻤﺔ أﻛﺒﺮ ﻣﻦ‬

 

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬      for         delay_ms    delay_us vdelay_ms( )

 



   void MNO(char ww,int yy)

 

{portb=ww; vdelay_ms(yy);

 

portb=0; }

 

void main() {…………….

 

……………. MNO(0xff,1500);

 

}

   intyycharww char intyy  255 

١٧٠

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬     void    add    portbportb   char add(char num1,int num2) {char sum; sum=num1+num2; return sum; } void main() {……………. ……………. Portb=add(5,20); }

           

void void  floatintchar  portb=add(5,20) ١٧١

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬  portb  xx=add(5,3);   char add(char num1,int num2) { return (num1+num2);

   

} void main()

 

{……………. …………….

 

Portb=add(5,20); }

 

portb  portb int mult(char num1,int num2) { return (num1*num2);

   

} void main()

 

{ trisb=0; portb=0; portb=mult(9,2) ;

 

delay_ms(5000); portb=mult(10,3) ;

 

delay_ms(2000); portb=mult(200,5) ;

 

}

                 intchar    ١٧٢


Related Documents

Lesson 8
July 2020 7
Lesson 8
November 2019 16
Lesson 8
May 2020 20
Lesson 8
December 2019 11
Lesson 8
June 2020 9
Lesson 8
May 2020 10