#include "am_com.h"
#include "am_init.h"
#include "c8051F120.h"
#include "c8051F120_io.h"
#include <stdio.h>
#include <stdlib.h>
unsigned long int factorial(unsigned long int n)
{
unsigned long int partial;
unsigned long int result = 1;
if (n>1)
{
partial = factorial(n-1);
result = n * partial;
}
return(result);
}
void main(void)
{
xdata char buffer[8];
unsigned char number;
long result;
WDTCN = 0xde;
WDTCN = 0xad;
PORT_Init();
SYSCLK_Init();
UART1_Init ();
UART1_puts("System Ready!\n");
UART1_puts("Please enter a number to compute ");
UART1_gets(buffer, 8);
number=atoi(buffer);
result = factorial(number);
sprintf(buffer, "%ld", result);
UART1_puts("The result is ");
UART1_puts(buffer);
UART1_puts("\n");
UART1_puts("System halted!\n");
while(1) ;
}