亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? isp1581.lst

?? at89c51+isp1581控制程序(c語言源代碼).包含快速模式和高速模式
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE ISP1581
OBJECT MODULE PLACED IN Isp1581.OBJ
COMPILER INVOKED BY: E:\WIN98\HARDWARE\KEILC\C51\BIN\C51.EXE Isp1581.c DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include "SMPro.h"
   2          #include "HAL.h"
   3          #include "USB.H"
   4          #include "Isp1581.h"
   5          extern ZBOARDFLAGS bZBoardFlags;
   6          
   7          void outport(unsigned short nPort, unsigned short nVal)
   8          {
   9   1      	unsigned short idata temp;
  10   1      	
  11   1      	unsigned char xdata *exAddress;
  12   1      	exAddress = nPort;
  13   1      	temp=nVal;
  14   1      	ISP1581_CS=0;//xxg
  15   1      	*exAddress=temp;
  16   1      	temp=temp>>8;
  17   1      	*(exAddress+1)=temp;
  18   1      	ISP1581_CS=1;//xxg
  19   1      
  20   1      }
  21          
  22          void outportb(unsigned short nPort, unsigned char nVal)
  23          {
  24   1      	unsigned char xdata *exAddress;
  25   1      	exAddress = nPort;
  26   1      	
  27   1      	ISP1581_CS=0;//xxg
  28   1      	*exAddress = nVal;
  29   1      	ISP1581_CS=1;//xxg
  30   1      }
  31          
  32          unsigned short inport(unsigned short nPort)
  33          {
  34   1      	unsigned short idata nVal;
  35   1      	unsigned char idata temp;
  36   1      	unsigned char xdata *exAddress;
  37   1      	exAddress = nPort;
  38   1      	
  39   1      	ISP1581_CS=0;//xxg
  40   1      	
  41   1      	temp=*exAddress;
  42   1      	nVal=*(exAddress+1);
  43   1      	ISP1581_CS=1;//xxg
  44   1      	nVal=nVal<<8;
  45   1      	nVal=nVal+temp;
  46   1      	return nVal;
  47   1      	
  48   1      }
  49          
  50          unsigned char inportb(unsigned short nPort)
  51          {
  52   1      	//unsigned short idata nVal;
  53   1      	unsigned char nVal;
  54   1      	unsigned char xdata *exAddress;
  55   1      	exAddress = nPort;
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 2   

  56   1      	ISP1581_CS=0;//xxg
  57   1      	nVal = *exAddress;
  58   1      	ISP1581_CS=1;//xxg
  59   1      	return nVal;
  60   1      
  61   1      }
  62          //////////////////////////////////////////////////////////
  63          void ISP1581_ResetDevice(void)
  64          {
  65   1      	unsigned char i=0,j;
  66   1      
  67   1      	ISP1581_SetMode(mode_reset);
  68   1      	ISP1581_SetMode(0x0);
  69   1      	for(i = 0; i <15; i++)
  70   1      	{
  71   2      		for(j = 0; j < 255; j++)
  72   2      		{
  73   3      		}
  74   2      	
  75   2      	}
  76   1      	
  77   1      }
  78          void ISP1581_SendResume(void)
  79          {
  80   1      	UCHAR c;
  81   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
  82   1      		RaiseIRQL();
  83   1      
  84   1      	ISP1581_ReadChipID();; // wake up device first;
  85   1      	// need to add some delay for 3 ms to let the device get out of suspend, (crystal to be stable);
  86   1      	// srcatch is used to store user information for wake up;
  87   1      	ISP1581_UnlockDevice();
  88   1      	c = ISP1581_GetMode();
  89   1      	ISP1581_SetMode(c|mode_sndrsu);
  90   1      	ISP1581_SetMode(c);
  91   1      
  92   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
  93   1      		LowerIRQL();
  94   1      }
  95          
  96          void ISP1581_GoSuspend(void)
  97          {
  98   1      	unsigned char c;
  99   1      	c = ISP1581_GetMode();
 100   1      	ISP1581_SetMode(c|mode_gosusp);
 101   1      	ISP1581_SetMode(c);
 102   1      	//return;
 103   1      }
 104          
 105          
 106          void ISP1581_SetEPIndex(UCHAR bEPIndex)  //OK
 107          {
 108   1      	outportb(rega_epindex, bEPIndex);
 109   1      }
 110          
 111          UCHAR ISP1581_GetEndpointStatus(UCHAR bEPIndex) //OK
 112          {
 113   1      	UCHAR c;
 114   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 115   1      		RaiseIRQL();
 116   1      	ISP1581_SetEPIndex(bEPIndex);
 117   1      	c = inportb(rega_epctlfc);
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 3   

 118   1      
 119   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 120   1      		LowerIRQL();
 121   1      	return c;
 122   1      }
 123          
 124          void ISP1581_SetEndpointStatus(UCHAR bEPIndex, UCHAR bStalled) //OK
 125          {
 126   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 127   1      		RaiseIRQL();
 128   1      
 129   1      	ISP1581_SetEPIndex(bEPIndex);
 130   1      	outportb(rega_epctlfc, bStalled);
 131   1      
 132   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 133   1      		LowerIRQL();
 134   1      }
 135          void ISP1581_ControlReadHandshake(void)
 136          {
 137   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_IN, epctlfc_status|epctlfc_stall);
 138   1      }
 139          void ISP1581_ControlWriteHandshake(void)
 140          {
 141   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_OUT, epctlfc_status|epctlfc_stall);
 142   1      }
 143          
 144          void ISP1581_SetAddressEnable(UCHAR bAddress, UCHAR bEnable)
 145          {
 146   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 147   1      		RaiseIRQL();
 148   1      
 149   1      	if(bEnable)
 150   1      		bAddress |= addren_enable;
 151   1      	else
 152   1      		bAddress &= addren_addrmask;
 153   1      
 154   1      	outportb(rega_addren, bAddress); // set new address enable);
 155   1      
 156   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 157   1      		LowerIRQL();
 158   1      }
 159          USHORT ISP1581_ReadControlEndpointSetup(UCHAR * buf)
 160          {
 161   1      	USHORT i,c;
 162   1      
 163   1      	ISP1581_SetEPIndex(EPINDEX4CONTROL_SETUP);
 164   1      	c = inport(rega_dcount);
 165   1      	for(i=0; i<c; i++)
 166   1      	{
 167   2      		*buf = inportb(rega_dport);
 168   2      		buf ++;
 169   2      	}
 170   1      
 171   1      	return c;
 172   1      }
 173          
 174          USHORT ISP1581_WriteControlEndpoint(UCHAR * buf, USHORT len)
 175          {
 176   1      	USHORT i;
 177   1      	UCHAR  c;
 178   1      
 179   1      	ISP1581_SetEPIndex(EPINDEX4EP07OUT);// work around for es4, write in endpoint corrupts out endpoint data
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 4   

 180   1      	ISP1581_SetEPIndex(EPINDEX4CONTROL_IN);
 181   1      
 182   1      	outport(rega_dcount, len);
 183   1      	for(i=0;i<len;i++,buf++)
 184   1      	{
 185   2      	  c=*buf;
 186   2      	  outportb(rega_dport,c);
 187   2      	}
 188   1      	return len;
 189   1      }
 190          
 191          USHORT ISP1581_ReadControlEndpoint(UCHAR * buf, unsigned short len)
 192          {
 193   1      	USHORT i, j, RX_LEN;
 194   1      	
 195   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 196   1      		RaiseIRQL();
 197   1      
 198   1      	ISP1581_SetEPIndex(EPINDEX4CONTROL_OUT);
 199   1      	// get pkt length
 200   1      	RX_LEN = inport(rega_dcount);
 201   1      
 202   1      	if(RX_LEN <= EP0_PACKET_SIZE)
 203   1      	{
 204   2      		j = RX_LEN;
 205   2      	}
 206   1      	else
 207   1      	{
 208   2      		j = EP0_PACKET_SIZE;
 209   2      	}
 210   1      
 211   1      	for(i=0; i< j; i++) // Maxium data length allowed.
 212   1      	{
 213   2      		* buf = inportb(rega_dport);
 214   2      		buf ++;
 215   2      	}
 216   1      
 217   1      	for(i = j; i <RX_LEN; i++)   // strip invalid data other than setup has set
 218   1      		inportb(rega_dport);
 219   1      
 220   1      	if(RX_LEN > len)
 221   1      		j = EP0_PACKET_SIZE;    // return max length informing more data received than expected.
 222   1      
 223   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 224   1      		LowerIRQL();
 225   1      
 226   1      	return j;
 227   1      }
 228          USHORT ISP1581_ReadBulkEndpoint(UCHAR bEPIndex, unsigned char * buf, USHORT len)
 229          {
 230   1      	USHORT i, j, c;
 231   1      
 232   1      	ISP1581_SetEPIndex(bEPIndex);
 233   1      	j = inport(rega_dcount);
 234   1      
 235   1      	if(j<len)
 236   1      		len=j;
 237   1      	for(i=0; i<len; i=i+1, buf++ )
 238   1      	{
 239   2      		c = inportb(rega_dport);
 240   2      		*buf = c;
 241   2      	}
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 5   

 242   1      	for(i=len; i<j; i=i+1)
 243   1      		inportb(rega_dport);                  // data received is more than count setup got, discards the extra 
             -data.
 244   1      	
 245   1      	return len;
 246   1      }
 247          void ISP1581_WriteBulkEndpoint(UCHAR bEPIndex, unsigned char * buf, USHORT len)
 248          {
 249   1      	USHORT  i;
 250   1      
 251   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 252   1      		RaiseIRQL();
 253   1      
 254   1      	ISP1581_SetEPIndex(EPINDEX4EP07OUT);// work around for es4, write in endpoint corrupts out endpoint data
 255   1      	ISP1581_SetEPIndex(bEPIndex);
 256   1      		outport(rega_dcount, len);
 257   1      
 258   1      
 259   1      	for(i=0; i<len; i++, buf++ )
 260   1      	{
 261   2      		outportb(rega_dport,*buf);
 262   2      	}
 263   1      
 264   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 265   1      		LowerIRQL();
 266   1      }
 267          
 268          USHORT ISP1581_ReadISOEndpoint(UCHAR bEPIndex, unsigned short * buf, USHORT len)
 269          {
 270   1      	USHORT i, j;
 271   1      
 272   1      	ISP1581_SetEPIndex(bEPIndex);
 273   1      	//outport(aport, rega_dcount);
 274   1      	j = inport(rega_dcount);
 275   1      	if(j<len)
 276   1      		len=j;
 277   1      	for(i=0; i<len; i=i++, buf++ )
 278   1      	{
 279   2      		*buf = inportb(rega_dport);
 280   2      	}
 281   1      	
 282   1      	for(i=len; i<j; i=i+1)
 283   1      		inportb(rega_dport);                  // data received is more than count setup got, discards the extra 
             -data.
 284   1      
 285   1      	return len;
 286   1      }
 287          
 288          void ISP1581_WriteISOEndpoint(UCHAR bEPIndex, unsigned short * buf, USHORT len)
 289          {
 290   1      	USHORT  i;
 291   1      
 292   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 293   1      		RaiseIRQL();
 294   1      
 295   1      	ISP1581_SetEPIndex(EPINDEX4EP07OUT);// work around for es4, write in endpoint corrupts out endpoint data
 296   1      	ISP1581_SetEPIndex(bEPIndex);
 297   1      
 298   1      	if (len < 256)
 299   1      	{
 300   2              	outport(rega_dcount, len);
 301   2      	}
C51 COMPILER V6.20c  ISP1581                                                               05/19/2003 01:04:58 PAGE 6   

 302   1      
 303   1      	for(i=0; i<len; i ++, buf++ )
 304   1      	{
 305   2      		outportb(rega_dport,*buf);
 306   2      	}
 307   1      
 308   1      	if(bZBoardFlags.bits.At_IRQL1 == 0)
 309   1      		LowerIRQL();
 310   1      }
 311          
 312          
 313          void ISP1581_StallEP0InControlWrite(void)
 314          {
 315   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_IN, epctlfc_stall);
 316   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_OUT, epctlfc_stall);
 317   1      }
 318          
 319          void ISP1581_StallEP0InControlRead(void)
 320          {
 321   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_OUT, epctlfc_stall);
 322   1      	ISP1581_SetEndpointStatus(EPINDEX4CONTROL_IN, epctlfc_stall);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av一区二区| 欧美主播一区二区三区| 欧美性猛交xxxx乱大交退制版| 精品三级在线观看| 一区二区高清在线| 国产精品资源在线观看| 欧美日韩中文另类| 中文字幕在线视频一区| 老司机一区二区| 欧美影院午夜播放| 国产精品午夜在线观看| 久久精品72免费观看| 欧美日韩激情一区二区| 亚洲视频免费在线| 粉嫩高潮美女一区二区三区 | 亚洲另类一区二区| 国产精品正在播放| 精品国产免费久久 | 国产在线精品一区二区| 制服丝袜在线91| 一区二区三区四区蜜桃| 成人av在线观| 久久久久99精品国产片| 日本vs亚洲vs韩国一区三区| 欧美理论电影在线| 偷拍亚洲欧洲综合| 欧美日韩综合一区| 亚洲国产欧美日韩另类综合 | 热久久久久久久| 欧美日韩的一区二区| 天堂蜜桃91精品| 欧美剧情电影在线观看完整版免费励志电影 | 日韩福利视频网| 欧美一区二区三区四区高清| 午夜免费欧美电影| 日韩欧美在线一区二区三区| 免费在线观看不卡| 欧美v亚洲v综合ⅴ国产v| 激情久久五月天| 久久精品一区二区三区四区| 成人av免费网站| 亚洲一区日韩精品中文字幕| 欧美日韩精品欧美日韩精品一综合| 天天综合色天天综合色h| 欧美一级日韩不卡播放免费| 国产乱妇无码大片在线观看| 欧美激情一区在线观看| 97se亚洲国产综合在线| 亚洲午夜免费电影| 91精品国产综合久久久久久久久久 | 国产成人av电影在线观看| 中文字幕电影一区| 色婷婷精品大在线视频| 午夜视频在线观看一区二区| 欧美成人在线直播| 99免费精品在线观看| 亚洲一区在线免费观看| 日韩精品一区二区三区在线播放| 黄页网站大全一区二区| 中文字幕中文字幕一区| 欧美精品少妇一区二区三区| 国产中文一区二区三区| 亚洲黄色av一区| 精品毛片乱码1区2区3区| 成人激情免费电影网址| 偷拍日韩校园综合在线| 亚洲国产精品传媒在线观看| 欧美日韩国产综合一区二区| 国产精品亚洲午夜一区二区三区| 一区二区三国产精华液| 久久免费视频色| 欧美人妇做爰xxxⅹ性高电影| 国产成人精品影院| 五月综合激情婷婷六月色窝| 国产午夜亚洲精品理论片色戒| 在线观看日韩电影| 成人久久视频在线观看| 免费高清在线视频一区·| 自拍偷拍亚洲综合| 日韩欧美成人一区| 91视频观看免费| 国产91精品免费| 美国一区二区三区在线播放| 亚洲国产日韩av| 国产精品护士白丝一区av| 欧美v日韩v国产v| 制服丝袜亚洲色图| 欧美午夜宅男影院| 91浏览器打开| 国产91在线看| 国产精品88av| 国产一区二区导航在线播放| 天堂影院一区二区| 亚洲国产精品视频| 亚洲精品欧美激情| 中文字幕中文在线不卡住| 国产日韩综合av| 久久一二三国产| www国产成人| 精品少妇一区二区| 精品少妇一区二区三区日产乱码| 欧美精品日韩一本| 欧美色国产精品| 欧美日韩一级视频| 欧美色中文字幕| 欧美午夜精品一区二区蜜桃| 在线免费亚洲电影| 欧美最猛黑人xxxxx猛交| 91丨九色丨黑人外教| 91丝袜美腿高跟国产极品老师| eeuss鲁一区二区三区| 成人免费毛片app| 99精品视频中文字幕| 成人激情视频网站| 91视频免费看| 欧美性色黄大片| 欧美久久一二三四区| 日韩欧美视频在线| xfplay精品久久| 国产欧美日韩三区| 日韩理论片在线| 亚洲激情六月丁香| 肉色丝袜一区二区| 久久av老司机精品网站导航| 国产一区二区三区免费观看| 国产91在线观看丝袜| 91在线观看成人| 欧美日韩大陆一区二区| 日韩欧美国产wwwww| 国产欧美一区二区精品性色超碰| 欧美激情一区二区| 亚洲一区国产视频| 免费在线观看精品| 国产99久久久久久免费看农村| 99久久久国产精品| 欧美午夜宅男影院| xvideos.蜜桃一区二区| 亚洲三级电影网站| 日韩vs国产vs欧美| 福利一区二区在线| 欧美日韩一区成人| 久久久99久久| 亚洲一二三区在线观看| 久久97超碰色| 91高清在线观看| 久久综合色播五月| 伊人色综合久久天天| 麻豆精品久久久| 色婷婷综合久久| 精品福利一二区| 一区二区三区在线观看网站| 久99久精品视频免费观看| 色综合久久88色综合天天免费| 日韩小视频在线观看专区| 日韩一区在线播放| 免费看日韩精品| 91麻豆免费观看| 久久久99免费| 美日韩一区二区三区| 色中色一区二区| 国产亚洲精品免费| 日本大胆欧美人术艺术动态| 99精品国产热久久91蜜凸| 精品国产1区2区3区| 亚洲18色成人| 色婷婷亚洲精品| 久久精品视频在线看| 日韩高清在线不卡| 91丨九色丨蝌蚪丨老版| 国产农村妇女毛片精品久久麻豆 | 亚洲精品va在线观看| 国产精品1区二区.| 精品少妇一区二区三区日产乱码| 亚洲福利电影网| 一本色道综合亚洲| 国产精品久久久久一区| 韩国成人在线视频| 欧美一区二区在线视频| 亚洲主播在线播放| 91麻豆国产自产在线观看| 欧美国产日韩亚洲一区| 狠狠色狠狠色综合系列| 欧美一区二区三区男人的天堂| 亚洲一二三区视频在线观看| www.av亚洲| 亚洲视频综合在线| av综合在线播放| 国产精品久久久久久久久免费相片| 久久99蜜桃精品| 久久这里只有精品6| 久久疯狂做爰流白浆xx| 日韩视频一区在线观看| 日av在线不卡| 日韩欧美一区在线| 精品一区二区三区在线视频| 欧美一卡二卡在线| 极品瑜伽女神91| 久久婷婷成人综合色| 国产高清视频一区| 国产精品三级久久久久三级|