Mikrokontrolleri 8051

MCS-51 është familje e mikrokontrollerëve e zhvilluar, prodhuar dhe shitur nga Intel Corporation. Prodhuesit tjerë siç janë: Siemens , Advanced micro devices, Fujitsu dhe Philips, janë të licensuar si prodhues dytësorë te paisjeve të MCS-51. 
Mikrokontrolleri kryesorë i familjes MCS-51 është mikrokontrolleri 8051 i cili është edhe paisja e parë e kësaj familjeje që është përhapur komercialisht. Mikrokontrolleri 8051 është mikrokontroller 8-bitësh, që do të thotë se shumica e operacioneve që mund të kryhen në të janë operacione 8-bitëshe.
Mikrokontrolleri 8051 mund të gjendet në 3 madhësi: në formën e shkurtë, standarde dhe të zgjatur. Dy modelet e para në shumicën e rasteve mund të gjenden si DIP(Dual In-Line Package), kurse forma e zgjatur e 8051 zakonisht janë në formë të ndryshme dhe nuk janë "Drop-In Compatibile" 
Mikrokontrolleri 8051 është i programueshëm në gjuhën asamblerike(Assembly), por edhe me C.

## Karakteristikat 
Karakteristikat e mikrokontrollerit 8051 janë :

* 4K bajt ROM
* 128 bajt RAM
* Katër porta H/D (Hyrëse/Dalëse)
* Dy kohëmatës(tajmerë) 16-bitësh
* Serial Interface
* 64K hapsirë e jashtme memorike për kod
* 64K hapsirë e jashtme memorike për të dhëna
* Procesor Bulean(Boolean - që funksionon në bazë të algjebrës së Bulit)
* 210 bit - Lokacione të adresueshme
* 4 μs Pjesëtim/Shumëzim

## Arkitektura 

Arkitektura e mikrokontrollerit 8051 perbehet prej 40 pinave te cilët funksionojnë si porta Hyrëse/Dalëse dhe 24 prej tyre janë me qëllim të dyfishtë d.m.th funksionojne edhe si njësi Hyrëse edhe si njësi dalëse.
Dizajnimi kërkon minimum të memories së jashtme ose komponente të tjera të jashtme që përdorin portat për qëllime H/D. Tetë linjat e çdo porti mund të trajtohen si njësi të veçanta në ndërfaqe për paisjet e jashtme siç janë printerët, konvertuesit Digjital-Analog, e kështu me rradhë, ose secila linjë mund të operoj e pavarur në raport me paisejet single-bitëshe siç janë switchat, LED llampat, motorët, solenoidët, tranzistorët, altoparlantët, etj.
* Porta 0, është portë me qëllime të dyfishtë I/O dhe përbëhet nga pinat 32-39.
Për punë që kërkojnë shfrytëzim të vogël të komponenteve përdoret si port i zakonshëm I/O, kurse për punë më të mëdha që kërkojnë memorje të jashtme përdoret si adresë e multipleksuar dhe si bus i të dhënave(data bus).
* Porta 1, është portë i dedikuar H/D per pinat prej 1-8. Pinat si : P1.0, P1.1, P1.2, etj. janë të çasshëm për tu bërë ndërfaqe(interface) i paisjeve të jashtme si t'u duhet atyre.
* Porta 2, rbohet nga pinat 21-28, është portë gjithashtu me qëllim të dyfishtë H/D, ose si bajti i lartë i adres busit me memorje koduese të jashtme ose me memorje të jashtme të dhënave më të madhe se 256 bajt.
* Porta 3, përbëhet prej pinave 10-17 me qëllim të dyfishtë H/D. Përveç që punojnë si pina të zakonshëm H/D, pinat e këtij porti janë multifunksional, ku secili ka një qëllim të caktuar lidhur me veçoritë speciale të mikrokontrollerit 8051

* PSEN(Program Store Enable), është një sinjal në dalje në pinin 29 që lejon të punojë memorjen e jashtme të programit që lidhet me një memorje të programueshme vetëm për lexim që mund të fshihet (EPROM), që lejon leximin e bajtave të programit. 
PSEN është sinjal pulsues i ultë gjat fazës që shkon të marrë instukcionin i cili ruhet në memorjen e jashtme të programit,kodet binare të programit pasi lexohen nga EPROM udhëtojnë nëpër data bus dhe vihen nën udhëzimin e 8051-shit për dekodim. Kur ekzekutohet ndonjë program nga memorja e brendshme e 8051 (ROM) PSEN mbetet në gjendje joaktive.
* ALE(Address Latch Enable), është sinjal i jashtem i vendosur në pinin e 30. 8051 e përdorë ALE për demultipleksimin e adresave dhe busit të të dhënave. Kur porti 0 është duke kryer punën e tijë të zakonshme si data bus dhe si bajti i ulët i adres busit, ALE është sinjali që e udhëzon adresën në memorje të jashtme gjat gjysmës së parë të ciklit memorik. Kur të kryhet jo linjat e portit 0 janë të gatshme për futje dhe nxjerrje të të dhënave gjatë pjesës së dytë të ciklit memorik ku ndodhë transferi i të dhënave.
* EA(External Acces), është sinjal hyrës në pinin 31 i lidhur lartë në tension prej 5V+ ose poshtë. Nëse gjendet lart i egzekuton programet nga ROM në të kundërtën programet egzekutohen vetëm nga memorja e jashtme dhe memorja e brendshme ROM fiket. Versionet EPROM të 8051 përdorin gjithashtu linjen EA si supply 21+ voltëshe për programim  të brendshëm EPROM.
* RST(Reset), është sinjal hyrës në pinin 9 që përdoret për resetimin e mikrokontrollerit 8051. Kur sinjali është i lartë për të paktën dy cikle të makinës, regjistrat e brendshëm mbushen me vlera të përshtatshme për një restartim të domosdoshëm, kurse për operacione normale RST është i ulët.
* Power Connections, 8051 operon me një furnizues të vetëm 5voltësh ku lidhja Vcc është në pinin 40 kurse lidhja Vss në pinin 20.

## Përdorimi 

Mikrokontrolleri 8051 është  një ndër mikrokontrollerët më të perdorur për qëllime të ndryshme sot.
Ai ka përdorim të madh në industri, pastaj përdoret si kontrollues i motorit të automjeteve, në makina larëse, mikrovalë(për ngrohje të ushqimit), robotikë, e shumëçka tjetër.

## Referimet 
* "The 8051 microcontroller - Scot Mackenzie (fourth edition) http://www.scribd.com/doc/212656146/The-8051-Microcontroller-by-I-Scott-Mackenzie-4th-Edition#scribd 
* https://en.wikibooks.org/wiki/Embedded_Systems/8051_Microcontroller
* https://web.archive.org/web/20150814042908/http://www.mikroe.com/chapters/view/65/chapter-2-8051-microcontroller-architecture/
* https://en.wikipedia.org/wiki/Intel_MCS-51