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

📄 atmelusbci.c

📁 用89C51SND1C实现MP3播放器的源代码.用KEIL c51编写.
💻 C
字号:
/****************************************************************/
/*					UP-MP3DIY100								*/
/*		Beijing Universal Pioneering Technology Co., LTD		*/
/*		CopyRighted,All right Reserved	www.up-tech.com			*/
/*						July,2003								*/
/*				010-62387873  62381842							*/
/****************************************************************/

#include "REGSND1.H"
#include "atmelusbci.h"

#define OSCclk 	16

int AtmelUSBInit(unsigned char NDIV,unsigned int RDIV,unsigned char USBCD)
{
	int i;
	//set PLL CLK
	
//	PLLclk=(OSCclk*(RDIV+1))/(int)(NDIV+1);
//	USBclk=PLLclk/(int)(USBCD+1);
	
	CKCON|=X2;//Set to select 6 clock periods per machine cycle
	PLLNDIV	=	0x7f&NDIV;//set NDIV
	PLLCON	|=	(0x3&RDIV)<<6;//set RDIV
	PLLRDIV	=	(0x3ff&RDIV)>>2;

	USBCLK=USBCD&0x03;

	PLLCON&=(~PLLRES);//Enable PLL
	PLLCON|=PLLEN;


	//USBCON Register
	USBCON&=(~USBE);
	for(i=0;i<3000;i++)
	USBCON|=USBE;
	return(0);
}

void EpEnable(void)
{

	UEPNUM=0x00;//Ep0 as control Endpoint
	UEPCONX=0x80;

	UEPNUM=0x01;//Ep1 as Bulk-in Endpoint
	UEPCONX=0x86;

	UEPNUM=0x02;//Ep2 as Bulk-out Endpoint
	UEPCONX=0x82;

	UEPRST=0x07;//rest FIFO 
	UEPRST=0x00;

	UEPIEN=0x07;//Endpoint Interrupt Enable

	USBIEN|=EEOFINT;
	USBADDR=FEN;//Function Enable
	
}

⌨️ 快捷键说明

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