smart_fox

شرح تفصيلي للميكروكنترولر

19 ردود في هذا الموضوع

بسم الله الرحمن الرحيم

اخوانى فى المنتدى منذ شهرين و انا ارغب فى شرح بعض الدروس البسيطه فى الـ MC وكل يوم اقول لنفسى سأبدا الاسبوع القادم حتى اتفرغ للشرح ولكن هذا الاسبوع للاسف لا ياتى ابدا و لكن اليوم اتتنى الشجاعه وقررت البدء باذن الله ولكن نظرا لعدم تفرغى ساكون على المنتدى بحد اقصى ساعه فى الاسبوع لتنزيل الدرس وانا حسب قدراتى ممكن انزل درس كل اسبوع اودرس كل اسبوعين او كل شهر وللاسف حتى لا تضيع الساعه بدون تنزيل الدرس ساضطر للاجابه عن الاسئله فى ما سبق لى شرحه فقط و الاسئله الاخرى ساجيب عنها ان شاء الله بعد الانتهاء من سلسله الروس

وارجو من اخوانى ان يلتمسوا لى العذر لتقصيرى

المهم ان شاء الله سابدء بعائله ال MicorChip

او كما يسميها البعض ال PIC وسأخص بالشرح ال PIC16F876A

وسأحاول اتباع اسلوب البساطه فى الشرح حتى يستفيد اكبر عدد من اخوانى ان شاء الله

وساحاول ترقيم الاشكال والجداول حتى يسهل الرجوع اليه عند شرح المشاريع

مقدمة:-

فى البدايه اود القاء سؤال : ما هى الـ IC ؟

هى عباره عن شريحه من اشباه الموصلات (SEMICONDUCTOR) موجود عليها مقاومات و مكثفات و ترانزستورات وموحدات

او بمعنى اخر دائره الكترونيه عليها مجموعه من العناصر بشكل مضغوط

ما هو الMC ؟

عباره عن IC يمكن برمجته لتئديه وظائف معينه

اوبمعنى اخر عباره عن MICROPROCESSOR له امكانيات بسيطه من حيث السرعه و الوحدات الداخليه وعدد المداخل والمخارج وسعره بسيط يبدا من 12 جنيه مصرى

صنعت بواسطه الاف الشركات منها على سبيل المثال لا الحصر

MICROCHIP  - INTEL – ATMEL -  Anchor Chips -  Siemens – Philips - ScanLogic - SGS-Thomson  - Dallas Semiconductor - SMC - ISSI - TDK - Netchip - Temic Semiconductor - OKI – MAXIM - MOTOROLA

و اشهرها

MICROCHIP  - INTEL – ATMEL

و كل شركه لها موديلات كثيره مثلا عائله الMICROCHIP بعض موديلاتها على سبيل المثال

PIC12F629 – PIC16F818 – PIC16F876 – PIC16F876A – PIC18F2320 – PIC16C925 – PIC16F84

وهكذا وكلما زاد الرقم كلما زادت الامكانيات التى فى الCHIP

وكل شركه لها الCOMPILER الخاص بها واوامر البرمجه الخاصه بها حتى فى اللغه الواحده

مثلا لبرمجه ال INTEL باستخدام لغه ال ASSEMBLY استخدم اوامر مختلفه تماما عن الاوامر التى استخدمها لبرمجه الـ MICROCHIP

ولغات البرمجه الخاصه ببرمجتها

ASSEMBLY – C – C++ - BASIC – FORTRAN

سؤال هام جدا

ولكن لماذا ال PIC16F876A بالذات التى ساتناولها بالشرح ؟

انتظروا الاجابه الدرس القادم باذن الله :D

تم تعديل بواسطه Asm4all
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الثانى :-

ولكن لماذا ال PIC16F876A بالذات التى ساتناولها بالشرح ؟

ولكن قبل الاجابه على هذا السؤال دعونى احكى لكم حدوته :) >>>>>>>

ذهب ثلاث اشخاص لا يعلمون الفرق بين الكمبيوتر والثلاجه لشراء جهاز كمبيوتر فوجدوا ثلاث عروض

العرض الاول جهاز P2 برامات 64MB وليس به CDROM ولاFLOPPY DISK وبه HARD DISK 4GB ولا كارت صوت ولا كارت فاكس و سعره 1000جنيه

العرض الثانى جهازP3 برامات 128MB وبه CDROM 48X وبه FLOPPY DISK وبه HARD DISK 40GB و سعره 2000 جنيه

العرض الثالث جهاز P4 برامات 512MB و اثنين CDROM 52X واتنين HARD DISK 80GB و FLOPPY DISK و سعره 3000 جنيه

المهم اشترى احمد العرض الاول و اشترى محمد العرض الثانى واشترى حسن العرض الثالث

احمد الان محترف كمبيوتر ولكن عند زياره اصدقائه محمد وحسن ويرى ذلك الاختراع المسمى CDROM وfloppy disk و كارت الصوت و كارت الفاكس يشعر بالياس

اما بالنسبه لمحمد فانه عند زياره اصدقائه احمد وحسن يستطيع التعامل مع اجهزتهم

وكذلك حسن ولكن حسن احتياجاته كثيره لذلك عنده اتنين H.D و اثنين CDROM

لقد انتهت الحدوته حلوه ولا :D

انا اريد ان تكون مثل محمد صاحب العرض الثانى كما يقال فى المثل تحمل العصا من المنتصف تستطيع العمل على PIC16F84 و ايضا العمل على PIC18F2320 اى تستطيع التعامل مع جميع موديلات آل MICROCHIP

لأن PIC16F876A فيها جميع الامكانيات ولقد اخذت الاتى قص و لصق من ال data sheet لل pic16f876a الذى سوف اشرحه فى القريب العاجل ان شاء الله

High Performance RISC CPU:
• Only 35 single word instructions to learn
• All single cycle instructions except for program
branches, which are two-cycle
• Operating speed: DC - 20 MHz clock input
DC - 200 ns instruction cycle
• Up to 8K x 14 words of FLASH Program Memory,
Up to 368 x 8 bytes of Data Memory (RAM),
Up to 256 x 8 bytes of EEPROM Data Memory
• Pinout compatible to other 28-pin or 40/44-pin
PIC16CXXX and PIC16FXXX microcontrollers
Peripheral Features:
• Timer0: 8-bit timer/counter with 8-bit prescaler
• Timer1: 16-bit timer/counter with prescaler,
can be incremented during SLEEP via external
crystal/clock
• Timer2: 8-bit timer/counter with 8-bit period
register, prescaler and postscaler
• Two Capture, Compare, PWM modules
- Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10-bit
• Synchronous Serial Port (SSP) with SPI™
(Master mode) and I2C™ (Master/Slave)
• Universal Synchronous Asynchronous Receiver
Transmitter (USART/SCI) with 9-bit address detection
• Parallel Slave Port (PSP) 8-bits wide, with
external RD, WR and CS controls (40/44-pin only)
• Brown-out detection circuitry for
Brown-out Reset (BOR)
Analog Features:
• 10-bit, up to 8 channel Analog-to-Digital
Converter (A/D)
• Brown-out Reset (BOR)
• Analog Comparator module with:
- Two analog comparators
- Programmable on-chip voltage reference(VREF) module
- Programmable input multiplexing from device
inputs and internal voltage reference
- Comparator outputs are externally accessible
Special Microcontroller Features:
• 100,000 erase/write cycle Enhanced FLASH
program memory typical
• 1,000,000 erase/write cycle Data EEPROM
memory typical
• Data EEPROM Retention > 40 years
• Self-reprogrammable under software control
• In-Circuit Serial Programming™ (ICSP™) via two pins
• Single supply 5V In-Circuit Serial Programming
• Watchdog Timer (WDT) with its own on-chip RC
oscillator for reliable operation
• Programmable code protection
• Power saving SLEEP mode
• Selectable oscillator options
• In-Circuit Debug (ICD) via two pins
CMOS Technology:
• Low power, high speed FLASH/EEPROM technology
• Fully static design
• Wide operating voltage range (2.0V to 5.5V)
• Commercial and Industrial temperature ranges
• Low power consumption

والسابق باختصار شديد حتى اشرحه بالتفصيل فى القريب العاجل ان شاء الله ان ال pic16f876a لها 35 امر برمجه و وحدتينccp و وحده ADC وعدد ثلاث وحدات للدخل و الخرج اسمائهم كالتالى PORTA و PORTB و PORTC و وحده EEPROM و عدد ثلاث TIMER بالاضافه لل WDT ووحده SERIAL PORT

لو نزلت للموديلات الاقل فى المستوى اجد على سبيل المثال وحده TIMER واحده ولا اجد ADC ولا SERIAL PORT و لا CCP ووحده دخل وخرج واحده PORTA طبعا من السهل على مبرمج PIC16F876A برمجه MC بهذه المواصفات لانه تتم برمجتها بنفس اسلوب برمجه PIC16F876A

وبالتالى لو طلعت للعائلات الكبيره اجدها نفس الـ PIC16F876A

بنفس الامكانيات ولكن بزياده اى لها خمس وحدات دخل و خرج PORTA,B,C,D,E و اربع وحدات CCP و وحده الADC لها 12 CHANNEL و هكذا وبالتالى كما برمجت PORTA,B,C استطيع برمجه PORTD,E بتغيير الاسم فقط ونفس الشىء لباقى الوحدات اى انك تستطيع العمل على جميع الموديلات الاقل فى الامكانيات وكذلك الموديلات الاعلى فى الامكانيات لان بها كل الامكانيات ولكن مكرره و الا اذا وجدت وحده فى الموديلات الحديثه لم اقرا عنها ويكون استخدامها نادر لان الوحدات الموجوده فى الpic 16f876a تؤدى لك اكثر مما تراه فى احلامك

والى اللقاء الاسبوع القادم باذن الله و لكن انتظروا المفاجئه :D

تم تعديل بواسطه Asm4all
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الثالث :- قبل ان تنتهى المقدمه

نظم الاعداد:-

ان شاء الله ساشرح نظم الاعداد ونظرا لاهميه الموضوع لباقى المنتديات ولسهوله البحث عنه فكرت بادراجه كموضوع جديد وان اجعله موضوع شامل فالى هناك

دروس فى نظم الاعداد

تم تعديل بواسطه Asm4all
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
وبالتالى لو طلعت للعائلات الكبيره اجدها نفس ال PIC16F876A

بنفس الامكانيات

هذه المعلومه خاطئه اخر معلوماتى ان عائله ال

PIC17xxxx

بها مخارج usb

بالاضافه ان بعض العائلات الاخرى بها بعض الوحدات الاخرى ولكن الـ PIC16F876A بها الوحدات الاكثر استخداما

وانا اعتذر على تقديمى هذه المعلومه الخاطئه

تم تعديل بواسطه Asm4all
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ان شاء الله بعد انتهائى من دروس نظم الاعداد ساقوم بادراج بعض الاسئله فى نظم الاعداد وحسب اجابات الاعضاء ساحدد ماساقوم بشرحه و ما الذى ساتجاهله فى الشرح و اسلوب الشرح نفسه فالرجاء قراءه الدروس بتمعن والى القاء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الرابع :-

تعريفات مهمه :-

bit:- اصغر وحده لقياس سعه الذاكره

byte:-

byte------->8 bit

1k byte------->1024 byte

1m byte------->1024 k byte

word:-

تختلف من MicroControler MC الى اخر و من MicroProcessor MP الى اخر

وفى الMicrochip ثلاث عائلات :-

1-base line :-

word----->12 bit

2-mid range:-

word----->14 bit

3-high end:-

word--------> 16bit

الـ PIC16F876A من النوع الـ mid range أى

word----->14 bit

مواصفات الـ PIC16F876A :-

1- 35 instruction (تعليمه أو أمر برمجه)

2- الـ instruction تنفذ فى واحد cycle

الـ branch تنفذ فى اثنين cycle

الـ branch مثل أوامر الـ GOTO و CALL

فى عائله الـ microchip

cycle = 4 pulse

مثال:-

لو شغلت الـ MC على تردد 4 ميجا هيرتز

عدد الpulse فى الثانيه 4 ميجا pulse

عدد الcycle فى الثانيه 1 ميجا cycle

اذن زمن تنفيذ الinstruction هو مقلوب عدد الcycle فى الثانيه اى 1 ميكرو ثانيه

فى عائله الـ ATMEL

cycle = 12 pulse

مثال:-

لو شغلت الـ MC على تردد 4 ميجا هيرتز

عدد الـ pulse فى الثانيه 4 ميجا pulse

عدد الـ cycle فى الثانيه ثلث ميجا cycle

اذن زمن تنفيذ الinstruction هو مقلوب عدد الcycle فى الثانيه اى 3 ميكرو ثانيه

3-flash memory يمكن مسحها والكتابه عليها 100000 مره اخرى نظريا ولكن عمليا 100 مره

4- EEPROM يمكن مسحها والكتابه عليها 100000000 مره اخرى نظريا ولكن عمليا اقل من ذلك بكثير

EEPROM تحتفظ بالبيانات المخزنه عليها اكثر من اربعين عاما

5- جهد التغذيه 5 فولت

6- اقصى تردد يمكن العمل عنده 20 ميجا هرتز - أي بسرعة 5 ميجا هيرتز

كلما زاد التردد كلما كانت القدره المسحوبه من مصدر التغذيه أعلى وبالتالى درجه حراره الميكرو تزداد

كلما قل التردد كلما كانت القدره المسحوبه من مصدر التغذيه اقل وبالتالى درجه حراره الميكرو تقل ويوفر فى الطاقه او بمعنى اخر عند تسويق المنتج يكون هناك فرق بين منتج يستهلك البطاريه فى 6 شهور و اخر يستهلكها فى 5 سنين

7- 22 pin للدخل والخرج وهم عباره عن

PORT A وهي 6 PIN

RA0-------->RA5

PORT B وهي 8 PIN

RB0------>RB7

PORT C وهي 8 PIN

RC0---------->RC7

-------->أطراف الدخل و الخرج تتحمل حتى 25 مللى أمبير سواء خرج أو دخل

مكوناته :-

05_11_05_06_21_31_1131200491untitled.JPG

1- FLASH PROGRAM MEMORY :-

8K WORD تستخدم لتخزين البرنامج عليها

2- RAM :-

368 BYTE

مثل الـ RAM التى على اللوحه الام فى الكمبيوتر وتستخدم لتنفيذ البرنامج وتخزين البيانات ولكن تفقد البيانات بعمل RESET للميكرو أو فصل مصدر التغذيه

3-EEPROM :-

256 BYTE

تستخدم تخزين البيانات ولكن لا تفقد البيانات بعمل RESET للميكرو او فصل مصدر التغذيه يمكن اعتبارها مثل القرص الصلب فى الكمبيوتر

4- I/O PORT MODULE :-

ويستخدم للدخل والخرج الرقمى وبه 22 PIN وينقسم الى

PORT A, PORT B, ,PORT C

5- TIMERS :-

1- TIMER 0 :-

مؤقت8 BIT

اى يعد من 00H الى FFH

2- TIMER 1 :-

مؤقت16 BIT

اى يعد من 0000H الى FFFFH

3- TIMER 2 :-

مؤقت8 BIT

اى يعد من 00H الى FFH

4-WATCH DOG TIMER----->WDT :-

مؤقت8 BIT

اى يعد من 00H الى FFH

ان شاء الله الباقى الدرس القادم

تم تعديل بواسطه Asm4all
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخي عمل رائع... ارجو منك التكملة

للتوضيح البسيط :

مؤقت8 BIT يعني هناك 2^8 من الاحتمالات التي سوف يعدها العداد و هي من 0 إلي FFH بالنظام السادس عشر 16 وهكذا مع الباقي ...

اذن زمن تنفيذ الinstruction هو مقلوب عدد الcycle فى الثانيه اى 1 ميكرو ثانيه

أي الزمن الدوريPeriodic Time هو مقلوب التردد (عدد الدورات Cycles في الثانية ) .

و اتمني التكملة و ان شاء الله نساعدك في هذا العمل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الاخ احمد صالح انا سعيد بمرورك على موضوعى البسيط

ان شاء الله نساعدك في هذا العمل

ياريت وبالذات لو وجدت اشياء محتاجه توضيح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

احب اعرف اعضاء المنتدى ان الموضوع مكتوب عليه smart_fox ولكن اللى شغال من وراء الكواليس الاخ asm4all بارك الله فيه هو الى بينسق الموضوع بشكله الجميل والوانه الاحمر والاخضر والفسدقى بالاضافه لتصحيح الاخطاء اللغويه والعلميه

اللهم اجعل عمله خالصا لوجهك واجعل باطنه كظاهره

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ناس يقولو PIC16F84 هي احسن الشي للبداية

و انت تقول pic16f876a

:)

مالفرق الجوهري!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

ناس يقولو PIC16F84 هي احسن الشي للبداية

و انت تقول pic16f876a

ان ماقلتش ان هى احس شىء للبدايه ولكن قلت

ولكن لماذا ال PIC16F876A بالذات التى ساتناولها بالشرح ؟

وجدت ان الاخ mohamad1977 بارك الله فيه يشرح PIC16F84 فوجدت من المناسب شرح شىء مختلف حتى لا يحدث تكرار

مالفرق الجوهري!!

الفرق فى الامكانيات حسب انتا محتاج ايه على سبيل المثال

احمد عدد افراد اسرته 3 لذلك اشترى شقه من حجرتين 
محمد  عدد افراد اسرته 5 لذلك اشترى شقه من 3حجرات
حسن عدد افراد اسرته 14 لذلك اشترىبيت من 7 حجرات وحديقه وعدد 2 حمام

او مثال اخر

محمد يعمل بالمدينه لذلك اشترى سياره bmw

على عكس محمود الذى يعمل بمنطقه صحراويه فراى من المناسب شراء سياره جيب 4x4

فانت عند البدء فى مشروع جديد امسك بالورقه والقلم واقول ماذا يريد مشروعى لاتمامه فاجده

مثلا يحتاج 24 pin و وحدتين a/d converter ففى هذه الحاله لايصلح الpic16f876a ولكن يصلح الpic 16f877

وفى مشروع اخر اكون محتاج عدد 4 pin فاجد ان ال PIC10F200 مناسبه جدا ولا احتاج PIC16F84 ولا pic16f876a التى يوجد بها امكانيات لن استخدمها ولكن سادفع فلوس على الارض بدون الاستفاده منها

لان PIC10F200 سعرها $0.55 بينما ال pic16f876a سعرها $4.68

فيجب بعد كتابه ما احتاجه من امكانيات سؤال نفسى سؤال اخر ماهو الmicrocontroller الذى يعطينى الامكانيات التى اريده باقل سعر ثم ادخل على هذا اللنك

http://www.microchip.com/stellent/idcplg?I...ng=en&defID=101

لاختيار المناسب لمشروعى الذى به مقارنات بين الmicrocontroller من وجهات نظر مختلفه و هى

Microcontrollers 
  Memory Type
   FLASH
   ENHANCED FLASH
   OTP
   ROM
   ROMless

  I/O Pins Count
   4 - 18 Pin Count
   20 - 28 Pin Count
   32 - 60 Pin Count
   64 and Above

  Architecture
   8-bit
   16-bit

  Special Features
   CAN
   USB
   Ethernet
   LCD
   nanoWatt Technology
   Motor Control

  Radio Frequency
   rfPIC™ Microcontrollers with UHF RF Transmitter
   UHF RF Receiver

  Battery Fuel Gauge ICs
  Product Family
   PIC10
   PIC12
   PIC14
   PIC16
   PIC17
   PIC18
   PIC24

  Mature PICmicro® MCUs
  EOL PICmicro® MCUs

اى مثلا لو اردت كل ارقام الميكروكنترولر الذى عدد اطرافه يتراوح بين 4 - 18 اضغط على اللنك

4 - 18 Pin Count

ولو اردت كل عائله الPIC14 اضغط على

PIC14

وهكذا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انا متعود انى اذاكر لاصدقائى باسلوب الورقه والقلم ودى اول مره استعمل اسلوب كتابه المواضيع والناس تفهم لو اى احد عنده اقتراح بالنسبه لاسلوب الشرح ياريت يقوله

واحنا لسه فى الاول قبل ما ندخل فى الجد لانى مش عارف مستوى الناس فى القسم بالاضافه لانى اول مره اجرب الاسلوب ده فى الشرح ومعنديش ثقه ان كانت الناس بتفهم ولا لا

ونفس الكلام لو اى شخص عنده سوال فيما سبق شرحه فقط

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يا smart_fox اكتب بالطريقه التي تناسبك وتريحك وسواء ظهرت استفسارات او لم تظهر فالاسلوب جيد , و في حالة وجود استفسارات من القراء يمكنك توضيحها او اي عضو بشكل آخر

اسلوبك جيد , استمر عليه

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله

لماذا توقفت الدروس الخاصة ببرمجة الميكروكونترولر ؟!

الشيء الثاني أنا محتاجة جداً للدروس الخاصة بنظم الأعداد .. وفتحت الملف ولكنه كان معطوب

أيضاً ..

أين أجد شرح مبسط للغة الأسمبلي الخاصة ببرمجة الميكرو ؟!

أرجو الإفادة .. لأن لدي بحث مهم حول الميكرو

شكراً جزيلاً

تم تعديل بواسطه الإلكترونية
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عيكم ورحمة الله وبركاته

لااملك الا ان اقولك جزاك الله خيرا على هذا المجهود

ولكن ارجو منك الاسراع قليلا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله خير الجزاء على ما بذلت من مجهود كبير والموضوع نحن بحاجه ماسه له في هذه الايام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا جداااااااا على الموضوع وبجد شرح رائع بس ارجو منك ان تكمل لانى بحاجة اليه ضرورى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .