Vložený programovací výukový program C s jazykom Keil

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Embedded C je najpopulárnejší programovací jazyk v oblasti softvéru na vývoj elektronických prístrojov. Každý procesor je spojený s integrovaným softvérom. Zabudované programovanie v jazyku C. hrá hlavnú úlohu pri vykonávaní špecifických funkcií procesorom. V našom každodennom živote často používame veľa elektronických zariadení, ako sú práčky, mobilné telefóny, digitálne fotoaparáty a podobne, ktoré fungujú na báze mikrokontrolérov, ktoré sú programované pomocou zabudovaného C.

Programovanie zabudovaného systému

Programovanie zabudovaného systému



Napísaný kód C je spoľahlivejší, prenosnejší a škálovateľný a v skutočnosti je oveľa ľahšie pochopiteľný. Prvým a najdôležitejším nástrojom je zabudovaný softvér, ktorý rozhoduje o činnosti zabudovaného systému. Na programovanie mikrokontrolérov sa najčastejšie používa zabudovaný programovací jazyk C.


Výukový program pre vstavané programy C (8051)

Na napísanie programu musia mať integrovaní dizajnéri dostatočné vedomosti o hardvéri konkrétnych procesorov alebo radičov, pretože zabudované programovanie v jazyku C je úplná programovacia technika súvisiaca s hardvérom.



Výukový programovací program

Výukový programovací program

Mnoho zabudovaných aplikácií bolo predtým vyvinutých pomocou programovania na úrovni zostavy. Neposkytli však prenosnosť na prekonanie tohto problému s príchodom rôznych jazykov na vysokej úrovni, ako sú C, COBOL a Pascal. Bol to však jazyk C, ktorý získal rozsiahle prijatie vývoj aplikácií zabudovaných systémov , a pokračuje v tom naďalej.

Vstavaný systém

Zabudovaný systém je definovaný ako kombinácia zabudovaného programovacieho softvéru C a hardvérovej časti, ktorá sa skladá hlavne z mikrokontrolérov a je určená na vykonávanie konkrétnej úlohy. Tieto typy zabudovaných systémov sa používajú v našom každodennom živote, ako sú práčky a videorekordéry, chladničky atď. Vstavaný systém prvýkrát predstavili mikrokontroléry 8051.

Vstavaný systém

Vstavaný systém

Úvod do mikrokontroléra 8051

Mikrokontrolér 8051 je základný mikrokontrolér. Prvýkrát ho predstavila spoločnosť „Intel Corporation“ od roku 1970. Vyvinula ho architektúra procesora 8086. 8051 je rodina mikrokontrolérov, ktorá bola vyvinutá rôznymi výrobcami, ako sú Philips, Atmel, Dalls atď. 8051 mikrokontrolérov sa používala v mnohých výrobkoch od malých detských hračiek až po veľké automobilové systémy.


Mikrokontrolér 8051

Mikrokontrolér 8051

Mikrokontrolér 8051 je 8-bitový „CISC“ architektúra . Skladá sa z pamätí, sériovej komunikácie, prerušení, vstupných / výstupných portov a časovača / počítadla zabudovaných do jedného integrovaného čipu, ktorý je naprogramovaný na riadenie periférnych zariadení, ktoré sú s ním prepojené. Program je uložený v RAM mikrokontroléra, ale pred napísaním programu si musíme byť vedomí RAM Organizácia mikrokontroléra.

Programovanie zabudovaného systému: Základné vyhlásenie

Každá funkcia je súborom príkazov, ktoré vykonávajú konkrétnu úlohu, a súbor jednej alebo viacerých funkcií sa nazýva programovací jazyk. Každý jazyk sa skladá z niekoľkých základných prvkov a gramatických pravidiel. Programovanie v jazyku C je navrhnuté tak, aby fungovalo so znakovou sadou, na napísanie programu C sa používajú premenné, dátové typy, konštanty, kľúčové slová, výrazy atď. Všetky tieto položky sú považované za hlavičkový alebo knižničný súbor a je reprezentovaný ako

#include

Zabudovaný vývoj programovania C.

Zabudovaný vývoj programovania C.

Rozšírenie jazyka C sa nazýva programovací jazyk Embedded C. V porovnaní s vyššie uvedeným má zabudované programovanie v jazyku C niektoré ďalšie funkcie, ako napríklad dátové typy a kľúčové slová, a hlavičkový alebo knižničný súbor je reprezentovaný ako

#include

Vložené ďalšie kľúčové slová C.

  • sbit
  • trocha
  • SFR
  • prchavý
  • makrá definovať

„Sbit“ sa používa na vyhlásenie jediného PIN mikrokontroléra. Napríklad LED je pripojená na pin P0.1, neodporúča sa posielať hodnotu priamo na pin portu, najskôr musíme pin deklarovať pomocou inej premennej, až potom môžeme použiť kdekoľvek v programe.

Syntax: sbit a = P0 ^ 1 // deklaruje príslušný pin premennou //
a = 0x01 // odoslanie hodnoty na pin portu //

„Bit“ sa používa na kontrolu stavu premennej.

Syntax: bit c // deklaruje bitovú premennú //
c = a // hodnota je priradená premennej c //
if (c == 1) // skontrolovať podmienku true alebo false //

{
… ..
……
}

Kľúčové slovo „SFR“ sa používa na prístup k registrom SFR pod iným menom. Register SFR definovaný ako a register špeciálnych funkcií , obsahuje všetky periférne súvisiace registre uvedením adresy. Register SFR je deklarovaný kľúčovým slovom SFR. Kľúčové slovo SFR musí byť veľké.

Syntax: SFR port = 0x00 // 0x00 je adresa port0, ktorú deklaruje premenná portu //
Port = 0x01 // a potom pošlite hodnotu na port0 //
oneskorenie ()
port = 0x00
oneskorenie ()

Kľúčové slovo „volatile“ je najdôležitejšie pri vývoji zabudovaného systému. Premennú, ktorá deklaruje hodnotu volatilného kľúčového slova, nebolo možné neočakávane zmeniť. Môže byť použitý v periférnych registroch mapovaných do pamäte, globálnych premenných modifikovaných ISR. Bez použitia volatilného kľúčového slova na prenos a príjem dát dôjde k chybe kódu alebo optimalizačnej chybe.

Syntax: volatile int k

Makro je názov, ktorým sa deklaruje blok príkazov ako direktíva pred procesorom. Kedykoľvek sa použije názov, nahradí sa obsahom makra. Makrá predstavujú #define. Celé kolíky portov sú definované makrami.

Syntax: #define dat Po // celý port je deklarovaný premennou //
dat = 0x01 // odosielanie dát na port0 //

Základné vstavané programy C.

Programovanie mikrokontroléra sa bude u každého líšiť typ operačného systému . Aj keď existuje veľa operačných systémov, ako sú Linux, Windows, RTOS a pod. RTOS má však pre vývoj zabudovaného systému niekoľko výhod. Tento článok pojednáva o základnom zabudovanom programovaní C na vývoj zabudovaného programovania C pomocou mikrokontroléra 8051.

Integrované programovacie kroky C.

Integrované programovacie kroky C.

  • LED bliká pri použití s ​​mikrokontrolérom 8051
  • Zobrazenie čísla na 7-segmentovom displeji pomocou mikrokontroléra 8051
  • Výpočty časovača / počítadla a program pomocou mikrokontroléra 8051
  • Výpočty sériovej komunikácie a programovanie pomocou mikrokontroléra 8051
  • Prerušujte programy pomocou mikrokontroléra 8051
  • Programovanie klávesnice pomocou mikrokontroléra 8051
  • Programovanie LCD pomocou mikrokontroléra 8051

LED bliká pomocou mikrokontroléra 8051

LED je polovodičové zariadenie, ktoré sa používa v mnohých aplikáciách, väčšinou na indikačné účely. Počas testu nachádza obrovské množstvo aplikácií ako indikátorov na overenie platnosti výsledkov v rôznych fázach. Sú veľmi lacné a ľahko dostupné v rôznych tvaroch, farbách a veľkostiach. LED diódy sa používajú na dizajn vývesky so správami a signalizačné svetlá riadenia dopravy atď. Tu sú LED diódy prepojené s PORT0 mikrokontrolérov 8051.

LED bliká pomocou mikrokontroléra 8051

LED bliká pomocou mikrokontroléra 8051

1. 01010101
10101010

#include // hlavickovy soubor //
void main () // bod vykonania programu //
{
nepodpísaný int i // dátový typ //
while (1) // pre spojitú slučku //
{
P0 = 0x55 // pošle hexa hodnotu na port0 //
pre (i = 0i<30000i++) //normal delay//
P0 = 0x3AA // pošle hexa hodnotu na port0 //
pre (i = 0i<30000i++) //normal delay//
}
}

2. 00000001

00000010

00000100

.

.

10 000 000

#include

void main ()

{

nepodpísaný i

nepodpísaný znak j, nar

zatiaľ čo (1)

{

P0 = 0x01

b = P0

pre (j-0j<3000j++)

pre (j = 0j<8j++)

{

b = b<<1

P0 = b

pre (j-0j<3000j++)

}

}

}

3. 00001111

11110000

#include

void main ()

{

nepodpísaný i

zatiaľ čo (1)

{

P0 = 0x0F

pre (j-0j<3000j++)

P0 = 0xF0

pre (j-0j<3000j++)

}

}

4. 00000001

00000011

00000111

.

.

11111111

#include

void main ()

{

nepodpísaný i

nepodpísaný znak j, nar

zatiaľ čo (1)

{

P0 = 0x01

b = P0

pre (j-0j<3000j++)

pre (j = 0j<8j++)

0x01

P0 = b

pre (j-0j<3000j++)

}

}

Zobrazenie čísel na 7-segmentovom displeji pomocou mikrokontroléra 8051

The 7-segmentové displeje sú základné elektronické displeje, ktoré sa používajú v mnohých systémoch na zobrazovanie číselných informácií. Skladá sa z ôsmich LED, ktoré sú zapojené postupne tak, aby pri zapnutí správnej kombinácie LED zobrazovali číslice od 0 do 9. Naraz môžu zobraziť iba jednu číslicu.

Zobrazenie čísel na 7-segmentovom displeji pomocou mikrokontroléra 8051

Zobrazenie čísel na 7-segmentovom displeji pomocou mikrokontroléra 8051

1. WAP na zobrazenie číselných tvarov „0 až F“ na štyroch 7segmentových displejoch?

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
void main ()
{
unsignedchar n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
nepodpísal si, j
a = b = c = d = 1
zatiaľ čo (1)
{
pre (i = 0i<10i++)
{
P2 = n [i]
pre (j = 0j<60000j++)
}
}
}

2. WAP na zobrazenie čísel od „00 do 10“ na 7segmentových displejoch?

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
void display1 ()
void display2 ()
neplatnosť oneskorenia ()
void main ()
{
unsignedchar n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
nepodpísal si, j
ds1 = ds2 = 0
zatiaľ čo (1)
{
pre (i = 0, i<20i++)
display1 ()
display2 ()
}
}
void display1 ()
{
a = 1
b = 0
P2 = s [ds1]
oneskorenie ()
a = 1
b = 0
P2 = s [ds1]
oneskorenie ()
}
void display2 ()
{
ds1 ++
ak (ds1> = 10)
{
ds1 = 0
ds2 ++
ak (ds2> = 10)
{
ds1 = ds2 = 0
}
}
}
neplatnosť oneskorenia ()
{
nepodpísaný k
pre (k = 0 k<30000k++)
}

Výpočty časovača / počítadla a programovanie pomocou mikrokontroléra 8051

Oneskorenie je jedným z dôležitých faktorov pri vývoji aplikačného softvéru. Normálne oneskorenie však neprinesie vzácny výsledok na prekonanie tohto problému pri implementácii časovacieho oneskorenia. The časovače a počítadlá sú hardvérové ​​komponenty mikrokontroléra, ktoré sa používajú v mnohých aplikáciách na zabezpečenie vzácneho časového oneskorenia s počtom impulzov. Obe úlohy sú implementované softvérovou technikou.

Oneskorenie časovača

WAP na generovanie časového oneskorenia 500us pomocou T1M2 (časovač1 a režim2)?

#include

void main ()
{
nepodpísaný znak i
TMOD = 0x20 // nastavenie režimu časovača //
pre (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // nastavenie časového oneskorenia //
TH1 = 0x00
TR1 = 1 // časovač o //
While (TF1 == 0) // skontrolovať príznakový bit //
TF1 = 0
}
TR1 = 0 // časovač vypnutý //
}

Normálne oneskorenie slučky

neplatnosť oneskorenia ()

{
nepodpísaný k
pre (k = 0 k<30000k++)
}

Výpočty sériovej komunikácie a program pomocou mikrokontroléra 8051

Na vysielanie a príjem signálu sa bežne používa sériová komunikácia. Mikrokontrolér 8051 sa skladá Sériová komunikácia UART signály vysielané a prijímané pinmi Rx a Tx. UART berie bajty dát a odosiela jednotlivé bity postupne. Registre sú spôsobom zhromažďovania a ukladania údajov do pamäte. UART je protokol s polovičným duplexom. Poloduplex znamená prenos a príjem údajov, ale nie súčasne.

Výpočty sériovej komunikácie a program pomocou mikrokontroléra 8051

Výpočty sériovej komunikácie a program pomocou mikrokontroléra 8051

1. WAP na prenos znaku „S“ do sériového okna používa ako prenosovú rýchlosť 9600?

28800 je maximálna prenosová rýchlosť mikrokontroléra 8051

28800/9600 = 3

Táto prenosová rýchlosť „3“ je uložená v časovačoch

#include

void main ()

{
SCON = 0x50 // spustenie sériovej komunikácie //
TNOD = 0x20 // vybral režim časovača //
TH1 = 3 // načítanie prenosovej rýchlosti //
TR1 = 1 // Časovač zapnutý //
SBUF = ‘S’ // uloží znak do registra //
while (TI == 0) // skontrolovať register prerušení //
TI = 0
TR1 = 0 // VYPNUTÝ časovač //
while (1) // spojitá slučka //
}

2. WAP na príjem údajov z hyperterminálu a ich odoslanie na PORT 0 mikrokontroléra pomocou 9600 baudov?

28800 je maximálna prenosová rýchlosť mikrokontroléra 8051

28800/9600 = 3

Táto prenosová rýchlosť „3“ je uložená v časovačoch

#include

void main ()
{
SCON = 0x50 // spustenie sériovej komunikácie //
TMOD = 0x20 // vybral režim časovača //
TH1 = 3 // načítanie prenosovej rýchlosti //
TR1 = 1 // Časovač zapnutý //
PORT0 = SBUF // odoslať dáta z SBUF na port0 //
while (RI == 0) // skontrolovať register prerušení //
RI = 0
TR1 = 0 // VYPNUTÝ časovač //
while (1) // zastaví program po prijatí znaku //
}

Prerušujte programy pomocou mikrokontroléra 8051

Prerušenie je signál, ktorý núti zastaviť aktuálny program a okamžite vykonať druhý program. Mikrokontrolér 8051 poskytuje 6 prerušení, ktoré sú interné a externé zdroje prerušenia . Keď dôjde k prerušeniu, mikrokontrolér pozastaví aktuálnu úlohu a postará sa o prerušenie vykonaním ISR, potom sa mikrokontrolér vráti späť k poslednej úlohe.

WAP, aby vykonal operáciu ľavého radenia, keď dôjde k prerušeniu časovača 0, a potom vykoná operáciu prerušenia pre P0 v hlavnej funkcii?

#include

nepodpísaný znak b

void timer0 () prerušenie 2 // vybraný časovač0 prerušenie //
{
b = 0x10
P1 = b<<2
}
void main ()
{
nepodpísaný znak a, i
IE = 0x82 // povoliť prerušenie časovača //
TMOD = 0x01
TLo = 0xFC // časovač prerušenia //
TH1 = 0xFB
TR0 = 1
a = 0x00
zatiaľ čo (1)
{
pre (i = 0i<255i++)
{
a ++
Po = a
}
}
}

Programovanie klávesnice pomocou mikrokontroléra 8051

Maticová klávesnica je analógové spínacie zariadenie, ktoré sa používa v mnohých zabudovaných aplikáciách a umožňuje používateľovi vykonávať potrebné úlohy. A maticová klávesnica pozostáva z usporiadania prepínačov v maticovom formáte v riadkoch a stĺpcoch. Riadky a stĺpce sú spojené s mikrokontrolérom tak, že rad prepínačov je pripojený k jednému kolíku a prepínače v každom stĺpci sú pripojené k inému kolíku, potom vykonajte príslušné operácie.

Programovanie klávesnice pomocou mikrokontroléra 8051

Programovanie klávesnice pomocou mikrokontroléra 8051

1. WAP na prepínanie LED stlačením spínača

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
neplatnosť oneskorenia ()
void main ()
{
zatiaľ čo (1)
{
a = 0
b = 1
c = 1
d = 1
oneskorenie ()
a = 1
b = 0
c = 1
d = 1
neplatnosť oneskorenia ()
{
nepodpísaný znak i
TMOD = 0x20 // nastavenie režimu časovača //
pre (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // nastavenie časového oneskorenia //
TH1 = 0x00
TR1 = 1 // časovač o //
While (TF1 == 0) // skontrolovať príznakový bit //
TF1 = 0
}
TR1 = 0 // časovač vypnutý //
}

2. WAP na rozsvietenie LED diódy stlačením klávesu „1“ na klávesnici?

#include

sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit LED = P0 ^ 1

void main ()
{

r1 = 0
if (c1 == 0)
{

LED = 0xff
}
}

3. WAP na zobrazenie čísla 0,1,2,3,4,5 na siedmom segmente stlačením príslušného klávesu na klávesnici?

#include

sbit r1 = P2 ^ 0

sbit c1 = P3 ^ 0

sbit r2 = P2 ^ 0

sbit c2 = P3 ^ 0

sbit a = P0 ^ 1

void main ()

{

r1 = 0 a = 1

if (c1 == 0)

{

a = 0xFC

}

Ak (c2 == 0)

{

a = 0x60

}

if (c3 == 0)

{

a = 0xDA

}

Ak (c4 == 0)

{

a = 0xF2

}

}

Programovanie LCD pomocou mikrokontroléra 8051

The displej LCD je elektronické zariadenie, ktoré sa často používa v mnohých aplikáciách na zobrazovanie informácií v textovom alebo obrazovom formáte. LCD je displej, ktorý na svojej obrazovke dokáže ľahko zobraziť znaky. LCD displej pozostáva z 8-dátových liniek a 3-riadkových liniek, ktoré sa používajú na prepojenie s mikrokontrolérom.

Programovanie LCD pomocou mikrokontroléra 8051

Programovanie LCD pomocou mikrokontroléra 8051

WAP na zobrazenie „SADY EDGEFX“ na LED displeji?

#include
#define kam P0

voidlcd_initi ()
voidlcd_dat (nepodpísaný znak)
voidlcd_cmd (nepodpísaný znak)
neplatnosť oneskorenia ()
neplatné zobrazenie (nepodpísané znaky * s, nepodpísané znaky r)

sbitrs = P2 ^ 0
sbitrw = P2 ^ 1
sbit at = P2 ^ 2
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
oneskorenie (100)
lcd_cmd (0xc0)
displej („súpravy edgefx“, 11)
zatiaľ čo (1)
}

neplatné zobrazenie (nepodpísané znaky * s, nepodpísané znaky r)
{
nepodpísaný w
pre (š = 0 t{
lcd_data (s [w])
}
}
voidlcd_initi ()
{
lcd_cmd (0 × 01)
oneskorenie (100)
lcd_cmd (0 × 38)
oneskorenie (100)
lcd_cmd (0 × 06)
oneskorenie (100)
lcd_cmd (0x0c)
oneskorenie (100)
}
voidlcd_dat (nepodpísaný char dat)
{
hrebeň = to
rs = 1
rw = 0
v = 1
oneskorenie (100)
in = 0
}
}
voidlcd_cmd (nepodpísaný znak cmd)
{
prišlo = cmd
rs = 0
rw = 0

v = 1
oneskorenie (100)
in = 0
}
void delay (unsigned int n)
{

nepodpísaný a
pre (a = 0a}

Dúfam, že tento článok poskytuje základné informácie o programovaní zabudovaného systému pomocou mikrokontroléra 8051 s niekoľkými príkladmi programov. Podrobný návod na programovanie v jazyku C nájdete po zaslaní komentárov a otázok v sekcii komentárov nižšie.