Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: fth_kcmn - 30 Kasım 2012, 17:18:54

Başlık: NXP 8051
Gönderen: fth_kcmn - 30 Kasım 2012, 17:18:54
ARKADAŞLAR ATMEL DEĞİL DE NXP NİN 8051 (P89V51RD2) İ İÇİN KAYAN YAZI PROĞRAMI YAZMAK İSTİYORUM... BİLGİSİ OLAN ARKADAŞLAR YARDIMCI OLABİLİR Mİ ?? ;D ;D
Başlık: Ynt: NXP 8051
Gönderen: Klein - 30 Kasım 2012, 18:16:59
Kaymayan yazı yapabiliyorsunuz ama kayanını mı yapamadınız?

Eğer kaymayanını da yapamıyorsanız o zaman matris led sürme, satır tarama , sütun tarama yöntemlerinden işe başlamanız gerek.

Atmel ya da NXP serisi farketmez. Daha önce 8051 türevleri ile yaptığınız çalışma var mı?
Yoksa hangi işlemciler ve dillere hakimsiniz?

Bu sorulara olumlu cevaplarınız varsa işiniz kolay. Yoksa, ta en başından başlamak gerek.
Başlık: Ynt: NXP 8051
Gönderen: fth_kcmn - 01 Aralık 2012, 10:34:24
iyi seviyede assembly biliyorum fakat düşük seviyede embedded C biliyorum ve bn bu programı C de yazmak istiyorum 8051 ile bir dot.matrıx de harfleri yazdırıp KAYDIRMADAN yazı yazabiliyorum ama kaydırma işlemini yapamıyorum ve C de cok iyi olmadıgım için program salakca ve uzun gereksiz bşey oluyor... Bunun için yardım ederseniz cok sevinirim...



programı şu şekilde yazdım zaten


//Header:
//File Name:
//Author:
//Date:
#include <reg52.h>
#include <stdio.h>
typedef unsigned char tByte;
char sayc;

tByte code SEG_anod [8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

tByte code SEG_F    [8]={0x00,0x00,0x60,0x78,0x78,0x60,0x7E,0x7E};

tByte code SEG_A    [8]={0X00,0X00,0X66,0X66,0X7E,0X66,0X66,0X3C};

tByte code SEG_T    [8]={0X00,0x00,0x18,0x18,0x18,0x18,0x7E,0x7E};

tByte code SEG_I    [8]={0X00,0x00,0x18,0x18,0x18,0x18,0x00,0x18};

tByte code SEG_H    [8]={0X00,0x00,0x66,0x66,0x7E,0x7E,0x66,0x66};



sfr KATOT=0xB0;

sfr ANOD=0xA0;

void milisaniye(int gecikme) /*1 milisaniye zaman geciktirme*/
{   int k,   z;
   for(k=0; k<gecikme; k++)
   {
   for (z=0; z<250; z++);
   }
}

void main  (void)
{  unsigned char sayac;

tekrarla:
   
   sayac=0;

don_f:
   
   while(1)
         
  {   
   while (sayac<8)
   {
   KATOT=SEG_F[sayac];

   milisaniye(2);

   ANOD=SEG_anod [sayac];


   sayac++;
                 }

   sayac=0;



   while (1)
   {
   while (sayc<16)
   {

    sayc++;

   goto don_f;
            }

    sayc=0;

     sayac=0;


don_a:
   
   while(1)
         
   {   
   while (sayac<8)
    {
   KATOT=SEG_A[sayac];

   milisaniye(2);

   ANOD=SEG_anod [sayac];
         
   sayac++;
      
             }
       
   sayac=0;

   while (1)
   {
   while (sayc<16)
   {

   sayc++;

   goto don_a;
            }
         
   sayc=0;         

don_t:

   while(1)
         
    {   
   while (sayac<8)
    {
   KATOT=SEG_T[sayac];

   milisaniye(2);

   ANOD=SEG_anod [sayac];

   sayac++;

             }

    sayac=0;
   
   while (1)
   {
   while (sayc<16)
   {

   sayc++;

   goto don_t;
            }
         
   sayc=0;

don_i:

   while(1)
   {   
   while (sayac<8)
    {
   KATOT=SEG_I[sayac];

   milisaniye(2);

   ANOD=SEG_anod [sayac];

   sayac++;
             }

   sayac=0;
   
   while (1)
   {
   while (sayc<16)
   {
   
   sayc++;

   goto don_i;
            }
   
   sayc=0;
   
don_h:

   while(1)
   {   
   while (sayac<8)
    {
   KATOT=SEG_H[sayac];

   milisaniye(2);
   
   ANOD=SEG_anod [sayac];
   
   sayac++;
             }

   sayac=0;

   while (1)
   {
   while (sayc<16)
   {

   sayc++;

   goto don_h;
            }
   
   sayc=0;
   
   goto tekrarla;
            }
}}}}}}}}}}