Vi er veldig kjent med 'Hello world!' grunnleggende programkode i den innledende fasen av hvilken som helst programmeringsspråk å lære noen grunnleggende ting. På samme måte for å komme i gang med 8051 Microcontroller, er LED-grensesnitt en grunnleggende ting i Microcontroller-grensesnittprogrammering. Hver mikrokontroller er forskjellig i sin arkitektur, men grensesnittkonseptet er nesten like for alle mikrokontroller. Denne opplæringen vil gi deg en LED-grensesnitt med 8051.
Grensesnitt er en metode som gir kommunikasjon mellom Microcontroller og grensesnittet. Et grensesnitt er enten inngangsenhet, eller utdataenhet, eller en lagringsenhet eller prosesseringsenhet.
Inndata grensesnitt enheter: Trykknappbryter, tastatur, infrarød sensor, Temperatur sensor , gassensor osv. Disse enhetene gir litt informasjon til mikrokontrolleren, og dette kalles som inngangsdata.
Enheter for utgangsgrensesnitt: LED, LCD, summer, Stafettfører , DC-motordriver, 7-segment display etc.
Lagringsgrensesnitt enheter: Brukes til å lagre / beholde dataene, for eksempel SD-kort, EEPROM, DataFlash, sanntidsklokke , etc.
MicroController-grensesnittmodell
Grensesnitt av en LED med 8051
Grensesnitt består av maskinvare (grensesnitt enhet) og programvare (kildekode for å kommunisere, også kalt driver). For å bruke en LED som utgangsenhet, skal LED kobles til Microcontroller-porten, og MC-en må være programmert inne, slik at LED-lampen PÅ eller AV eller blinker eller dempes. Dette programmet kalles driver / firmware. Driverprogramvaren kan utvikles ved hjelp av hvilken som helst programmeringsspråk som Assembly , C etc.
8051 Mikrokontroller
8051 Microcontroller ble oppfunnet på 1980-tallet av Intel. Grundlaget er basert på Harvard-arkitektur, og denne mikrokontrolleren ble utviklet hovedsakelig for å bringe den til bruk i Embedded Systems. Vi har diskutert tidligere 8051 Microcontroller History and Basics . Det er en 40-pin PDIP (Plastic Dual Inline Package).
8051 har en chip-oscillator, men den krever en ekstern klokke for å kjøre den. En kvartskrystall er koblet mellom XTAL-pinnene på MC. Denne krystallen trenger to samme verdikondensatorer (33pF) for å generere et kloksignal med ønsket frekvens. Funksjonene til 8051 Microcontroller har forklart i vår forrige artikkel.
Microcontroller Crystal Connections
LED (lysdiode)
LED er en halvlederenhet brukes i mange elektroniske enheter, hovedsakelig brukt til signaloverføring / effektindikasjon. Det er veldig billig og lett tilgjengelig i en rekke former, farger og størrelser. Lysdiodene brukes også til designmeldingstavler og trafikkontrolllys etc.
Den har to og positive terminaler som vist i figuren.
LED-polaritet
Den eneste måten å vite polariteten er å teste den med et multimeter eller ved å observere den nøye inne i LED-lampen. Den større enden inne i ledningen er -ve (katode) og den kortere er + ve (anode), det er slik vi finner ut polariteten til lysdioden. En annen måte å gjenkjenne polariteten på er å koble til ledninger, POSITIV terminal har lengre lengde enn NEGATIV terminal.
LED-grensesnitt til 8051
Det er to måter vi kan koble LED til Microcontroller 8051. Men tilkoblingene og programmeringsteknikkene vil være forskjellige. Denne artikkelen gir informasjon om LED-grensesnitt med 8051 og LED-blinkende kode for AT89C52 / AT89C51 Microcontroller.
Grensesnitt LED til 8051 Metoder
Observer nøye at grensesnitt-LED-en er forspent fordi inngangsspenningen på 5v er koblet til den positive terminalen på LED-en, så her skal mikrokontrollpinnen være på LAVT nivå. Og omvendt med grensesnitt 1-tilkoblinger.
Motstanden er viktig i LED-grensesnitt for å begrense strømmen og unngå å skade LED og / eller MCU.
- Grensesnitt 1 lyser LED, bare hvis PIN-verdien til MC er HØY når strømmen strømmer mot bakken.
- Grensesnitt 2 vil lyse LED, bare hvis PIN-verdien til MC er lav da strømmen strømmer mot PIN på grunn av dens lavere potensial.
Kretsskjemaet er vist nedenfor. En LED er koblet til pin-0 på port-1.
Proteus Simulation Circuit
Jeg vil forklare programkoden i detalj. Se videre denne lenken “ Embedded C Programming Tutorial with Keil Language ”. En krystall på 11.0592 MHz er koblet til for å generere klokken. Som vi vet at 8051 Microcontroller utfører en instruksjon i 12 CPU-sykluser [1], får denne 11.0592Mhz-krystallet denne 8051 til å kjøre med 0,92 MIPS (millioner instruksjoner per sekund).
I koden nedenfor er LED definert som pinnen 0 til porten 1. I hovedfunksjonen byttes LED etter hvert halve sekund. Funksjonen 'forsinkelse' utfører nulluttrykk hver gang den kjøres.
En verdi på 60000 (kompilert ved hjelp av Keil micro-vision4 programvare) genererer omtrent 1 sekund (forsinkelsestid) null utførelsestid når 11.0592 MHz krystall brukes. På denne måten får LED som er koblet til P1.0-pin til å blinke ved hjelp av koden nedenfor.
KODE
#inkludere
sbit LED = P1 ^ 0 // pin0 av port1 er navngitt som LED
// Funksjonserklæringer
ugyldig cct_init (ugyldig)
ugyldig forsinkelse (int a)
int main (ugyldig)
{
cct_init ()
mens (1)
{
LED = 0
forsinkelse (60000)
LED = 1
forsinkelse (60000)
}
}
ugyldig cct_init (ugyldig)
{
P0 = 0x00
P1 = 0x00
P2 = 0x00
P3 = 0x00
}
ugyldig forsinkelse (int a)
{
int i