亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美一区二区美女| 欧美日韩视频不卡| 韩国精品在线观看| 天天操天天干天天综合网| 1024精品合集| 国产亚洲欧美在线| 久久综合九色综合97_久久久| 欧美午夜精品电影| 99视频在线精品| 国产精品77777竹菊影视小说| 看电影不卡的网站| 看片网站欧美日韩| 亚洲成人精品一区二区| 亚洲成va人在线观看| 一区二区三区蜜桃| 亚洲精品免费看| 亚洲一区二区三区自拍| 夜夜嗨av一区二区三区四季av| 亚洲免费资源在线播放| 亚洲精品老司机| 亚洲成人久久影院| 久久国产视频网| 国产成+人+日韩+欧美+亚洲| 99久久99久久久精品齐齐| 一本大道久久a久久精二百| 欧美日韩在线亚洲一区蜜芽| 欧美一级一区二区| 久久久久久亚洲综合| 国产精品丝袜91| 亚洲精品老司机| 男女男精品网站| av不卡免费电影| 欧美日免费三级在线| 欧美一区二区三区免费观看视频| 国产亚洲精久久久久久| 一区二区三区国产| 国产综合成人久久大片91| 成人av高清在线| 精品奇米国产一区二区三区| 一区二区三区在线免费| 捆绑调教美女网站视频一区| 一本到不卡免费一区二区| www国产成人| 日本午夜精品一区二区三区电影| 国产99精品国产| 在线电影欧美成精品| 亚洲欧美偷拍另类a∨色屁股| 国产综合成人久久大片91| 欧美性生交片4| 成人免费在线视频| 国产成人在线视频网址| 国产成人在线视频免费播放| 日韩专区在线视频| 亚洲国产wwwccc36天堂| 91丨九色丨国产丨porny| 69久久99精品久久久久婷婷 | 欧美videossexotv100| 久久久噜噜噜久噜久久综合| 国产欧美中文在线| 激情久久五月天| 91蝌蚪porny| 2014亚洲片线观看视频免费| 一区二区三区四区不卡在线 | 91麻豆精品一区二区三区| 色噜噜狠狠成人网p站| 国产精品女主播av| 国产一区二区三区免费| 日韩精品一区国产麻豆| 国产精品996| 高清av一区二区| 国产三级欧美三级日产三级99| 亚洲国产精品人人做人人爽| 色激情天天射综合网| 亚洲高清不卡在线观看| 91啦中文在线观看| 亚洲一区二区欧美日韩| 正在播放一区二区| 国内外成人在线| 欧美一卡二卡在线| 美女一区二区在线观看| 日韩精品一区二区三区四区| 国产高清精品网站| 国产亚洲视频系列| 天天色综合天天| 久久久久综合网| 成人午夜激情片| 亚洲精品免费播放| 日韩午夜在线影院| 从欧美一区二区三区| 国产精品久久精品日日| 成人永久免费视频| 亚洲欧洲国产专区| 欧美日韩一区二区三区视频| 青青草91视频| 亚洲天堂精品在线观看| 欧美一区二视频| 97精品久久久久中文字幕| 亚洲va欧美va天堂v国产综合| 欧美极品美女视频| 久久婷婷久久一区二区三区| 福利一区二区在线观看| 亚洲精品视频免费观看| 精品美女一区二区三区| 欧美中文字幕亚洲一区二区va在线| 午夜视频久久久久久| 欧美激情一区二区| 日韩一级高清毛片| 91福利资源站| 高清不卡在线观看av| 日日欢夜夜爽一区| 亚洲一区二区三区中文字幕在线| 日韩视频中午一区| 在线观看欧美精品| 粉嫩一区二区三区性色av| 免费一区二区视频| 日韩av电影免费观看高清完整版 | 欧美军同video69gay| 成人福利在线看| 国产成人精品一区二区三区四区| 奇米影视7777精品一区二区| 亚洲图片另类小说| 亚洲毛片av在线| 亚洲精品高清在线| 亚洲色图色小说| 中文字幕在线一区免费| 国产精品乱码一区二三区小蝌蚪| 久久久久久电影| 国产亚洲va综合人人澡精品| 日韩午夜av电影| 日韩视频一区二区三区在线播放| 欧美日韩激情一区二区| 欧美一区二区三区在线观看视频 | 波多野结衣一区二区三区| 国产精一区二区三区| 国产精品白丝jk白祙喷水网站| 国产在线不卡一区| 成人亚洲一区二区一| www.66久久| 欧美精品tushy高清| 日韩一区二区精品葵司在线| 日韩免费观看高清完整版| 中文字幕欧美国产| 免费不卡在线观看| 免费国产亚洲视频| av电影天堂一区二区在线观看| 日本道精品一区二区三区| 欧美一区二区三区视频在线观看| 欧美一级搡bbbb搡bbbb| 国产精品午夜免费| 午夜伦理一区二区| 久久99精品久久久| 99久久精品国产网站| 日韩一区二区在线免费观看| 中文在线一区二区| 亚洲高清在线精品| 日韩三级免费观看| 亚洲丝袜另类动漫二区| 免费人成在线不卡| 91国产丝袜在线播放| 久久综合九色欧美综合狠狠| 国产精品高潮久久久久无| 老色鬼精品视频在线观看播放| 91原创在线视频| 欧美国产日韩a欧美在线观看| 日本sm残虐另类| 欧美一区三区四区| 蜜臀av一区二区| 精品蜜桃在线看| 国产一区二区三区视频在线播放| 欧美精品一区二区精品网| 精品一区二区日韩| 中文字幕+乱码+中文字幕一区| 国产一区二区不卡老阿姨| 久久嫩草精品久久久久| 国产91丝袜在线播放| 国产精品另类一区| 欧美主播一区二区三区美女| 亚洲精品水蜜桃| 欧美无砖专区一中文字| 日韩精品视频网站| 久久天天做天天爱综合色| 丁香一区二区三区| 一区二区三区在线免费播放| 欧美日本一区二区在线观看| 久久91精品国产91久久小草| 日本一区二区三区电影| 欧美亚洲丝袜传媒另类| 久久精品99国产精品日本| 日本一区二区三区久久久久久久久不 | 亚洲一区二区三区三| 日韩写真欧美这视频| 成人在线综合网站| 日韩二区在线观看| 中文字幕在线观看一区| 欧美日本国产一区| 99麻豆久久久国产精品免费| 毛片基地黄久久久久久天堂| 国产香蕉久久精品综合网| 欧美性做爰猛烈叫床潮| 国产精品一二三|