This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Need help in C51 Programming

Hi, i'm pretty new to programming. I'm currently using Keil uvision to program AT89S4051 Microcontroller in C language. I'm trying to read bit by bit data from the I/O port every 50us and store it in an external memory bit by bit. However, i would want to store a bit then shift to next bit and store. After 8 bits, store on a new byte and for 300 bytes. Anyone could suggest a method on how to do that? My program is posted down below (it's probably full of mistakes) Thanks in advance.

#include <reg51.h>
sbit Tsignal = P1^2;                                              //Input Signal
sbit Learn = P1^3;
unsigned int i;
unsigned char xdata x[300];
unsigned char xdata y[300];


void timer0(void)
{
 TMOD = 0x01;                                                   //Timer0 , Mode 1
 TH0 = 0xFF;                                                    //Set timer to count from -46 = FFD2h
 TL0 = 0xD2;

 TR0 = 1;
 while(TF0==0);                                         //Turn on Timer0
 TF0 = 0;                               //Set Flag to 0;
 TR0 = 0;                                                           //Turn off Timer0
}
void main(void)
{
 Learn=0;
 if(Learn==1)                                             //If learn button is pressed, data as stored as sampling data
 {
  for(i=0;i<299;i++)                                    //Loop for 300 bytes
  {
   timer0();                                                    //Call timer0 function
   x[i] = Tsignal;                                              //Store Tsignal in x
  }
 }
  else                                                                   //When Learn button is not pressed, data is stored as
  {
   for(i=0;i<299;i++)                                         //Loop for 300 bytes
   {
    timer0();                                                    //Call timer0 function
        y[i] = Tsignal;                                          //Store Tsignal in y
   }
  }
}

Parents
  • Per writes:
    You seem to be quick to take decisions - you should try to do the reverse. Spend time reading up on your alternatives before taking a decision.

    you reply:
    i have already decided ...

    you can (in my opinion should) change that decision after studying the availabe documentation

    Erik

Reply
  • Per writes:
    You seem to be quick to take decisions - you should try to do the reverse. Spend time reading up on your alternatives before taking a decision.

    you reply:
    i have already decided ...

    you can (in my opinion should) change that decision after studying the availabe documentation

    Erik

Children