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

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

?? twi.lis

?? avr 單片機twi源程序 功能:實現TWI主從機通訊.
?? LIS
?? 第 1 頁 / 共 2 頁
字號:
                        .module twi.c
                        .area data(ram, con, rel)
 0000           _main_tmp::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile F:\2007電子設計\古欣\twitest\twi_slave_test\twi.c
 0001                   .dbsym e main_tmp _main_tmp c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\2007電子設計\古欣\twitest\twi_slave_test\twi.c
 0000                   .dbfunc e twi_master_init _twi_master_init fV
                        .even
 0000           _twi_master_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; #include "config.h"
 0000           ; 
 0000           ; volatile uint8 main_tmp=0;
 0000           ; //extern volatile uint8 main_tmp=0;
 0000           ; 
 0000           ; //TWI master initialize
 0000           ; // bit rate:100
 0000           ; void twi_master_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  TWCR= 0x00; //disable twi
 0000 2224              clr R2
 0002 26BE              out 0x36,R2
 0004                   .dbline 11
 0004           ;  TWBR= 0x64; //set bit rate
 0004 84E6              ldi R24,100
 0006 80B9              out 0x0,R24
 0008                   .dbline 12
 0008           ;  TWSR= 0x00; //set prescale
 0008 21B8              out 0x1,R2
 000A                   .dbline 13
 000A           ;  TWAR= 0x00; //set slave address
 000A 22B8              out 0x2,R2
 000C                   .dbline 14
 000C           ;  TWCR= 0x04; //enable twi
 000C 84E0              ldi R24,4
 000E 86BF              out 0x36,R24
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
 0012                   .dbfunc e twi_slave_init _twi_slave_init fV
 0012           ;            add -> R16
                        .even
 0012           _twi_slave_init::
 0012                   .dbline -1
 0012                   .dbline 20
 0012           ; }
 0012           ; 
 0012           ; //TWI slave initialize
 0012           ; // bit rate:100
 0012           ; void twi_slave_init(uint8 add)
 0012           ; {
 0012                   .dbline 21
 0012           ;  TWCR= 0x00; //disable twi
 0012 2224              clr R2
 0014 26BE              out 0x36,R2
 0016                   .dbline 22
 0016           ;  TWBR= 0x64; //set bit rate
 0016 84E6              ldi R24,100
 0018 80B9              out 0x0,R24
 001A                   .dbline 23
 001A           ;  TWSR= 0x00; //set prescale
 001A 21B8              out 0x1,R2
 001C                   .dbline 24
 001C           ;  TWAR= add; //set slave address 從機地址為 0x01
 001C 02B9              out 0x2,R16
 001E                   .dbline 25
 001E           ;  TWCR= (1<<TWEN)|(1<<TWEA)|(1<<TWIE); //enable twi
 001E 85E4              ldi R24,69
 0020 86BF              out 0x36,R24
 0022                   .dbline -2
 0022           L2:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbsym r add 16 c
 0024                   .dbend
 0024                   .dbfunc e i2c_start _i2c_start fV
                        .even
 0024           _i2c_start::
 0024                   .dbline -1
 0024                   .dbline 31
 0024           ;  //TWEN必須置位以使能TWI接口。TWEA也要置位以使主機尋址到自己(從機地址或廣播) 時返回確認信息ACK
 0024           ; }
 0024           ; 
 0024           ; //總線上起動開始條件
 0024           ; void i2c_start(void)
 0024           ; {
 0024                   .dbline 32
 0024           ;       TWCR= (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
 0024 84EA              ldi R24,164
 0026 86BF              out 0x36,R24
 0028           L4:
 0028                   .dbline 33
 0028           L5:
 0028                   .dbline 33
 0028           ;       while (!(TWCR & (1<<TWINT))); //等待START 信號成功發送
 0028 26B6              in R2,0x36
 002A 27FE              sbrs R2,7
 002C FDCF              rjmp L4
 002E                   .dbline -2
 002E           L3:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbend
 0030                   .dbfunc e i2c_write _i2c_write fc
 0030           ;           data -> R16
                        .even
 0030           _i2c_write::
 0030                   .dbline -1
 0030                   .dbline 39
 0030           ; }
 0030           ; 
 0030           ; //把一個字節數據輸入器件, 返回TWI狀態
 0030           ; //發送地址和數據都可以使用本函數
 0030           ; uint8 i2c_write(uint8 data)
 0030           ; {
 0030                   .dbline 40
 0030           ;       TWDR = data; 
 0030 03B9              out 0x3,R16
 0032                   .dbline 41
 0032           ;       TWCR = (1<<TWINT)|(1<<TWEN); 
 0032 84E8              ldi R24,132
 0034 86BF              out 0x36,R24
 0036           L8:
 0036                   .dbline 42
 0036           L9:
 0036                   .dbline 42
 0036           ;       while (!(TWCR & (1<<TWINT)));
 0036 26B6              in R2,0x36
 0038 27FE              sbrs R2,7
 003A FDCF              rjmp L8
 003C                   .dbline 43
 003C           ;       _NOP();
 003C 0000              nop
 003E                   .dbline 44
 003E           ;       return(TWSR&0b11111000); //TWSR高五位為I2C工作狀態。
 003E 01B1              in R16,0x1
 0040 087F              andi R16,248
 0042                   .dbline -2
 0042           L7:
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbsym r data 16 c
 0044                   .dbend
 0044                   .dbfunc e i2c_read _i2c_read fc
                        .even
 0044           _i2c_read::
 0044                   .dbline -1
 0044                   .dbline 49
 0044           ; }
 0044           ; 
 0044           ; //從器件讀出一個字節
 0044           ; uint8 i2c_read(void)
 0044           ; {
 0044                   .dbline 50
 0044           ;       TWCR = (1<<TWINT)|(1<<TWEA)|(1<<TWEN); 
 0044 84EC              ldi R24,196
 0046 86BF              out 0x36,R24
 0048           L12:
 0048                   .dbline 51
 0048           L13:
 0048                   .dbline 51
 0048           ;       while (!(TWCR & (1<<TWINT)));
 0048 26B6              in R2,0x36
 004A 27FE              sbrs R2,7
 004C FDCF              rjmp L12
 004E                   .dbline 52
 004E           ;       return(TWDR);
 004E 03B1              in R16,0x3
 0050                   .dbline -2
 0050           L11:
 0050                   .dbline 0 ; func end
 0050 0895              ret
 0052                   .dbend
 0052                   .dbfunc e i2c_stop _i2c_stop fV
                        .even
 0052           _i2c_stop::
 0052                   .dbline -1
 0052                   .dbline 57
 0052           ; }
 0052           ; 
 0052           ; //總線上起動停止條件 
 0052           ; void i2c_stop(void) 
 0052           ; { 
 0052                   .dbline 58
 0052           ;    TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN); 
 0052 84E9              ldi R24,148
 0054 86BF              out 0x36,R24
 0056                   .dbline -2
 0056           L15:
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbend
 0058                   .dbfunc e i2c_maste_transt _i2c_maste_transt fV
 0058           ;           data -> R20
 0058           ;           addr -> R22
                        .even
 0058           _i2c_maste_transt::
 0058 0E940000          xcall push_gset2
 005C 422F              mov R20,R18
 005E 602F              mov R22,R16
 0060                   .dbline -1
 0060                   .dbline 63
 0060           ; }
 0060           ; 
 0060           ; //操作步驟: 啟動,發送地址,發送數據,關閉總線
 0060           ; void i2c_maste_transt(uint8 addr, uint8 data)
 0060           ; {
 0060                   .dbline 64
 0060           ;  i2c_start();
 0060 E1DF              xcall _i2c_start
 0062                   .dbline 65
 0062           ;  if(i2c_write(addr)==TW_MT_SLA_ACK) //發送地址成功并收到ACK
 0062 062F              mov R16,R22
 0064 E5DF              xcall _i2c_write
 0066 0831              cpi R16,24
 0068 11F4              brne L17
 006A                   .dbline 66
 006A           ;  {
 006A                   .dbline 67
 006A           ;   i2c_write(data);
 006A 042F              mov R16,R20
 006C E1DF              xcall _i2c_write
 006E                   .dbline 68
 006E           ;  }
 006E           L17:
 006E                   .dbline 69
 006E           ;  i2c_stop();
 006E F1DF              xcall _i2c_stop
 0070                   .dbline -2
 0070           L16:
 0070 0E940000          xcall pop_gset2
 0074                   .dbline 0 ; func end
 0074 0895              ret
 0076                   .dbsym r data 20 c
 0076                   .dbsym r addr 22 c
 0076                   .dbend
                        .area vector(rom, abs)
                        .org 68
 0044 0C943B00          jmp _twi_isr
                        .area text(rom, con, rel)
 0076                   .dbfile F:\2007電子設計\古欣\twitest\twi_slave_test\twi.c
 0076                   .dbfunc e twi_isr _twi_isr fV
                        .even
 0076           _twi_isr::
 0076 0E940000          xcall push_lset
 007A 0E940000          xcall push_gset1
 007E                   .dbline -1
 007E                   .dbline 75
 007E           ; }
 007E           ; 
 007E           ; #if TWI_MOD==0 //從機模式
 007E           ; #pragma interrupt_handler twi_isr:18
 007E           ; void twi_isr(void)
 007E           ; {
 007E                   .dbline 77
 007E           ;  //twi event
 007E           ;  switch (TWSR&0xF8)
 007E 41B1              in R20,0x1
 0080 5527              clr R21
 0082 487F              andi R20,248
 0084 5070              andi R21,0
 0086 4039              cpi R20,144
 0088 E0E0              ldi R30,0
 008A 5E07              cpc R21,R30
 008C 09F4              brne X3
 008E 86C0              xjmp L25
 0090           X3:
 0090 80E9              ldi R24,144
 0092 90E0              ldi R25,0
 0094 8417              cp R24,R20
 0096 9507              cpc R25,R21
 0098 0CF4              brge X4
 009A 35C0              xjmp L33
 009C           X4:
 009C           L32:
 009C 4037              cpi R20,112
 009E E0E0              ldi R30,0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人妖av一区二区| 国产91综合一区在线观看| 一本久久综合亚洲鲁鲁五月天| 欧美一区二区三区免费在线看 | 欧美成人a∨高清免费观看| 亚洲精品国产精品乱码不99| 韩国中文字幕2020精品| 久久久久久久久久久久久夜| 欧美精品亚洲二区| 国产日韩精品一区二区三区| 久久99久久久欧美国产| 欧美一级欧美三级在线观看| 亚洲乱码中文字幕| 欧美日韩色一区| 免费成人在线影院| 久久伊人中文字幕| av影院午夜一区| 亚洲第一成人在线| 精品国产一区二区三区忘忧草| 精品一区免费av| 亚洲免费在线看| 欧美人与z0zoxxxx视频| 久久精品国产秦先生| 国产亚洲制服色| 欧美揉bbbbb揉bbbbb| 免费高清在线一区| ㊣最新国产の精品bt伙计久久| 在线免费观看日韩欧美| 国内不卡的二区三区中文字幕| 国产精品久久午夜| 欧美精品18+| 在线观看亚洲a| 国产综合久久久久影院| 艳妇臀荡乳欲伦亚洲一区| 欧美一区二区精美| 在线观看av不卡| jizzjizzjizz欧美| 五月综合激情婷婷六月色窝| 日本一区二区三区dvd视频在线| 99国产精品久久久| 狠狠色狠狠色合久久伊人| 亚洲欧美韩国综合色| 欧美国产日本视频| 国产日韩欧美制服另类| 精品国产a毛片| 日韩三级精品电影久久久 | 国产超碰在线一区| 看片网站欧美日韩| 麻豆精品一区二区综合av| 亚洲v日本v欧美v久久精品| 亚洲免费在线观看| 国产精品的网站| 亚洲精品中文字幕在线观看| 国产精品久久午夜夜伦鲁鲁| 久久久一区二区| 久久久精品国产免大香伊| 久久精品一区二区三区四区| 欧美日韩视频在线第一区 | 国产日韩av一区| 亚洲国产成人在线| 国产精品视频免费看| 国产精品免费人成网站| 国产精品电影一区二区| 亚洲欧美在线高清| 亚洲综合视频网| 日韩国产在线观看| 国产69精品一区二区亚洲孕妇| 97精品国产97久久久久久久久久久久| 波多野结衣91| 欧美日韩不卡一区| 欧美va亚洲va在线观看蝴蝶网| 日韩久久免费av| 亚洲精品第1页| 麻豆国产欧美一区二区三区| 成人手机电影网| 欧美一区二区视频免费观看| 国产三级精品视频| 午夜精品视频在线观看| 久久草av在线| 欧美日韩在线一区二区| 日韩片之四级片| 亚洲一级二级三级在线免费观看| 九九精品一区二区| 欧美视频一区二区三区四区 | 91精品国产91久久久久久最新毛片 | 国产精品亲子乱子伦xxxx裸| 日韩国产成人精品| 在线观看日韩电影| 国产欧美日韩亚州综合| 美女诱惑一区二区| 91福利视频网站| 国产精品久久久久桃色tv| 麻豆精品国产传媒mv男同 | 色综合激情五月| 亚洲国产成人一区二区三区| 国产乱人伦偷精品视频不卡| 69av一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 在线看一区二区| 一区二区三区在线视频观看| av不卡在线播放| 亚洲婷婷综合久久一本伊一区| 成人h动漫精品一区二| 国产精品区一区二区三区| av电影天堂一区二区在线观看| 国产日韩在线不卡| 国产成人av福利| 久久精品人人做人人综合| 亚洲女人****多毛耸耸8| 国产精品123区| 国产午夜精品久久久久久免费视| 久久99精品国产| 久久综合资源网| 波多野结衣中文一区| 国产精品色一区二区三区| 国产成人精品网址| 国产精品久久久久久久久免费丝袜| 国产一区二区三区黄视频 | 91福利国产精品| 日韩电影网1区2区| 欧美精品久久99| 5月丁香婷婷综合| 亚洲第一电影网| av综合在线播放| 国产亚洲精品免费| 一区二区三区四区不卡视频| 亚洲日本在线a| 欧美xxxxx牲另类人与| 亚洲色欲色欲www| 亚洲日本成人在线观看| 成人天堂资源www在线| 一个色综合av| 精品sm捆绑视频| 大美女一区二区三区| 亚洲视频精选在线| 久久综合99re88久久爱| 欧美日韩激情一区二区三区| 美女视频一区在线观看| 亚洲欧洲日韩av| 国产一区在线观看视频| 亚洲美女免费在线| 久久免费午夜影院| 欧美日本一区二区三区| 波多野结衣欧美| 国产精品正在播放| 免费一区二区视频| 亚洲国产综合人成综合网站| 亚洲国产精品精华液ab| 欧美性生活影院| 欧美日韩视频一区二区| 99久久精品一区| 美女一区二区三区| 婷婷国产在线综合| 美女爽到高潮91| 蜜桃久久久久久| 久久电影网电视剧免费观看| 亚洲一级二级三级| 国产精品天天摸av网| |精品福利一区二区三区| 国产精品三级av| 1区2区3区精品视频| 亚洲精品视频自拍| 亚洲最快最全在线视频| 亚洲v精品v日韩v欧美v专区| 亚洲国产欧美在线| 免费成人你懂的| 国产一区二区美女诱惑| 高清在线不卡av| 色呦呦一区二区三区| 91精品国产综合久久精品性色| 欧美一区二区三区日韩| 精品久久久影院| 日韩理论片网站| 午夜亚洲国产au精品一区二区| 麻豆国产一区二区| 国产精品影音先锋| 91国偷自产一区二区三区成为亚洲经典 | 狠狠色狠狠色合久久伊人| 国产精品综合二区| 色婷婷综合久久久久中文一区二区 | 国产乱淫av一区二区三区| 精彩视频一区二区| 色综合久久88色综合天天6 | 伊人一区二区三区| 亚洲成人av在线电影| 男男视频亚洲欧美| 欧美日韩激情一区| 欧美激情在线看| 久久99精品国产.久久久久久| 99久久国产综合精品女不卡| 91免费精品国自产拍在线不卡| 欧美一级高清大全免费观看| 亚洲视频1区2区| 国产乱理伦片在线观看夜一区| 欧美视频中文字幕| 亚洲国产高清不卡| 免费精品99久久国产综合精品| 国产成人一区在线| 在线视频欧美区| 午夜av电影一区|