Es un curso taller que explica paso a paso la programacion de microcontroladores PIC con el compilador MIKRO C utilizando el PIC 16F877 .Descripción completa
Muy buen libro de aprandizaje para aprender a programar en C
Full description
Manual detalladoDescripción completa
Descrição: Muy buen libro de aprandizaje para aprender a programar en C
vw engineDescripción completa
This is a thing about Aleister Crowley's magical equation 0 = 2
Descripción completa
checklist
KPU
fjhfjfjkfjfkfgkfgkuk
Descripción completa
Examples of MikroC Projects found on "Fare Elettronica" magazine.Full description
microcontroladoresDescripción completa
Compatibilidad WINAVR - MikroC Programacion C Escuela Militar Militar de Ingenieria Ingenieria Ing. Germán Germán Pereira Muñoz Muñoz
!rototipo' de ("n&ion)Cabe&era ("n&ion)Cabe&era'* '* + ,a' ("n&ione' deben 'er de&larada' ante' de '" "'o "'o na de&lara&ion no e' ma' "e &abe&era de la "n&ion no la "n&ion en 'i + ,a' de&lara&ione' de ("n&ion)&abe&era'* p"den 'er in&l"ida ' en "na ar&i3o in&l"de
,a deini&ion de la "n&ion e' in&l"ida en el &"erpo de la "n&ion
+ 3oid "n&tion4name)int5 loat*6 //&abe&era Retorno de tipo e' re"erido6 3oid 'ignii&a "e no retorna nada ipo' de Arg"mento' )lo' nombre' no 'on ne&e'ario'5 pero 'e p"ede in&l"ir lo' nombre' 'i 'e de&ea*
07/ 22/ 10
In g. G erm n !e reira M"#o$ % !rograma&ion C para AVR
2
Main + C"al"ier programa C ne&e'ita "na "n&ion llamada main + Generalmente deinida )no de&larada* int main(void){ int x; //variable local x = add(3, 9); //llamada a funcion return 0; }
+ 9l &"erpo de programa 'e en&"entra entre la3e' : ; + 9'ta "n&ion tradi&ionalmente retorna 0 07/ 22/ 10
In g. G erm n !e reira M"#o$ % !rograma&ion C para AVR
8
=tra' ("n&ione' + =tra' deini&ione' de "n&ion 'on "'"almente p"e'ta' por deba>o de la "n&ion main o en "n ar&i3o 'eparado int add(int a, int b){ return a+b; }
07/22/10
Arg"ento' pa'ado' por 3alor a la "n&ion Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
<
A'igna&ion de Variable' uint8_t x = 3; //ai!nacion e in iciali"acion externa int8_t lo#ueea(uint_8 a)//$arametro local automatico { int_8 ne!%ne = 0x&&; // local automatico tatic int8_t erial = '; //local tatico return (erial++) + a + ne!%ne; }
+ +
,o&ale' a"tomati&o' e@i'ten 'olo &"ando d"ra la llamada de la "n&ion ,o' dato' globale' 'tati& 'on &reado' e ini&iali$ado' "na 'ola 3e$ en el programa6 e'to' retiene 3alore' entre llamada' de "n&ione' 07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
?
,iterale' + ,o' entero' p"eden 'er e@pre'ado' en 3aria' ba'e' de&imal 25 -185 0 o&tal 0877 e@ade&imal 0@8<(2 binario 0b011011 + Cara&tere' DaD + Etring F9' "n Etrig terminado en N, alma&enado e n "n ARRAH 07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
+ Ei e' po'ible lo' Arra' 'on inami&amente a'ignado' arra'5 pero re"ieren "na "n&ion de a'igna&ion de memoria
07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
7
!"erto' de 9/E DDRx - 9'te regi'tro determina la dire&&ion )inp"t/o"tp "t* de lo' pin' en portJ@K A D0D bit en R pone al pin del p"erto &omo entrada )inp"t* A D1D bit en R pone al pin del p"erto &omo 'alida )o"tp"t* PORTx - 9'te regi'tro &ontienen el e'tado para 'alida de lo' pine' en portJ@K A D0D bit pone al pin del p"erto &omo 'alidaL0 ),=W 0V* A D1D bit pone al pin del p"erto &omo 'alidaL1 )IG ?V* PINx - 9'te regi'tro &ontiene el e'tado de entrada de lo' pine' en portJ@K A D0D bit indi&a "e el pin del p"erto e' L 0 ),=W 0V* A D1D bit indi&a "e el pin del p"erto e' L 1 )IG ?V*
,a X p"ede 'er reempla$ada por A5O5C5595(5 o G dependiendo del p"erto de'ignado. 07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
P
Manip"la&iQn de ato' WINAVR Manip"la&iQn de Ote'
*i+ro, Manip"la&iQn de Ote'
Conig"ra&iQn de !"erto
Conig"ra&iQn de !"erto
DDRD = 0xF0; // Los 4 bits superiores como s!i" // Los 4 bits i#$eriores como e#tr"
,e&t"ra de Ote "to = PIN%;
9'&rit"ra de Ote PORT% = "to;
Manip"la&iQn de Oit'
TRI-D = 0x0F; // Los 4 bits superiores como s!i" // Los 4 bits i#$eriores como e#tr"
,e&t"ra de Ote "to = PORT%;
9'&rit"ra de Ote PORT% = "to;
Manip"la&iQn de Oit'
sbi&DDRD' (); TRI-D. F(=0; // &olo&a el bit 7 &omo 'alida // &olo&a el bit 7 &omo 'alida sbi&PORTD' 0); PORTD. F0=; // &olo&a el Oit 0 del !=R en // &olo&a el Oit 0 del !=R en 1 1 cbi&PORTD' 4); PORTD.F4=0; // &olo&a el Oit < del !=R en 0 !ereira M"#o$//%&olo&a el Oit < del !=R en 07/22/10 Ing. Germn 0 !rograma&ion C para AVR
!"erto' + !=R 9/E manip"la&ion de bit %12 = 0x&&; 4561 7= ('520); %12 := ((')7('<)); %12 := (_()7_(<)); _(b) e' "n ma&ro para ('b) uint8_t $in = 5>; 07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
10
e'teando Oit' WINAVR ? if
Miro ? if
(PIND & _BV(4))
{
(P"R#D$%4')
{
//bit 4 en uno } ? if (~PIND & _BV(4))
//bit 4 en uno } ? if (P"R#D$%4)
{ //bit 4 en cero } ? if (!(PIND & _BV(4)))
{ //bit 4 en cero } ? if (!(P"R#D$%4'))
{ //bit 4 en cero } 07/22/10
{ //bit 4 en cero } Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
11
9>emplo de !rograma i'pla de 7 'egmento'
RESPA C!-8
9 8 7 6 5 4 3 2
U2 2 3 4 5
X1
CRYSTAL
6 7 14 13 33 34 35 36 37 38 39 40
18
R R R R
A A A A
0 1 2 3
/ / / /
A A A A
N N N N
0 1 2/VREF-/CVRE F 3/VREF
RA4/T0C!I/C1"UT/RCV RA5/AN4/SS/LVDIN/C2"UT RA6/"SC2/CL!" "SC1/CL!I R R R R R R
# # # # # #
0 1 2 3 4 5
/ / / / / /
A A A A A !
N 1 2 / I N T 0 / F L T 0 / S D I/ S D A N10/INT1/SC!/SCL N8/INT2/V$" N9/CCP2/VP" N11/!#I0/CSSPP #I1/P%$
R#6/!#I2/P%C R#7/!#I3/P%D
VUS# PIC18F4550
07/22/10
1
U3
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR
RC0/T1"S"/T1C !I R C 1 / T 1 " S I / C C P 2 /U " E RC2/CCP1/P1A RC4 /D-/V$ RC5/D/VP RC6/TX/C! R C 7 / R X / D T /S D "
RD0/SPP0 RD1/SPP1 RD2/SPP2 RD3/SPP3 RD4/SPP4 RD5/SPP5/P1# RD6/SPP6/P1C RD7/SPP7/P1D RE0/AN5/C!1SPP RE1/AN6/C!2SPP RE2/AN7/"ESPP R E 3 /$ C L R / V P P
15 16 17 23
RC RC RC RC
0 1 2 3
RC RC RC RC
0 1 2 3
4 3 2 1
24 25 26
19 20 21 22 27 28 29 30 8 9 10 1
5 6 7 8 N O
F F O
DIPSW _4
RD 0 RD 1
RD 0 RD 1
RD RD RD RD
RD RD RD RD
2 3 4 5
RD 6 RD 7
2 3 4 5
RD 6
R 9 10k
12
!rograma 9>emplo di'p7'eg.& WINAVR MikroC
07/22/10
Ing. Germn !ereira M"#o$ % !rograma&ion C para AVR