Teknoloji Ekibi

Elektronik Dünyası => Mikrodenetleyici ve Mikroişlemciler => Konuyu başlatan: 23nisan - 05 Ekim 2012, 11:00:49

Başlık: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: 23nisan - 05 Ekim 2012, 11:00:49
İlgili arkadaşlar , hepinize kolay gelsin. Asm kodunu , sadece Lcd ekranda çıkan bir yazıyı sadece isim olarak değiştirmek istiyorum. C'de yazılmış ve Mplamb'da hexedesimal'e çevirirken sorun yaşıyorum neden olabilir ? ''Bilim ve Teknik'' yazan başlıkta , sadece Sercan Ozat yazmasını istiyorum . Normalde koda yazan yazıya bunu uyguluyorum ama Hexedasimal'e çevirirken %100 hata veriyor.

(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fa1210.hizliresim.com%2F12%2F5%2Fdnut6.jpg&hash=ad735ba4c5d7e6b650b15b00307f83a408243f9b) (http://bit.ly/c25MCx)

#include <pic.h>
#include <delay.c>
#include <lcd.c>
#include <stdio.h>
main (void)
{
// Değişken tanımlamaları
const float lsb=5.0/1024.0;
unsigned char gerilim, ust, alt;
float sicaklik;
unsigned char sonuc[]="SICAKLIK = ";

// Port konfigürasyonu
TRISB=0; // PORTB çıkış 
TRISA=1; // RA0 analog giriş

// Ön LCD işlemleri
DelayMs(250); // 250ms bekle
lcd_init(); // LCD'yi hazırla
lcd_clear(); // LCD'yi temizle

// ADC ayarları
ADCON1=0x8E; // AN0 analog giriş
ADCON0=0x41; // A/D aktif

for(;;){

// A/D çevrimi başlat
ADCON0=0x45;
// Dönüşümün bitmesini bekle
while((ADCON0&4)!=0);

// Dönüşüm sonucunu kaydet
gerilim=ADRESH;
gerilim=256*gerilim+ADRESL;

// Sıcaklık bilgisini oluştur
sicaklik=gerilim*lsb*100.0;

// Tam ve ondalık kısımları ayır
ust=(int)sicaklik;
alt=(int)(10.0*(sicaklik-ust));

// LCD'ye yazdırma işlemlerini yap
sprintf(sonuc+11,"%d.%dC ",ust,alt);

// 1. satıra geç ve LCD'ye yaz
lcd_goto(0x00);
lcd_puts("Bilim ve Teknik");

// 2. satıra geç ve sıcaklık değerini yaz
lcd_goto(0x40);
lcd_puts(sonuc); 

// Biraz bekle ve ekranı temizle 
DelayMs(250);
lcd_clear();

} // Ölçümü tekrarla
} // Programın sonu
Başlık: Ynt: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: 23nisan - 05 Ekim 2012, 11:03:01
Normalde bu devreyi ödev olarak yapmam gerekecek .
http://www.biltek.tubitak.gov.tr/gelisim/elektronik/13.htm (http://www.biltek.tubitak.gov.tr/gelisim/elektronik/13.htm)
Başlık: Ynt: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: Karadağ - 05 Ekim 2012, 11:37:05
Merhaba,

Bu kodu direkt olarak derleyemezsin. lcd_goto, lcd_puts gibi fonksiyonlar mevcut. Bunların da olması gerekli.

Saygılar
Başlık: Ynt: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: thunderbolt - 05 Ekim 2012, 16:13:31
gerekli fonksiyonlar  #include <lcd.c> ile belirtilen dosyada olmalı
ama <> ile yazıldığına göre original kodu yazan kişinin derleyicisinde bu dosya varmış
sizde farklı isimde olabilir, yada farklı bir dizindedir.

bu dosyayı proje dosyaları ile aynı klasöre kopyalayın, #include "lcd.c" şeklinde değişiklik yapın
bu durumda derleme yapabilir
Başlık: Ynt: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: huseyin05 - 08 Ekim 2012, 23:03:06
23 nisan usta değişiklik yaptığın kodu yeniden pic c lite programı veya hi tech c programı ile derleme yapman gerekir. Ayrıca derleme yapmana engel olan bir durum bu derleme programını bilgisayar'a kurduktan sonra delay.h delay.c dosyalarını library içerisine kopyalaman gerekiyor. Yapamıyacak olursan yapmak istediğin değişikliği bildirirsen yardımcı olabilirim. Bilgisayarda virüs varsa bu durumda program derleme yapmıyor bu konuda acı tecrübem var bu programla ilgili olarak, yinede bu durumu usta yazılımcı arkadaş'lar değerlendir'sin. Saygılar.
Başlık: Ynt: Asm'Yi Hex'e çevirme Sorunu Yaşıyorum
Gönderen: delta500 - 25 Kasım 2015, 04:01:55
Bunu yapan oldumu