Curs programare in limbajul C pentru microcontoler PIC
Compilator CCS
Din dorinta de a transmite cunostintele noastre spre cit mai multi amatori, publicam materiale ce vor putea constitui un minicurs de programare.
Acest curs de programare va fi specific utilizarii modulelor de tip PIC-AP si este destinat cu precadere celor care poseda un PIC-AP sau un modul derivat.
Minicursul nu va contine multa teorie ci doar ceea ce este esential pentru a putea face programe de automatizari.
Vom utiliza aplicatii pentru a deprinde prin exemple de programe ce inseamna programarea in C si utilizarea resurselor disponibile pe PIC-AP20 (afisaj, ceas, receptor IR, LED, butoane, relee, buzzer).
Ce este limbajul C ? De ce sa utilizam un compilator ? De ce sa utilizam un anumit compilator?
Mai intii sa vedem ce face un microcontroler PIC: citeste niste intrari, face niste calcule si livreaza niste rezultate.
Se poate spune ca e destul de generala definitia. Spre deosebire de microprocesor are memorie RAM, ROM si EEPROM inclusa. Are anumite blocuri de comunicatie pe care un microprocesor (in general) nu le are.
Putem scrie un program pentru microcontroler PIC in limbajul propriu inventat de producator (limbaj de asamblare).
Acesta contine aproximativ 35 de instructiuni (depinde de PIC). Sint foarte putine fata de alte microcontroler-e.
Este un fapt unanim acceptat ca limbajul de asamblare (la orice microprocesor/microcontroler) este (putin) greoi. De aceea s-au inventat compilatoare care uilizeaza limbajul C. Un compilator transforma instructiunile scrise de noi in limbajul C, ei bine, le transforma in instructiuni in limbaj de asamblare.
Care este deosebirea esentiala dintre cele doua sisteme de programare?
Programul scris in asamblor este mai scurt si poate rezolva mai rapid anumite functii.
Programarea in C este mai rapida, adica programul se concepe mai rapid - dar ocupa memorie mai multa.
Deoarece memoria disponibila de PIC-uri este destula iar compilatorul propus este foarte optimizat, rezulta ca acesta nu este un dezavantaj major.
Dar care compilator de C este mai bun, mai facil, mai documentat, mai ieftin?
Dintre toate incercarile facute de autor s-a desprins utilizarea unui compilator: CCS. De ce?
Comunitatea care il utilizeaza a scris deja multe rutine. Producatorul a scris deja multe biblioteci. Forumul este foarte activ si documentat. Sistemul de HELP inclus este foarte clar si abundent. Setarile initiale se fac in urma unor selectii si nu scriind instructiuni specifice.
Degeaba se gasesc compilatoare gratuite dar la care nu exista biblioteci sau exemple de programe.
Ori pare totul bine (gratis) dar cind vrei sa folosesti o instructiune de intrare nu gasesti o documentatie corespunzatoare.
Ori selectiile initiale sint greoaie si trebuie sa le cauti in alte documente.
Acest curs de programare va fi specific utilizarii modulelor de tip PIC-AP si este destinat cu precadere celor care poseda un PIC-AP sau un modul derivat.
Minicursul nu va contine multa teorie ci doar ceea ce este esential pentru a putea face programe de automatizari.
Vom utiliza aplicatii pentru a deprinde prin exemple de programe ce inseamna programarea in C si utilizarea resurselor disponibile pe PIC-AP20 (afisaj, ceas, receptor IR, LED, butoane, relee, buzzer).
Ce este limbajul C ? De ce sa utilizam un compilator ? De ce sa utilizam un anumit compilator?
Mai intii sa vedem ce face un microcontroler PIC: citeste niste intrari, face niste calcule si livreaza niste rezultate.
Se poate spune ca e destul de generala definitia. Spre deosebire de microprocesor are memorie RAM, ROM si EEPROM inclusa. Are anumite blocuri de comunicatie pe care un microprocesor (in general) nu le are.
Putem scrie un program pentru microcontroler PIC in limbajul propriu inventat de producator (limbaj de asamblare).
Acesta contine aproximativ 35 de instructiuni (depinde de PIC). Sint foarte putine fata de alte microcontroler-e.
Este un fapt unanim acceptat ca limbajul de asamblare (la orice microprocesor/microcontroler) este (putin) greoi. De aceea s-au inventat compilatoare care uilizeaza limbajul C. Un compilator transforma instructiunile scrise de noi in limbajul C, ei bine, le transforma in instructiuni in limbaj de asamblare.
Care este deosebirea esentiala dintre cele doua sisteme de programare?
Programul scris in asamblor este mai scurt si poate rezolva mai rapid anumite functii.
Programarea in C este mai rapida, adica programul se concepe mai rapid - dar ocupa memorie mai multa.
Deoarece memoria disponibila de PIC-uri este destula iar compilatorul propus este foarte optimizat, rezulta ca acesta nu este un dezavantaj major.
Dar care compilator de C este mai bun, mai facil, mai documentat, mai ieftin?
Dintre toate incercarile facute de autor s-a desprins utilizarea unui compilator: CCS. De ce?
Comunitatea care il utilizeaza a scris deja multe rutine. Producatorul a scris deja multe biblioteci. Forumul este foarte activ si documentat. Sistemul de HELP inclus este foarte clar si abundent. Setarile initiale se fac in urma unor selectii si nu scriind instructiuni specifice.
Degeaba se gasesc compilatoare gratuite dar la care nu exista biblioteci sau exemple de programe.
Ori pare totul bine (gratis) dar cind vrei sa folosesti o instructiune de intrare nu gasesti o documentatie corespunzatoare.
Ori selectiile initiale sint greoaie si trebuie sa le cauti in alte documente.
Aplicatia1 - Programul CCS C Compiler
|
|
Aplicatia 2 - Actionarea iesirilor
|
|
Aplicatia 3 - Actionarea iesirlor (continuare)
|
|
Aplicatia 4 - Citirea intrarilor
|
|
Aplicatia 5 - Utilizarea afisajului de tip LCD
Aplicatia 6 - Masurarea si afisarea tensiunilor de curent continuu
Aplicatia 7 - Utilizarea ceasului de timp real (DS1307)
Aplicatia 8 - Utilizarea receptorului de infrarosu
Aplicatia 9 - Utilizarea receptorului RF (cu iesiri decodate)
Aplicatia 10 - Utilizarea senzorilor analogici (ex: fotorezistenta si termistor)
Aplicatia 11 - Cum adaptam programe si scheme cu alte microcontroler-e PIC pe modulul PIC-AP20?
Aplicatia 1S - Utilizarea senzorului de temperatura 18B20
Aplicatia 2S - Utilizarea senzorului DHT22 (temperatura si umiditate)
Aplicatia 3S - Utilizarea receptorului RF (fara iesiri decodificate)