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

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

?? twi_master_polling.s

?? AVR單片機的T_TO_TWI通訊方式
?? S
字號:
	.module twi_master_polling.c
	.area text(rom, con, rel)
	.dbfile F:\UART_TO_TWI\twi_master_polling.c
	.dbfunc e twi_init _twi_init fV
	.even
_twi_init::
	.dbline -1
	.dbline 10
; #include <iom8v.h>
; #include <macros.h>
; #include "delay.h"
; #include "twi_master_polling.h"
; 
; unsigned char Write_Succsee_Flag;
; unsigned char Read_Succsee_Flag;
; 
; void twi_init(void)
; {
	.dbline 11
;  Write_Succsee_Flag = false;
	clr R2
	sts _Write_Succsee_Flag,R2
	.dbline 12
;  Read_Succsee_Flag  = false;
	sts _Read_Succsee_Flag,R2
	.dbline 14
;  
;  TWCR= 0X00; //disable twi
	out 0x36,R2
	.dbline 15
;  TWBR= 0x20; //set bit rate
	ldi R24,32
	out 0x0,R24
	.dbline 16
;  TWSR= 0x00; //set prescale
	out 0x1,R2
	.dbline 18
;  //TWAR= DEVICE_ADR; //set slave address 本身作為主控
;  TWCR= 0x44; //enable twi 置位TWEA,TWEN TWIE
	ldi R24,68
	out 0x36,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e twi_write_byte _twi_write_byte fc
;          Wdata -> y+4
;     RamAddress -> R20
;     device_adr -> R22
	.even
_twi_write_byte::
	rcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 26
; }
; /******************************************
;                 I2C總線寫一個字節
; 			    返回0:       寫成功
; 				返回錯誤狀態字:寫失敗
; *******************************************/
; unsigned char twi_write_byte(unsigned char device_adr,unsigned char RamAddress,unsigned char Wdata) 
; {
	.dbline 28
	ldi R24,164
	out 0x36,R24
	.dbline 28
L3:
	.dbline 28
L4:
	.dbline 28
; 	  //I2C啟動
; 	  Start();                      Wait(); //等TWINT置位
	in R2,0x36
	sbrs R2,7
	rjmp L3
	.dbline 28
	.dbline 28
	.dbline 29
; 	  if(TestAck()!=START)         {Write_Succsee_Flag = false;Stop();return TestAck();}//ACK
	in R24,0x1
	andi R24,248
	cpi R24,8
	breq L6
	.dbline 29
	.dbline 29
	clr R2
	sts _Write_Succsee_Flag,R2
	.dbline 29
	ldi R24,148
	out 0x36,R24
	.dbline 29
	in R16,0x1
	andi R16,248
	rjmp L2
L6:
	.dbline 31
	.dbline 31
	out 0x3,R22
	.dbline 31
	ldi R24,132
	out 0x36,R24
	.dbline 31
	.dbline 31
	.dbline 31
L8:
	.dbline 31
L9:
	.dbline 31
; 	  //寫I2C從器件地址和寫方式
; 	  Write8Bit(device_adr);        Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L8
	.dbline 31
	.dbline 31
	.dbline 32
; 	  if(TestAck()!=MT_SLA_ACK)    {Write_Succsee_Flag = false;Stop();return TestAck();}//ACK
	in R24,0x1
	andi R24,248
	cpi R24,24
	breq L11
	.dbline 32
	.dbline 32
	clr R2
	sts _Write_Succsee_Flag,R2
	.dbline 32
	ldi R24,148
	out 0x36,R24
	.dbline 32
	in R16,0x1
	andi R16,248
	rjmp L2
L11:
	.dbline 34
	.dbline 34
	out 0x3,R20
	.dbline 34
	ldi R24,132
	out 0x36,R24
	.dbline 34
	.dbline 34
	.dbline 34
L13:
	.dbline 34
L14:
	.dbline 34
; 	  //寫RAM地址
; 	  Write8Bit(RamAddress);        Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L13
	.dbline 34
	.dbline 34
	.dbline 35
; 	  if(TestAck()!=MT_DATA_ACK)   {Write_Succsee_Flag = false;Stop();return TestAck();}//ACK
	in R24,0x1
	andi R24,248
	cpi R24,40
	breq L16
	.dbline 35
	.dbline 35
	clr R2
	sts _Write_Succsee_Flag,R2
	.dbline 35
	ldi R24,148
	out 0x36,R24
	.dbline 35
	in R16,0x1
	andi R16,248
	rjmp L2
L16:
	.dbline 37
	.dbline 37
	ldd R0,y+4
	out 0x3,R0
	.dbline 37
	ldi R24,132
	out 0x36,R24
	.dbline 37
	.dbline 37
	.dbline 37
L18:
	.dbline 37
L19:
	.dbline 37
; 	  //寫數據
; 	  Write8Bit(Wdata);             Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L18
	.dbline 37
	.dbline 37
	.dbline 38
; 	  if(TestAck()!=MT_DATA_ACK)   {Write_Succsee_Flag = false;Stop();return TestAck();}//ACK	
	in R24,0x1
	andi R24,248
	cpi R24,40
	breq L21
	.dbline 38
	.dbline 38
	clr R2
	sts _Write_Succsee_Flag,R2
	.dbline 38
	ldi R24,148
	out 0x36,R24
	.dbline 38
	in R16,0x1
	andi R16,248
	rjmp L2
L21:
	.dbline 40
; 	  //I2C停止
; 	  Stop();
	ldi R24,148
	out 0x36,R24
	.dbline 41
;  	  delay_ms(10);//延時等寫完
	ldi R16,10
	ldi R17,0
	rcall _delay_ms
	.dbline 42
; 	  Write_Succsee_Flag = true;
	ldi R24,1
	sts _Write_Succsee_Flag,R24
	.dbline 43
; 	  return Write_Succsee_Flag;
	mov R16,R24
	.dbline -2
L2:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l Wdata 4 c
	.dbsym r RamAddress 20 c
	.dbsym r device_adr 22 c
	.dbend
	.dbfunc e twi_read_byte _twi_read_byte fc
;           temp -> R20
;     RamAddress -> R18
;     device_adr -> R16
	.even
_twi_read_byte::
	rcall push_gset1
	.dbline -1
	.dbline 50
; }
; /******************************************
;                I2C總線讀一個字節
; 			   如果讀失敗也返回0
; *******************************************/
; unsigned char twi_read_byte(unsigned char device_adr,unsigned char RamAddress) 
;       {
	.dbline 54
	ldi R24,164
	out 0x36,R24
	.dbline 54
L24:
	.dbline 54
L25:
	.dbline 54
; 	   unsigned char temp;
; 	   
; 	   //I2C啟動
; 	   Start();                      Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L24
	.dbline 54
	.dbline 54
	.dbline 55
; 	   if (TestAck()!=START)        {Read_Succsee_Flag  = false;Stop();return TestAck();}//ACK	   
	in R24,0x1
	andi R24,248
	cpi R24,8
	breq L27
	.dbline 55
	.dbline 55
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 55
	ldi R24,148
	out 0x36,R24
	.dbline 55
	in R16,0x1
	andi R16,248
	rjmp L23
L27:
	.dbline 57
	.dbline 57
	out 0x3,R16
	.dbline 57
	ldi R24,132
	out 0x36,R24
	.dbline 57
	.dbline 57
	.dbline 57
L29:
	.dbline 57
L30:
	.dbline 57
; 	   //寫I2C從器件地址和寫方式
; 	   Write8Bit(device_adr);        Wait(); 
	in R2,0x36
	sbrs R2,7
	rjmp L29
	.dbline 57
	.dbline 57
	.dbline 58
; 	   if (TestAck()!=MT_SLA_ACK)   {Read_Succsee_Flag  = false;Stop();return TestAck();}//ACK
	in R24,0x1
	andi R24,248
	cpi R24,24
	breq L32
	.dbline 58
	.dbline 58
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 58
	ldi R24,148
	out 0x36,R24
	.dbline 58
	in R16,0x1
	andi R16,248
	rjmp L23
L32:
	.dbline 60
	.dbline 60
	out 0x3,R18
	.dbline 60
	ldi R24,132
	out 0x36,R24
	.dbline 60
	.dbline 60
	.dbline 60
L34:
	.dbline 60
L35:
	.dbline 60
; 	   //寫RAM地址
; 	   Write8Bit(RamAddress);        Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L34
	.dbline 60
	.dbline 60
	.dbline 61
; 	   if (TestAck()!=MT_DATA_ACK)  {Read_Succsee_Flag  = false;Stop();return TestAck();}
	in R24,0x1
	andi R24,248
	cpi R24,40
	breq L37
	.dbline 61
	.dbline 61
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 61
	ldi R24,148
	out 0x36,R24
	.dbline 61
	in R16,0x1
	andi R16,248
	rjmp L23
L37:
	.dbline 63
	ldi R24,164
	out 0x36,R24
	.dbline 63
L39:
	.dbline 63
L40:
	.dbline 63
; 	   //I2C重新啟動
; 	   Start();                      Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L39
	.dbline 63
	.dbline 63
	.dbline 64
; 	   if (TestAck()!=RE_START)     {Read_Succsee_Flag  = false;Stop();return TestAck();}
	in R24,0x1
	andi R24,248
	cpi R24,16
	breq L42
	.dbline 64
	.dbline 64
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 64
	ldi R24,148
	out 0x36,R24
	.dbline 64
	in R16,0x1
	andi R16,248
	rjmp L23
L42:
	.dbline 66
	.dbline 66
	mov R24,R16
	subi R24,255    ; addi 1
	out 0x3,R24
	.dbline 66
	ldi R24,132
	out 0x36,R24
	.dbline 66
	.dbline 66
	.dbline 66
L44:
	.dbline 66
L45:
	.dbline 66
; 	   //寫I2C從器件地址和讀方式
; 	   Write8Bit(device_adr+1);    	 Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L44
	.dbline 66
	.dbline 66
	.dbline 67
; 	   if(TestAck()!=MR_SLA_ACK)  	 {Read_Succsee_Flag  = false;Stop();return TestAck();}//ACK
	in R24,0x1
	andi R24,248
	cpi R24,64
	breq L47
	.dbline 67
	.dbline 67
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 67
	ldi R24,148
	out 0x36,R24
	.dbline 67
	in R16,0x1
	andi R16,248
	rjmp L23
L47:
	.dbline 69
	ldi R24,196
	out 0x36,R24
	.dbline 69
L49:
	.dbline 69
L50:
	.dbline 69
; 	   //啟動主I2C讀方式,且設為準備響應
; 	   Twi();                        Wait();
	in R2,0x36
	sbrs R2,7
	rjmp L49
	.dbline 69
	.dbline 69
	.dbline 70
; 	   if(TestAck()!=MR_DATA_ACK)   {Read_Succsee_Flag  = false;Stop();return TestAck();}//ACK	
	in R24,0x1
	andi R24,248
	cpi R24,80
	breq L52
	.dbline 70
	.dbline 70
	clr R2
	sts _Read_Succsee_Flag,R2
	.dbline 70
	ldi R24,148
	out 0x36,R24
	.dbline 70
	in R16,0x1
	andi R16,248
	rjmp L23
L52:
	.dbline 72
; 	   //讀取I2C接收數據
; 	   temp=TWDR;
	in R20,0x3
	.dbline 73
; 	   Read_Succsee_Flag  = true;
	ldi R24,1
	sts _Read_Succsee_Flag,R24
	.dbline 75
;        //I2C停止
; 	   Stop();
	ldi R24,148
	out 0x36,R24
	.dbline 76
; 	   return temp;
	mov R16,R20
	.dbline -2
L23:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbsym r RamAddress 18 c
	.dbsym r device_adr 16 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\UART_TO_TWI\twi_master_polling.c
_Read_Succsee_Flag::
	.blkb 1
	.dbsym e Read_Succsee_Flag _Read_Succsee_Flag c
_Write_Succsee_Flag::
	.blkb 1
	.dbsym e Write_Succsee_Flag _Write_Succsee_Flag c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲污的网站| 国产丝袜欧美中文另类| 成人h动漫精品一区二区| 美女视频黄免费的久久 | 国产视频911| 精品日韩成人av| 2021中文字幕一区亚洲| 2017欧美狠狠色| 亚洲国产成人私人影院tom| 欧美激情综合在线| 亚洲少妇30p| 亚洲第一搞黄网站| 紧缚捆绑精品一区二区| 福利视频网站一区二区三区| 99精品国产热久久91蜜凸| 99精品久久久久久| 欧美日本一区二区三区四区| 日韩视频一区二区三区在线播放 | 欧美一二三区精品| 精品国产乱码久久久久久浪潮| 久久久久久电影| 亚洲人成亚洲人成在线观看图片| 亚洲午夜三级在线| 麻豆一区二区在线| 97国产一区二区| 91麻豆精品国产91久久久使用方法 | 国产亚洲精品精华液| 国产精品五月天| 亚洲国产一区二区在线播放| 蜜臀久久久99精品久久久久久| 国产精品夜夜嗨| 欧美日韩中文另类| 久久亚洲一区二区三区明星换脸| 亚洲欧美国产毛片在线| 美腿丝袜一区二区三区| 成人短视频下载| 欧美高清精品3d| 国产精品久久久久久久久久免费看| 亚洲激情欧美激情| 国产乱国产乱300精品| 色婷婷激情久久| 精品va天堂亚洲国产| 亚洲一区二区美女| 国产suv精品一区二区883| 91麻豆精品国产| 亚洲欧美日韩中文字幕一区二区三区 | 91精品一区二区三区久久久久久| 欧美激情综合网| 天天做天天摸天天爽国产一区| 国产精品伊人色| 欧美日韩精品一区二区在线播放| 国产日韩欧美高清在线| 日韩av不卡在线观看| 99久久久无码国产精品| 国产欧美日韩三级| 麻豆国产欧美一区二区三区| 欧美日韩在线不卡| 综合自拍亚洲综合图不卡区| 国产精品羞羞答答xxdd| 91精品一区二区三区在线观看| 亚洲一区二区视频在线观看| av电影天堂一区二区在线 | 懂色av一区二区夜夜嗨| 日韩欧美123| 美国毛片一区二区| 91精品婷婷国产综合久久| 亚洲午夜久久久久久久久电影网 | 91在线丨porny丨国产| 欧美国产97人人爽人人喊| 国产麻豆91精品| 国产日韩欧美在线一区| 国产成人av影院| 久久精品视频在线看| 国产69精品久久99不卡| 国产欧美日韩精品在线| 成人午夜视频在线观看| 国产精品免费视频一区| www.亚洲免费av| 亚洲色图欧美偷拍| 色视频欧美一区二区三区| 亚洲综合自拍偷拍| 欧美日韩在线播放| 日韩主播视频在线| 日韩美女一区二区三区| 精品一区二区三区久久| 国产午夜精品一区二区三区嫩草| 国产精品99久久久久久似苏梦涵 | 一区二区三区精品| 欧美日韩精品系列| 蜜桃一区二区三区在线| 久久久精品综合| 成人一级片网址| 亚洲国产欧美日韩另类综合| 欧美精品九九99久久| 精品一区中文字幕| 国产精品免费aⅴ片在线观看| 91视视频在线观看入口直接观看www | 日韩午夜电影在线观看| 国产乱理伦片在线观看夜一区| 中文欧美字幕免费| 欧美日韩一本到| 国内不卡的二区三区中文字幕| 国产精品天天摸av网| 在线观看av一区二区| 久久电影网站中文字幕| 最近日韩中文字幕| 日韩欧美国产小视频| 成人手机在线视频| 日本视频免费一区| 18成人在线观看| 日韩欧美一区二区三区在线| 成人av网站大全| 精品一区二区三区不卡 | 精品一区二区三区日韩| 亚洲天堂2016| 久久亚洲一区二区三区四区| 欧美在线视频全部完| 九九精品视频在线看| 亚洲一区中文在线| 久久久精品影视| 91精品国产日韩91久久久久久| 成人午夜在线视频| 麻豆精品视频在线观看视频| 亚洲免费av高清| 欧美高清在线视频| 欧美成人a∨高清免费观看| 色狠狠综合天天综合综合| 国产成人综合精品三级| 日韩精品乱码免费| 亚洲一二三专区| 国产精品久久久久三级| 久久亚洲捆绑美女| 精品少妇一区二区三区在线视频| 日本乱码高清不卡字幕| 国产成人av一区| 国产一区二区91| 久久精品理论片| 奇米影视一区二区三区小说| 伊人夜夜躁av伊人久久| 中文字幕在线播放不卡一区| 国产视频一区二区三区在线观看| 日韩西西人体444www| 欧美一区二区视频观看视频| 欧美精品一二三四| 欧美人妇做爰xxxⅹ性高电影| 99久久婷婷国产| 成人av综合一区| 99re这里都是精品| 99久久综合精品| 97久久超碰国产精品电影| 99视频精品免费视频| 91浏览器在线视频| 日本韩国欧美三级| 欧美性xxxxx极品少妇| 欧美少妇bbb| 337p亚洲精品色噜噜| 91.com视频| 日韩欧美亚洲另类制服综合在线| 日韩精品自拍偷拍| 久久亚洲春色中文字幕久久久| 久久久亚洲精品石原莉奈| 久久精品一区二区三区不卡 | 欧美日韩一级二级| 欧美一区二区在线播放| 日韩欧美黄色影院| 国产三级精品视频| 亚洲视频在线观看一区| 亚洲午夜三级在线| 精品在线观看免费| 99riav一区二区三区| 欧美影院一区二区| 欧美疯狂性受xxxxx喷水图片| 精品国产乱子伦一区| 中文字幕精品综合| 亚洲成人免费看| 精彩视频一区二区| 91女神在线视频| 91精品国产综合久久久久| 精品国产区一区| 中文字幕一区在线观看视频| 天天综合网 天天综合色| 国产成人免费高清| 欧美视频一区二区三区在线观看| 日韩欧美色综合网站| 日韩毛片精品高清免费| 免费人成在线不卡| 91日韩精品一区| 久久女同互慰一区二区三区| 亚洲精品欧美专区| 韩国精品久久久| 欧美亚洲日本国产| 国产精品美女久久久久久| 午夜精品久久一牛影视| 成人免费观看男女羞羞视频| 欧美精品vⅰdeose4hd| 国产精品水嫩水嫩| 韩日精品视频一区| 欧美视频精品在线| 亚洲欧美综合网| 久久精品国产色蜜蜜麻豆|