arkadaşlar bu voltmetre lcd ile gösteriyor ben bunu displayde göstermek istiyorum yazılımda ne gibi bi değişişklik yapmam gerek yardımcı olurmusunuz voltmetre 0-600V arası Dc gerilim ölçüyor.
program:/*
ADC İLE VOLT METRE UYGULAMASI
OCAK 2010
KOCAELİ ÜNİVERSİTESİ TEF ELEKTRİK
PIC877A mikroişlemci
4mhz kristal
*/
unsigned char volt;
unsigned int volt_oku;
unsigned int i;
char *text;
long tlong;
void main() {
INTCON = 0; // Tüm kesmeler iptal edildi
Lcd_Init(&PORTB); // Lcd_Init PORTB LCD için hazırlandı
LCD_Cmd(LCD_CURSOR_OFF); // LCD kursör kapatıldı
LCD_Cmd(LCD_CLEAR); // LCD de radtgele karekter oluşmaması için silindi
Lcd_Out(1,1,"kontrolkalemi");
// 1.satır6. karaktere bilgi yazıldı
ADCON1 = 0x82; // ADC ayarları
TRISA = 0xFF; // PORT A giriş yapıldı
Delay_ms(500);
text = "VOLT : "; // BLİLGİLENDİRME TEXTleri
while (1) {
volt_oku = ADC_read(2); // ADC 2 kanal okundu
LCD_Out(2,1,text); // TEXT i ekrana bas
tlong = (long)volt_oku * 4010; // okunan volt mili volta çevriliyor
tlong = tlong / 1022; // Mili volt Volta çevriliyor
volt = tlong / 1000; // X.,.. değeri atanıyor
LCD_Chr(2,8,48+volt); // X değeri satır 2 8. karaktarden itibaren basılıyor
volt = (tlong / 100)%10; // .X,.. değeri atanıyor
LCD_Chr_CP(48+volt); // X değeri satır 2 de kursörün bulunduğu yerden itibaren basılıyor
volt = (tlong / 10) % 10; // 0.1 volts d
LCD_Chr_CP(48+volt); // satır 2 de kursörün bulunduğu yerden itibaren basılıyor
LCD_Chr_CP('.');
volt = tlong % 10; // 0.01 volt
LCD_Chr_CP(48+volt); // satır 2 de kursörün bulunduğu yerden itibaren basılıyor
LCD_Chr_CP('V'); // elde edilen sonuca V birimi ekleniyor.
Delay_ms(1); // döngü kararsızlıkları için 1ms bekliyor
}
}//~!
şema:
[IMG]http://img217.imageshack.us/img217/779/71416893.jpg[/img] (http://img217.imageshack.us/i/71416893.jpg/)
Uploaded with ImageShack.us (http://imageshack.us)