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

📄 main9604.c

📁 USBN9604的初始化函数(C51),以及寄存器头文件,USB接口开发技术[西安电子科技大学出版社] 这本书上有更详细的电路以及代码介绍
💻 C
字号:
#include "C:\Keil\C51\INC\reg51.h"
#include "C:\Keil\C51\INC\reg9604.h"
#include "C:\Keil\C51\INC\absacc.h"
#include "C:\Keil\C51\INC\ComUsb9604.h"
#include "C:\Keil\C51\INC\usbspec.h"

void main(void)
 {
 EA=0;
init_89C51();
init_9603();
EA=1;
while(1) {   }
}

void init_89C51()
{
IP=0x1;
EX0=0;
IT0=0;
TMOD=0x20;
PCON=0x00;
SCON=0x40;
TR1=1;
EX0=1;
ES=0;
ET1=0;
IE1=0;
TH1=0x0FD;
TL1=0X0FD;
}
void init_9604()
{ USC t;
  status_GETDESC=0;
  usb_cfg = 0;
  write_usb(MCNTRL,SRST);
  write_usb(MCNTRL,VGE+INT_H_P);
  write_usb(CCONF,0x1c);
  write_usb(FAR,AD_EN+0);
  write_usb(EPC0,0x00);
  write_usb(NAKMSK,NAK_O0);
  write_usb(TXMSK,TXFIFO0+TXFIFO1+TXFIFO2+TXFIFO3);
  t=read_usb(TXMSK);
  write_usb(RXMSK,RXFIFO0+RXFIFO1+RXFIFO2+RXFIFO3);
  write_usb(ALTMSK,SD3+RESET_A);
  write_usb(MAMSK,(INTR_E+RX_EV+NAK+TX_EV+ALT));
  FLUSHTX0;
  Delay1();
  write_usb(RXC0,RX_EN);
  write_usb(NFSR,OPR_ST);
  write_usb(MCNTRL,VGE+INT_L_P+NAT);
  Ints=0;
  for(k=0;k<10000;k++) delay1();
  write_usb(MCNTRL,VGE);
}

void write_usb(USC addr,USC dat)
{
  XBYTE[0x8000|addr]=dat;
}

USC read_usb(USC addr)
{
    return XBYTE[0x8000|addr];
}

void delay1()
{
  USC i;
  for(i=0;i<200;i++){}

}

⌨️ 快捷键说明

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