📄 test.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 + -