ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺍﳌﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ: ﺍﻟﺒﺎﺏ ﺍﻷﻭﻝ IC Mini-Computer ROMRAMProcessor Pins MicroController controller Micro ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ PIC ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﻣﻔﺎﻫﻴﻢ ﺃﺳﺎﺳﻴﺔ AVR PIC MICROCHIP PIC ﺑﻬﺬﺍ ﺍﻟﺸﻜﻞPIC ﻧﺮﺳﻢ ﺍﻟـ A4,A3,A2,A1,A0PORTA B7B0PORTB R RA0A0 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 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 TRISBPORTB TRISA TRIS OUTPUT 0 INPUT 1 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ B0 PORTB B0 TRISB B0 TRISBB0 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 -0HI 1 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ PORTB HIB0 B0 TRISBPORTB 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 TRISPORTB=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 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ B7B5B1B0 ﻓﻮﻟﺖ٩ ﺑﻄﺎرﯾﺔ 7805 VDD ﻓﻮﻟﺖ٥+ VDD ﻛﯿﻠﻮ١٠ ﻣﻘﺎوﻣﺔ VSS ﺻﻔﺮ ﻓﻮﻟﺖ أوم٤٢٠ ﻣﻘﺎوﻣﺔ ﺑﯿﻜﻮ٢٢ ﻣﻜﺜﻒ VSS VSS ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﻧﺨﺘﺎر اﺳﻢ ﻟﻠﻤﺸﺮوع وﻧﻜﺘﺒﮫ ھﻨﺎ ھﻨﺎ ﻧﻜﺘﺐ ﻣﺴﺎر اﻟﻤﺸﺮوع ﻧﺨﺘﺎر ﻧﻮع اﻟﺒﻚ اﻟﻤﺴﺘﺨﺪم ﻓﻲ اﻟﻤﺸﺮوع اي اﻟﻤﻜﺎن اﻟﺬي ﺳﯿﺤﻔﻆ ﻓﯿﮫ اﺧﺘﺮ ھﺬا اﻻﺧﺘﯿﺎر وھﻮ ﯾﺸﯿﺮ ﻟﻨﻮع اﻟﻤﺆﻗﺖ ھﻨﺎ ﻧﻜﺘﺐ ﺗﺮدد اﻟﻤﺆﻗﺖ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻣﺸﺮوﻋﻨﺎ ھﺬا اﻛﺘﺒﮫ ﺑﻨﻔﺲ اﻟﻘﯿﻢ اﻟﻤﻮﺟﻮدة 1.04 ھﻨﺎ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ھﺬه ھﻲ اﻷواﻣﺮ أو ﻣﺎ ﯾﺴﻤﻰ ﺑﺎﻟﻜﻮد: ﻣﺮاﺟﻌﺔ وﻣﺠﻤﻮﻋﺔ اﻷواﻣﺮ ﻧﺴﻤﯿﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ void main() { TRISB=0B00000000; PORTB=0B10100011; } Ctrl+F9 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ B7B0TRISB=0B00000000; B7B5B1B0PORTB=0B10100011; B6B4B3B2 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 اﻟﻠﯿﺪ اﻟﻤﻮﺻﻞ ﺑـ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ BitsTRISB=0B00000000; TRISB=0; PORTB=0B10100011; a30xPORTB=0XA3; 10100011 ﯾﻤﻜﻦ ﻛﺘﺎﺑﺘﮭﺎ ھﻜﺬا TRISB=0B00000000; TRISB=0; PORTB=0B10100011; ﯾﻤﻜﻦ ﻛﺘﺎﺑﺘﮭﺎ ھﻜﺬا PORTB=0XA3; void main() { TRISB=0; PORTB=0XA3; } ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ Mikroc binary decimal hexadecimal 10100011 QConvertor اﺿﻐﻂ ھﻨﺎ binary ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ B7B0 ﻓﻮﻟﺖ٩ ﺑﻄﺎرﯾﺔ 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 B0L0 ON// // B2L1 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 */ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ B7B0 ﻓﻮﻟﺖ٩ ﺑﻄﺎرﯾﺔ 7805 VDD ﻓﻮﻟﺖ٥+ VDD ﻛﯿﻠﻮ١٠ ﻣﻘﺎوﻣﺔ VSS ﺻﻔﺮ ﻓﻮﻟﺖ أوم٤٢٠ ﻣﻘﺎوﻣﺔ ﺑﯿﻜﻮ٢٢ ﻣﻜﺜﻒ VSS VSS B7B0 TRISB=0;TRISB PORTB=0XFF;PORTB=0B11111111; PORTB ٣٣ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ delay_ms(1000); PORTB=0; forfor 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++) { ………….. } Yy yy 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; bitbit LOOP: ………………….. ………………….. ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي . ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار ………………….. goto LOOP; while (1) { …………….. ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي . ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار …………….. } for(;;) { …………….. …………….. } ٤٠ ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻧﻜﺘﺐ اﻟﻜﻮد اﻟﺬي . ﻧﺮﯾﺪه أن ﯾﺘﻜﺮر ﺑﺈﺳﺘﻤﺮار ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ switchB0 A0 TRISAA0 TRISA0 01 TRISA=0B00011111; TRISA=0B00011111; ٤١ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ A0 A0 A5,A6,A7 PIC16F84A BITs TRISA BITs A4 VDD +5V 10k ﺳﻨﻮﺻﻠﮫ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ VSS SWITCH ﻛﯿﻔﯿﺔ ﺗﻮﺻﯿﻞ اﻟﻤﻔﺘﺎح ٤٢ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ lowhiA0 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 اذھﺐ ﻟﻠﻌﻨﻮان ﻣﺤﺮاراً أم ﻻ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ifif ifIf If () { } If(PORTA.F0==0) if A0 PORTB.F0=1; IF elseif …. 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 470resistor 10kpush button led ٤٧ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ ﻣﺘﺘﺎﻟﯿﺘﯿﻦ ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ ﻣﺘﺘﺎﻟﯿﺘﯿﻦ ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ ھﻨﺎ ﻧﻜﺘﺐ اﺳﻢ اﻟﻌﻨﺼﺮ ﻟﻨﺤﺼﻞ ﻋﻠﯿﮫ ﺑﺴﺮﻋﺔ اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ھﻨﺎ ﻣﺮﺗﯿﻦ ﻣﺘﺘﺎﻟﯿﺘﯿﻦ ٤٨ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ pic16f84a اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ﻣﺮة واﺣﺪة ﻋﻠﻰ اﻟﻌﻨﺼﺮ اﻟﺘﻲ ﺗﺮﯾﺪ رﺳﻤﮫ اﺿﻐﻂ ﺑﺎﻟﻤﺎوس ﻣﺮﺗﯿﻦ ﻣﺘﺘﺎﻟﯿﺘﯿﻦ ﺑﻌﺪ ﺗﺤﺪﯾﺪ اﻟﻤﻜﺎن اﻟﻤﻨﺎﺳﺐ zoom ٤٩ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ A0 ٥٠ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ VDD VSS VDDPOWERGROUND ھﻨﺎ وﺿﻌﻨﺎ ﻗﯿﻤﺔ ﺟﺪﯾﺪة ٤٧٠ ﻟﻠﻤﻘﺎوﻣﺔ ﻓﺠﻌﻠﻨﺎھﺎ ﻛﯿﻠﻮ ﺛﻢ١٠ ﺑﺪﻻ ﻣﻦ OK ﻧﻀﻐﻂ ٥١ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ E_6 hex E_6.hex browse ok اﺿﻐﻂ ھﻨﺎ ﻟﺘﺤﺪﯾﺪ ﻣﻜﺎن ﻣﻠﻒ اﻟﮭﯿﻜﺲ ﻋﻠﻰ ﺟﮭﺎزك اﺿﻐﻂ ھﻨﺎ ﻟﺘﺤﺪﯾﺪ ﺳﺮﻋﺔ اﻟﻤﺬﺑﺬب وھﻲ ﻓﻲ ھﺬه اﻟﺘﺠﺮﺑﺔ MHz١.٠٤ ٥٢ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ اﺿﻐﻂ ھﻨﺎ ﻟﺘﺸﻐﯿﻞ اﻟﺪاﺋﺮة vss vdd ٥٣ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 8 ﺍﻟﺘﺠﺮﺑﺔ Binary 654321 00000000 00000001 00000010 00000011 00000100 …………… …………. 11111111 255 25511111111 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 portbportb++; 00000000 00000001 60 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ goto loop; 00000001portb 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 looploop 5while(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 2portb if 11portbwhile 9 portb if1001 portb portb=0; If delay_ms(1000); portbwhile 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 forportbfor portb 65 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 10 ﺍﻟﺘﺠﺮﺑﺔ 3 30 12 9 6 3 01 ﯾﻜﺎﻓﺊ اﻟﺮﻗﻢ ﺻﻔﺮ ﺑﺎﻟﻌﺸﺮي 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 10forx=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; xx=3 x<=10 11 x 10 portb=0 for for fordelay_ms(1000) forfor 67 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 3 6 9 12 15 18 21 24 27 30 char8portb B7B0PORTB 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); } } 8portb B7B05 68 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ for 1 byte = 8 bitsbyte8 bits8 32 416 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 25511111111 255char 255 255255 signed char 127 -128 32.66 ahmadchar char ahmad; for; char x; x8 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--;89 if portb 9if 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 portbchar portb porta 1 for for(PORTB=9;PORTB>=0;PORTB--) for portb=9 for 8 for portb Portb-- 7 78 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ Portb-- portb forPortb char portb 255 255portb for 255portb 255 254 portb for 255 7447 255portb 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 whileforfor portb for for 81 for ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ void main() { TRISB=0; while(1){ for(PORTB=9;PORTB>0;PORTB--) { delay_ms(1000); } delay_ms(1000); } } forportb while(1) 82 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 13 ﺍﻟﺘﺠﺮﺑﺔ 26 24 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 Portb2 portb=portb+2; 2Portb 90Portb 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 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ portbporta=3; portb=porta+2; 2portaportb Portaportb portb=portb+2; 3 portb Portb portb Portb 2Portb portb=portb+1portb++ portb x=x+6 x 85 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 14 ﺍﻟﺘﺠﺮﺑﺔ 28 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 12350 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 lowMCLR MCLR MCLRrestart MCLR 90 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ push buttonMCLR MCLR 5MCLR portb portb MCLR portb=0; MCLR A2 if(porta.f2==0){portb=0; delay_ms(500);} 91 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 16 ﺍﻟﺘﺠﺮﺑﺔ 90 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++portbif portbif if(portb==10) portb=0; delay_ms(500); if portb++ portb ifportb++delay_ms(500); ) portb A1 255255 255 portb-- Portb 255Portb if(portb==255) portb=9; portb--if portbportb--255portb 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 255portbA0if Ifportb++ 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 ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ B0A0 B1 ﺑﻌﺪ اﻟﻀﻐﻂ ﻣﺮة واﺣﺪة ﻋﻠﻰ اﻟﺴﻮﯾﺘﺶ ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻮﯾﺘﺶ ﻣﺮة أﺧﺮى ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻮﯾﺘﺶ ﻣﺮة أﺧﺮى وھﻜﺬا if B0B0 B1 if if ٩٧ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ If(porta.f0==0) { portb.f0=1; …………….. ……………… } b1 if ifif ifb0if 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; b1b0 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; ١٠٠ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ b3delay_ms(500); portb=0; b7b0 while while ifwhile while While ( ) { } ١٠١ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ while B0A0 while while(porta.f0==0) { portb.f0=1; delay_ms(150); portb.f0=0; delay_ms(150); } trisbtrisavoid 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 ifwhile if while mmwhile while A0mm B0 A0 mm mm while mm while mm ١٠٣ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ while mm whilemm 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 b0if(x==1) b0,b1 x xportb 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 B5B7B6B6 B0B1B0B6 B7 B0 B0 Bits portb=portb<<2 ; 00000100portb portbPortbportb=portb<<1; portb=portb+3; portbportb >> << 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;ledportb >> << 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 0b00000011portb portb portb=led>>1; led led portb 0b00000110 led led portb=led>>1;led=0b00000110; GG=led; GGled 0b00000110 led portb=led>>1;0b00000011portb ١١٢ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ led portb=led>>1; portb=0b00000110>>1 ; led=0b00000110 ; led portb=0b00000011; x=x>>2;x=0b11000111; 0b00110001x 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 whileif 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 B0while(porta.f0==1){ } while(porta.f0==0){ } ١١٦ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ while delay while while ١١٧ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 20 ﺍﻟﺘﺠﺮﺑﺔ A1A0 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 portbA1 0b10000000portb 0b000000001portb 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 ififif(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 portbA0 if goto loop; portb=0b10000000 ١٢١ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ BleeperBuzzer 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 B7B0 A0 BuzzerA1 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 ﺳﯿﻄﻔﺊ اﻟـ وﺑﺎﻟﺘﺎﻟﻲ ﺳﯿﺘﻮﻗﻒ اﻟﺼﻮت BleeperBuzzer ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ Buzzer Buzzer Buzzer transistor as a switch RB Base collector Buzzer emitter Buzzeropen 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 circuitporta.f0=0; Buzzer MOSFETBJT ١٣٠ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ Buzzer speaker piezo transducerfrequency mode Buzzer speakerloudspeaker 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 um 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 intchar 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++) { ﻣﺮة١٥ ﻫﻨﺎ ﺳﻨﻜﺘﺐ اﻷواﻣﺮ ﺳﺘﻜﺮر } { } ١٤٣ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ xx 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 ١٤٥ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ CRRC Oscillator Crystal oscillator ﺑﻌﺾ أﺷﻜﺎل اﻟﻜﺮﯾﺴﺘﺎل RC oscillator _RC_OSC _XT_OSC _HS_OSC ١٤٦ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ RC oscillator _RC_OSC 200_XT_OSC 4 254_HS_OSC 20 20 000 000 _HS_OSC Default HSXTRC RC OSC CR = . × × ١٤٧ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 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 OSC2OSC1 DatasheetOSC1,OSC2 pin diagram OSC1,OSC2 ١٤٨ ﻛﺘﺎﺏ ﺍﺣﺘﺮﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ pic16f84a OSC1 OSC2 HSXTCRYSTAL 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 4resonato OSC2OSC1 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; forx 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 analogdigital hfe=200 emittercollector ahmad_s_f@hotmail.com ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ functions B7B0 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 0011111100portb=~portb; ١٥٩ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ B7 B0 invert showahmad Invert(0b100000001); Portb=0b100000001; delay_ms(100); Portb=~portb; delay_ms(100); Invert(0b11100111); Portb=0b111000111; delay_ms(100); Portb=~portb; delay_ms(100); Portbinvert( ); ١٦٠ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ 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 charaaa ١٦١ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ aaa invert(0b11000011); 0b11000011aaainvert( ); Invert 0b11000011portb 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); } } portbinvert portb B7B0 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(); { } b5b0 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); } intyycharww char intyy 255 ١٧٠ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ void add portbportb char add(char num1,int num2) {char sum; sum=num1+num2; return sum; } void main() {……………. ……………. Portb=add(5,20); } void void floatintchar portb=add(5,20) ١٧١ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ portb xx=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) ; } intchar ١٧٢ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﺍﻟﺘﺠﺮﺑﺔ 7segment Seven Segment cb cba decimal pointd.p anode common anode ١٧١ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ common cathode cathode common cathode common common common common cathodeanode common common cathode f commoncommon 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; } } ba isis status bar gf ١٧٣ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﻗﻒ ﺑﺎﻟﻤﺎوس ﻫﻨﺎ ﻗﻒ ﺑﺎﻟﻤﺎوس ﻫﻨﺎ ﺳﻴﻈﻬﺮ اﺳﻢ اﻟﻄﺮف ﺑﺎﻷﺳﻔﻞ 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 decodertools ١٧٦ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ ﻳﻤﻜﻨﻚ اﻟﻀﻐﻂ ﺑﺎﻟﻤﺎوس ﻋﻠﻰ أي ﻣﻦ اﻷﻣﺎﻛﻦ اﻟﻤﺸﺎر إﻟﻴﻬﺎ ﺑﺎﻷﺳﻬﻢ ﻟﺘﻜﻮن اﻟﺮﻗﻢ أو اﻟﺸﻜﻞ اﻟﺬي ﺗﺮﻳﺪه 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 xifportb=0b00111111 ififx++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(;;) xfor 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() xsegmentportb segment kksegment( char kk) kk if kk ifportb=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 forfor 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 CASEIF 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 xbreak; x portb=1; delay_ms(500); portb=3; delay_ms(500); switchbreak portb=4; xbreak break ١٨٥ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ switch .. case default: switch (x) { case 0: …………………………… ……………………………. Break; case 1: …………………………… ……………………………. Break; case 5: …………………………… ……………………………. Break; default: ……………………… ………………………………………. } ﻫﻨﺎ ﻧﻜﺘﺐ اﻷواﻣﺮ اﻟﺘﻲ ﺳﻴﺘﻢ ﺗﻨﻔـﻴﺬﻫﺎ ﻻ ﻳﺴﺎوي ﺻﻔﺮ وﻻ واﺣﺪx ﻓـﻲ ﺣﺎﻟﺔ أن وﻻ ﺧﻤﺴﺔ أي ﻟﻢ ﺗﺘﺤﻘﻖ أي ﺣﺎﻟﺔ ﻣﻦ . اﻟﺤﺎﻻت اﻟﺴﺎﺑﻘﺔ break forswitch casebreak loopwhile while break for B0 B5A0 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] intmm[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=3x x segment[3]=20; segment[x]=13; xx++; x segment[4]=13; for void main() ﻣﻜﻮﻧﺔ ﻣﻦ ﻋﺸﺮﻳﻦmm اﺣﺠﺰ ﻣﺼﻔﻮﻓﺔ اﺳﻤﻬﺎ . char ﻋﻨﺼﺮ واﺟﻌﻠﻬﻢ ﺟﻤﻴﻌﺎ ﻣﻦ اﻟﻨﻮع { char x; char mm[20]; for(x=0;x<20;x++) { mm[x]=7; } } ١٩٠ ﻫﺬه ﺳﺘﻤﺮfor ﺟﻤﻠﺔ ﻋﻠﻰ ﺟﻤﻴﻊ ﻋﻨﺼﺎر اﻟﻤﺼﻔﻮﻓﺔ وﺗﺠﻌﻠﻬﻢ . ﺟﻤﻴﻌﺎ ﺑﺴﺒﻌﺔ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ xforfor mm[x]=7; for{ } xmm[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]; xfor 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 ; xfor xAshraf[0]=0Ashraf[0]=5*0 ;for xAshraf[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 00111111portb 00000110portb 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.. caseif RAM ROM RAM ROM RAM ROM ROM RAMROM PIC16f84a 6868x8RAM 17921024x14Program MemoryROM ١٩٧ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ switch.. case if ROM ROM RAM ROMRAM RAM NO enough Ram RAM RAMROM RAMROM RAM ROM ١٩٨ ﺃﺳﺮﻉ ﻃﺮﻳﻖ ﻻﺣﺘﺮﺍﻑ ﺑﺮﻣﺠﺔ ﺍﻟﻤﺎﻳﻜﺮﻭﻛﻨﺘﺮﻭﻟﺮ const const float PI=3.14; ﻧﻜﺘﺐ ﻫﺬه اﻟﻜﻠﻤﺔ ﻓـﻲ اﻟﺒﺪاﻳﺔ ﻟﺘﻌﺮﻳﻒ اﻟﺜﺎﺑﺖ ﻧﻮع اﻟﺜﺎﺑﺖ اﺳﻢ اﻟﺜﺎﺑﺖ PI PIPI++ 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 ROMRAM ١٦ ROM اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟـ ﻓـﻲ٨٤ ﻓـﻲ اﻟﻤﺌﺔ واﻟﻤﺘﺒﻘﻲ . اﻟﻤﺌﺔ ﻣﻦ اﻟﺤﺠﻢ اﻹﺟﻤﺎﻟﻲ ﻫﻮRAM اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟـ ﻓـﻲ اﻟﻤﺌﺔ واﻟﻤﺘﺒﻘﻲ ﺳﺒﻌﻴﻦ٣٠ . اﻟﻤﺌﺔ ﻓـﻲ LED MATRIX RAM const PI=3.14; Const mm=19; Const pp='A'; Const feleafel=1000; Const daher =1523.962; ٢٠٠