Practica 5 Teclado Teclado Matricial y LCD con Miconcontrolador PIC18F4550
CENTRO BACHILLERATO TECNOLÓGICO INDUSTRIAL Y DE SERVIC SERVICIOS IOS NO.189 NO.189
REPORTE DE PRACTICA 4 EQUIPO N°5: MARTINEZ GARDUÑO ORLANDO CARDENAS ANGELES GABRIELA GALLEGOS PEREZ LIZETH ESPINOZA SANCHEZ MARINA LIZETH 5°Q ING.JESUS DAVILA DAVILA G. PROGRAMACION DE MICROCONTROLADOR MICROCONTROLADOR EN SISTEMAS DE USO COMERCIAL H., MATAMOROS, TAM. MATERIAL -1 !"#$ %"&&'(# -1 +#!* +/ 0)#&* "+' -1 PIC123455 -6 0*!*0&')/# +/ 66!7 -1 0)#&* +/ 0"*)8' +/ 2MHZ -4 )/##&/(0*# +/ 19 -1 )/##&/(0* +/ 4.;9
HERRAMIENTAS -P)'&'%'*)+ -C*%/ USB -C'!"&*+')*
OBJETIVO A)*) "(* "(* !)*0&0* !)*0&0* "&8*(+' "&8*(+' * %)/)<* 9/!*+ * 0"* #'!')&* "( &/0*+'
+/ 4 7*# 4 0'"(*#. E 0=+>' )/>)/#*+' !') * 7"(0=( /#&* /( / )*(>' +/ 1 * 1 +/!/(+/(+' +/ * &/0*. E( /#&/ /?/!', / 0=+>' )/>)/#*+' /# 0'(@/)&+' * 0=+>' ASCII ..,A..3 +/#!/>*+' /( / LCD. A+/*# "( 0'(&*+') +/#!/>* /( * #/>"(+* <(/* <(/* +/ LCD, / ("/)' +/ &/0*# &/0*# !)/#'(*+*#. E#&' E#&' /+*(&/ "( !)'>)** !)/@*/(&/ #"%+' * 0)'0'(&)'*+').
DESARROLLO DIAGRAMA A REALIZAR:
C'' !'+/'# @/) /( / +*>)** +/ * !)*0&0*, !)/)' 0'(/0&*'# * &/)(*/# 11 6 +/ 0)'-0$! * 0'))/(&/ * 16 6 * &/))*. E( *# &/)(*/# 1 14 0'(/0&*'# / 0)#&* +/ 0"*)8' / 0"* 7"(0'(* 0'' '#0*+') /( /#&*# &/)(*/# &*%( 0'(/0&*'# '# 0*!*0&')/# +/ 66 !7. E( / !( 1 0'(/0&*'# "(* )/##&/(0* +/ 4.;9 *# &/)(*/# * * 2 $*0* / +#!* +/ 0)#&* "+'FLCD '# !(/# 12,1,6,61,6;,62,6 $*0* / &/0*+'. L'# !(/# 1,5,;,2,,1 +/ +#!* '# 0'(/0&*'# * &/))* * &/)(* 6 * 0'))/(&/ ' !'#&@'. C'(/0&*'# *# 0"*&)' )/##&/(0*# +/ 19 +/ &/0*+' $*0* &/))*.
U(* @/8 *)*+* * !)*0&0* #"%'# / #>"/(&/ !)'>)** * PIC123455 !*)* "/ /#&/ 7"(0'(*)*.
PROGRAMA
unsigned short kp, cnt, oldstate = 0; char txt[6];
// Puerto donde esta conectado el Teclado char keypadPort at PORTD; // // conexiones del LCD sbit LCD_RS at R!_"#t; sbit LCD_$% at R&_"#t; sbit LCD_D! at R0_"#t; sbit LCD_D& at R'_"#t; sbit LCD_D6 at R(_"#t; sbit LCD_D) at R*_"#t; sbit LCD_RS_D#rect#on sbit LCD_$%_D#rect#on sbit LCD_D!_D#rect#on sbit LCD_D&_D#rect#on sbit LCD_D6_D#rect#on sbit LCD_D)_D#rect#on
at TR+S!_"#t; at TR+S&_"#t; at TR+S0_"#t; at TR+S'_"#t; at TR+S(_"#t; at TR+S*_"#t;
// a#n-. / void cnt = 0; // Reset counter eypad_+n#t-.; // Initialize Keypad 1%S$L = 0; // Configure AN pins as digital I/O 1%S$L2 = 0; Lcd_+n#t-.; // Initialize LCD Lcd_Cd-_LCD_CL$1R.; // Clear display Lcd_Cd-_LCD_C3RSOR_O44.; // Cursor off Lcd_O5t-', ', '.; Lcd_O5t-', ', ey 7.; // rite !essage text on LCD Lcd_O5t-(, ', T#es7.; do /
kp = 0;
// Reset "ey code #aria$le
// ait for "ey to $e pressed and released do
// "p % Keypad&Key&Press'() kp = eypad_ey_Cl#ck-.; while -8kp.;
// "p #aria$le // "p #aria$le
// Prepare #alue for output* transfor! "ey to it+s A,CII #alue switch -kp. / //case -. "p % 01) $rea") // +2+ // desco!entar para teclado 0x3 //case -- "p % 04) $rea") // +.+ //case -1 "p % 35) $rea") // +6+ //default "p 7% 04) case
'7 kp = !9; break; // - // desco!entar teclado
0x0 case (7 case *7 case !7 case &7 case 67 case )7 case :7 case 97 case '07 case ''7 case '(7 case '*7 case '!7 case '&7 case '67
kp kp kp kp kp kp kp kp kp kp kp kp kp kp kp
= = = = = = = = = = = = = = =
&0; break; &'; break; 6&; break; &(; break; &*; break; &!; break; 66; break; &&; break; &6; break; &); break; 6); break; !(; break; !:; break; *&; break; 6:; break;
// // // // // // // // // // // // // // //
1 3 A 0 5 8 9 : 4 ; C 2 . 6 D
if -kp 8= oldstate. /
pre#ious cnt = '; oldstate = kp; else / pre#ious cnt<<;
//
==
(&&.
o#erflo< cnt = 0; Lcd_O5t-(, '0,
Pressed
"ey
is
sa!e
as
// Print "ey A,CII #alue on
Lcd_Cr-', '0, kp.; LCD if -cnt
// Pressed "ey differs fro!
//
/
.;
If
counter
#arial$le
>ordToStr-cnt, txt.; string Lcd_O5t-(, '0, txt.; LCD while -'.;
// Transfor! counter #alue to // Display counter #alue on
IMAGENES DE LA PRACTICA
CONCLUSIN E#&* !)*0&0* 7"/ "( !'0' 0'!0*+* &"@'# @*)*# 0'!0*0'(/# !') * *(/)* /( "/ * *)*'#. P/)' * 7(* '>)*'# "/ 7"(0'(*)* +/ *(/)* 0'))/0&*. A !)/#'(*) "(* &/0* /#&* *!*)/0<* /( / +#!*.