⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ramtest.c

📁 测试RAM的参考程序
💻 C
字号:
#include "reg51.h"
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "absacc.h"
#define uchar unsigned char
#define uint unsigned int

#define Alert_speed 10
#define BaudA_h 0                        /* 9600 for SIOA PORT for LCD */
#define BaudA_l 0x0C
#define BaudB_h 0                        /* 4800 for SIOB PORT for GPS */
#define BaudB_l 0x18
#define BaudC_h 0                        /* 9600 for SIOC PORT for VOICE */
#define BaudC_l 0x0C
//#define BaudC_h 0                        /* 19200 for SIOD PORT for VOICE */
//#define BaudC_l 0x06

#define GPSL 0x400
#define GSML 0x400
#define GSMP 0x300
#define GPSP 0x100


#define SIOA (( uchar * )0x28000L )
#define SIOB (( uchar * )0x29000L )
#define SIOC (( uchar * )0x2A000L )
#define SIOD (( uchar * )0x2B000L )
#define PARA (( uchar * )0x2C000L )

void Init554( void ) ;
void sendlcd( uchar ) ;
uchar  data timer_1s=100;
uint  timer_0=100;
uint  addr=0;
uchar var=0;
uchar tem;
bit   RamError=0;
void main( )
{
        P15=0;

        SCON = 0x50 ;
	TMOD = 0x21 ;
	TL1 = 0xfd ;            /* fa:9600  fd:19200  f4:4800 */
	TH1 = 0xfd ;            /*19200 for gsm baud rate*/
	TL0 = 0xe4 ;            /* 10 ms */
	TH0 = 0xdb ;
	PCON = 0x80 ;
	TR1 = 1 ;
	TR0 = 1 ;
	IP = 0x05 ;
	IT0 = 1 ;
	ET0 = 1 ;               /* Enable timer0 interrupt */
	ES = 0 ;                /* Disaable sio interrupt */
	EX0 = 0 ;               /* Disable extern int0 interrupt */
	EX1 = 0 ;
	EA = 1 ;                /* Enable interrupt */
        ES = 1 ;                /* Enable sio interrupt */
	EX0 = 1 ;               /* Enable extern int0 interrupt */
	EX1 = 1 ;
        P14 = 0 ;
        timer_0 = 50 ;
        while ( timer_0 != 0 ) ;
        P14 = 1 ;
        timer_0 = 200 ;
        while (timer_0 != 0 ) ;
        P14 = 0 ;        
        Init554( ) ;


	while( 1 )
	{
               /*******while(addr<0x8000)
               {
                    XBYTE[addr]=var;
                    tem=XBYTE[addr];
                    if(tem==var)
                    {
                        ;
                    }
                    else
                    {
                          RamError=1;
                    }
                    addr++;
                    var++;
                    P14=!P14;
               }*************/
               
               timer_0 =20 ;
               while ( timer_0 !=0 ) ;
               sendlcd(0x55) ;                              
               
               

        }
}

void sendlcd( uchar a )
{
	uchar x,y ;
	while( 1 )
	{
		y = SIOA[5] ;
		x = y&0x20 ;
		if( x==0x20 )
		{
			SIOA[0] = a ;
			return  ;
		}
	}
}

void timer0() interrupt 1
{

	TL0 = 0x00 ;
	TH0 = 0xdc ;
        P10=!P10;
        if(timer_1s!=0)
            timer_1s--;
        if(timer_0!=0)
            timer_0--;
        /*****SIOA[0]=0x55;
        SIOB[0]=0x55;
        SIOC[0]=0x55;
        SIOD[0]=0x55;
        PARA[0]=0x55; *******/



        if(timer_1s==0)
        {
                timer_1s=100;
                if(RamError==0)
                {
                        P16=!P16;
                }

        }
}

void Init554()
{
                SIOA[4] = 0x08 ;            /*MODEM CONTROL REGISTER,INT enable*/
		SIOA[3] = 0x80 ;            /*divisor latch enable*/
		SIOA[0] = BaudA_l ;         /*LSB OF DIVISOR LATCH*/
		SIOA[1] = BaudA_h ;         /*MSB OF DIVISOR LATCH*/
		SIOA[3] = 0x03 ;            /*8 BIT WORD LENGTH*/
		SIOA[4] = 0x0b ;            /*INT ENABLE FORCE RTS,DTR="0" */
    	        SIOA[1] = 0x01 ;

                SIOB[4] = 0x08 ;
		SIOB[3] = 0x80 ;
		SIOB[0] = BaudB_l ;
		SIOB[1] = BaudB_h ;
		SIOB[3] = 0x03 ;
		SIOB[4] = 0x0b ;
 	        SIOB[1] = 0x01 ;

		SIOC[4] = 0x08 ;
		SIOC[3] = 0x80 ;
		SIOC[0] = BaudC_l ;
		SIOC[1] = BaudC_h ;
		SIOC[3] = 0x03 ;
		SIOC[4] = 0x0b ;
		SIOC[2] = 0xc1 ;
		SIOC[2] = 0xc1 ;
		SIOC[1] = 0x01 ;
}                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -