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

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

?? bjdj_4.lst

?? 利用mega128控制由L298和L297構成的驅動板
?? LST
?? 第 1 頁 / 共 4 頁
字號:
__text_start:
__start:
    0058 EFCF      LDI	R28,0xFF
    0059 E1D0      LDI	R29,0x10
    005A BFCD      OUT	P3D,R28
    005B BFDE      OUT	P3E,R29
    005C 51C0      SUBI	R28,0x10
    005D 40D0      SBCI	R29,0
    005E EA0A      LDI	R16,0xAA
    005F 8308      STD	R16,0+Y
    0060 2400      CLR	R0
    0061 E1E4      LDI	R30,0x14
    0062 E0F1      LDI	R31,1
    0063 E011      LDI	R17,1
    0064 31E4      CPI	R30,0x14
    0065 07F1      CPC	R31,R17
    0066 F011      BEQ	0x0069
    0067 9201      ST	R0,Z+
    0068 CFFB      RJMP	0x0064
    0069 8300      STD	R16,0+Z
    006A E9EC      LDI	R30,0x9C
    006B E0F0      LDI	R31,0
    006C E0A0      LDI	R26,0
    006D E0B1      LDI	R27,1
    006E E010      LDI	R17,0
    006F 3BE0      CPI	R30,0xB0
    0070 07F1      CPC	R31,R17
    0071 F021      BEQ	0x0076
    0072 95C8      LPM
    0073 9631      ADIW	R30,1
    0074 920D      ST	R0,X+
    0075 CFF9      RJMP	0x006F
    0076 940E037C  CALL	_main
_exit:
    0078 CFFF      RJMP	_exit
_delay:
  x                    --> R20
  y                    --> R22
  z                    --> R16
    0079 940E03F6  CALL	push_gset2
FILE: E:\重新整理的文件\控制類\步進電機\程序\avr\TWI.C
(0001) #include <iom128v.h>
(0002) #include <iom128.h>
(0003) #include <macros.h>
(0004) #include "TWI.h"
(0005) 
(0006) #define uchar unsigned char
(0007) #define uint unsigned int
(0008) #define Page_size 8
(0009) #define Page_mask Page_size-1
(0010) //#pragma data:code 
(0011) //const 
(0012) char   table[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 
(0013) char    table1[8]={0,0,0,0,0,0,0,0};
(0014) void delay(uint z)
(0015) {
(0016)   uint x,y;
(0017)   for(x=z;x>0;x--)
    007B 01A8      MOVW	R20,R16
    007C C00A      RJMP	0x0087
(0018)    for(y=1100;y>0;y--);
    007D E46C      LDI	R22,0x4C
    007E E074      LDI	R23,4
    007F C002      RJMP	0x0082
    0080 5061      SUBI	R22,1
    0081 4070      SBCI	R23,0
    0082 3060      CPI	R22,0
    0083 0767      CPC	R22,R23
    0084 F7D9      BNE	0x0080
    0085 5041      SUBI	R20,1
    0086 4050      SBCI	R21,0
    0087 3040      CPI	R20,0
    0088 0745      CPC	R20,R21
    0089 F799      BNE	0x007D
(0019) }
    008A 940E0406  CALL	pop_gset2
    008C 9508      RET
(0020) 
(0021) 
(0022) /*
(0023) 函數:TWI_init()
(0024) 功能:I2C總線初始化,使總線處于空閑狀態
(0025) 說明:在main()函數的開始處,通常應當要執行一次本函數
(0026) */
(0027) void TWI_init()
(0028) {
(0029)     TWBR=0X22;
_TWI_init:
    008D E282      LDI	R24,0x22
    008E 93800070  STS	R24,0x70
(0030) 	TWSR=0;
    0090 2422      CLR	R2
    0091 92200071  STS	R2,0x71
(0031) 	TWCR=0X44; 
    0093 E484      LDI	R24,0x44
    0094 93800074  STS	R24,0x74
(0032) }
    0096 9508      RET
(0033) 
(0034) /*
(0035) 函數:TWI_start()
(0036) 功能:產生I2C總線的起始狀態
(0037) 說明:
(0038) 	本函數也可以用來產生重復起始狀態
(0039) 	本函數執行后,I2C總線處于忙狀態
(0040) */
(0041) uchar TWI_start(void)
(0042) {
(0043)     TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
_TWI_start:
    0097 EA84      LDI	R24,0xA4
    0098 93800074  STS	R24,0x74
(0044) 	while(!(TWCR&(1<<TWINT)));
    009A 90200074  LDS	R2,0x74
    009C FE27      SBRS	R2,7
    009D CFFC      RJMP	0x009A
(0045) 	return 1;
    009E E001      LDI	R16,1
    009F 9508      RET
(0046) }
(0047) 
(0048) void TWI_stop(void)
(0049) {
(0050)     TWCR=(1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
_TWI_stop:
    00A0 E984      LDI	R24,0x94
    00A1 93800074  STS	R24,0x74
(0051) }
    00A3 9508      RET
_TWI_writeB:
  ack                  --> R20
  c                    --> R16
    00A4 940E03DF  CALL	push_gset1
(0052) 
(0053) /*
(0054) 函數:TWI_writeB()
(0055) 功能:向I2C總線寫1個字節的數據
(0056) 返回:
(0057)       0: 從機無應答
(0058) 	  1:從機應答
(0059) 參數:
(0060) 	c:要寫到總線上的數據
(0061) */
(0062) uchar TWI_writeB(uchar c)
(0063) {
(0064)     uchar ack=1;
    00A6 E041      LDI	R20,1
(0065) 	TWDR=c;
    00A7 93000073  STS	R16,0x73
(0066) 	TWCR=(1<<TWINT)|(1<<TWEN);
    00A9 E884      LDI	R24,0x84
    00AA 93800074  STS	R24,0x74
(0067) 	while(!(TWCR&(1<<TWINT)));
    00AC 90200074  LDS	R2,0x74
    00AE FE27      SBRS	R2,7
    00AF CFFC      RJMP	0x00AC
(0068) 	if((TWSR&0xF8)!=SLA_W_ACK)
    00B0 91800071  LDS	R24,0x71
    00B2 7F88      ANDI	R24,0xF8
    00B3 3188      CPI	R24,0x18
    00B4 F009      BEQ	0x00B6
(0069) 	  ack=0;
    00B5 2744      CLR	R20
(0070) 	return ack;
    00B6 2F04      MOV	R16,R20
    00B7 940E03E2  CALL	pop_gset1
    00B9 9508      RET
(0071) }
(0072) 
(0073) /*
(0074) 函數:TWI_readB()
(0075) 功能:從從機讀取1個字節的數據
(0076) 返回:讀取的一個字節數據
(0077) 說明:ack=0; 不應答
(0078)       ack=1;  應答
(0079) */
(0080) uchar TWI_readB(uchar ack)
(0081) {
(0082)    if(ack)
_TWI_readB:
  ack                  --> R16
    00BA 2300      TST	R16
    00BB F021      BEQ	0x00C0
(0083)       TWCR=(1<<TWINT)|(1<<TWEA)|(1<<TWEN); 
    00BC EC84      LDI	R24,0xC4
    00BD 93800074  STS	R24,0x74
    00BF C003      RJMP	0x00C3
(0084)    else
(0085)       TWCR=(1<<TWINT)|(1<<TWEN);
    00C0 E884      LDI	R24,0x84
    00C1 93800074  STS	R24,0x74
(0086)    while(!(TWCR&(1<<TWINT)));
    00C3 90200074  LDS	R2,0x74
    00C5 FE27      SBRS	R2,7
    00C6 CFFC      RJMP	0x00C3
(0087)    return(TWDR);
    00C7 91000073  LDS	R16,0x73
    00C9 9508      RET
_TWI_page_write:
  i                    --> R20
  arr                  --> R22
  n                    --> R10
  addr                 --> R20
  devadd               --> R12
    00CA 940E03FE  CALL	push_gset4
    00CC 2F42      MOV	R20,R18
    00CD 2EC0      MOV	R12,R16
    00CE 84A8      LDD	R10,8+Y
    00CF 856A      LDD	R22,10+Y
    00D0 857B      LDD	R23,11+Y
(0088) }
(0089) 
(0090) /*
(0091) 函數:TWI_page_write()
(0092) 功能:I2C總線綜合發送函數,向從機發送多個字節的數據,整頁發送
(0093) 參數:
(0094) 	SlaveAddr:從機地址(7位純地址,不含讀寫位)
(0095) 	addr:從機的子地址
(0096) 	*arr:要發送的數據
(0097) 	   n:數據的字節數
(0098) 返回:
(0099) 	1:發送成功
(0100) 	0:在發送過程中出現異常
(0101) 說明:
(0102) 	本函數能夠很好地適應所有常見的I2C器件,不論其是否有子地址
(0103) 	當從機沒有子地址時,參數addr任意
(0104) */
(0105) uchar TWI_page_write(uchar devadd,uchar addr,uchar n,uchar *arr)//
(0106) {
(0107)     uchar i;
(0108) 	TWI_start();
    00D1 DFC5      RCALL	_TWI_start
(0109) 	TWI_writeB(devadd);
    00D2 2D0C      MOV	R16,R12
    00D3 DFD0      RCALL	_TWI_writeB
(0110) 	TWI_writeB(addr);
    00D4 2F04      MOV	R16,R20
    00D5 DFCE      RCALL	_TWI_writeB
(0111) 	for(i=1;i<=n;i++)
    00D6 E041      LDI	R20,1
    00D7 C006      RJMP	0x00DE
(0112) 	 {
(0113) 	   //TWI_writeB(i);
(0114) 	   //table[i]=i;
(0115) 	   TWI_writeB(*arr);
    00D8 01FB      MOVW	R30,R22
    00D9 8100      LDD	R16,0+Z
    00DA DFC9      RCALL	_TWI_writeB
(0116) 	   arr++;
    00DB 5F6F      SUBI	R22,0xFF
    00DC 4F7F      SBCI	R23,0xFF
    00DD 9543      INC	R20
    00DE 16A4      CP	R10,R20
    00DF F7C0      BCC	0x00D8
(0117) 	 }
(0118) 	TWI_stop();
    00E0 DFBF      RCALL	_TWI_stop
(0119) 	delay(80);
    00E1 E500      LDI	R16,0x50
    00E2 E010      LDI	R17,0
    00E3 DF95      RCALL	_delay
(0120) }
    00E4 940E040C  CALL	pop_gset4
    00E6 9508      RET
_TWI_write:
  n_tmp                --> R14
  arr                  --> R20
  n                    --> R22
  addr                 --> R10
  devadd               --> R12
    00E7 940E0402  CALL	push_gset5
    00E9 2EA2      MOV	R10,R18
    00EA 2EC0      MOV	R12,R16
    00EB 9724      SBIW	R28,4
    00EC 856E      LDD	R22,14+Y
    00ED 8948      LDD	R20,16+Y
    00EE 8959      LDD	R21,17+Y
(0121) 
(0122) /*
(0123) 函數:TWI_page_write()
(0124) 功能:I2C總線綜合發送函數,向從機發送多個字節的數據
(0125) 參數:
(0126) 	SlaveAddr:從機地址(7位純地址,不含讀寫位)
(0127) 	addr:從機的子地址
(0128) 	*arr:要發送的數據
(0129) 	   n:數據的字節數
(0130) 返回:
(0131) 	1:發送成功
(0132) 	0:在發送過程中出現異常
(0133) 說明:
(0134) 	本函數能夠很好地適應所有常見的I2C器件,不論其是否有子地址
(0135) 	當從機沒有子地址時,參數addr任意
(0136) */
(0137) uchar TWI_write(uchar devadd,uchar addr,uchar n,uchar *arr)//
(0138) {
(0139)     uchar n_tmp;
(0140) 	n_tmp=Page_size-(uchar)(addr&Page_mask);
    00EF 2D8A      MOV	R24,R10
    00F0 2799      CLR	R25
    00F1 7087      ANDI	R24,7
    00F2 7090      ANDI	R25,0
    00F3 E098      LDI	R25,0x8
    00F4 2EE9      MOV	R14,R25
    00F5 1AE8      SUB	R14,R24
(0141) 	if((n>n_tmp)&&(n_tmp!=0))
    00F6 16E6      CP	R14,R22
    00F7 F4E0      BCC	0x0114
    00F8 20EE      TST	R14
    00F9 F0D1      BEQ	0x0114
(0142) 	 {
(0143) 	   TWI_page_write(devadd,addr,n_tmp,arr);//
    00FA 834A      STD	R20,2+Y
    00FB 835B      STD	R21,3+Y
    00FC 82E8      STD	R14,0+Y
    00FD 2D2A      MOV	R18,R10
    00FE 2D0C      MOV	R16,R12
    00FF DFCA      RCALL	_TWI_page_write
(0144) 	   addr+=n_tmp;
    0100 0CAE      ADD	R10,R14
(0145) 	   n-=n_tmp;
    0101 196E      SUB	R22,R14
(0146) 	   arr+=n_tmp;
    0102 2C2E      MOV	R2,R14
    0103 2433      CLR	R3
    0104 0D42      ADD	R20,R2
    0105 1D53      ADC	R21,R3
(0147) 	 }
    0106 C00D      RJMP	0x0114
(0148) 	while(n>=Page_size)
(0149) 	 {
(0150) 	   TWI_page_write(devadd,addr,Page_size,arr);//
    0107 834A      STD	R20,2+Y
    0108 835B      STD	R21,3+Y
    0109 E088      LDI	R24,0x8
    010A 8388      STD	R24,0+Y
    010B 2D2A      MOV	R18,R10
    010C 2D0C      MOV	R16,R12
    010D DFBC      RCALL	_TWI_page_write
(0151) 	   addr+=Page_size;
    010E 2D8A      MOV	R24,R10
    010F 5F88      SUBI	R24,0xF8
    0110 2EA8      MOV	R10,R24
(0152) 	   n-=Page_size;
    0111 5068      SUBI	R22,0x8
(0153) 	   arr+=Page_size;
    0112 5F48      SUBI	R20,0xF8
    0113 4F5F      SBCI	R21,0xFF
    0114 3068      CPI	R22,0x8
    0115 F788      BCC	0x0107
(0154) 	 }
(0155) 	if(n!=0)
    0116 2366      TST	R22
    0117 F031      BEQ	0x011E
(0156) 	   TWI_page_write(devadd,addr,n,arr);//
    0118 834A      STD	R20,2+Y
    0119 835B      STD	R21,3+Y
    011A 8368      STD	R22,0+Y
    011B 2D2A      MOV	R18,R10
    011C 2D0C      MOV	R16,R12
    011D DFAC      RCALL	_TWI_page_write
(0157) }
    011E 9624      ADIW	R28,4
    011F 940E040F  CALL	pop_gset5
    0121 9508      RET
_TWI_read:
  i                    --> R20
  arr                  --> R22
  n                    --> R10
  addr                 --> R12
  devadd               --> R20
    0122 940E03FE  CALL	push_gset4
    0124 2EC2      MOV	R12,R18
    0125 2F40      MOV	R20,R16
    0126 84A8      LDD	R10,8+Y
    0127 856A      LDD	R22,10+Y
    0128 857B      LDD	R23,11+Y
(0158) 
(0159) /*
(0160) 函數:TWI_read()
(0161) 功能:I2C總線綜合接收函數,從從機接收多個字節的數據
(0162) 參數:
(0163) 	SlaveAddr:從機地址(7位純地址,不含讀寫位)
(0164) 	addr:從機的子地址
(0165) 	*arr:要發送的數據
(0166) 	   n:數據的字節數
(0167) 返回:
(0168) 	1:接收成功
(0169) 	0:在接收過程中出現異常
(0170) 說明:
(0171) 	本函數能夠很好地適應所有常見的I2C器件,不論其是否有子地址
(0172) 	當從機沒有子地址時,參數addr任意
(0173) */
(0174) uchar TWI_read(uchar devadd,uchar addr,uchar n,uchar *arr)
(0175) {
(0176)     uchar i;
(0177) 	TWI_start();
    0129 DF6D      RCALL	_TWI_start
(0178) 	TWI_writeB(devadd);
    012A 2F04      MOV	R16,R20
    012B DF78      RCALL	_TWI_writeB
(0179) 	TWI_writeB(addr);
    012C 2D0C      MOV	R16,R12
    012D DF76      RCALL	_TWI_writeB
(0180) 	TWI_start();
    012E DF68      RCALL	_TWI_start
(0181) 	TWI_writeB(devadd|1);
    012F 2F04      MOV	R16,R20
    0130 6001      ORI	R16,1
    0131 DF72      RCALL	_TWI_writeB
(0182) 	for(i=1;i<=n-1;i++)
    0132 E041      LDI	R20,1
    0133 C007      RJMP	0x013B
(0183) 	 {
(0184) 	  *arr= TWI_readB(1);
    0134 E001      LDI	R16,1
    0135 DF84      RCALL	_TWI_readB
    0136 01FB      MOVW	R30,R22
    0137 8300      STD	R16,0+Z

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线免费| 欧美电视剧在线观看完整版| 欧美日韩国产在线观看| 国产欧美久久久精品影院| 偷窥少妇高潮呻吟av久久免费| 国产成人免费视频| 91精品国产一区二区人妖| 亚洲少妇30p| 成人永久aaa| 久久综合视频网| 奇米777欧美一区二区| 欧美在线看片a免费观看| 欧美激情一区二区| 久久精品理论片| 欧美放荡的少妇| 亚洲国产欧美另类丝袜| 91在线精品秘密一区二区| 亚洲精品一区在线观看| 秋霞午夜av一区二区三区| 在线观看国产91| 有坂深雪av一区二区精品| 丰满岳乱妇一区二区三区| 精品国产一区二区精华| 美女视频黄 久久| 91精品国产入口在线| 亚洲成人免费影院| 欧美日韩国产综合视频在线观看| 亚洲色图欧美在线| 日本韩国欧美在线| 一区二区视频在线| 91丨九色porny丨蝌蚪| 国产精品你懂的在线欣赏| www.亚洲免费av| 亚洲欧洲美洲综合色网| 日本精品一级二级| 亚洲一二三四区不卡| 欧美日韩在线播放| 亚洲成人综合视频| 3d动漫精品啪啪1区2区免费| 日本成人中文字幕| 日韩视频免费观看高清完整版 | 成人ar影院免费观看视频| 久久精品一区二区三区四区| 国产在线精品视频| 欧美激情在线一区二区| 99在线热播精品免费| 亚洲女人的天堂| 欧美视频日韩视频| 午夜一区二区三区在线观看| 9191国产精品| 国产一区二区三区精品视频| 国产亚洲精品中文字幕| 91亚洲永久精品| 亚洲成a人v欧美综合天堂下载| 欧美精品一卡两卡| 狠狠色伊人亚洲综合成人| 国产精品日产欧美久久久久| 在线观看日产精品| 蜜桃av噜噜一区| 国产精品伦一区| 精品视频在线看| 国产一区二区三区免费观看| 亚洲欧美日韩在线| 日韩视频在线永久播放| 国产成人无遮挡在线视频| 夜夜精品浪潮av一区二区三区| 精品日韩一区二区| 在线观看日韩一区| 九九九久久久精品| 亚洲一区二区中文在线| 精品成人a区在线观看| 色婷婷久久久亚洲一区二区三区 | 国产一区二区三区国产| 亚洲免费在线电影| 91精品国产91久久久久久最新毛片| 国产激情一区二区三区四区| 亚洲一区免费在线观看| 国产丝袜欧美中文另类| 欧美精品久久天天躁| 成人一级黄色片| 秋霞av亚洲一区二区三| 日韩美女精品在线| 久久久电影一区二区三区| 欧美色精品在线视频| 成人三级伦理片| 久久99精品国产.久久久久| 亚洲激情自拍视频| 亚洲国产精品ⅴa在线观看| 91精品福利在线一区二区三区| 91热门视频在线观看| 国产精品一区二区视频| 日韩精品免费视频人成| 亚洲男人天堂av| 中文字幕一区二区三区精华液| 精品少妇一区二区三区免费观看| 欧美在线观看一区| 99国产精品一区| 国产精品一二三区在线| 久色婷婷小香蕉久久| 日韩av二区在线播放| 亚洲最大的成人av| 亚洲三级电影网站| 欧美激情一区二区三区全黄| 久久久久久一二三区| 欧美一区永久视频免费观看| 色狠狠桃花综合| 91免费看`日韩一区二区| 成人午夜私人影院| 春色校园综合激情亚洲| 国产盗摄一区二区| 国产乱码精品1区2区3区| 国产乱人伦精品一区二区在线观看| 偷拍一区二区三区| 日韩精品一二三四| 蜜乳av一区二区三区| 久久成人免费电影| 激情六月婷婷综合| 国产精品888| 成人精品视频一区二区三区| 成人av网站在线| 99这里只有久久精品视频| 一本色道久久综合亚洲91| 色菇凉天天综合网| 91福利国产精品| 欧美美女网站色| 欧美成人一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 26uuu欧美| 中文字幕av资源一区| 综合久久久久久| 亚洲一区在线观看网站| 蜜臀久久99精品久久久画质超高清| 久久99国产精品免费| 国内精品久久久久影院色| 国产白丝精品91爽爽久久| 国产99久久精品| 99视频国产精品| 欧美日韩高清不卡| 日韩精品专区在线影院重磅| 欧美国产国产综合| 亚洲专区一二三| 免费的国产精品| 国产成人在线观看免费网站| 99视频精品免费视频| 欧美精品三级日韩久久| 久久中文娱乐网| 亚洲欧美一区二区三区极速播放| 首页综合国产亚洲丝袜| 国产精品一二三四区| 91激情五月电影| 精品乱码亚洲一区二区不卡| 亚洲日本一区二区| 男男视频亚洲欧美| 91一区二区三区在线播放| 日韩视频一区二区| 亚洲精品国产一区二区精华液| 天天色天天操综合| 成人av在线一区二区三区| 欧美精品18+| 成人欧美一区二区三区在线播放| 亚洲18女电影在线观看| 波多野结衣中文一区| 日韩免费电影网站| 亚洲最大成人综合| 成人深夜在线观看| 日韩免费一区二区| 亚洲丰满少妇videoshd| 成人激情av网| 亚洲精品一区二区三区精华液| 亚洲另类春色校园小说| 国产精品18久久久久久久久久久久 | 亚洲 欧美综合在线网络| 高清在线成人网| 日韩精品中文字幕在线不卡尤物| 亚洲免费观看视频| 粉嫩嫩av羞羞动漫久久久 | 日韩精品一级中文字幕精品视频免费观看| 日韩精品每日更新| 欧美午夜精品久久久久久孕妇| 中文在线资源观看网站视频免费不卡 | 久久精品国产亚洲高清剧情介绍 | 一区二区三区在线免费观看| 国产精品亚洲午夜一区二区三区| 欧美精品久久久久久久久老牛影院| 国产精品高清亚洲| 国产精品69久久久久水密桃 | 欧美精三区欧美精三区| 亚洲日穴在线视频| www.久久精品| 成人欧美一区二区三区1314| 国产成人午夜精品影院观看视频 | 一区二区三区成人在线视频| 成人午夜短视频| 国产精品欧美久久久久无广告| 国产在线精品一区二区不卡了 | 欧美一区二区三区免费大片| 日韩精品久久理论片| 欧美三级在线播放| 亚洲成人第一页| 在线播放91灌醉迷j高跟美女 |