Lista de Material para PCI AT89S52 2010_2_USB | ||||
Valor | Descrição | QTD | ||
100nF | Capacitor Cerâmico | 1 | C4 | |
10uF 50V | Capacitor Eletrolítico | 5 | C1 | |
12MHz | Cristal | 1 | X1 | |
1N4004 | Diodo | 1 | D1 | |
33pF /50V | Capacitor Cerâmico | 2 | C1 E C2 | |
7805 | TO-220A | 1 | U1 | |
CI AT89S52 | DIP-40 | 1 | IC1 | |
CNC | Fêmea 90º solda placa | 1 | CN1 | |
Max232 | Conversor de Interface | 1 | IC2 | |
HEADER 6X2 | Barra dupla 40 pinos | 1 | SV1,SV2,SV3,SV4 | |
LED | LED 3mm | 1 | LD1 | |
Soquete | soquete 40 pinos | 1 | IC1 | |
Soquete | soquete 16 pinos | 1 | IC2 | |
Dissipador | Dissipador para TO-220A | 1 | ||
p4 solda placa | CN2 |
Apoio técnico para realização das práticas do Curso de Eletrônica da Escola Estadual Parobé
quarta-feira, 17 de outubro de 2012
Lista Material para hardware básico AT89S51
terça-feira, 2 de outubro de 2012
Programa para LCD
#include <REGX52.H>
#define LCD_data P2
#define LCD_rs P1_0
#define LCD_rw P1_1
#define LCD_en P1_2
void LCD_busy(void);
void LCD_poweron(void);
void LCD_command(unsigned char var);
void LCD_senddata(unsigned char var);
void LCD_sendstring(unsigned char *var);
void LCD_init(void);
void main(void)
{
unsigned char msg[] ="Escola America";
LCD_poweron(); // tempo de 15ms
LCD_init();
LCD_command (0x80); // Seta endereço de comando no CGRAM do LCD
LCD_sendstring(msg);
while(1);
}
void LCD_busy()
{
unsigned char i,j;
for(i=0;i<50;i++)
for(j=0;j<255;j++); //tempos para escrever no display
}
void LCD_poweron()
{
unsigned int i;
for (i=0;i<22500; i++); //tempo que define velocidade da mensagem
}
void LCD_command(unsigned char var)
{
LCD_data = var; //Function set: define par o lcd duas linhas, 8-bit, e tamanho do caracter 5x8 dots
LCD_rs = 0; //Seleta comando RS comand register
LCD_rw = 0; //instruçao de registro de leitura e escrita
LCD_en = 1; //habilita em 1 desabilita em 0 Enable H->L
LCD_en = 0;
LCD_busy(); //espera o lcd processar suas informaçoes
}
void LCD_sendstring(unsigned char *var)
{
while(*var) //espera fim da string - till string ends
LCD_senddata(*var++); //envia os caracteres uma vez - send characters one by one
}
void LCD_senddata(unsigned char var)
{
P2 = var; //Coloca os dados 0 a7 na P2 - Function set: 2 Line, 8-bit, 5x7 dots
LCD_rs = 1; //Seleciona o registro de dados - Selected data register
LCD_rw = 0; //Seleciona LCD para escrever - We are writing
LCD_en = 1; //habilita LCD - Enable H->L
LCD_en = 0;
LCD_busy(); //Espera o lcd processar seus dados - Wait for LCD to process the command
}
void LCD_init(void)
{
LCD_data = 0x38; //Function set: 2 Line, 8-bit, 5x8 dots
LCD_rs = 0; //Selected command register
LCD_rw = 0; //We are writing in data register
LCD_en = 1; //Enable H->L
LCD_en = 0;
LCD_busy(); //Wait for LCD to process the command
LCD_data = 0x0F; //Display ligado e cursor piscando - Display on, Curson blinking command
LCD_rs = 0; //Selected command register
LCD_rw = 0; //We are writing in data register
LCD_en = 1; //Enable H->L
LCD_en = 0;
LCD_busy(); //Wait for LCD to process the command
LCD_data = 0x01; //limpa lcd - Clear LCD
LCD_rs = 0; //Selected command register
LCD_rw = 0; //We are writing in data register
LCD_en = 1; //Enable H->L
LCD_en = 0;
LCD_busy(); //Wait for LCD to process the command
LCD_data = 0x06; //Entra no modo deslocamento dos caracterres - Entry mode, auto increment with no shift
LCD_rs = 0; //Selected command register
LCD_rw = 0; //We are writing in data register
LCD_en = 1; //Enable H->L
LCD_en = 0; //Enable H->L
LCD_busy();
}
Assinar:
Postagens (Atom)