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

📄 test.c

📁 CONTROL89C51串口控制程序
💻 C
字号:
#pragma NOAREGS
#include <reg52.h>
#include "CH375INC.H"

unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBFF1;		
unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBFF0;
		
unsigned char volatile xdata AD0809_ADDR0 _at_ 0x8FF0;
unsigned char volatile xdata AD0809_ADDR1 _at_ 0x8FF2;
unsigned char volatile xdata AD0809_ADDR2 _at_ 0x8FF4;
unsigned char volatile xdata AD0809_ADDR3 _at_ 0x8FF6;
unsigned char volatile xdata AD0809_ADDR4 _at_ 0x8FF8;
unsigned char volatile xdata AD0809_ADDR5 _at_ 0x8FFA;
unsigned char volatile xdata AD0809_ADDR6 _at_ 0x8FFC;
unsigned char volatile xdata AD0809_ADDR7 _at_ 0x8FFE;	
		
unsigned char ad;
unsigned char adcount;
unsigned char adbuf[8];

void	delay2us( )
{
	unsigned char i;
	for ( i = 2; i != 0; i -- ); 
}

void	Delay50ms( )
{
	unsigned char i, j;
	for ( i=200; i!=0; i-- ) for ( j=250; j!=0; j-- );
}

void CH375_WR_CMD_PORT( unsigned char cmd ) 
{ 
	delay2us();
	CH375_CMD_PORT=cmd;
	delay2us();
}

void CH375_WR_DAT_PORT( unsigned char dat ) 
{  
	CH375_DAT_PORT=dat;
}

unsigned char CH375_RD_DAT_PORT( void ) 
{  
	return( CH375_DAT_PORT );
}

void	CH375_Init( )
{
	unsigned char i;

	CH375_WR_CMD_PORT( CMD_SET_USB_MODE );
	CH375_WR_DAT_PORT( 2 );
	for ( i=100; i!=0; i-- ) 
	{  
		if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break;
	}
	IT0 = 0;  
	IE0 = 0;  
	EX0 = 1;  
}

AD0809_INIT()
{
    IT1 = 1;  
	IE1 = 0;  
	EX1 = 1;  
}

void mCh375Interrupt( ) interrupt 0 using 1
{
	unsigned char InterruptStatus;
	CH375_WR_CMD_PORT( CMD_GET_STATUS ); 
	InterruptStatus = CH375_RD_DAT_PORT( ); 

	switch ( InterruptStatus ) 
	{  
		case USB_INT_EP2_OUT: 
		{  
			break;
		}
		case USB_INT_EP2_IN:
		{  
			CH375_WR_CMD_PORT( CMD_UNLOCK_USB );  
			break;
		}
		default:
	    {  
			CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); 
			break;
		}
	}
}

void mAD0809Interrupt( ) interrupt 2 using 2
{
  switch(adcount)
  {
   case 0:
	   adbuf[0]=AD0809_ADDR0;
	   AD0809_ADDR1=1;
   break;
   case 1:
	   adbuf[1]=AD0809_ADDR1;
	   AD0809_ADDR2=1;
   break;
   case 2:
	   adbuf[2]=AD0809_ADDR2;
	   AD0809_ADDR3=1;
   break;
   case 3:
	   adbuf[3]=AD0809_ADDR3;
	   AD0809_ADDR4=1;
   break;
   case 4:
	   adbuf[4]=AD0809_ADDR4;
	   AD0809_ADDR5=1;
   break;
   case 5:
	   adbuf[5]=AD0809_ADDR5;
	   AD0809_ADDR6=1;
   break;
   case 6:
	   adbuf[6]=AD0809_ADDR6;
	   AD0809_ADDR7=1;
   break;
   case 7:
	   adbuf[7]=AD0809_ADDR7;
	   AD0809_ADDR0=1;
   break;
  }
   adcount++;
   if(adcount==8)
   {
     adcount=0;
   }
}

main( ) 
{
    unsigned char i;
	unsigned char data buffer[64];

	Delay50ms( );

    AD0809_INIT();
	CH375_Init( );  

    PX1=1;
	PX0=0;
	EA = 1; 
    
	P1=0XFF;
	adcount=0;
    AD0809_ADDR0=1;
     
	while ( 1 )
    {
	    for ( i = 0; i < 8; i ++ )buffer[ i ]=adbuf[i];
		buffer[8]=P1;
        CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); 
		CH375_WR_DAT_PORT( 64 ); 
		for ( i = 0; i < 64; i++ ) CH375_WR_DAT_PORT(buffer[ i ]); 
	}
}

⌨️ 快捷键说明

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