دروس دورة المهندس أحمد سمير فايد

advertisement
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
‫ ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺍﳌﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬: ‫ﺍﻟﺒﺎﺏ ﺍﻷﻭﻝ‬
 
 IC 
  
   
    
 
  
   
 
 Mini-Computer
ROMRAMProcessor
   
Pins
 
  
 
 
 MicroController
 controller
 
  

  Micro 
   
 
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
              
   


              
            

 


      
 
 
 

            
 

  
   


 

    
                

 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
               
 
 

 
   
 
 

               

 
 
 
 
 
 



 PIC
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
‫ﻣﻔﺎﻫﻴﻢ ﺃﺳﺎﺳﻴﺔ‬
AVR PIC
  MICROCHIP  PIC 
  
 
 
 

 
 
‫ ﺑﻬﺬﺍ ﺍﻟﺸﻜﻞ‬PIC ‫ﻧﺮﺳﻢ ﺍﻟـ‬
 
 
 
 
 A4,A3,A2,A1,A0PORTA 
B7B0PORTB
  R
  RA0A0 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 VDD 
VDD 
 
  VSS 
 
 VDD,VSS
 
            
            
    Led         Microcontroller
PIC            bit     
 
 
 
 
 
 
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
     PIC16f84a       
B0 LED
 
 

  
‫ ﻓﻮﻟﺖ‬٩ ‫ﺑﻄﺎرﯾﺔ‬
7805
 
VDD ‫ ﻓﻮﻟﺖ‬٥+
‫ﻛﯿﻠﻮ‬١٠ ‫ﻣﻘﺎوﻣﺔ‬
VSS ‫ﺻﻔﺮ ﻓﻮﻟﺖ‬
 
 
‫ أوم‬٤٢٠ ‫ﻣﻘﺎوﻣﺔ‬
 
‫ ﺑﯿﻜﻮ‬٢٢ ‫ﻣﻜﺜﻒ‬
 
 
 
  
   
7805
      

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
      

      
 LED           
  LED

   

‫ ﻓﻮﻟﺖ‬٩ ‫ﺑﻄﺎرﯾﺔ‬
 
7805
VDD ‫ ﻓﻮﻟﺖ‬٥+
VSS ‫ﺻﻔﺮ ﻓﻮﻟﺖ‬
‫ أوم‬٤٢٠ ‫ﻣﻘﺎوﻣﺔ‬
VDD
 
 ١٠ ‫ﻣﻘﺎوﻣﺔ‬
‫ﻛﯿﻠﻮ‬
 
 
 
‫ﺑﯿﻜﻮ‬ ٢٢ ‫ﻣﻜﺜﻒ‬
VSS
 
VSS
 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
  B0
       MikroC          
  setup
    
 
 
 
   
  
‫ﻧﺨﺘﺎر اﺳﻢ ﻟﻠﻤﺸﺮوع‬
‫وﻧﻜﺘﺒﮫ ھﻨﺎ‬
 
 
‫ھﻨﺎ ﻧﻜﺘﺐ ﻣﺴﺎر اﻟﻤﺸﺮوع‬
‫ اي اﻟﻤﻜﺎن اﻟﺬي ﺳﯿﺤﻔﻆ‬
‫ﻓﯿﮫ‬
‫ﻧﺨﺘﺎر ﻧﻮع اﻟﺒﻚ‬
‫اﻟﻤﺴﺘﺨﺪم ﻓﻲ‬
‫اﻟﻤﺸﺮوع‬

 

‫اﺧﺘﺎر ھﺬا اﻻﺧﺘﯿﺎر‬
‫وھﻮ ﯾﺸﯿﺮ ﻟﻨﻮع‬
‫اﻟﻤﺆﻗﺖ‬

‫ ھﻨﺎ ﻧﻜﺘﺐ ﺗﺮدد اﻟﻤﺆﻗﺖ‬
‫اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻣﺸﺮوﻋﻨﺎ ھﺬا‬
‫اﻛﺘﺒﮫ ﺑﻨﻔﺲ اﻟﻘﯿﻢ اﻟﻤﻮﺟﻮدة‬
1.04 ‫ھﻨﺎ‬

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
   
 
 
  
‫ھﺬه ھﻲ اﻷواﻣﺮ أو ﻣﺎ ﯾﺴﻤﻰ ﺑﺎﻟﻜﻮد‬
‫وﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ ﻧﺴﻤﯿﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ‬
 
 
 
 
 
 
               
  B0
 
void main()
 
{
 
TRISB=0B00000000;
PORTB=0B00000001;
}
 
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

  ; 


build project 
Ctrl+F9
 
 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 build project 
hex  MikroC

 first_experiment.hex hex 


  hex 
  
‫ﻻﺣﻆ اﻟﻨﺼﻒ داﺋﺮة‬
‫واﻟﺘﻲ ﺗﺸﯿﺮ ﻟﻠﻄﺮﯾﻘﺔ‬
‫اﻟﺼﺤﯿﺤﺔ ﻟﺘﺮﻛﯿﺐ‬
‫اﻟﺒﻚ‬
 
 
 
 
  
  
 
PICPgm Programmer
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 hex    
 JDM             
  
 
 
 
‫ﻧﺨﺘﺎر ﻗﺎﺋﻤﺔ‬
‫ ﺛﻢ‬hardware
‫ﻧﻀﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ‬
 
 
 
  
 
 
 
‫اﻟﻨﻮع اﻟﺬي اﺳﺘﺨﺪﻣﮫ‬
‫ﻓﻲ اﻟﻜﺘﺎب ﻛﻤﺎ ذﻛﺮت‬
JDM ‫ھﻮ‬
 
 
 
OK
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
Browse 
 first_experiment.hex
 
 
‫اﺿﻐﻂ ھﻨﺎ‬
 
 
Open
‫اﺿﻐﻂ ھﻨﺎ‬
‫ﺑﻌﺪ ﺗﺤﺪﯾﺪ اﻟﻤﻠﻒ‬
 
 PIC16F84A 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
‫ اﺿﻐﻂ ھﻨﺎ‬

 
 
 
 
 
 
             
                
 
 
  
    
 
 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 MikroC
 
void main()
{
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد‬
………………..
………………..
}
‫ﺑﯿﻦ اﻟﻘﻮﺳﯿﻦ‬
 
 
 
 
 
               void main()   
                
 void

 void main()
 
 
 TRIS
PORTA TRISBPORTB
 TRISA 
 TRIS
OUTPUT            0
 INPUT           1
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 B0 PORTB 
        B0     TRISB   
 B0
TRISBB0
 BIT 
     
 TRISB
 
TRISB
 
‫رﻗﻢ اﻟﺮﺟﻞ‬
0
0
0
0
0
0
0
0
B7
B6
B5
B4
B3
B2
B1
B0
 
 
 B7 B0
              
 TRISB=0B00000000;
 TRISB=0B00000000
B7
B6
B5
B4
B3
‫ھﺬا اﻟﺒﺖ ﺧﺎص ﺑﺎﻟﺮﺟﻞ رﻗﻢ‬
B2
B1
B0
 
 0B
B0
 PORT PORT 
 LOW -0HI  1
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
PORTB  HIB0
 B0
TRISBPORTB
 B7 B0 
  
PORTB
 
 
0
0
0
0
0
0
0
1
 
B7
B6
B5
B4
B3
B2
B1
B0
 
   PORTB 
 
 PORTB=0B00000001; 
 PORTB=0B00000001
B7
B6
B5
B4
B3
‫ھﺬا اﻟﺒﺖ ﺧﺎص ﺑﺎﻟﺮﺟﻞ رﻗﻢ‬
B2
B1
B0
 
 
     PORTB=0B00000001
        
TRISPORTB=0B00000001; ;
 { }   TRISB=0B00000000;
 syntax  PORT TRIS
 hex 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
void main()
 
{
 
TRISB=0B00000000;
PORTB=0B00000001;
}
 
 
 
 void main()
 TRISB   B7  B0
 
  B0
  PORT
TRISB   PORTB  ;   
 trisb portb 
 
 MikroC
 

  


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
B7B5B1B0 
 

 
 
‫ ﻓﻮﻟﺖ‬٩ ‫ﺑﻄﺎرﯾﺔ‬
 
7805
VDD ‫ ﻓﻮﻟﺖ‬٥+
 
VDD
‫ﻛﯿﻠﻮ‬١٠ ‫ﻣﻘﺎوﻣﺔ‬
VSS ‫ﺻﻔﺮ ﻓﻮﻟﺖ‬
 
 
‫ أوم‬٤٢٠ ‫ﻣﻘﺎوﻣﺔ‬
 
‫ ﺑﯿﻜﻮ‬٢٢ ‫ﻣﻜﺜﻒ‬
 
VSS
 
 
VSS
 
 
 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
   
 
 
 
  
‫ﻧﺨﺘﺎر اﺳﻢ ﻟﻠﻤﺸﺮوع وﻧﻜﺘﺒﮫ‬
‫ھﻨﺎ‬
 
 
 
‫ھﻨﺎ ﻧﻜﺘﺐ ﻣﺴﺎر اﻟﻤﺸﺮوع‬
‫ﻧﺨﺘﺎر ﻧﻮع اﻟﺒﻚ‬
‫اﻟﻤﺴﺘﺨﺪم ﻓﻲ‬
‫اﻟﻤﺸﺮوع‬

‫اي اﻟﻤﻜﺎن اﻟﺬي ﺳﯿﺤﻔﻆ‬
‫ﻓﯿﮫ‬

‫اﺧﺘﺮ ھﺬا اﻻﺧﺘﯿﺎر‬
‫وھﻮ ﯾﺸﯿﺮ ﻟﻨﻮع‬
‫اﻟﻤﺆﻗﺖ‬
‫ھﻨﺎ ﻧﻜﺘﺐ ﺗﺮدد اﻟﻤﺆﻗﺖ‬
‫اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻣﺸﺮوﻋﻨﺎ ھﺬا‬
‫اﻛﺘﺒﮫ ﺑﻨﻔﺲ اﻟﻘﯿﻢ اﻟﻤﻮﺟﻮدة‬
1.04 ‫ھﻨﺎ‬
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  
 
 
 
‫ ھﺬه ھﻲ اﻷواﻣﺮ أو ﻣﺎ ﯾﺴﻤﻰ ﺑﺎﻟﻜﻮد‬: ‫ﻣﺮاﺟﻌﺔ‬
‫وﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ ﻧﺴﻤﯿﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ‬
 
 
 
 
 
 
 
void main()
 
{
TRISB=0B00000000;
PORTB=0B10100011;
}
 
 
 
 
 
Ctrl+F9
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
 B7B0TRISB=0B00000000; 
B7B5B1B0PORTB=0B10100011;
B6B4B3B2
 
PORTB
1
0
1
0
0
0
1
1
B7
B6
B5
B4
B3
B2
B1
B0
‫ ﻟﻦ ﯾﻀﻲء‬B6 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﺳﻮف ﯾﻀﻲء‬B5 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﻟﻦ ﯾﻀﻲء‬B4 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﻟﻦ ﯾﻀﻲء‬B3 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﻟﻦ ﯾﻀﻲء‬B2 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﺳﻮف ﯾﻀﻲء‬B1 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬
‫ ﺳﻮف ﯾﻀﻲء‬B0 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬

‫ ﺳﻮف ﯾﻀﻲء‬B7 ‫اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ‬

 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

BitsTRISB=0B00000000;
 TRISB=0;
 PORTB=0B10100011;
a30xPORTB=0XA3;
 10100011
  
 
‫ﯾﻤﻜﻦ ﻛﺘﺎﺑﺘﮭﺎ ھﻜﺬا‬
TRISB=0B00000000;
TRISB=0;
 
 
 
PORTB=0B10100011;
‫ﯾﻤﻜﻦ ﻛﺘﺎﺑﺘﮭﺎ ھﻜﺬا‬
PORTB=0XA3;
 
 
 


void main()
{
TRISB=0;
PORTB=0XA3;
}
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 Mikroc
  binary   decimal        
 hexadecimal
 
 10100011
 QConvertor
‫اﺿﻐﻂ ھﻨﺎ‬
 
 binary
 
 
 


 


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 B7B0

 
 
‫ ﻓﻮﻟﺖ‬٩ ‫ﺑﻄﺎرﯾﺔ‬
 
7805
VDD ‫ ﻓﻮﻟﺖ‬٥+
 
VDD
‫ﻛﯿﻠﻮ‬١٠ ‫ﻣﻘﺎوﻣﺔ‬
VSS ‫ﺻﻔﺮ ﻓﻮﻟﺖ‬
 
 
‫ أوم‬٤٢٠ ‫ﻣﻘﺎوﻣﺔ‬
 
‫ ﺑﯿﻜﻮ‬٢٢ ‫ﻣﻜﺜﻒ‬
 
VSS
VSS
 
 
 
 

 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

B7 B0 PORTB
 TRISB
 TRISB=0;

 PORTB=0XFF; PORTB=0B11111111;
 PORTB=0;

   

 

 
Void main()
{
TRISB=0;
‫اﻟﺒﻚ ﺳﯿﻨﻔﺬ اﻷﻣﺮ ﺛﻢ اﻟﺬي ﯾﻠﯿﮫ ﺛﻢ‬
‫اﻟﺬي ﯾﻠﯿﮫ وھﻜﺬا ﻓﻲ ﻣﻨﺘﮭﻰ‬
.. ‫اﻟﺴﺮﻋﺔ‬
PORTB=0XFF;
PORTB=0;
}
PORTB=0XFF;PORTB=0;

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 

 

Delay_ms(500);
 
Delay_ms(250);
 
Void main()
{
TRISB=0;
PORTB=0xFF;
delay_ms(1000);
PORTB=0;
}
 delay_ms(500);
                 

 
                  
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
LOOP:
…………………..
…………………..
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي‬
. ‫ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار‬
…………………..
goto LOOP;
 
void main()
{
 TRISB=0;
Loop:
PORTB=0XFF;
delay_ms(1000);
PORTB=0;
Delay_ms(1000);
 goto loop;
‫ ﻛﺨﺮج‬PortB ‫ھﺬا اﻷﻣﺮ ﺳﯿﻮﻇﻒ ﺟﻤﯿﻞ اﻟﺮﺟﻮل ﻓﻲ‬
‫ھﺬا ھﻮ اﻟﻌﻨﻮان اﻟﺬي ﺳﯿﺮﺟﻊ إﻟﯿﮫ اﻟﺒﻚ ﻣﺮة أﺧﺮى‬
‫ھﺬا اﻷﻣﺮ ﺳﯿﺠﻌﻞ ﺟﻤﯿﻊ اﻟﻠﯿﺪات ﺗﻀﻲء‬
‫ھﺬا اﻷﻣﺮ ﺳﯿﺠﻌﻞ اﻟﺒﻚ ﯾﻨﺘﻈﺮ ﻟﻤﺪة ﺛﺎﻧﯿﺔ ﺛﻢ ﯾﻨﻔﺬ اﻷﻣﺮ اﻟﺬي ﯾﻠﯿﮫ‬
‫ھﺬا اﻷﻣﺮ ﺳﯿﺠﻌﻞ ﺟﻤﯿﻊ اﻟﻠﯿﺪات ﺗﻄﻔﺊ‬
‫ھﺬا اﻷﻣﺮ ﺳﯿﺠﻌﻞ اﻟﺒﻚ ﯾﻨﺘﻈﺮ ﻟﻤﺪة ﺛﺎﻧﯿﺔ ﺛﻢ ﯾﻨﻔﺬ اﻷﻣﺮ اﻟﺬي ﯾﻠﯿﮫ‬
‫ﻔﺬ اﻷواﻣﺮ اﻟﺘﻲ ﺑﻌﺪ اﻟﻌﻨﻮان اﻟﺬي‬
}

 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
PORTB=0;

 
Ahmad
 
 ahmad:
…………………..
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي‬
. ‫ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار‬
…………………..
…………………..
goto ahmad;
Syntax
 
enter
 
 void main()
 { TRISB=0;
 PORTB=0XFF;}
;
 enter
 void main()
 { TRISB=0;PORTB=0XFF;}


‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 void main() { TRISB=0;PORTB=0XFF;}
 
 
void main()
 { TRISB=0; Loop: PORTB=0XFF;delay_ms(1000);PORTB=0;
 Delay_ms(1000);Goto loop;}
 
void main(){TRISB=0; Loop: PORTB=0XFF;delay_ms(1000);PORTB=0;Delay_ms(1000);Goto loop;}
 

 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
 
                 

 
proteus   
 
 
 
 
 
 
 
          MikroC     






‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
{TRISB=0; PORTB=0;
loop:
PORTB=0B00000001; delay_ms(500);
// L0 ON
PORTB=0B00000011; delay_ms(500);
//L0,L1 ON
PORTB=0B00000111; delay_ms(500);
//L0,L1,L2 ON
PORTB=0B00001111; delay_ms(500);
//L0,L1,L2,L3 ON
PORTB=0B00011111; delay_ms(500);
//L0,L1,L2,L3,L4 ON
PORTB=0B00111111; delay_ms(500);
//L0,L1,L2,L3,L4,L5 ON
PORTB=0B01111111; delay_ms(500);
//L0,L1,L2,L3,L4,L5,L6 ON
PORTB=0B11111111; delay_ms(500);
// L0,L1,L2,L3,L4,L5,L6,L7 ON
PORTB=0B00000000; delay_ms(500);
// ALL LEDs OFF
PORTB=0B00011000; delay_ms(500); // L3,L4 ON
PORTB=0B00111100; delay_ms(500); //L2-L5 ON
PORTB=0B01111110; delay_ms(500); //L1-LS ON
PORTB=0B11111111; delay_ms(500); // ALL LEDs ON
PORTB=0B00000000; delay_ms(500); // ALL LEDs OFF
PORTB=0B11111111; delay_ms(500);
// ALL LEDs ON
PORTB=0B00000000; delay_ms(500);
// ALL LEDs OFF
PORTB=0B11111111; delay_ms(500);
// ALL LEDs ON
PORTB=0B00000000; delay_ms(500);
// ALL LEDs OFF
goto loop;}
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
loop
 L0 B0
B0L0 ON// 
 //
B2L1 B1
L2
 
               
             
 
 loop:
 
 
PORTB=0B00000001; delay_ms(500);
PORTB=0B00000011; delay_ms(500);
PORTB=0B00000111; delay_ms(500);
PORTB=0B00001111; delay_ms(500);
PORTB=0B00011111; delay_ms(500);
PORTB=0B00111111; delay_ms(500);
PORTB=0B01111111; delay_ms(500);
PORTB=0B11111111; delay_ms(500);
PORTB=0B00000000; delay_ms(500);
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  
PORTB=0B00011000; delay_ms(500);
PORTB=0B00111100; delay_ms(500);
PORTB=0B01111110; delay_ms(500);
PORTB=0B11111111; delay_ms(500);
PORTB=0B00000000; delay_ms(500);
  
PORTB=0B11111111; delay_ms(500);
PORTB=0B00000000; delay_ms(500);
PORTB=0B11111111; delay_ms(500);
PORTB=0B00000000; delay_ms(500);


 
/*
 */
/* program : led flasher
Programmed by : Ahmad samir fayed
*/
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 

 B7B0

 
 
‫ ﻓﻮﻟﺖ‬٩ ‫ﺑﻄﺎرﯾﺔ‬
 
7805
VDD ‫ ﻓﻮﻟﺖ‬٥+
 
VDD
‫ﻛﯿﻠﻮ‬١٠ ‫ﻣﻘﺎوﻣﺔ‬
VSS ‫ﺻﻔﺮ ﻓﻮﻟﺖ‬
 
 
‫ أوم‬٤٢٠ ‫ﻣﻘﺎوﻣﺔ‬
 
‫ ﺑﯿﻜﻮ‬٢٢ ‫ﻣﻜﺜﻒ‬
 
VSS
VSS
 
 
 
B7B0
TRISB=0;TRISB
PORTB=0XFF;PORTB=0B11111111; PORTB
٣٣
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
delay_ms(1000);
PORTB=0;
 

 

forfor
For(x=0;x<18;x++)
 {
‫ھﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﺘﻲ ﻧﺮﯾﺪ ﺗﻜﺮاراھﺎ‬
‫ ﻣﺮة ﺑﯿﻦ ھﺬﯾﻦ اﻟﻘﻮﺳﯿﻦ‬١٨
………………………
………………………..
}
 int x;x
  char int char x;
  
 
void main(){int x; TRISB=0;
for(x=0;x<18;x++)
{ PORTB=0XFF; delay_ms(1000); PORTB=0; ; delay_ms(1000);}
 }

٣٤

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 for
for 
 
for(x=0;x<50;x++)
 {
………………………
‫ھﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﺘﻲ ﻧﺮﯾﺪ ﺗﻜﺮاراھﺎ‬
‫ ﻣﺮة‬٥٠
………………………..
 }
  
 
X
 moh
void main(){char moh;
for(moh=0;moh<50;moh++) { PORTB=0XFF; delay_ms(1000);PORTB=0;
delay_ms(1000);}}
      for          
for
 moh for  
moh
  moh
           moh       
 moh  moh 
 moh   
٣٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
for(x=0;x<13;x++){ ……………………}
‫ھﻨﺎ ﻣﻜﺎن اﻟﻨﻘﺎط ﻧﻜﺘﺐ اﻷواﻣﺮ‬
‫اﻟﺘﻲ ﻧﺮﯾﺪ أن ﻧﻜﺮرھﺎ‬
‫ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ اﻟﺘﻲ ﺳﯿﺒﺪأ اﻟﺒﻚ اﻟﻌﺪ‬
‫ﻣﻨﮭﺎ ﺗﺴﺎوي ﺻﻔﺮ‬
‫ ﻓﺎﻟﺒﻚ ﺳﯿﻜﺮر اﻷواﻣﺮ‬.. ‫ھﺬا ھﻮ اﻟﺸﺮط‬
‫اﻟﺘﻲ ﺑﯿﻦ اﻟﻘﻮﺳﯿﻦ ﻃﺎﻟﻤﺎ ﺗﺤﻘﻖ ھﺬا اﻟﺸﺮط‬
‫ھﺬا ھﻮ اﻷﻣﺮ اﻟﺬي ﺳﯿﺠﻌﻞ اﻟﺒﻚ‬
‫ ﻛﻞ ﻣﺮة‬x ‫ﯾﺰﯾﺪ ﻣﻦ ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ‬
‫ﺳﯿﺰﯾﺪ واﺣﺪ‬
for
 for
 { }
 
1
for(y=0;y<12;y++) { ………….. }
 
2
for(ahmad=3;ahmad<18;ahmad++) { ………….. }
3
for(m=5;m<10;m++) { ………….. }
4
for(x=10;x>0;x--) { ………….. }
5
for(y=0;y<=12;y++) { ………….. }
x--
 
 >=<=
 
٣٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
1
for(y=0;y<12;y++) { ………….. }
Yy
 
yy
 
2
for(ahmad=3;ahmad<18;ahmad++) { ………….. }

   ahmad
ahmad
 
 
3
for(m=5;m<10;m++) { ………….. }
  
4 for(x=10;x>0;x--) { ………….. }

                

 
5
for(y=0;y<=12;y++) { ………….. }

  
                  
٣٧
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  
 

 
for(x=0;x<10;x++) { ………………….. }
for(x=1;x<=10;x++) { ………………….. }
for(x=10;x>0;x--) { ………………….. }
for(x=10;x>=1;x--) { ………………….. }
 


 delay_ms(1000); 
for(x=0;x<5;x++) delay_ms(1000);
 
for(x=0;x<5;x++) { delay_ms(1000);}
 enter
for(x=0;x<5;x++)
delay_ms(1000);
 
delay_ms(5000);for
 
٣٨
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
B0
 B7
void main()
{ TRISB=0;
  Loop:
PORTB=0XFF;delay_ms(1000);PORTB=0;Delay_ms(1000);
 Goto loop;}
 
void main()
 { TRISB=0;PORTB=0;
Loop:
 PORTB=~PORTB; delay_ms(1000);
 goto loop;}
 PORTB=~PORTB;
PORTB=0;     PORTB       
      PORTB        ~ 
 
   BITS     PORTB=~PORTB;       
   bits
٣٩
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
goto loop;   delay_ms(1000);          
       PORTB=~PORTB;    
 bitbit
 
LOOP:
…………………..
…………………..
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي‬
. ‫ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار‬
…………………..
goto LOOP;
 
while (1)
{
 ……………..
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي‬
. ‫ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار‬
……………..
}
 
for(;;)
{
 ……………..
……………..
}
٤٠
‫ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي‬
. ‫ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار‬
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
                 



 
switchB0
 A0

               


TRISAA0
 TRISA0
 01
TRISA=0B00011111;
TRISA=0B00011111;
 

٤١

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 A0
A0
 A5,A6,A7   PIC16F84A         
 
 
 
 
BITs
 TRISA 
 BITs
 A4
 
VDD +5V
 
10k

‫ﺳﻨﻮﺻﻠﮫ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬
VSS
SWITCH ‫ﻛﯿﻔﯿﺔ ﺗﻮﺻﯿﻞ اﻟﻤﻔﺘﺎح‬
٤٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

lowhiA0
 A0
 low hi

 A0
 A0
 if
void main()
{ TRISA=0B00011111;
TRISB=0;
loop:
If(PORTA.F0==0)
 
{
PORTB.F0=1;
}
‫ ﻋﻠﻰ أﻧﮭﺎ دﺧﻞ‬A0 ‫ﺗﻮﻇﯿﻒ اﻟﺮﺟﻞ‬
‫ إذن ﺳﻨﺠﻌﻞ‬B0 ‫ﻷن اﻟﻠﯿﺪ ﻣﻮﺻﻞ ﺑـ‬
‫ ﺧﺮج‬B0
‫ھﺬا اﻟﻌﻨﻮان ﺳﯿﺮﺟﻊ إﻟﯿﮫ اﻟﺒﻚ داﺋﻤﺎ ﻟﻨﺠﻌﻞ اﻟﺒﻚ ﯾﺨﺘﺒﺮ اﻟﻤﻔﺘﺎح‬
‫ﺑﺸﻜﻞ داﺋﻢ وﻟﯿﺲ ﻣﺮة واﺣﺪة ﻓﻘﻂ ﻓﻲ ﻣﻨﺘﮭﻰ اﻟﺴﺮﻋﺔ‬
‫ إذا ﺣﺪث ذﻟﻚ ﻧﻔﺬ‬.. ‫إﺧﺘﺒﺮ ھﻞ ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﯾﺘﺶ‬
IF ‫اﻷواﻣﺮ اﻟﺘﻲ ﺑﯿﻦ اﻟﻘﻮﺳﯿﻦ اﻟﺨﺎﺻﯿﻦ ﺑﺠﻤﻠﺔ‬
‫ وﻟﻜﻦ ھﺬا اﻷﻣﺮ ﻟﻦ ﯾﻨﻔﺬ إﻻ ﻓﻲ‬... ‫اﺟﻌﻞ اﻟﻠﯿﺪ ﯾﻀﻲء‬
‫ﺣﺎﻟﺔ ﺗﺤﻘﻖ اﻟﺸﺮط وھﻮ أن ﻧﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح‬
If(PORTA.F0==1)
{
PORTB.F0=0;
}
 Goto loop;
}
٤٣
‫ إذا ﺣﺪث ذﻟﻚ ﻧﻔﺬ‬.. ً‫اﺧﺘﺒﺮ ھﻞ اﻟﺴﻮﯾﺘﺶ ﻣﺤﺮارا‬
‫اﻷواﻣﺮ اﻟﺘﻲ ﺑﯿﻦ اﻟﻘﻮﺳﯿﻦ اﻟﺘﺎﻟﯿﯿﻦ‬
‫ وﻟﻜﻦ ھﺬا اﻷﻣﺮ ﻟﻦ ﯾﻨﻔﺬ إﻻ ﻓﻲ‬... ‫اﺟﻌﻞ اﻟﻠﯿﺪ ﯾﻨﻄﻔﺊ‬
‫ﺣﺎﻟﺔ ﺗﺤﻘﻖ اﻟﺸﺮط وھﻮ ان اﻟﻤﻔﺘﺎح ﻣﺤﺮر‬
‫ وذﻟﻚ ﻟﺘﺨﺘﺒﺮ ﻣﺮة أﺧﺮى ھﻞ اﻟﻤﻔﺘﺎح‬loop ‫اذھﺐ ﻟﻠﻌﻨﻮان‬
‫ﻣﺤﺮاراً أم ﻻ‬
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ifif
 ifIf
If () { }
 If(PORTA.F0==0) if
  A0
 PORTB.F0=1;
 IF
 
 elseif …. else IF
 else
If () { }
else {}
 
 void main() { TRISA=0B00011111; TRISB=0;
loop : if (PORTA.F0==0)
{
PORTB.F0=1;
else {
PORTB.F0=0;
 
}
goto loop; }
٤٤
}
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 enter
 FOR
 if
void main() { TRISA=0B00011111; TRISB=0;
 loop:
 if (PORTA.F0==0) PORTB.F0=1;
 else PORTB.F0=0;
goto loop;
}

syntax
 
               
         proteus   
 
 
 
 
 
 
 
٤٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

‫ﻓﻲ ھﺬا اﻟﻤﺴﺘﻄﯿﻞ ﺳﻨﺮﺳﻢ اﻟﺪاﺋﺮة‬
‫اﻻﻟﻜﺘﺮوﻧﯿﺔ اﻟﺘﻲ ﻧﺮﯾﺪ أن ﻧﺤﺎﻛﯿﮭﺎ‬
 
component mode
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ‬
٤٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
pick  p
 devices
 
 
 
 
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ‬
 
 
pic16f84a
 
 
 
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ‬
‫ﻣﺘﺘﺎﻟﯿﺘﯿﻦ‬
 
 
‫ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ‬
 
 
red resistor 470resistor 10kpush button
 led

٤٧

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ‬
‫ﻣﺘﺘﺎﻟﯿﺘﯿﻦ‬
‫ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ‬
‫‪‬‬
‫‪ ‬‬
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ‬
‫ﻣﺘﺘﺎﻟﯿﺘﯿﻦ‬
‫ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ‬
‫ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ‬
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ‬
‫ﻣﺘﺘﺎﻟﯿﺘﯿﻦ‬
‫‪٤٨‬‬
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

  pic16f84a
 
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس‬
‫ﻣﺮة واﺣﺪة ﻋﻠﻰ‬
‫اﻟﻌﻨﺼﺮ اﻟﺘﻲ‬
‫ﺗﺮﯾﺪ رﺳﻤﮫ‬
‫اﺿﻐﻂ ﺑﺎﻟﻤﺎوس‬
‫ﻣﺮﺗﯿﻦ ﻣﺘﺘﺎﻟﯿﺘﯿﻦ‬
‫ﺑﻌﺪ ﺗﺤﺪﯾﺪ اﻟﻤﻜﺎن‬
‫اﻟﻤﻨﺎﺳﺐ‬
 zoom
              
 
٤٩

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
                 
               

 A0
 
٥٠

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
                      VDD  VSS  
VDDPOWERGROUND
 
 
 
 
 
 
 
 
 
 

 
 
‫ھﻨﺎ وﺿﻌﻨﺎ ﻗﯿﻤﺔ ﺟﺪﯾﺪة‬
٤٧٠ ‫ﻟﻠﻤﻘﺎوﻣﺔ ﻓﺠﻌﻠﻨﺎھﺎ‬
‫ﻛﯿﻠﻮ ﺛﻢ‬١٠ ‫ﺑﺪﻻ ﻣﻦ‬
OK ‫ﻧﻀﻐﻂ‬
٥١
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
 
 
 
 

 


 E_6 hex
 E_6.hex browse
ok
 

‫اﺿﻐﻂ ھﻨﺎ ﻟﺘﺤﺪﯾﺪ‬
‫ﻣﻜﺎن ﻣﻠﻒ اﻟﮭﯿﻜﺲ‬
‫ﻋﻠﻰ ﺟﮭﺎزك‬
‫اﺿﻐﻂ ھﻨﺎ ﻟﺘﺤﺪﯾﺪ‬
‫ﺳﺮﻋﺔ اﻟﻤﺬﺑﺬب وھﻲ‬
‫ﻓﻲ ھﺬه اﻟﺘﺠﺮﺑﺔ‬
MHz١.٠٤
٥٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
‫اﺿﻐﻂ ھﻨﺎ‬
‫ﻟﺘﺸﻐﯿﻞ اﻟﺪاﺋﺮة‬
 
 
 

 

 vss vdd
 
 

 
٥٣

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
8 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
  Binary 
654321
 
00000000
00000001
 00000010
 00000011
 00000100
……………
………….
11111111
255
25511111111
59
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{ TRISB=0;
PORTB=0;delay_ms(1000);
Loop:
PORTB++;

Delay_ms(1000);
Goto loop;
}
 
TRISB=0;
PORTB=0;
portb++;
portb
 
 portb=0;
00000000
portbportb++;
 00000000
 00000001
60
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
goto loop;
00000001portb

 00000010
 portb
 00000011
 binary
PORTB++
 500 
 
Loop:
PORTB=0B00000000;
Delay_ms(1000);
PORTB=0B00000001;
Delay_ms(1000);
PORTB=0B00000010;
Delay_ms(1000);
……………..
‫……………… وھﻜﺬا إﻟﻰ‬
PORTB=0B11111111;
Delay_ms(1000);
Goto loop;
61
 

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

PORTB
PORTB=3;
 PORTB=0B00000011;
 
62

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
9 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
9
 
 b3,b2,b1,b0
  1001
 
 void main()
{ TRISB=0;
PORTB=0; delay_ms(1000);
while(1){
 
PORTB++;

 
delay_ms(1000);
if(portb==9) {portb=0; delay_ms(1000);}
 
}
 }
goto looploop
 5while(1)
if
 portb   portb
 
63
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
      b7  b0         
portb=0;trisb=0;
 
 b0 while(1)
       portb     portb++ 
 delay_ms(1000); b0
9 portb if
                Portb 
 while if 
b1 ( 10 2portb
       if        
11portbwhile
9  portb              
 if1001
 portb   portb=0;   If
        delay_ms(1000);     
portbwhile
 

64
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 if for : 
 void main(){
 char x;
  TRISB=0; PORTB=0;
  delay_ms(1000);
while(1){
for(x=0;x<9;x++){ PORTB++; delay_ms(1000);}
 portb=0;delay_ms(1000);
}
 }
for portb
forportbfor 
 portb 
 



 
 
65

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
10 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
               
3 30 12 9 6 3  
01
                 
 
‫ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ ﺻﻔﺮ ﺑﺎﻟﻌﺸﺮي‬
 00000
‫ ﺑﺎﻟﻌﺸﺮي‬3 ‫ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ‬
 00010
‫ ﺑﺎﻟﻌﺸﺮي‬6 ‫ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ‬
00110
‫ ﺑﺎﻟﻌﺸﺮي‬9 ‫ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ‬
 01001
 ………...
11110
‫ ﺑﺎﻟﻌﺸﺮي‬30 ‫ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ‬
 
void main()
{
char number; char x;
TRISB=0; PORTB=0;delay_ms(1000);
while (1) { for (x=1;x<=10;x++)
{
number=3*x;
portb=number;
 
delay_ms(1000);
portb=0; delay_ms(1000);
66
}
}
}
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

  
 
 while(1) 
 x=1     for        
 10forx=10
number=3*x;
portb=number;
 
delay_ms(1000);
 number    x=1       
 number=3*x; 3
 portb=number; 
           b1  b0     
 portb=3;portb=0b00000011;
 delay_ms(1000);
   6  3X2  number        x=2  
 portb=number;  portb 6 x=2 number=3*x;
xx=3
 x<=10  11 x 10
 portb=0 for for
fordelay_ms(1000) 
forfor
 
67
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

3
 
6
 
9
 
12
15
 
18
 
21
 
24
27
30
 
 
char8portb
B7B0PORTB
 number
void main()
{char x;
TRISB=0; PORTB=0;delay_ms(1000);
While (1) { for (x=1;x<=10;x++) { portb=3*x; delay_ms(1000); }
portb=0; delay_ms(1000);
}
}
8portb
 B7B05
68
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬



     for        
                
 
 
 1 byte = 8 bitsbyte8 bits8
  32 416
 char 8 
 int 16 unsigned short
 
‫اﻟﻨﻮع‬
char
(byte) ‫اﻟﺤﺠﻢ ﺑﺎﻟﺒﺎﯾﺖ‬
1
1
1
1
2
2
4
4
signed char
short
unsigned short
int
unsigned
long
unsigned long
‫اﻟﻤﺪى‬
0 .. 255
- 128 .. 127
- 128 .. 127
0 .. 255
-32768 .. 32767
0 .. 65535
-2147483648 .. 2147483647
0 .. 4294967295

Type
float
double
long double
Size in bytes
4
4
4
Range
±1.17549435082 * 10 .. ±6.80564774407 * 1038
±1.17549435082 * 10-38 .. ±6.80564774407 * 1038
±1.17549435082 * 10-38 .. ±6.80564774407 * 1038
-38

 2 
69
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 8 char
25511111111
255char
 255 255255
signed char
127 -128  
               
32.66
 

 

 ahmadchar
char ahmad;
 for; 
char x;
 x8
 x , y , z
 
Char x;
Char y;
Char z;
70
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
Char x,y,z;
 ,
void main()

 
 
71

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
11 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 


 7 segmetns  seven segment

 
  9 


 
 
 
 
 
 
7 segment ‫ﺑﻌﺾ أﺷﻜﺎل اﻟﺴﻔﻦ ﺳﯿﺠﻤﻨﺖ‬
72

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 common anode
 datasheet

 7447

 
 

 
73

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
12 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 
portb++
portb
portb
 void main()
{ TRISB=0;
PORTB=9; delay_ms(1000);
while(1){
 
PORTB--;

 
delay_ms(1000);
if(portb==0) {portb=9; delay_ms(1000);}
 
}
}
 
  portb portb--;
            9  portb   
portb--;89
 if portb
 9if
74
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
 
 
 
 
 
 
 delay_ms(1000);
  
 void main()
{ TRISB=0;
PORTB=9;
while(1){ delay_ms(1000);
 
 
}
}
 
 
 
PORTB--;
 
if(portb==0) { delay_ms(1000); portb=9;}
 
 
 
 
75
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
delay_ms(1000);
 

 
 
76

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
{char x; TRISB=0;
portb=9;
while(1){
for(x=10;x>0;x--)
{
delay_ms(1000);
portb--;
}
portb=9;
}
}
                    
 X 
X
 
 
77
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
 
{ TRISB=0;
 
while(1){
for(PORTB=9;PORTB>0;PORTB--)
 
{
 
delay_ms(1000);
 
}
}
}
 
 
PORTB
portbchar portb
 porta
1
 for
for(PORTB=9;PORTB>=0;PORTB--)

 
 for 
 portb=9 for
8  for
  portb Portb--
7  
78
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  Portb--
  portb
 forPortb
 char portb 
 255 
255portb
 for 
255portb 255
 254 portb for
 255
 7447

 255portb
 
 
79

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
 
{ TRISB=0;
 
while(1){
 
for(PORTB=9;PORTB>=0;PORTB--)
{
 
delay_ms(1000);
}
 
if(portb==0) portb=10;
 
}
 
 
}

 
 if   255          portb   
 portb-- portb=10
  9  portb
 10
 portb=10
 
 
 
 
80
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
 
{ TRISB=0;
 
while(1){
 
for(PORTB=9;PORTB>0;PORTB--)
{
delay_ms(1000);
}
}
 
 
 
 
 
}
 9 9 
 if
 for
 portb=9
8
 1 portb
whileforfor 
 portb  for for

 
81
for
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{ TRISB=0;
 
while(1){
 
for(PORTB=9;PORTB>0;PORTB--)
 
{
 
delay_ms(1000);
}
 
delay_ms(1000);
}
 
}
 
forportb

 while(1)
 
 

 


 
  
  
 
82
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
13 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 
 
 
 
 
 

 26 24
  
void main()
{ TRISB=0;portb=2;
while(1){
delay_ms(1000);
portb++;
portb++;
if (portb==8){ delay_ms(1000);portb=2;}
}
}
83
 

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
portb++
 


 for for 
 
 Portb2
portb=portb+2;
 
2Portb
 90Portb
portb=portb+90;
 
 
void main()
 
{ TRISB=0;portb=2;
 
while(1){
delay_ms(1000);
portb=portb+2;
if (portb==8){ delay_ms(1000);portb=2;}
}
}
84
 
 

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
portbporta=3;
 
portb=porta+2;
2portaportb
Portaportb
    portb=portb+2;     3       
       portb    Portb    
 portb Portb
 2Portb
portb=portb+1portb++
 portb
x=x+6 x 
 
 
85

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
14 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
 28
 
 
 
 
 
Portb=portb+2
portb=portb-2
void main()
{ TRISB=0;portb=8;
while(1){
delay_ms(1000);
portb=portb-2;
if (portb==2){ delay_ms(1000);portb=8;}
}
}
86
 

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
portb=portb-2
portb-=2;
 portb=portb+2
Portb+=2;
 portb=portb*5;5
Portb*=5


 mm
yy  12350
  10
mm=(350+12-yy)/10;
 

 10
mm=350+12-yy/10;
 
  10 yy

 


 
87
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
15 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 
 
 
 
 
 
 
 
 
 
 

if
 
if(porta.f0==0) {  }
if(porta.f1==0) {  }
88
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 portb++ portb
 portb
                
 portb     portb--        portb
 
 portb-- portb++ 





             



 

89

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
 {
TRISB=0; TRISA=0XFF;
PORTB=0;
while(1){
 
if(porta.f0==0) { portb++; delay_ms(500);}
if(porta.f1==0){portb--; delay_ms(500);}

}
}
 MCLR
 
 
 
 
active lowMCLR
 MCLR

MCLRrestart

MCLR
90
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
 
 
 
 
 
 
push buttonMCLR

 

MCLR
5MCLR
 
     portb         
 portb MCLR
 portb=0;
MCLR
 A2
if(porta.f2==0){portb=0; delay_ms(500);}
91
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
16 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
              
 90
 
 
 
 
 
 
               

                
 5
5
 


 
 
92

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
 
 {
TRISB=0; TRISA=0XFF;
 
PORTB=0;
 
while(1){
 
if(porta.f0==0) {
 
portb++;
 
if(portb==10) portb=0;
 
delay_ms(500);
 
}
 
if(porta.f1==0) {
portb--;
}
}
 
if(portb==255) portb=9;
 
delay_ms(500);
 
}
 
 
 


          
93
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
portb++portbif
 portbif 
 if(portb==10) portb=0;
delay_ms(500); if 
 portb++ portb
ifportb++delay_ms(500); 
  )
              
 portb A1
255255
 


  255 portb--  Portb
255Portb
 
 if(portb==255) portb=9;
 
portb--if
portbportb--255portb
 
 if(portb==0) portb=9;
portb--;
94
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

     if(porta.f1==0)       A1  
 portb         portb   
 portb--
 8
 8
 
 
95

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
if(porta.f1==0) {
if(portb==0) portb=10;
 
portb--;
 
delay_ms(500);
 
}
 
 A1 portb
portb--portb 


255portbA0if
 Ifportb++
if(porta.f0==0) {
if(portb==9) portb=255;
portb++;
delay_ms(500);
 
}
if(porta.f1==0) {
if(portb==0) portb=10;
portb--;
delay_ms(500);
}
 
 
 
 
 
 
   

 
96
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
  ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
B0A0
  B1   
 
‫ﺑﻌﺪ اﻟﻀﻐﻂ ﻣﺮة واﺣﺪة ﻋﻠﻰ اﻟﺴﻮﯾﺘﺶ‬
‫ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻮﯾﺘﺶ‬
‫ﻣﺮة أﺧﺮى‬
‫ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻮﯾﺘﺶ‬
‫ﻣﺮة أﺧﺮى‬
‫وھﻜﺬا‬
 
 
 
 
 
 
if
B0B0
 B1
 if 
if
  
 
 
٩٧
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
If(porta.f0==0) { portb.f0=1;
……………..
………………
}
 b1
 if
ifif
ifb0if
b1
loop:
If(porta.f0==0){ portb.f0=1; delay_ms(500);
If(porta.f0==0) {portb.f1=1; }
………
}
goto loop;

           b0       
b1
  
   b0
          if       
  
٩٨
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 if if
   goto loop; 
b1b0 if
 if
loop:
If(porta.f0==0){ portb.f0=1;
a1:
If(porta.f0==0) {portb.f1=1;}
goto a1;
}
goto loop;

 
 loop:     goto loop;
if

 b0
 goto a1;

 b1
 b0 , b1 , b2 , b3 
 
 
٩٩
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
loop: delay_ms(500); portb=0;
If(porta.f0==0)
{ portb.f0=1;
a1: If(porta.f0==0) {portb.f1=1;
a2: If(porta.f0==0) {portb.f2=1;
a3:
If(porta.f0==0) {portb.f3=1; goto loop;}
goto a3; }
goto a2;}
goto a1;
}
goto loop;
 

goto loop; if

 b0
goto a1;
 goto a2;  b1
 b2
 b3 goto a3;
loop:portb=0; goto loop; 
 

١٠٠
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
b3delay_ms(500);
portb=0;
 
  b7b0 
 

 

              

 while
 while
ifwhile
 


 while
While ( )
{
 
 
}
١٠١
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  while
  
B0A0

 
 while
while(porta.f0==0) {
portb.f0=1;
delay_ms(150);
 
 
portb.f0=0;
 
delay_ms(150);
 
}
 
 trisbtrisavoid main()
        B0          
 A0

 
 

 
 
 
١٠٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
               
 
mm=1;
 
while(mm<6) {
 
if(porta.f0==0) { portb.f0=1; delay_ms(500);
portb.f0=0; delay_ms(500);
mm++;
}
}
 
 
 
 
 
 mm=1;  mm
 mm while 
 ifwhile
if
while
mmwhile
 while               
A0mm
  B0 A0
    mm    mm        
while 
 mm while
mm
١٠٣
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 while mm
 whilemm
 while 
while
 

 
While(porta.f0==1){ }
 
 
 
 while
 
  while
    while       
A0
             –   


 
while  A0 
 
While(porta.f0==1){ }
١٠٤

loop:
if(porta.f0==1) goto loop;
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 while
 B0 A0 
B1
 

 
void main() {trisa.f0=1; trisb=0; portb=0;
 
while(1) { while(porta.f0==1) { }
 
portb=0b00000001; delay_ms(100);
while(porta.f0==1) { }
 
portb=0b00000011; delay_ms(100);
 
while(porta.f0==1) { }
 
portb=0b00000111; delay_ms(100);
while(porta.f0==1) { }
 
portb=0b00001111; delay_ms(100);
 
while(porta.f0==1) { }
 
portb=0b00011111; delay_ms(100);
 
while(porta.f0==1) { }
portb=0b00111111; delay_ms(100);
 
while(porta.f0==1) { }
 
portb=0b01111111; delay_ms(100);
 
while(porta.f0==1) { }
portb=0b11111111; delay_ms(100);
١٠٥
}
}
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 



  
 


                

 
void main() {char x; trisa.f0=1; trisb=0; portb=0;
while(1) { if(porta.f0==0) x++ ; delay_ms(100);
if(x==0) portb=0;
 
if(x==1) portb=0b00000001;
 
if(x==2) portb=0b00000011;
 
if(x==3) portb=0b00000111;
if(x==4) portb=0b00001111;
 
if(x==5) portb=0b00011111;
 
if(x==6) portb=0b00111111;
 
if(x==7) portb=0b01111111;
if(x==8) portb=0b11111111;
١٠٦
 
 
if(x==9) x=0;
 
} }
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
   x             
while(1)

x
x
    while(1)         portb=0;
   x++;    x       
b0if(x==1)
b0,b1
       x          
                
xportb
x
 
if(x==9) x=0;
 
١٠٧

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
 

              

              

 
 
               
  
 
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬

‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
‫ﺑﻌﺪ ﻧﺼﻒ ﺛﺎﻧﯿﺔ‬
 portb=0b00000001;
     portb=0b00000010;   delay_ms(500);     


 
١٠٨

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{ trisb=0;
 
ahmad:
 
Portb=0b00000001;
delay_ms(500);
 
for(x=0;x<8;x++){
portb=portb<<1;
 
delay_ms(500);
 
}
 
goto ahmad;
 
}
  trisb=0;       void main()     
 ahmad: B7 B0
goto ahmad;
 while(1) 
 for(;;)
for     B0     portb=0b00000001;   
             
   for     portb=portb<<1;
delay_ms(500);
 
 portb=portb<<1; 
portb              portb 
 
 
١٠٩

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
‫ ﻗﺒﻞ ﻋﻤﻠﯿﺔ اﻹزاﺣﺔ ﻟﻠﯿﺴﺎر‬portb ‫ﺷﻜﻞ‬
B0
B7
B6
B5
B4
B3
B2
B1
0
0
0
0
0
0
0
 1
0
0
0
0
0
0
1
 0
 
‫ ﺑﻌﺪ ﻋﻤﻠﯿﺔ اﻹزاﺣﺔ ﻟﻠﯿﺴﺎر‬portb ‫ﺷﻜﻞ‬
 
     PORTB         B7   
B5B7B6B6
B0B1B0B6
 B7 B0
 B0
 Bits
 portb=portb<<2 ;
               
  00000100portb
portbPortbportb=portb<<1; 
 portb=portb+3; 
 portbportb
 >> << 

 portb=portb<<1;  portb=portb<<2; 
 
١١٠
0
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  

  portb=portb<<1;      portb=0b00100111;
  
 bits      0b01001110;        portb
 <<
 
 led=0b00000110;       led      
    0b00000011   led    led>>1;   
   B7  b3 B2      B1  B0  portb=led;
 portb=0b00000011;ledportb
>>
   <<             
 
 
char led;
led=0b00000110;
 
led=led>>1;
 
portb=led;
 
               
 char led = ob00000110;  00000110 
 
١١١
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
         portb=led;  led=led>>1;  
 portb=led>>1;

              
  led led=led>>1;
 GG GG
led PORTB 0B00000011
 0b00000011portb 
 portb portb=led>>1;
 led
led
portb  0b00000110
 led 
 led
portb=led>>1;led=0b00000110;
  GG=led;
GGled
 0b00000110 led
 portb=led>>1;0b00000011portb
 
 
 
١١٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 led portb=led>>1; 
 portb=0b00000110>>1 ; 
  led=0b00000110 ;
          led  
 portb=0b00000011;
 
x=x>>2;x=0b11000111; 
0b00110001x
 0b01100011  x
 0b00110001
 
 bb=0b00000001 ; 
 0b10000000 bb

  
 
 
 
 
 
 
١١٣
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 A0
  
void main()
 
{
 
trisa.f0=1; trisb=0;
 
portb=0b00000001;
while(1) {
 
if(porta.f0==0) { delay_ms(100); portb=portb<<1;}
 
}
}
 portb=0b00000001;  B0
whileif A0
              
      portb=portb<<1;     portb  
   if delay_ms(100);
 

   B0   B1    portb     
B2
١١٤
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 B7 
 

     0b00000000       portb 
 0b00000000
portb=0b10000000;    if 
portb
 0b00000001
void main()
 
{
 
trisa.f0=1; trisb=0;
portb=0b00000001;
 
while(1) {
if(porta.f0==0) { delay_ms(100); portb=portb<<1;}
if(portb=0b10000000) { while(porta.f0==1){ } portb=0b00000001; delay_ms(100)}
}
}
 B7  portb 
  
           while    
 { }     while


١١٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
while
while
 
portb=0b00000001; 
 while(1) 
 
                 
while

 A0
void main()
{
trisa.f0=1; trisb=0;
 
 
portb=0b00000001;
 
while(1) {
 
if(porta.f0==0) { while(porta.f0==0){ } portb=portb<<1;}
 
if(portb=0b10000000) { while(porta.f0==1){ } portb=0b00000001; while(porta.f0==0){ } }
}
}
 
 
 B7
B0while(porta.f0==1){ }
 
 while(porta.f0==0){ }
١١٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
while
 
delay

  
 
 while
 
while
  
 
١١٧

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
20 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 


 A1A0
 
void main()
 
{
 
trisa.f0=1; trisa.f1=1; trisb=0;
portb=0b00000001;
 
while(1) {
 
if(porta.f0==0) { delay_ms(100); portb=portb<<1;}
 
if(porta.f1==0) { delay_ms(100); portb=portb>>1;}
}
}
 
 
A0
 A1
 
 
 

 
١١٨
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
               
 A1   0B00000001 PORTB
 A1  A0             

 
    0b00000001  portb    if      
 0b10000000 portbA1
0b10000000portb
 0b000000001portb A0
void main()
 
{
 
trisa.f0=1; trisa.f1=1; trisb=0;
portb=0b00000001;
 
while(1) {
 
if(porta.f0==0) { portb=portb<<1; delay_ms(100); }
 
if(porta.f1==0) { portb=portb>>1; delay_ms(100); }
 
if(portb=0b00000001) {if(porta.f1=0) {portb=0b10000000; delay_ms(100); }
 
if(portb=0b10000000) { if(porta.f0=0) { portb=0b00000001; delay_ms(100); }
 
}
}
 
 
١١٩
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 portb=0b00000001  
ififif(portb=0b00000001)if


 A1
if(porta.f1==0) { portb=portb>>1; delay_ms(100); }
0b00000000   portb            
 
void main() {
trisa.f0=1; trisa.f1=1; trisb=0;
portb=0b00000001;
 
while(1) {
 
if(porta.f0==0) { portb=portb<<1; delay_ms(100); }
 
delay_ms(100); }
if(porta.f1==0) { portb=portb>>1;

loop:
if(portb=0b00000001) {if(porta.f1=0) {portb=0b10000000; delay_ms(100); }
if(porta.f0=0) {portb=0b00000010; delay_ms(100); }
goto loop;
}
if(portb=0b10000000) {if(porta.f1=0) {portb=0b01000000; delay_ms(100); }
if(porta.f0=0) { portb=0b00000001; delay_ms(100); }
goto loop;
}
}
}
١٢٠
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
(loop)  portb=0b00000001
 portb
portb=0b00000001
  portb
    A1        if  
 if 0B100000000 PORTB
0b00000010 portbA0
 if
 goto loop;
 portb=0b10000000 

 
١٢١

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
  
   
 BleeperBuzzer
  
 
  
  
  25 
 5000 
 Relay

 
 Buzzer
 Buzzer

  level mode Buzzer
Beeper
 Buzzer level Buzzer 
frequency mode 
١٢٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
   Buzzer  Buzzer
 
              Buzzer 
 datasheet
 
 
 
 
 
   Buzzer 

 
 
‫اﻧﺘﺒﮫ ﻟﻘﻄﺒﯿﺔ‬
‫ أﺛﻨﺎء‬Buzzer ‫اﻟـ‬
‫اﻟﺘﻮﺻﯿﻞ‬
 
 
 
 
Buzzer
 A0
 Porta.f0=1;
١٢٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
Buzzer
 A0
 Porta.f0=0;
         Buzzer     

 


   
B7B0
A0 BuzzerA1
void main()
 
{
 
trisa.f0=1; trisa.f1=0; trisb=0;
portb=0;
while(1) {
if(porta.f1==0) {
porta.f0=1;
Buzzer‫ﻗﻢ ﺑﺘﺸﻐﯿﻞ اﻟـ‬
 
‫وﺑﺎﻟﺘﺎﻟﻲ ﺳﻨﺴﻤﻊ ﺻﻮت‬
‫اﻟﺼﺎﻓﺮة‬
 
// Buzzer ON
 
portb++;
while(porta.f1==0){ }
porta.f0=0;
}
}
}
١٢٧
 
// wait
// Buzzer OFF
‫اﻧﺘﻈﺮ إﻟﻰ أن ﯾﺘﻢ رﻓﻊ اﻟﯿﺪ‬
‫ﻣﻦ ﻋﻠﻰ اﻟﺴﻮﯾﺘﺶ ﻓﺈذا‬
‫ﺣﺪث ذﻟﻚ اﻧﺘﻘﻞ ﻟﻸﻣﺮ‬
‫اﻟﺘﺎﻟﻲ وھﻮ اﻷﻣﺮ اﻟﺬي‬
Buzzer ‫ﺳﯿﻄﻔﺊ اﻟـ‬
‫وﺑﺎﻟﺘﺎﻟﻲ ﺳﯿﺘﻮﻗﻒ اﻟﺼﻮت‬
 
 
 
 BleeperBuzzer
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 Buzzer  
Buzzer
   Buzzer 
 
               
 transistor as a switch
 
 
 
 
 
 
 
 
 

 RB
     Base        
collector             
Buzzer emitter
 Buzzeropen circuit
١٢٨
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
Buzzer
 Buzzer
 porta.f0=1;
 porta.f0=0;Buzzer
   

Base

 
 porta.f0=1; 
 
  porta.f0=0;
١٢٩
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  Buzzer
 
MOSFET
 
 
 
 
 
 
 
 
 
 
     A0        
 Buzzer          porta.f0=1;
open circuitporta.f0=0;
 Buzzer 
 
MOSFETBJT
 
١٣٠

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
Buzzer speaker 
piezo transducerfrequency mode Buzzer
 
 speakerloudspeaker
speaker ‫ﺑﻌﺾ أﺷﻜﺎل اﻟـ‬
 
 
 
 
 


 
  
 
 portb.f0=0;  delay_ms(5) ; portb.f0=1; 
 while(1) {
}  delay_ms(5);

 
 
١٣١
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 speaker 
 piezo transducer
   Buzzer
              
 
 portb.f0=1; delay_ms(5) ;
Hi
portb.f0=0; delay_ms(5); 
low
 
   
   
  
 
 
 
 
 10 
 

 

 
 
١٣٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
 
 
 
 B0
 
void main()
{ trisb=0;
portb=0;
 
while(1) {
portb.f0=1; delay_ms(3);
 
portb.f0=0; delay_ms(3);
 
}
 
}
 
B0
 
 
١٣٣

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
B0
while(1) {
portb.f0=1; delay_ms(4);
portb.f0=0; delay_ms(1);
}
B0
 
 


 
 
                 
 

 
 B0



  10 x 10 0.01 


 
١٣٤
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
while(1) {
portb.f0=1; delay_ms(5);
 
portb.f0=0; delay_ms(5);
 
}
 
                  
   
 
 
 
while(1) {
portb.f0=1; delay_ms(8);
portb.f0=0; delay_ms(2);
 
 
 
}
 
while(1) {
portb.f0=1; delay_ms(6);
portb.f0=0; delay_ms(4);
}
 
 
 
 
 
 

١٣٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
delay_ms
 
  x 

 um
delay_us(1);
 

 
 
  10000   
 
  
 = x

 
while(1) {
 
portb.f0=1; delay_us(50);
portb.f0=0; delay_us(50);
}
 
 
 
 
 
١٣٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 B0
while(1) {
 
portb.f0=1; delay_us(5);
 
portb.f0=0; delay_us(5);
 
}
 
 100 KHz
×

 
 
 
   
 

 
 Buzzer

coupling capacitor 
 headphone
 
 
 
١٣٧
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
void main()
 
{ trisb=0; portb=0;
while(1) {
 
portb.f0=1; delay_ms(1);
 
portb.f0=0; delay_ms(1);
 
}
 
}
 
 
 
               
 
void main()
 
{ trisb=0; portb=0;
 
while(1) {
}
}
١٣٨
portb.f0=1; delay_ms(2);
 
portb.f0=0; delay_ms(1);
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
   
 proteus
 delay_us
void main()
 
{ trisb=0; portb=0;
 
while(1) {
portb.f0=1; delay_us(100);
 
portb.f0=0; delay_ms(100);
 
}
 
}


 
             
 while(1) { }
 for
void main()
 
{ int x;
 
trisb=0; portb=0;
 
for(x=0;x<2000;x++){
portb.f0=1; delay_us(100);
portb.f0=0; delay_ms(100);
}
}
١٣٩
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 for
 intchar
 
 for
 x

   
 
 
delay_us( ) 

 delay
 
 

 
 
  
 for  
  
١٤٠
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main()
 
{ int x;
 
trisb=0; portb=0;
while(1){
for(x=0;x<300;x++){ portb.f0=1; delay_us(700);
portb.f0=0; delay_us(700);}
for(x=0;x<300;x++){ portb.f0=1; delay_us(750);
portb.f0=0; delay_us(750);}
for(x=0;x<250;x++){ portb.f0=1; delay_us(800);
portb.f0=0; delay_us(800);}
for(x=0;x<220;x++){ portb.f0=1; delay_us(750);
portb.f0=0; delay_us(750);}
for(x=0;x<400;x++){ portb.f0=1; delay_us(700);
portb.f0=0; delay_us(700);}
for(x=0;x<420;x++){ portb.f0=1; delay_us(600);
portb.f0=0; delay_us(600);}
for(x=0;x<350;x++){ portb.f0=1; delay_us(650);
portb.f0=0; delay_us(650);}
for(x=0;x<320;x++){ portb.f0=1; delay_us(650);
portb.f0=0; delay_us(650);}
for(x=0;x<300;x++){ portb.f0=1; delay_us(700);
portb.f0=0; delay_us(700);}
}
}
١٤١
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
         for        
     
   


                 


 
 
 


 
   x   delay_ms(x); 
        while(1)      
 x++;
void main( )
{ int x;
trisb=0;
portb=0;
 
while(1){ portb.f0=1; delay_us(x);
 
portb.f0=0; delay_us(x);
 
x++;
}
}
١٤٢
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
      x          
       delay_us(2)      delay_us(1)
 



 
   
 
 
 delay_us(1); 
 for x
 
for(y=0;y<x;y++) delay_us(1);
 x 
 for
for(y=0;y<15;y++) {
‫ ﻣﺮة‬١٥ ‫ﻫﻨﺎ ﺳﻨﻜﺘﺐ اﻷواﻣﺮ ﺳﺘﻜﺮر‬
}
 
 
 
 { }
١٤٣
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
xx
x x
 x
 
for(y=0;y<x;y++) delay_us(1);
 
 
void main( )
{ int x;
trisb=0;
 
portb=0;
 
while(1){ portb.f0=1; delay_us(x);
portb.f0=0; delay_us(x);
x++;
}
 
 
}
 
void main( )
{ int x,y;
trisb=0;
portb=0;
while(1){ portb.f0=1; for(y=0;y<x;y++) delay_us(1);
portb.f0=0; for(y=0;y<x;y++) delay_us(1);
x++;
}
}
 
 
 
 
 
 
  
for 
   x++;  x   
١٤٤
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
delay_us( )
              
delay_us(1)
 
              Oscillators   


cycles

 
    
RC Oscillator
              
 Proteus
pic16f84a 

 for if
 Assembly languge
             

                 
١٤٥
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
                 
 
 

 
CRRC Oscillator 
     
 
 Crystal oscillator 
 
 
 
 
‫ﺑﻌﺾ أﺷﻜﺎل اﻟﻜﺮﯾﺴﺘﺎل‬
 

 RC oscillator

 
_RC_OSC  
_XT_OSC  
_HS_OSC  
 
١٤٦
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 RC oscillator _RC_OSC 
 200_XT_OSC 
 4
 254_HS_OSC 
 
 20
 20 000 000 



 _HS_OSC 
 
   
 Default
 HSXTRC
 
 
 RC OSC
 CR
 =
 
. × ×
 
 
١٤٧
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
              
 
 
 
 
3.3 MHz
 22 pF
3.3 K
2.3 MHz
 22 pF
4.7 K
1.08 MHz
 22 pF
10 K
2.4 MHz
 30 pF
3.3 K
1.7 MHz
 30 pF
4.7 K
0.793 MHz
 30 pF
10 K
 1.08MHz
  RC
 OSC1 
 

RC OSCILLATOR
   
 OSC2OSC1
 
 
 DatasheetOSC1,OSC2
 pin diagram
OSC1,OSC2
 
١٤٨

‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 pic16f84a 
OSC1 
 OSC2
 
 


 


 
 HSXTCRYSTAL MODE   
 
MODE
 
 
XT
100 KHz
100-150 pF
XT
200 KHz
22-68 pF
XT
2 MHz
15-33 pF
XT
4 MHz
15-33 pF
HS
 4 MHz
15-33 pF
HS
8 MHz
15-33 pF
HS
10 MHz
15-33 pF
HS
20 MHz
15-33 pF

15-33Pf
 15-33pF 
   
 pic16f84 datasheet
١٤٩
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
 
 
 
 
 
 
ceramic resonator

OSC1,OSC2

 
         resonator  
  _XT_OSC         HS  XT  mode
) 
  _HS_OSC                resonator
 4resonato
 
 OSC2OSC1
Resonators ‫ﺑﻌﺾ أﺷﻜﺎل اﻟـ‬
١٥٠
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 

 
 
 
 
 
 
 
 4MHz crystal
 _HS_OSC_XT_OSC
void main(){ int x; trisb=0; portb=0;
 
while(1){
for(x=0;x<400;x++){ portb.f0=1;
portb.f0=0;
for(x=0;x<450;x++){ portb.f0=1;
portb.f0=0;
}
١٥١
}
delay_us(750);
 
delay_us(800);}
 
delay_us(500);
 
delay_us(750);}
 
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
 
 
void main(){ int x; trisb=0; portb=0;
 
while(1){
for(x=0;x<400;x++){ portb.f0=1;
portb.f0=0;
for(x=0;x<450;x++){ portb.f0=1;
portb.f0=0;
}
delay_us(450);
 
delay_us(480);}
 
delay_us(350);
 
delay_us(450);}
 
}
 
 

 
for(y=0;y<x;y++) delay_us(1);
 
              
 
 
 
 
 
١٥٢
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{ int x,y;
trisb=0;
portb=0;
while(1){
 
for(x=1;x<300;x++){
portb.f0=1;
for(y=0;y<x;y++)delay_us(10);
portb.f0=0; for(y=0;y<x;y++)delay_us(10);
}
}
}
 
 
 
 
 
 while(1)for
         for        
 portb.f0=1; x=1
 x for(y=0;y<x;y++)delay_us(10);
         for      
 portb.f0=0;
forx
 portb.f0=1;
 for(y=0;y<x;y++)delay_us(10);
 for   x
 portb.f0=0; 
 for  x   
 
 
١٥٣
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{ int x,y;
 
trisb=0;
portb=0;
while(1){
 
 
for(x=250;x>0;x--){
portb.f0=1;
for(y=0;y<x;y++)delay_us(5);
portb.f0=0;
for(y=0;y<x;y++)delay_us(5);
portb.f0=1;
for(y=0;y<x;y++)delay_us(10);
}
}
 
 
 
 
}
 x

 
 
 
void main()
{ int x,y;
trisb=0;
portb=0;
while(1){
 
for(x=0;x<50;x++){
portb.f0=1;
for(y=0;y<x;y++)delay_us(10);
portb.f0=0; for(y=0;y<x;y++)delay_us(10);
}
}
}
 
 
 
 
 
١٥٤
‫ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 for
   for
 
 
١٥٥



Buzzer
                  

 
 

 
 

 
 
 
Buzer

 
 


                
 
 
 
     Portb            
 
 
 
                
 


 

               
 
 PNP             
 NPN
 BJT    MOSFET           
 
       NPN  PNP      
 Base 
 
Base
 
gate      MOSFET         
 
                 
 
Coupling capacitor
 
 

      digital           analog 
analog 
            RC filter     
 RC filter analogdigital
                  
hfe=200
emittercollector
 
 ahmad_s_f@hotmail.com
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

 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) a en on();‫ﺑﺘﺤﺬﻳﺮ اﻟﻤﺴﺘﺨﺪم إذا ﺿﻐﻂ ﻋﻠﻰ أي ﺳﻮﻳﺘﺶ آﺧﺮ‬ ‫ ﻗﻢ‬
if(portb.f0==0)goto mm1; ‫إذا ﻛﻨﺎ ﺿﺎﻏﻄﻴﻦ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول ﻛﺮر ﻣﺎ ﺳﺒﻖ ﻣﺮة أﺧﺮى‬
}
‫اي واﺟﻌﻞ اﻟﻠﻴﺪ اﻷول ﻣﻀﻴﺌﺎ‬
if(portb.f1==0) {mm2: portb.f6=1;
‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻟﺜﺎﻧﻲ ﻗﻢ ﺑﺈﺿﺎءة اﻟﻠﻴﺪ اﻟﺜﺎﻧﻲ وإذا ﺗﻢ اﻟﻀﻐﻂ‬
if(portb.f0==0||portb.f2==0) a en on(); (‫ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول أو اﻟﺜﺎﻟﺚ ﻗﻢ ﺑﻌﻤﻠﻴﺔ اﻟﺘﺤﺬﻳﺮ)اﺳﺘﺪاﻋﺎء اﻟﺪاﻟﺔ‬
if(portb.f1==0)goto mm2; ‫إذا ﻛﻨﺎ ﻣﺴﺘﻤﺮﻳﻦ ﻓﻲ اﻟﻀﻐﻂ ﻗﻢ ﺑﺘﻜﺮار ﻣﺎﺳﺒﻖ‬
}
if(portb.f2==0) {mm3: portb.f7=1; ‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻟﺜﺎﻟﺚ ﻗﻢ ﺑﺈﺿﺎءة اﻟﻠﻴﺪ اﻟﺜﺎﻟﺚ وإذا ﺿﻐﻄﻨﺎ أﺛﻨﺎء ذﻟﻚ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ اﻷول‬
if(portb.f0==0||portb.f1==0) a en on();
if(portb.f2==0)goto mm3;
}
}
}
١٦٨
‫أو اﻟﺜﺎﻧﻲ ﻗﻢ ﺑﺎﺳﺘﺪﻋﺎء داﻟﺔ اﻟﺘﻨﺒﻴﻪ‬
 
 
 
 
 
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 ()
   
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<yy;x++) delay_ms(1);
portb=0;
}
void main()
{…………….
…………….
MNO(0xff,1500);
}
١٦٩
‫ وﻫﺬا اﻟﺮﻗﻢ‬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
 

١٧٢

‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 

  7segment Seven Segment 
 

 
 
 
 
 
 
 
 
cb
cba
decimal pointd.p
               
 
anode
    common anode         
١٧١
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  common cathode
 cathode
 common cathode
               
common        common    
 
common                
 common cathodeanode
common    common cathode       
f 
 
 commoncommon anode
 f
common anode
  common cathode
void main()
{
a
b
c
trisb=0;
 
 
portb=0b00110000;
 
}
 
 B7 
 
١٧٢
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
Common cathode:
 
 
 
 
  
void main()
void main()
{
{
trisb=0;

trisb=0;
portb=~0b00110000;
portb=0b11001111;
}
}
 
 
 
 
 
ba
 

isis 
status bar
 

 gf
١٧٣
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
‫ﻗﻒ ﺑﺎﻟﻤﺎوس ﻫﻨﺎ‬
‫ﻗﻒ ﺑﺎﻟﻤﺎوس ﻫﻨﺎ‬
‫ﺳﻴﻈﻬﺮ اﺳﻢ‬
‫اﻟﻄﺮف ﺑﺎﻷﺳﻔﻞ‬
 
 
 
 
             
 
              
portb=0b00110000;portb
 portb=0b00000011;  Portb=3;        
  0110000           
 


   
 
for(x=0;x<10;x++){ portb=x; delay_ms(1000); }
 

 
١٧٤
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
  

 
common cathode
 portb=0b00111111
 portb=0b00000110
void main() {
trisb=0;
 
for(;;){
portb=0b00111111; delay_ms(1000);
portb=0b00000110; delay_ms(1000);
portb=0b01011011; delay_ms(1000);
portb=0b01001111 ; delay_ms(1000);
portb=0b01100110 ; delay_ms(1000);
portb=0b01101101 ; delay_ms(1000);
portb=0b01111101; delay_ms(1000);
portb=0b00000111; delay_ms(1000);
portb=0b01111111 ; delay_ms(1000);
portb=0b01101111 ; delay_ms(1000);
}
}
 
 
 
 
 
 
 
 
 
 
١٧٥
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
void main() {
 
trisb=0;
for(;;){ // ‫اﻟﻌﺪ اﻟﺘﺼﺎﻋﺪي ﻣﻦ ﺻﻔﺮ إﻟﻰ ﺗﺴﻌﺔ‬
portb=0b00111111; delay_ms(1000); portb=0b00000110; delay_ms(1000);
portb=0b01011011; delay_ms(1000); portb=0b01001111 ; delay_ms(1000);
portb=0b01100110 ; delay_ms(1000); portb=0b01101101 ; delay_ms(1000);
portb=0b01111101; delay_ms(1000); portb=0b00000111; delay_ms(1000);
portb=0b01111111 ; delay_ms(1000); portb=0b01101111 ; delay_ms(1000);
portb=0b01101111 ; delay_ms(1000); portb=0b01111111 ; delay_ms(1000);
portb=0b00000111; delay_ms(1000); portb=0b01111101; delay_ms(1000);
portb=0b01101101 ; delay_ms(1000); portb=0b01100110 ; delay_ms(1000);
portb=0b01001111 ; delay_ms(1000); portb=0b01011011; delay_ms(1000);
portb=0b00000110; delay_ms(1000); portb=0b00111111; delay_ms(1000);
}
 
 
 
 
// ‫اﻟﻌﺪ اﻟﺘﻨﺎزﻟﻲ ﻣﻦ ﺗﺴﻌﺔ إﻟﻰ ﺻﻔﺮ‬
}
 
 
 
 
 
 

––

 
 
 seven segment decodertools
١٧٦
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
 
 
 
 
 
 
 
 
 
 
‫ﻳﻤﻜﻨﻚ اﻟﻀﻐﻂ ﺑﺎﻟﻤﺎوس‬
‫ﻋﻠﻰ أي ﻣﻦ اﻷﻣﺎﻛﻦ اﻟﻤﺸﺎر‬
‫إﻟﻴﻬﺎ ﺑﺎﻷﺳﻬﻢ ﻟﺘﻜﻮن اﻟﺮﻗﻢ‬
‫أو اﻟﺸﻜﻞ اﻟﺬي ﺗﺮﻳﺪه‬
 
 
 
common cathode
       common anode  
   common cathode       portb=109;   
 portb=146; 
 
١٧٧
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 
void main() { char x;
 
trisb=0;
 
for(;;){
if(x==0){ portb=0b00111111; delay_ms(1000);}
if(x==1){ portb=0b00000110; delay_ms(1000);}
if(x==2){ portb=0b01011011; delay_ms(1000);}
if(x==3){ portb=0b01001111; delay_ms(1000);}
if(x==4){ portb=0b01100110; delay_ms(1000);}
if(x==5){ portb=0b01101101; delay_ms(1000);}
if(x==6){ portb=0b01111101; delay_ms(1000);}
if(x==7){ portb=0b00000111; delay_ms(1000);}
if(x==8){ portb=0b01111111; delay_ms(1000);}
if(x==9){ portb=0b01101111; delay_ms(1000);}
X++;
If(x==10)x=0;
}
}
 
 
 
 
 
 
 
 
 
 if x
              x 
xifportb=0b00111111
ififx++x
If(x==10)x=0;
 
 
١٧٨
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void main() { char x;
trisb=0;
 
for(;;){
if(x==0) portb=0b00111111;
if(x==1) portb=0b00000110;
if(x==2) portb=0b01011011;
if(x==3) portb=0b01001111;
if(x==4) portb=0b01100110;
if(x==5) portb=0b01101101;
if(x==6) portb=0b01111101;
if(x==7) portb=0b00000111;
if(x==8) portb=0b01111111;
if(x==9) portb=0b01101111;
delay_ms(1000);
X++;
If(x==10)x=0;
}
 
 
 
 
 
 
 
 
 
 
 
delay_ms(1000); for(;;)
 xfor
                
function
 
     segment(0);     segment   
 segment(5)
١٧٩
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
void segment(char kk)
{
if(kk==0) portb=0b00111111;
if(kk==1) portb=0b00000110;
if(kk==2) portb=0b01011011;
if(kk==3) portb=0b01001111;
if(kk==4) portb=0b01100110;
if(kk==5) portb=0b01101101;
if(kk==6) portb=0b01111101;
if(kk==7) portb=0b00000111;
if(kk==8) portb=0b01111111;
if(kk==9) portb=0b01101111;
}
void main() { char x;
trisb=0;
segment(x);
delay_ms(1000);
X++;
If(x==10)x=0;
}
 
 
 
 
 
 
 
 
 
for(;;){
}
 
 
 
 
 
 void main()  
xsegmentportb
 segment
kksegment( char kk) 
 kk if kk
ifportb=0b00111111;
١٨٠
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
            
segment x segment(x);
 

 
void segment(char kk)
{
if(kk==0) portb=0b00111111;
if(kk==1) portb=0b00000110;
if(kk==2) portb=0b01011011;
if(kk==3) portb=0b01001111;
if(kk==4) portb=0b01100110;
if(kk==5) portb=0b01101101;
if(kk==6) portb=0b01111101;
if(kk==7) portb=0b00000111;
if(kk==8) portb=0b01111111;
if(kk==9) portb=0b01101111;
void main() { char x; trisb=0;
for(;;){ for(x=0;x<10;x++) {segment(x); delay_ms(1000);} // ‫اﻟﻌﺪ اﻟﺘﺼﺎﻋﺪي ﻣﻦ ﺻﻔﺮ إﻟﻰ ﺗﺴﻌﺔ‬
for(x=9;x>0;x--) {segment(x); delay_ms(1000);} // ‫اﻟﻌﺪ اﻟﺘﻨﺎزﻟﻲ‬
for(x=0;x<=4;x++) {segment(x*2); delay_ms(1000);} // ٨ ٦ ٤ ٢ ٠ ‫ﻟﻌﺪ اﻷﻋﺪاد اﻟﺰوﺟﻴﺔ‬
for(x=0;x<=4;x++) {segment((x*2)+1); delay_ms(1000);} // ٩ ٧ ٥ ٣ ١ ‫ﻟﻌﺪ اﻷﻋﺪاد اﻟﻔﺮدﻳﺔ‬
}
١٨١
 
 
 
 
 
 
 
}
}
 
 
 
 
 
 
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  x for
    x       segment    
forfor

 
 

for
for(x=0;x<=4;x++) {segment(x*2);           
 delay_ms(1000);}
 
 for(x=0;x<=4;x++) {segment((x*2)+1); delay_ms(1000);}
 
 
for(x=9;x>0;x--) {segment(x);       
delay_ms(1000);}
 
for(x=9;x>=0;x--) {segment(x); delay_ms(1000);}‫وﻟﻢ أﻛﺘﺐ‬


 for 
 
for
 x>=0  x=9
١٨٢
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
       for     x--  
 x-- for
 x=1 { }
 x x-- { } for
      for          x>=0
 x>=0  x  x-- 
  segment


  x--

x
 for
   

for(x=9;x>0;x--) {segment(x); delay_ms(1000);}
for
 for(x=9;x>0;x--) {segment(x); delay_ms(1000);}
 
for(x=9;x<255;x--) {segment(x); delay_ms(1000);}
 
 switch .. case 
if  switch .. case    
            while   
 
١٨٣
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  x 

 SWITCH CASEIF
switch (x)
‫ﻫﻨﺎ ﻧﻜﺘﺐ ﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ‬
‫ ﻳﺴﺎوي‬x ‫اﻟﺘﻲ ﺳﺘﻨﻔﺬ إذا ﻛﺎن‬
‫اﺛﻨﻴﻦ‬
{ case 2: ……………………………
……………………………. Break;
case 7:
‫ﻫﻨﺎ ﻧﻜﺘﺐ ﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ‬
‫ ﻳﺴﺎوي‬x ‫اﻟﺘﻲ ﺳﺘﻨﻔﺬ إذا ﻛﺎن‬
‫ﺳﺒﻌﺔ‬
……………………………
……………………………. Break;
case 9:
‫ﻫﻨﺎ ﻧﻜﺘﺐ ﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ‬
‫ ﻳﺴﺎوي‬x ‫اﻟﺘﻲ ﺳﺘﻨﻔﺬ إذا ﻛﺎن‬
‫ﺗﺴﻌﺔ‬
……………………………
……………………………. Break;
}
 
 
 
 
 
 
 
 segment
void segment(char kk) { switch(kk) {
case 0 : portb=0b00111111; break;
case 1 : portb=0b00000110; break;
case 2 : portb=0b01011011; break;
case 3 : portb=0b01001111; break;
case 4 : portb=0b01100110; break;
case 5 : portb=0b01101101; break;
case 6 : portb=0b01111101; break;
case 7 : portb=0b00000111; break;
case 8 : portb=0b01111111; break;
case 9 : portb=0b01101111; break;
}
}
١٨٤
 
 
 
 
 
 
 
 
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 break; 

 
x=5;
 
switch(x)
 
{
case 5 : portb=1; delay_ms(500);
case 1 : portb=3; delay_ms(500); break;
case 7 : portb=4; break;
}
 
 
 
 x 
                
 xbreak;
 x
portb=1; delay_ms(500);
 
 portb=3; delay_ms(500);
 switchbreak 
 portb=4;
 xbreak
   break 
 
١٨٥
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 switch .. case 

 default: 
 
switch (x)
{ case 0: ……………………………
 
……………………………. Break;
 
case 1: ……………………………
……………………………. Break;
 
case 5:
……………………………
……………………………. Break;
default: ………………………
……………………………………….
}
‫ﻫﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﺘﻲ ﺳﻴﺘﻢ ﺗﻨﻔـﻴﺬﻫﺎ‬
‫ ﻻ ﻳﺴﺎوي ﺻﻔﺮ وﻻ واﺣﺪ‬x ‫ﻓـﻲ ﺣﺎﻟﺔ أن‬
‫وﻻ ﺧﻤﺴﺔ أي ﻟﻢ ﺗﺘﺤﻘﻖ أي ﺣﺎﻟﺔ ﻣﻦ‬
. ‫اﻟﺤﺎﻻت اﻟﺴﺎﺑﻘﺔ‬
 
 
 
 
 break
forswitch casebreak
 loopwhile
while break
 for
 
          B0        
B5A0
 break
١٨٦
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
void main()
{char x;
 
‫ ﻫﺬه ﺗﺴﻤﻰ‬for ‫ﺟﻤﻠﺔ‬
break ‫ﻟﻮوب واﻷﻣﺮ‬
‫ﻳﺨﺮج ﻣﻨﻬﺎ‬
trisa.f0=1;
trisb=0;
‫إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺴﻮﻳﺘﺶ ﻓﺴﻴﻘﻮم‬
break ‫اﻟﻤﻴﻜﺮوﻛﻨﺘﺮوﻟﺮ ﺑﺘﻨﻔـﻴﺬ اﻷﻣﺮ‬
portb=0;
‫ وﻳﻨﺘﻘﻞ‬for ‫واﻟﺬي ﺳﻴﺨﺮج ﻣﻦ اﻟﻠﻮب‬
for(x=0;x<50;x++) { if(porta.f0==0) break;
‫إﻟﻰ ﻣﺎ ﺑﻌﺪ اﻟﻠﻮب أي إﻟﻰ ﻫﻨﺎ‬
portb.f0=1; delay_ms(100);
portb.f0=0; delay_ms(100);
 
 
 
 
}
 
Portb.f5=1;
Portb.f0=0;
 
}
 
break
 
for(x=0;x<100;x++) { ………………………………………………
 
for(y=0;x<100;x++)
 
{
…………………..
…………………..
Break;
}
…………………………………………………..
…………………………………………………….
}
……………………
‫ ﺳﻴﺠﻌﻞ‬break ‫اﻷﻣﺮ‬
‫اﻟﻤﻴﻜﺮو ﻳﻨﺘﻘﻞ إﻟﻰ ﻫﻨﺎ‬
‫وﻟﻴﺲ إﻟﻰ ﻫﻨﺎ‬
 
 
 
 
 
 
١٨٧
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
  
 
 

 
char x1; char x2 ; char x3; char x4; char x5;
 
char x1,x2,x3,x4,x5;
 

    
 char 
char ahmad[100];
ahmad
 ahmad[0]
 ahmad[2]ahmad[1]
 
 int mm[5];
١٨٨
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 mm[0] 
 intmm[4]mm[1]
 mm[4] 

  
 aaa5=9      aaa5=5      aaa5    
 aaa5=0
 char segment[10]; 
 
١٨٩
 
 
Segment[0]
 
Segment[1]
 
Segment[2]
 
Segment[3]
 
Segment[4]
 
Segment[5]
 
Segment[6]
 
Segment[7]
 
Segment[8]
 
Segment[9]
 

 


char
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
  char segment[10]; 
   segment[8]=0          

segment[0]=5; 
 segment[9]=10; 

      [ ]         
 
segment[x]=20; x=3x 
 x segment[3]=20; 
segment[x]=13; xx++;
 x segment[4]=13; 
 
 

 for
void main()
‫ ﻣﻜﻮﻧﺔ ﻣﻦ ﻋﺸﺮﻳﻦ‬mm ‫اﺣﺠﺰ ﻣﺼﻔﻮﻓﺔ اﺳﻤﻬﺎ‬
. char ‫ﻋﻨﺼﺮ واﺟﻌﻠﻬﻢ ﺟﻤﻴﻌﺎ ﻣﻦ اﻟﻨﻮع‬
{ char x;
char mm[20];
for(x=0;x<20;x++) {
mm[x]=7;
}
}
١٩٠
‫ ﻫﺬه ﺳﺘﻤﺮ‬for ‫ﺟﻤﻠﺔ‬
‫ﻋﻠﻰ ﺟﻤﻴﻊ ﻋﻨﺼﺎر‬
‫اﻟﻤﺼﻔﻮﻓﺔ وﺗﺠﻌﻠﻬﻢ‬
. ‫ﺟﻤﻴﻌﺎ ﺑﺴﺒﻌﺔ‬
 
 
 
 
 
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 
xforfor
mm[x]=7; for{ }
xmm[0]=7; 
   mm[x]=7;          x   
mm[1]=7; 
 mm[x]=7; x
      x       mm[2]
 
 mm[2]=7; mm[1]=7; mm[0]=7; 
for(x=0;x<20;x++) {
mm[0]=7;
mm[x]=7;
mm[1]=7;
}
mm[2]=7;
 
 
 
mm[3]=7;
mm[4]=7;
 
mm[5]=7;
 
………
 
……..


mm[19]=7;



 
 
 
 
 
١٩١
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
mm[0]
<<
7
mm[1]
7
mm[2]
7
<<
<<
<<
mm[3]
7
.………….
.………….
…………..
…………..
mm[18]
7
mm[19]
7
 
 
 
 
<<
 
<<
<<
 
 
 
 char  ayaa 
 
 
Char ayaa[10];
for(x=0;x<10;x++) ayaa[x]=200+x ;
 
 
{ }for
               
for char ayaa[10]; 
 xfor
 x ayaa[x]=200+x ;  for
  ayaa[0] ayaa[0]=200+0; 
١٩٢
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
    ayaa[1]=200+1;         x 
  ayaa[1]
Ashraf

 
 
Char Ashraf[13];
 
for(x=0;x<13;x++) Ashraf[x]=5*x ;
 
xfor
xAshraf[0]=0Ashraf[0]=5*0 ;for
xAshraf[1]=5*1 ;
 
 long   kk  
  kk[2]  
      kk[2],kk[4],kk[6],…….kk[60]      kk[4]
 kk[1],kk[3],….kk[59]
 
Char kk[60];
for(x=0;x<30;x++) { kk[x*2]=4 ;
kk[(x*2)+1]=3 ;
}
١٩٣
 
 
 
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
x
 
 
 
 char Ashraf[4]={ 5 ,10 ,100 ,20 };

 
Char Ashraf[4];
Ashraf[0]=5;
Ashraf[1]=10;
 
 
Ashraf[2]=100;
Ashraf[3]=20;
 
 
 char Ashraf[4]={0b00000101 ,0b00001010 ,0b01100100 ,0b00010100 };
 
 char Ashraf[4]={0x05 ,0x0a ,0x64 ,0x14 };
 
 common cathode             
00111111portb
 00000110portb
 segment[0] segment
 00000110  segment[1] 00111111
١٩٤
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
portb=segment[0]; 
 portb=segment[9];
 
 
void main( )
{
char segment [10]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,0b01101101,
0b011111101,0b00000111,0b01111111,0b01101111};
char x;
 
 
trisb=0;
 
while(1) {
for(x=0;x<10;x++) { portb=segment[x];
delay_ms(500);
}
}
}
 
 
 
 
 
   x   portb=segment[x];     for   
      portb=0b00111111;    portb=segment[0];
 x
 
 
 
 
١٩٥
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 portb=0; 
 
void main( )
{
char segment [10]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,0b01101101,
0b011111101,0b00000111,0b01111111,0b01101111};
char x,y;
 
while(1) {
for(x=9;x<255;x--) { portb=segment[x];
delay_ms(1000);
for(y=0;y<5;y++){ portb=0; delay_ms(80);
portb=segment[x];delay_ms(80);
}
Portb=0; delay_ms(200);
}
}
 
 
trisb=0;
}
 
 
 
 
 
 
 
 
 x

 x for
 Portb=0; delay_ms(200);
 
 
١٩٦
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
 ‫ﺍﻟﺘﺠﺮﺑﺔ‬
 
 
            
switch.. caseif
 
   RAM            
 ROM
 RAM 

               
 

 ROM  RAM 
 ROM
 ROM
  
 RAMROM
 PIC16f84a           
 
 6868x8RAM
 17921024x14Program MemoryROM
١٩٧
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬

 switch.. case if
 
ROM
      ROM      RAM   
 ROMRAM

 RAM  
   NO enough Ram 
 RAM
 RAMROM
 RAMROM

RAM 
 ROM
 
 
  


 
١٩٨
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
const
 
 const float PI=3.14;
‫ﻧﻜﺘﺐ ﻫﺬه اﻟﻜﻠﻤﺔ ﻓـﻲ اﻟﺒﺪاﻳﺔ‬
‫ﻟﺘﻌﺮﻳﻒ اﻟﺜﺎﺑﺖ‬
‫ﻧﻮع اﻟﺜﺎﺑﺖ‬
‫اﺳﻢ اﻟﺜﺎﺑﺖ‬
 
  PI
 PIPI++
 Program Memory ROM
 const
 
void main( ){
const char segment [10]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,
0b01101101,0b011111101,0b00000111,0b01111111,0b01101111};
char x; trisb=0;
for(x=0;x<10;x++) { portb=segment[x];
delay_ms(1000);
}
}
 
 
while(1) {
}
 
 
 
 
 

 RAM
١٩٩
‫ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ‬
hex
 ROMRAM
١٦ ROM ‫اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟـ‬
‫ ﻓـﻲ‬٨٤ ‫ﻓـﻲ اﻟﻤﺌﺔ واﻟﻤﺘﺒﻘﻲ‬
. ‫اﻟﻤﺌﺔ ﻣﻦ اﻟﺤﺠﻢ اﻹﺟﻤﺎﻟﻲ‬
 
‫ ﻫﻮ‬RAM ‫اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟـ‬
‫ ﻓـﻲ اﻟﻤﺌﺔ واﻟﻤﺘﺒﻘﻲ ﺳﺒﻌﻴﻦ‬٣٠
. ‫اﻟﻤﺌﺔ‬ ‫ﻓـﻲ‬
 
 
LED MATRIX
 RAM 
               
 
 const PI=3.14;  
  
Const mm=19;
Const pp='A';
Const feleafel=1000;
Const daher =1523.962;

   


 
٢٠٠
Download