Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

NXP 8051

Başlatan fth_kcmn, 30 Kasım 2012, 17:18:54

fth_kcmn

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

Klein

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.

fth_kcmn

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;
            }
}}}}}}}}}}