throjen
Üye
- Katılım
- 29 Ağu 2008
- Mesajlar
- 13
- Puanları
- 1
- Yaş
- 40
merhabalar.benim bir kaç sorum olucak öncelikle mplab ı açıp aşağıdaki kodları onun içine atıp sonra farklı kaydey ile asm ile kaydediyorum fakat asm kodlarını mpasm programı ile hex e çevirirken hata alıyorum acaba neyi yanlış yapıyorum.c kodları mplab ta çalışmıyor mu.çok teşekkürler.
#include <pic.h>
#include <delay.c>
main(void)
{
unsigned char gecici_dizi[16];
unsigned char i,a,toplam_sutun;
signed int kayma,deger;
unsigned const char metin[]={
0xFF,0x89,0x89,0x89,0x76,0x00, // B
0x84,0xFD,0x84,0x00, // İ
0xFF,0x80,0x80,0x80,0x80,0x00, // L
0x84,0xFD,0x84,0x00, // İ
0xFF,0x02,0x0C,0x02,0xFF,0x00, // M
0x00,0x00,0x00,0x00, // Bosluk
0x38,0x40,0x80,0x40,0x38,0x00, // v
0x70,0xA8,0xA8,0xA8,0xB0,0x00, // e
0x00,0x00,0x00,0x00, // Bosluk
0x01,0x01,0xFF,0x01,0x01,0x00, // T
0xFF,0x89,0x89,0x89,0x81,0x00, // E
0xFF,0x18,0x24,0x42,0x81,0x00, // K
0xFF,0x04,0x08,0x10,0xFF,0x00, // N
0x84,0xFD,0x84,0x00, // İ
0xFF,0x18,0x24,0x42,0x81,0x00};// K
//Metindeki sütunların sayısını hesapla
toplam_sutun=80; //10x6+5x4=60+20=80
//Port ayarlama işlemleri
TRISB=0;
TRISA=0;
CMCON=0x07;
PORTB=0x00;
for(;{//Ana döngü
//Geçici diziyi sıfırla
for(i=0;i<=15;i++){
gecici_dizi=0; //Dizi elemanları başlangıçta 0
}
//Kaydırma işlemleri
for(kayma=-14;kayma<=toplam_sutun;kayma++){
//Metni 16 sütunluk parçalara böl
for(i=0;i<=15;i++){
deger=i+kayma;
if(deger<0)gecici_dizi=0; //metin girişi
if(deger>=0&°er<=toplam_sutun-1)
gecici_dizi=metin[deger];
if(deger>toplam_sutun)gecici_dizi=0; //metin çıkışı
}
//Tarama işlemleri
for(a=0;a<40;a++){ //Aynı görüntüyü 40 kez tekrarla
for(i=0;i<=15;i++){ //Geçici diziyi görüntüle
PORTB=gecici_dizi; // Veriyi PortB'ye gönder
PORTA=i; // ilgili sütun'u seç
DelayUs(200); // 200 mikrosaniye bekle
}}}
}// işlemleri tekrarla
}// Program sonu
#include <pic.h>
#include <delay.c>
main(void)
{
unsigned char gecici_dizi[16];
unsigned char i,a,toplam_sutun;
signed int kayma,deger;
unsigned const char metin[]={
0xFF,0x89,0x89,0x89,0x76,0x00, // B
0x84,0xFD,0x84,0x00, // İ
0xFF,0x80,0x80,0x80,0x80,0x00, // L
0x84,0xFD,0x84,0x00, // İ
0xFF,0x02,0x0C,0x02,0xFF,0x00, // M
0x00,0x00,0x00,0x00, // Bosluk
0x38,0x40,0x80,0x40,0x38,0x00, // v
0x70,0xA8,0xA8,0xA8,0xB0,0x00, // e
0x00,0x00,0x00,0x00, // Bosluk
0x01,0x01,0xFF,0x01,0x01,0x00, // T
0xFF,0x89,0x89,0x89,0x81,0x00, // E
0xFF,0x18,0x24,0x42,0x81,0x00, // K
0xFF,0x04,0x08,0x10,0xFF,0x00, // N
0x84,0xFD,0x84,0x00, // İ
0xFF,0x18,0x24,0x42,0x81,0x00};// K
//Metindeki sütunların sayısını hesapla
toplam_sutun=80; //10x6+5x4=60+20=80
//Port ayarlama işlemleri
TRISB=0;
TRISA=0;
CMCON=0x07;
PORTB=0x00;
for(;{//Ana döngü
//Geçici diziyi sıfırla
for(i=0;i<=15;i++){
gecici_dizi=0; //Dizi elemanları başlangıçta 0
}
//Kaydırma işlemleri
for(kayma=-14;kayma<=toplam_sutun;kayma++){
//Metni 16 sütunluk parçalara böl
for(i=0;i<=15;i++){
deger=i+kayma;
if(deger<0)gecici_dizi=0; //metin girişi
if(deger>=0&°er<=toplam_sutun-1)
gecici_dizi=metin[deger];
if(deger>toplam_sutun)gecici_dizi=0; //metin çıkışı
}
//Tarama işlemleri
for(a=0;a<40;a++){ //Aynı görüntüyü 40 kez tekrarla
for(i=0;i<=15;i++){ //Geçici diziyi görüntüle
PORTB=gecici_dizi; // Veriyi PortB'ye gönder
PORTA=i; // ilgili sütun'u seç
DelayUs(200); // 200 mikrosaniye bekle
}}}
}// işlemleri tekrarla
}// Program sonu