Está en la página 1de 4

#include <stm32f4xx.

h>
#include <stdio.h>
int Cont,Cont1,a=0,linea=0,b=0,c=0,x=0;
int arreglo[]={0x3080,0x3180,0x3280,0x3380,0x3480,0x3580,0x3680,0x3780,0x3880,0x
3980};
void funcionp();
void funcioncont();
int main(void)
{
/*---------------- boton ---------------RCC->AHB1ENR
GPIOA->MODER
GPIOA->MODER
GPIOA->OTYPER
GPIOA->OSPEEDR
GPIOA->OSPEEDR
GPIOA->PUPDR
GPIOA->PUPDR

|=
(1UL<<0);
&= ~(3UL<<2*0);
|= (0UL<<2*0);
&= ~(0UL<<0);
&= ~(3UL<<2*0);
|= (2UL<<2*0);
&= ~(3UL<<2*0);
|= (2UL<<2*0);

*/-------------------------------------------//---------------- habilitacion puertos e y b reloj general --------------RCC->AHB1ENR

=18;

//---------------- puerto PB1-> RS ---------------GPIOB->MODER

=0x00000004;

//-------------------------------------------//--------------- puerto PE7-> E ____ pertos de pe7 a pe15 cofig de salida ---------------GPIOE->MODER
=0x55554000;
//------------finalizacion config de registros----

while(true)
{
funcionp();
funcioncont();
}
}
void funcionp()
{
if(a==0){
GPIOB->ODR =0x0001;
for(Cont=0; Cont1<20000;Cont1++);
//--------------- BORRAR PANTALLA ----------------GPIOE->ODR =0x0180;
for(Cont1=0; Cont1<2000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);

//--------------- (prender LCD, activar cursor, desactivar parpa


deo del cursor al finalizar de escribir) ----------------GPIOE->ODR =0x0f80;
for(Cont1=0; Cont1<2000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);
//--------------- (activar mover cursor a la derecha) ---------------GPIOE->ODR =0x0e80;
for(Cont1=0; Cont1<2000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);
//--------------- (bus de 8 bits, 4 lneas, fuente de 5x8) ---------------GPIOE->ODR =0x3880;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000000;Cont1++);
linea=1;
}
if(a==1){
GPIOB->ODR =0x0001;
for(Cont=0; Cont1<200;Cont1++);
//--------------- BORRAR PANTALLA ----------------GPIOE->ODR =0x0180;
for(Cont1=0; Cont1<2000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);
//--------------- (prender LCD, activar cursor, desactivar parpa
deo del cursor al finalizar de escribir) ----------------GPIOE->ODR =0x0f80;
for(Cont1=0; Cont1<2000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);
//--------------- (activar mover cursor a la derecha) ---------------//--------------- (bus de 8 bits, 4 lneas, fuente de 5x8) ---------------GPIOE->ODR =0x3880;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000000;Cont1++);
linea=1;
}
if(linea==1){
GPIOB->ODR =0x0001;
//--------------- (REGISTRO) ----------------GPIOE->ODR =0x0080;
GPIOE->ODR =0x8000;
for(Cont1=0; Cont1<2000;Cont1++);

GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<2000;Cont1++);
}
GPIOB->ODR |= (1UL<<1);//manejo de rs
GPIOE->ODR = 0x3180;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3880;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3080;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3280;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3380;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3280;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3280;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
linea=2;
if(linea==2)
{
GPIOB->ODR =0x0001;
//--------------- (REGISTRO) ----------------GPIOE->ODR =0xc080;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
}
GPIOB->ODR |= (1UL<<1);//manejo de rs
GPIOE->ODR = 0x3180;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3880;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3080;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3280;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);

GPIOE->ODR = 0x3380;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3980;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
GPIOE->ODR = 0x3480;
for(Cont1=0; Cont1<200000;Cont1++)
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<200000;Cont1++);
a=1;
}
void funcioncont()
{
GPIOB->ODR =0x0001;
GPIOE->ODR =0x0f80;
for(Cont1=0; Cont1<1000000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<1000000;Cont1++);
GPIOB->ODR =0x0001;
GPIOE->ODR =0x0b80;
for(Cont1=0; Cont1<1000000;Cont1++);
GPIOE->ODR =0x0100;
for(Cont1=0; Cont1<1000000;Cont1++);
}

También podría gustarte