Ugrađeni C programerski vodič s Keil jezikom

Isprobajte Naš Instrument Za Uklanjanje Problema





Embedded C najpopularniji je programski jezik u softverskom polju za razvoj elektroničkih uređaja. Svaki procesor povezan je s ugrađenim softverom. Ugrađeno C programiranje igra glavnu ulogu u izvođenju određenih funkcija od strane procesora. U našem svakodnevnom životu često koristimo mnoge elektroničke uređaje kao što su perilice rublja, mobilni telefoni, digitalni fotoaparati i tako dalje, a radit će na temelju mikrokontrolera koji su programirani ugrađenim C.

Programiranje ugrađenog sustava

Programiranje ugrađenog sustava



Napisani C kod pouzdaniji je, prenosiviji i skalabilniji i zapravo mnogo lakši za razumijevanje. Prvi i najvažniji alat je ugrađeni softver koji odlučuje o radu ugrađenog sustava. Ugrađeni programski jezik C najčešće se koristi za programiranje mikrokontrolera.


Vodič za programiranje ugrađenog C (8051)

Za pisanje programa ugrađeni dizajneri moraju imati dovoljno znanja o hardveru određenih procesora ili kontrolera jer je ugrađeno programiranje C cjelovita tehnika programiranja koja se odnosi na hardver.



Vodič za programiranje

Vodič za programiranje

Ranije su mnogi ugrađeni programi razvijeni pomoću programiranja na razini montaže. Međutim, nisu osigurali prenosivost za prevladavanje ovog problema pojavom različitih jezika visoke razine poput C, COBOL i Pascal. Međutim, jezik C bio je taj koji je široko prihvaćen razvoj ugrađenih sustava , i nastavlja to činiti.

Ugrađeni sustav

Ugrađeni sustav definira se kao kombinacija ugrađenog programskog softvera C i hardverskog dijela koji se uglavnom sastoji od mikrokontrolera i namijenjen je izvršavanju određenog zadatka. Ove se vrste ugrađenih sustava koriste u našem svakodnevnom životu, poput perilica rublja i video snimača, hladnjaka i tako dalje. Ugrađeni sustav prvi su uveli mikrokontroleri 8051.

Ugrađeni sustav

Ugrađeni sustav

Uvod u mikrokontroler 8051

Mikrokontroler 8051 osnovni je mikrokontroler, prvi ga je uvela ‘Intel Corporation’ od 1970. Razvio ga je procesorska arhitektura 8086. 8051 je obitelj mikrokontrolera koju su razvili različiti proizvođači kao što su Philips, Atmel, Dalls i tako dalje. Mikrokontroleri 8051 korišten je u puno ugrađenih proizvoda od malih dječjih igračaka do velikih automobilskih sustava.


8051 Mikrokontroler

8051 Mikrokontroler

Mikrokontroler 8051 je 8-bitni Arhitektura ‘CISC’ . Sastoji se od memorija, serijske komunikacije, prekida, ulazno / izlaznih priključaka i timera / brojača, ugrađenih u jedan integrirani čip, koji je programiran za upravljanje perifernim uređajima koji su s njim povezani. Program je pohranjen u RAM-u mikrokontrolera, ali prije pisanja programa moramo znati RAM-a organizacija mikrokontrolera.

Programiranje ugrađenog sustava: Deklaracija o osnovama

Svaka je funkcija zbirka izraza koji izvršavaju određeni zadatak, a zbirka jedne ili više funkcija naziva se programskim jezikom. Svaki se jezik sastoji od nekih osnovnih elemenata i gramatičkih pravila. Programiranje na jeziku C dizajnirano je da funkcionira sa skupom znakova, a za pisanje programa koriste se varijable, tipovi podataka, konstante, ključne riječi, izrazi i tako dalje. Sve se to uzima u obzir pod zaglavljem ili datotekom knjižnice i predstavlja se kao

#include

Razvoj ugrađenog C programiranja

Razvoj ugrađenog C programiranja

Proširenje C jezika naziva se ugrađenim C programskim jezikom. U usporedbi s gore navedenim, ugrađeni program na jeziku C ima neke dodatne značajke kao što su vrste podataka i ključne riječi, a datoteka zaglavlja ili datoteka knjižnice predstavljena je kao

#include

Ugrađene C dodatne ključne riječi

  • sbit
  • malo
  • SFR
  • hlapljiv
  • makronaredbe definirati

'Sbit' se koristi za deklariranje jednog PIN-a mikrokontrolera. Na primjer, LED je spojen na pin P0.1, ne preporučuje se izravno slanje vrijednosti na pin porta, prvo, moramo deklarirati pin s drugom varijablom, nakon što možemo koristiti bilo gdje u programu.

Sintaksa: sbit a = P0 ^ 1 // deklarira odgovarajući pin s varijablom //
a = 0x01 // poslati vrijednost na pin porta //

'Bit' se koristi za provjeru statusa varijable.

Sintaksa: bit c // deklarira bit varijablu //
c = a // vrijednost je dodijeljena c varijabli //
if (c == 1) // provjeri stanje true ili false //

{
… ..
……
}

Ključna riječ 'SFR' koristi se za pristup SFR registrima pod drugim imenom. SFR registar definiran kao a registar posebne funkcije , sadrži sve periferno povezane registre uz naznaku adrese. SFR registar deklariran je ključnom riječi SFR. Ključna riječ SFR mora biti velikim slovima.

Sintaksa: SFR port = 0x00 // 0x00 je adresa port0 koja se deklarira varijablom porta //
Port = 0x01 //, a zatim vrijednost pošaljite na port0 //
odgoditi()
priključak = 0x00
odgoditi()

Ključna riječ 'volatile' najvažnija je u razvoju ugrađenog sustava. Varijabla koja se deklarira s volatilnom vrijednošću ključne riječi ne može se neočekivano promijeniti. Može se koristiti u memorijski mapiranim perifernim registrima, globalnim varijablama modificiranim ISR-ovima. Bez upotrebe volatile ključne riječi za prijenos i primanje podataka dogodit će se pogreška koda ili pogreška optimizacije.

Sintaksa: volatile int k

Makronaredba je naziv koji se koristi za deklariranje bloka naredbi kao pretprocesorske direktive. Kad god se naziv koristi, zamjenjuje ga sadržaj makronaredbe. Makronaredbe predstavljaju #define. Cijeli priključci porta definirani su makronaredbama.

Sintaksa: #define dat Po // cijeli je port deklariran varijablom //
dat = 0x01 // podaci se šalju u port0 //

Osnovni ugrađeni C programi

Programiranje mikrokontrolera razlikovat će se za svaki vrsta operativnog sustava . Iako postoji mnogo operativnih sustava kao što su Linux, Windows, RTOS i tako dalje. Međutim, RTOS ima nekoliko prednosti za razvoj ugrađenog sustava. Ovaj članak govori o osnovnom ugrađenom C programiranju za razvoj ugrađenog C programiranja pomoću mikrokontrolera 8051.

Ugrađeni C koraci programiranja

Ugrađeni C koraci programiranja

  • LED treperi pomoću mikrokontrolera 8051
  • Prikaz broja na 7-segmentnom zaslonu pomoću 8051 mikrokontrolera
  • Izračunavanje vremena i brojača i programiranje pomoću mikrokontrolera 8051
  • Izračuni i programi serijske komunikacije pomoću mikrokontrolera 8051
  • Prekidni programi pomoću mikrokontrolera 8051
  • Programiranje tipkovnice pomoću mikrokontrolera 8051
  • LCD programiranje s mikrokontrolerom 8051

LED trepće pomoću mikrokontrolera 8051

LED je poluvodički uređaj koji se koristi u mnogim primjenama, uglavnom u svrhu indikacije. Pronalaženje je širokog spektra aplikacija kao pokazatelja tijekom testa za provjeru valjanosti rezultata u različitim fazama. Vrlo su jeftini i lako dostupni u raznim oblicima, bojama i veličinama. LED se koriste za dizajn ploče za prikaz poruka i signalna svjetla za kontrolu prometa itd. Ovdje su LED diode povezane s PORT0 mikrokontrolera 8051.

LED trepće pomoću mikrokontrolera 8051

LED trepće pomoću mikrokontrolera 8051

1. 01010101
10101010

#include // datoteka zaglavlja //
void main () // statistička točka izvršenja programa //
{
nepotpisani int i // vrsta podataka //
while (1) // za kontinuiranu petlju //
{
P0 = 0x55 // pošalji heksa vrijednost na port0 //
za (i = 0i<30000i++) //normal delay//
P0 = 0x3AA // pošalji heksa vrijednost na port0 //
za (i = 0i<30000i++) //normal delay//
}
}

2. 00000001

00000010

00000100

.

.

10 000 000

#include

void main ()

{

nepotpisani i

nepotpisani znak j, b

dok (1)

{

P0 = 0x01

b = P0

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

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

{

b = b<<1

P0 = b

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

}

}

}

3. 00001111

11110000

#include

void main ()

{

nepotpisani i

dok (1)

{

P0 = 0x0F

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

P0 = 0xF0

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

}

}

4. 00000001

00000011

00000111

.

.

11111111

#include

void main ()

{

nepotpisani i

nepotpisani znak j, b

dok (1)

{

P0 = 0x01

b = P0

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

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

0x01

P0 = b

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

}

}

Prikazivanje brojeva na 7-segmentnom zaslonu pomoću mikrokontrolera 8051

The Zasloni od 7 segmenata je osnovni elektronički zaslon koji se koristi u mnogim sustavima za prikaz numeričkih podataka. Sastoji se od osam LED dioda koje su povezane sekvencijalno tako da prikazuju znamenke od 0 do 9, kada su uključene odgovarajuće kombinacije LED dioda. Mogu istodobno prikazati samo jednu znamenku.

Prikazivanje brojeva na 7-segmentnom zaslonu pomoću mikrokontrolera 8051

Prikazivanje brojeva na 7-segmentnom zaslonu pomoću mikrokontrolera 8051

1. WAP za prikaz brojeva od '0 do F' na četiri 7-segmentna zaslona?

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
void main ()
{
nepotpisani char n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
te nije potpisao, j
a = b = c = d = 1
dok (1)
{
za (i = 0i<10i++)
{
P2 = n [i]
za (j = 0j<60000j++)
}
}
}

2. WAP za prikaz brojeva od '00 do 10 'na 7segmentnim zaslonima?

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
prikaz praznine1 ()
prikaz praznine2 ()
odgoda praznine ()
void main ()
{
nepotpisani char n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
te nije potpisao, j
ds1 = ds2 = 0
dok (1)
{
za (i = 0, i<20i++)
display1 ()
display2 ()
}
}
prikaz praznine1 ()
{
a = 1
b = 0
P2 = s [ds1]
odgoditi()
a = 1
b = 0
P2 = s [ds1]
odgoditi()
}
prikaz praznine2 ()
{
ds1 ++
ako je (ds1> = 10)
{
ds1 = 0
ds2 ++
ako je (ds2> = 10)
{
ds1 = ds2 = 0
}
}
}
odgoda praznine ()
{
nepotpisan k
za (k = 0k<30000k++)
}

Izračun i programiranje brojača / brojača i programiranje pomoću mikrokontrolera 8051

Kašnjenje je jedan od važnih čimbenika u razvoju aplikacijskog softvera. Međutim, normalno odgađanje neće dati dragocjeni rezultat za prevladavanje ovog problema zbog primjene odgode tajmera. The mjerači vremena i brojači su hardverske komponente mikrokontrolera, koji se koristi u mnogim aplikacijama za pružanje dragocjenog vremenskog kašnjenja s brojanjem impulsa. Oba zadatka implementirana su softverskom tehnikom.

Odgoda vremena

WAP za generiranje kašnjenja od 500us koristeći T1M2 (timer1 i način2)?

#include

void main ()
{
nepotpisani char i
TMOD = 0x20 // postavljanje načina odbrojavanja //
za (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // postavljanje vremenskog kašnjenja //
TH1 = 0x00
TR1 = 1 // mjerač vremena ON //
While (TF1 == 0) // provjeri bit zastavice //
TF1 = 0
}
TR1 = 0 // tajmer isključen //
}

Kašnjenje normalne petlje

odgoda praznine ()

{
nepotpisan k
za (k = 0k<30000k++)
}

Proračuni i programi serijske komunikacije pomoću mikrokontrolera 8051

Serijska komunikacija obično se koristi za prijenos i primanje signala. Mikrokontroler 8051 se sastoji UART serijska komunikacija signali koje prenose i primaju Rx i Tx pinovi. UART uzima bajtove podataka i uzastopno šalje pojedinačne bitove. Registri su način prikupljanja i pohrane podataka u memoriju. UART je poludupleksni protokol. Poludupleks znači prijenos i primanje podataka, ali ne istodobno.

Proračuni i programi serijske komunikacije pomoću mikrokontrolera 8051

Proračuni i programi serijske komunikacije pomoću mikrokontrolera 8051

1. WAP za prijenos znaka 'S' u serijski prozor koristi 9600 kao brzinu prijenosa?

28800 je maksimalna brzina prijenosa mikrokontrolera 8051

28800/9600 = 3

Ta brzina prijenosa '3' pohranjena je u tajmerima

#include

void main ()

{
SCON = 0x50 // pokretanje serijske komunikacije //
TNOD = 0x20 // odabran način rada timera //
TH1 = 3 // učitavanje brzine prijenosa //
TR1 = 1 // Tajmer UKLJ //
SBUF = ’S’ // pohrani lik u registar //
while (TI == 0) // provjeri registar prekida //
TI = 0
TR1 = 0 // ISKLJUČI timer //
while (1) // kontinuirana petlja //
}

2. WAP za primanje podataka s hiperterminala i slanje tih podataka u PORT 0 mikrokontrolera koristeći 9600 baud podataka?

28800 je maksimalna brzina prijenosa mikrokontrolera 8051

28800/9600 = 3

Ta brzina prijenosa '3' pohranjena je u tajmerima

#include

void main ()
{
SCON = 0x50 // pokretanje serijske komunikacije //
TMOD = 0x20 // odabran način rada timera //
TH1 = 3 // učitavanje brzine prijenosa //
TR1 = 1 // Tajmer UKLJ //
PORT0 = SBUF // pošalji podatke iz SBUF-a na port0 //
while (RI == 0) // provjeri registar prekida //
RI = 0
TR1 = 0 // ISKLJUČI timer //
while (1) // zaustaviti program kad se primi znak //
}

Prekidni programi pomoću mikrokontrolera 8051

Prekid je signal koji prisiljava zaustavljanje trenutnog programa i izvršavanje drugog programa odmah. Mikrokontroler 8051 nudi 6 prekida, koji su unutarnji i vanjski izvori prekida . Kad se dogodi prekid, mikrokontroler zaustavi trenutni zadatak i pristupi prekidu izvršavanjem ISR-a, a zatim se mikrokontroler vraća na nedavni zadatak.

WAP za izvođenje operacije lijeve smjene kada dođe do prekida timera 0, a zatim izvođenje operacije prekida za P0 u glavnoj funkciji?

#include

nepotpisani znak b

void timer0 () prekid 2 // odabrani timer0 prekid //
{
b = 0x10
P1 = b<<2
}
void main ()
{
nepotpisani char a, t.j.
IE = 0x82 // omogući prekid timera0 //
TMOD = 0x01
TLo=0xFC //interrupt timer//
TH1 = 0xFB
TR0 = 1
a = 0x00
dok (1)
{
za (i = 0i<255i++)
{
a ++
Po = a
}
}
}

Programiranje tipkovnice pomoću mikrokontrolera 8051

Matrična tipkovnica analogni je preklopni uređaj koji se koristi u mnogim ugrađenim aplikacijama kako bi omogućio korisniku izvršavanje potrebnih zadataka. A matrična tipkovnica sastoji se od rasporeda sklopki u matričnom formatu u retke i stupce. Redovi i stupci povezani su s mikrokontrolerom tako da je red prekidača povezan s jednim pinom, a prekidači u svakom stupcu s drugim pinom, a zatim izvršavaju radnje.

Programiranje tipkovnice pomoću mikrokontrolera 8051

Programiranje tipkovnice pomoću mikrokontrolera 8051

1. WAP za prebacivanje LED-a pritiskom na prekidač

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
odgoda praznine ()
void main ()
{
dok (1)
{
a = 0
b = 1
c = 1
d = 1
odgoditi()
a = 1
b = 0
c = 1
d = 1
odgoda praznine ()
{
nepotpisani char i
TMOD = 0x20 // postavljanje načina odbrojavanja //
za (i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // postavljanje vremenskog kašnjenja //
TH1 = 0x00
TR1 = 1 // mjerač vremena ON //
While (TF1 == 0) // provjeri bit zastavice //
TF1 = 0
}
TR1 = 0 // tajmer isključen //
}

2. WAP za uključivanje LED-a pritiskom tipke ‘1’ na tipkovnici?

#include

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

void main ()
{

r1 = 0
ako (c1 == 0)
{

LED = 0xff
}
}

3. WAP za prikaz broja 0,1,2,3,4,5 na sedam segmenata pritiskom na odgovarajuću tipku na tipkovnici?

#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

ako (c1 == 0)

{

a = 0xFC

}

Ako je (c2 == 0)

{

a = 0x60

}

ako (c3 == 0)

{

a = 0xDA

}

Ako je (c4 == 0)

{

a = 0xF2

}

}

LCD programiranje s mikrokontrolerom 8051

The LCD zaslon je elektronički uređaj koji se često koristi u mnogim programima za prikazivanje podataka u tekstualnom ili slikovnom formatu. LCD je zaslon koji na svom zaslonu može lako prikazati znakove. LCD zaslon sastoji se od 8 podatkovnih linija i 3 kontrolne linije koje se koriste za povezivanje s mikrokontrolerom.

LCD programiranje s mikrokontrolerom 8051

LCD programiranje s mikrokontrolerom 8051

WAP za prikaz 'EDGEFX KITS' na LED zaslonu?

#include
#define kam P0

voidlcd_initi()
voidlcd_dat (nepotpisani znak)
voidlcd_cmd (nepotpisani znak)
odgoda praznine ()
prikaz praznine (nepotpisani char * s, nepotpisani char r)

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

lcd_initi()
lcd_cmd (0x80)
kašnjenje (100)
lcd_cmd (0xc0)
zaslon ('edgefx setovi', 11)
dok (1)
}

prikaz praznine (nepotpisani char * s, nepotpisani char r)
{
nepotpisan w
za (w = 0w{
lcd_data (s [w])
}
}
voidlcd_initi()
{
lcd_cmd (0 × 01)
kašnjenje (100)
lcd_cmd (0 × 38)
kašnjenje (100)
lcd_cmd (0 × 06)
kašnjenje (100)
lcd_cmd (0x0c)
kašnjenje (100)
}
voidlcd_dat (nepotpisani znak)
{
češalj = to
rs = 1
rw = 0
u = 1
kašnjenje (100)
u = 0
}
}
voidlcd_cmd (nepotpisani char cmd)
{
došao = cmd
rs = 0
rw = 0

u = 1
kašnjenje (100)
u = 0
}
odgoda praznine (nepotpisano int n)
{

nepotpisan a
za (a = 0a}

Nadam se da će ovaj članak dati osnovne informacije o programiranju ugrađenog sustava pomoću mikrokontrolera 8051 s nekoliko primjera programa. Za detaljan vodič za programiranje ugrađenog C, objavite svoje komentare i upite u odjeljku za komentare u nastavku.