INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
In hierdie tutoriaal gaan ons u vertel hoe ons LCD met 8051 in die 4-bis-modus kan koppel.
Stap 1: Gebruikte sagteware:
Aangesien ons proteussimulasie toon, VIR KODERING EN SIMULERING WAT U VERNUWE:
1 Wysigings: dit is baie produkte van keil. U benodig dus 'n c51 -samesteller. U kan die sagteware hier aflaai
2 Proteus -sagteware vir simulasie: Dit is die sagteware om simulasie aan te toon. U kry baie inligting om hierdie sagteware af te laai.
As u dit met hardeware doen, benodig u 'n sagteware wat 'n flits magie is om die kode in u hardeware op te laai. Onthou flash magic is ontwikkel deur nxp. U kan dus nie alle 8051 -familie -mikrobeheerders deur hierdie sagteware oplaai nie. U kan slegs op Philips gebaseerde beheerder oplaai.
Stap 2: Vereiste komponente:
Hier in ons demo -video gebruik ons proteus -simulasie, maar as u dit in u hardeware doen, benodig u hierdie komponente vir hierdie projek:
8051 Ontwikkelingsbord: as u hierdie bord het, sal dit beter wees, sodat u die kode maklik self kan oplaai.
LCD 16*2: Dit is 16*2 lcd. In hierdie lcd het ons 16 penne.
USB na UART -omskakelaar: dit is 'n 9 -pins D -tipe manlike aansluiting vir Rs232 O/p -draaddrade
Stap 3: Kringdiagram:
Stap 4: Werkbeginsel van hierdie projek:
Soos met 8 bit, moet ons al 8 datapennetjies van lcd aan mikrokontroleerder koppel. Dus moet ons altesaam 11 penne van mikrokontroller gebruik, aangesien ons ook 3 kontrolepennetjies (rs, rw, e) in lcd het. Die voordeel van lcd in 4 bit is dus dat ons 4 penne mikrokontroleerder spaar sodat ons hierdie penne vir ander werk kan gebruik.
Nou is die werkbeginsel van kode baie eenvoudig. Laai eers die kode af.
Oké, nou neem ek een funksie uit die kode en vertel hoe die opdrag of data lcd ontvang. In ons kode is die eerste opdrag instruksie
cmd (0x28);
So nou gaan dit na die definisie daarvan
void cmd (ongeteken teken a) {
ongetekende char x;
x = a & 0xf0;
cmd1 (x);
x = (a << 4) & 0xf0;
cmd1 (x);
}
in die bogenoemde funksie kan u sien dat a slegs 0x28 is. Deur x = a & 0xf0, word die laer knibbel 0. terwyl ons die AND -operateur met 0xf0 gebruik. Dus, slegs in hoër nibble, het ons data, dan stuur ons deur cmd1 (x) 0x20 na poort 2 en lcd is gekoppel aan hoër stukkies poort 2, sodat dit 2 sal ontvang, nou moet ons onmiddellik die volgende nibble stuur, wat niks is nie maar 0x8. Daarom kan u in die funksie x = (a << 4) en 0xf0 sien, 'n waarde 4 keer verskuif, en dan gebruik ons en werk ons met 0xf0.
So verstaan dit net
a << 4 is niks anders as 0x28 << 4, wat beteken 00101000 << 4, so ons sal kry
10000000 en ons het 0xf0 en ons kry 0b10000000 wat 0x80 is, en vanaf die volgende funksie cmd1 (x) stuur ons die data na lcd en nou ontvang dit 0x80, so ons het die hele data 0x28 gestuur.
Op dieselfde manier sal elke opdrag en data lcd ontvang.
Ek hoop jy verstaan dit. U kan steeds die video wat in die volgende stap is, afreken. Die hele projekbeskrywing word in die video gegee.
Stap 5: Kode en video
U kan die bronkode kry van ons GitHub -skakel
Die hele projekbeskrywing word in die video hierbo gegee.
As u twyfel oor hierdie projek, kan u ons gerus hieronder kommentaar lewer. En as u meer wil weet oor die ingebedde stelsel, kan u ons YouTube -kanaal besoek
Besoek en hou van ons Facebook -blad vir gereelde opdaterings.
Hierdie kanaal het nou begin, maar daagliks kry u video's oor die ingeboude stelsel en IoT.
Dankie & groete,