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

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

?? master.lst

?? 這是用C編的nrf905的通訊程序
?? LST
?? 第 1 頁 / 共 3 頁
字號:
__start:
__text_start:
    002C E5CF      LDI	R28,0x5F
    002D E0D4      LDI	R29,4
    002E BFCD      OUT	0x3D,R28
    002F BFDE      OUT	0x3E,R29
    0030 51C0      SUBI	R28,0x10
    0031 40D0      SBCI	R29,0
    0032 EA0A      LDI	R16,0xAA
    0033 8308      STD	Y+0,R16
    0034 2400      CLR	R0
    0035 E6E4      LDI	R30,0x64
    0036 E0F0      LDI	R31,0
    0037 E011      LDI	R17,1
    0038 33E2      CPI	R30,0x32
    0039 07F1      CPC	R31,R17
    003A F011      BEQ	0x003D
    003B 9201      ST	R0,Z+
    003C CFFB      RJMP	0x0038
    003D 8300      STD	Z+0,R16
    003E E5E4      LDI	R30,0x54
    003F E0F0      LDI	R31,0
    0040 E6A0      LDI	R26,0x60
    0041 E0B0      LDI	R27,0
    0042 E010      LDI	R17,0
    0043 35E8      CPI	R30,0x58
    0044 07F1      CPC	R31,R17
    0045 F021      BEQ	0x004A
    0046 95C8      LPM
    0047 9631      ADIW	R30,1
    0048 920D      ST	R0,X+
    0049 CFF9      RJMP	0x0043
    004A 940E0174  CALL	_main
_exit:
    004C CFFF      RJMP	_exit
FILE: C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905\master.C
(0001) //master
(0002) 
(0003) //最關鍵的是SPI的初始化,MSB首位和極性方式00,極性方式錯誤,數據則不正確
(0004) 
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007) 
(0008) #include "config.h"
(0009) #include "nrf905.h"
(0010) 
(0011) #define MASTER  //編譯控制是主機還是從機
(0012) 
(0013) 
(0014) 
(0015) #define T0N 25
(0016) void DelayUs(uint);
(0017) void DelayMs(uchar);
(0018) //32字節數據包發送時間 
(0019) //=650us_StartUp+200us_Preamble+(4+32+2)Byts*8Bit/50000bps*1000000us=6.6ms
(0020) #define RFTN 25  //發送測試間隔 10*20ms
(0021) 
(0022) 
(0023) bit bTimer,bRfSend;
(0024) uchar T0Cnt,RfCnt;
(0025) 
(0026) void port_init(void)
(0027) {
(0028)  PORTA = 0x0F;
_port_init:
    004D E08F      LDI	R24,0xF
    004E BB8B      OUT	0x1B,R24
(0029)  DDRA  = 0xF0;
    004F EF80      LDI	R24,0xF0
    0050 BB8A      OUT	0x1A,R24
(0030)  PORTB = BIT(AM)|BIT(CD)|BIT(DR)|BIT(MISO);
    0051 E48E      LDI	R24,0x4E
    0052 BB88      OUT	0x18,R24
(0031)  DDRB  = BIT(CSN)|BIT(MOSI)|BIT(SCK);
    0053 EB80      LDI	R24,0xB0
    0054 BB87      OUT	0x17,R24
(0032)  PORTC = 0x00;
    0055 2422      CLR	R2
    0056 BA25      OUT	0x15,R2
(0033)  DDRC  = 0x00;
    0057 BA24      OUT	0x14,R2
(0034)  PORTD = BIT(uPCLK)|BIT(2);
    0058 E284      LDI	R24,0x24
    0059 BB82      OUT	0x12,R24
(0035)  DDRD  = BIT(TRXCE)|BIT(TX_EN)|BIT(PWR)|BIT(LED);
    005A ED88      LDI	R24,0xD8
    005B BB81      OUT	0x11,R24
    005C 9508      RET
(0036) }
(0037) 
(0038) 
(0039) //TIMER0 initialize - prescale:1024
(0040) // WGM: Normal
(0041) // desired value: 20mSec
(0042) // actual value: 19.861mSec (0.7%)
(0043) void timer0_init(void)
(0044) {
(0045)  TCCR0 = 0x00; //stop
_timer0_init:
    005D 2422      CLR	R2
    005E BE23      OUT	0x33,R2
(0046)  TCNT0 = 0x71; //set count
    005F E781      LDI	R24,0x71
    0060 BF82      OUT	0x32,R24
(0047)  OCR0  = 0x8F;  //set compare
    0061 E88F      LDI	R24,0x8F
    0062 BF8C      OUT	0x3C,R24
(0048)  TCCR0 = 0x05; //start timer
    0063 E085      LDI	R24,5
    0064 BF83      OUT	0x33,R24
    0065 9508      RET
_timer0_ovf_isr:
    0066 922A      ST	R2,-Y
    0067 938A      ST	R24,-Y
    0068 B62F      IN	R2,0x3F
    0069 922A      ST	R2,-Y
(0049) }
(0050) 
(0051) #pragma interrupt_handler timer0_ovf_isr:10
(0052) void timer0_ovf_isr(void)
(0053) {
(0054)  TCNT0 = 0x29; //reload counter value
    006A E289      LDI	R24,0x29
    006B BF82      OUT	0x32,R24
(0055)  
(0056)  if (--T0Cnt==0)
    006C 91800065  LDS	R24,T0Cnt
    006E 5081      SUBI	R24,1
    006F 2E28      MOV	R2,R24
    0070 92200065  STS	T0Cnt,R2
    0072 2388      TST	R24
    0073 F431      BNE	0x007A
(0057)    {T0Cnt=T0N;
    0074 E189      LDI	R24,0x19
    0075 93800065  STS	T0Cnt,R24
(0058)     bTimer=1;
    0077 E081      LDI	R24,1
    0078 93800067  STS	bTimer,R24
(0059)     }
(0060) if (--RfCnt==0)
    007A 91800064  LDS	R24,RfCnt
    007C 5081      SUBI	R24,1
    007D 2E28      MOV	R2,R24
    007E 92200064  STS	RfCnt,R2
    0080 2388      TST	R24
    0081 F431      BNE	0x0088
(0061)    {RfCnt=RFTN;
    0082 E189      LDI	R24,0x19
    0083 93800064  STS	RfCnt,R24
(0062)     bRfSend=1;
    0085 E081      LDI	R24,1
    0086 93800066  STS	bRfSend,R24
(0063)     }
    0088 9029      LD	R2,Y+
    0089 BE2F      OUT	0x3F,R2
    008A 9189      LD	R24,Y+
    008B 9029      LD	R2,Y+
    008C 9518      RETI
(0064) }
(0065) 
(0066) //SPI initialize
(0067) void spi_init(void)
(0068) {uchar temp;
(0069) 
(0070)  //SPCR = 0xD1; //SPI中斷允許,SPI允許,主機模式,MSB,極性方式00,1/16系統時鐘速率
(0071)  SPCR = 0x51; //不使用SPI中斷,其它同上
_spi_init:
  temp                 --> R16
    008D E581      LDI	R24,0x51
    008E B98D      OUT	0x0D,R24
(0072)  SPSR = 0x00; //setup SPI
    008F 2422      CLR	R2
    0090 B82E      OUT	0x0E,R2
(0073)  
(0074)  temp = SPSR; //!!!
    0091 B10E      IN	R16,0x0E
(0075)  temp = SPDR; //清空SPI,和中斷標志,使SPI空閑    
    0092 B10F      IN	R16,0x0F
    0093 9508      RET
(0076) }
(0077) 
(0078) 
(0079) //call this routine to initialize all peripherals
(0080) void init_devices(void)
(0081) {
(0082)  //stop errant interrupts until set up
(0083)  CLI(); //disable all interrupts
_init_devices:
    0094 94F8      BCLR	7
(0084)  port_init();
    0095 DFB7      RCALL	_port_init
(0085)  timer0_init();
    0096 DFC6      RCALL	_timer0_init
(0086)  
(0087)  spi_init();
    0097 DFF5      RCALL	_spi_init
(0088) 
(0089)  
(0090)  MCUCR = BIT(ISC01); //下降沿觸發
    0098 E082      LDI	R24,2
    0099 BF85      OUT	0x35,R24
(0091)  GICR  = 0x00;
    009A 2422      CLR	R2
    009B BE2B      OUT	0x3B,R2
(0092)  TIMSK = 0x05; //timer interrupt sources
    009C E085      LDI	R24,5
    009D BF89      OUT	0x39,R24
(0093)  SEI(); //re-enable interrupts
    009E 9478      BSET	7
    009F 9508      RET
_RfRecvProc:
  i                    --> R20
    00A0 940E028C  CALL	push_gset1
(0094)  //all peripherals are now initialized
(0095) }
(0096) 
(0097) 
(0098) 
(0099) //接收處理
(0100) void RfRecvProc()
(0101) {uchar i;
(0102) 
(0103)    if ((PINB&(1<<AM))==0) return;//一般先AM=1指示地址匹配對
    00A2 99B1      SBIC	0x16,1
    00A3 C001      RJMP	0x00A5
    00A4 C01D      RJMP	0x00C2
(0104)     
(0105)    if ((PINB&(1<<DR))==0) return;//DR=1時表示數據接收對而且Crc正確
    00A5 99B3      SBIC	0x16,3
    00A6 C001      RJMP	0x00A8
    00A7 C01A      RJMP	0x00C2
(0106)    
(0107)    //已經接收到數據
(0108)    nrf905_ReadData();//讀出...
    00A8 940E0267  CALL	_nrf905_ReadData
(0109)    for (i=0;i<SIZE;i++)
    00AA 2744      CLR	R20
    00AB C00D      RJMP	0x00B9
(0110)    { if (RxBuf[i]!=(i+i)) 
    00AC 2E24      MOV	R2,R20
    00AD 0E24      ADD	R2,R20
    00AE E689      LDI	R24,0x69
    00AF E090      LDI	R25,0
    00B0 2FE4      MOV	R30,R20
    00B1 27FF      CLR	R31
    00B2 0FE8      ADD	R30,R24
    00B3 1FF9      ADC	R31,R25
    00B4 8030      LDD	R3,Z+0
    00B5 1432      CP	R3,R2
    00B6 F009      BEQ	0x00B8
(0111)         return;
    00B7 C00A      RJMP	0x00C2
    00B8 9543      INC	R20
    00B9 3240      CPI	R20,0x20
    00BA F388      BCS	0x00AC
(0112)    }
(0113)    
(0114)    //數據接收正確...燈指示
(0115)    CPL(PORTD,LED);
    00BB E880      LDI	R24,0x80
    00BC E090      LDI	R25,0
    00BD B222      IN	R2,0x12
    00BE 2433      CLR	R3
    00BF 2628      EOR	R2,R24
    00C0 2639      EOR	R3,R25
    00C1 BA22      OUT	0x12,R2
    00C2 940E028F  CALL	pop_gset1
    00C4 9508      RET
_RfSendProc:
  i                    --> R20
    00C5 940E028C  CALL	push_gset1
(0116)    
(0117)    //從機回送數據包,這樣雙方都能指示是否收到有效數據包
(0118)    #ifndef MASTER
(0119)      //RfSendProc();
(0120)    #endif
(0121) }
(0122) 
(0123) //發送測試
(0124) void RfSendProc()
(0125) {uchar i;
(0126)    for (i=0;i<SIZE;i++) TxBuf[i]=key;
    00C7 2744      CLR	R20
    00C8 C00A      RJMP	0x00D3
    00C9 EC8D      LDI	R24,0xCD
    00CA E090      LDI	R25,0
    00CB 2FE4      MOV	R30,R20
    00CC 27FF      CLR	R31
    00CD 0FE8      ADD	R30,R24
    00CE 1FF9      ADC	R31,R25
    00CF 90200068  LDS	R2,key
    00D1 8220      STD	Z+0,R2
    00D2 9543      INC	R20
    00D3 3240      CPI	R20,0x20
    00D4 F3A0      BCS	0x00C9
(0127)    nrf905_SendData();//發送測試數據
    00D5 940E025D  CALL	_nrf905_SendData
(0128)    nrf905_RxOn();//重新回到接收狀態
    00D7 940E01B2  CALL	_nrf905_RxOn
    00D9 940E028F  CALL	pop_gset1
    00DB 9508      RET
(0129) }
(0130) 
(0131) void TimerFunc()
(0132) {
(0133)    bTimer=0;
_TimerFunc:
    00DC 2422      CLR	R2
    00DD 92200067  STS	bTimer,R2
(0134)    //WDR();//clear WDT
(0135)    
(0136)    CPL(PORTD,LED);
    00DF E880      LDI	R24,0x80
    00E0 E090      LDI	R25,0
    00E1 B222      IN	R2,0x12
    00E2 2433      CLR	R3
    00E3 2628      EOR	R2,R24
    00E4 2639      EOR	R3,R25
    00E5 BA22      OUT	0x12,R2
    00E6 9508      RET
(0137)    //SPDR=66;
(0138) }
(0139) 
(0140) void SystemIni()
(0141) {
(0142)   T0Cnt=T0N;
_SystemIni:
    00E7 E189      LDI	R24,0x19
    00E8 93800065  STS	T0Cnt,R24
(0143)   RfCnt=RFTN;
    00EA 93800064  STS	RfCnt,R24
    00EC 9508      RET
_DelayMs:
  i                    --> R20
  ms                   --> R22
    00ED 940E028A  CALL	push_gset2
    00EF 2F60      MOV	R22,R16
(0144) }
(0145) 
(0146) void DelayMs(uchar ms)
(0147) {char i;
(0148) for (i=0;i<ms;i++)
    00F0 2744      CLR	R20
    00F1 C004      RJMP	0x00F6
(0149)   {DelayUs(1000);
    00F2 EE08      LDI	R16,0xE8
    00F3 E013      LDI	R17,3
    00F4 D006      RCALL	_DelayUs
    00F5 9543      INC	R20
    00F6 1746      CP	R20,R22
    00F7 F3D0      BCS	0x00F2
(0150)   }
(0151)   return;
    00F8 940E027E  CALL	pop_gset2
    00FA 9508      RET
_DelayUs:
  i                    --> R20
  us                   --> R16
    00FB 940E028C  CALL	push_gset1
(0152) }
(0153) 
(0154) void DelayUs(uint us)
(0155) {uint i;
(0156)   for (i=0;i<us;i++)
    00FD 2744      CLR	R20
    00FE 2755      CLR	R21
    00FF C008      RJMP	0x0108
(0157)   {NOP();NOP();NOP();NOP();NOP();NOP();
    0100 0000      NOP
    0101 0000      NOP
    0102 0000      NOP
    0103 0000      NOP
    0104 0000      NOP
    0105 0000      NOP
    0106 5F4F      SUBI	R20,0xFF
    0107 4F5F      SBCI	R21,0xFF
    0108 1740      CP	R20,R16
    0109 0751      CPC	R21,R17
    010A F3A8      BCS	0x0100
    010B 940E028F  CALL	pop_gset1
    010D 9508      RET
_int0_isr:
  i                    --> Y+1
  key_buf              --> R20
    010E 940E02A3  CALL	push_lset
    0110 940E028C  CALL	push_gset1
(0158)   }
(0159) }
(0160) 
(0161) 
(0162) 
(0163) 
(0164) ////////////////////////////key interrupt/////////////////////////////////
(0165) 
(0166) 
(0167) 
(0168) #pragma interrupt_handler int0_isr:iv_INT0
(0169) 
(0170) void int0_isr(void)
(0171) {
(0172) uchar key_buf=16,i;
    0112 E140      LDI	R20,0x10
(0173) GICR=0x00; //關閉中斷使能
    0113 2422      CLR	R2
    0114 BE2B      OUT	0x3B,R2
(0174) DDRA=0xf0; //行列反轉讀取鍵盤的值
    0115 EF80      LDI	R24,0xF0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av亚洲精华国产精华精| 国产一区二区三区国产| 欧美激情一区二区三区四区| 精品国产一区二区三区av性色| 欧美日韩国产一级片| 欧美另类变人与禽xxxxx| 欧美在线观看视频一区二区| 欧美主播一区二区三区美女| 欧美三级中文字幕| 欧美日韩精品电影| 日韩三级免费观看| 精品国产乱码久久久久久久久| 日韩一本二本av| 久久―日本道色综合久久| 精品国产1区二区| 国产精品久久久久久亚洲伦| 有码一区二区三区| 图片区日韩欧美亚洲| 免费精品视频在线| 久久电影国产免费久久电影| 国产精品白丝jk白祙喷水网站| 国产激情一区二区三区四区 | 婷婷中文字幕一区三区| 日本视频一区二区| 国产在线看一区| 色欧美88888久久久久久影院| 欧美日韩高清影院| 久久人人超碰精品| 亚洲精品视频免费观看| 喷水一区二区三区| 成人免费毛片片v| 欧美日韩国产精选| 中文字幕的久久| 亚洲国产精品一区二区久久| 激情都市一区二区| 色女孩综合影院| 久久蜜桃av一区精品变态类天堂| 亚洲欧美乱综合| 麻豆免费看一区二区三区| 成人av在线一区二区三区| 欧美日韩在线播放| 中文字幕av一区二区三区高| 亚洲成精国产精品女| 国产99久久久国产精品免费看| 在线观看国产日韩| 日本一区二区三区四区 | 亚洲一区二区三区免费视频| 精品一区二区影视| 欧美日韩卡一卡二| 亚洲视频在线一区| 国产不卡视频一区| 日韩精品一区二区三区中文不卡 | 国模大尺度一区二区三区| 91成人网在线| 国产精品欧美久久久久一区二区| 日韩av网站在线观看| 91毛片在线观看| 国产欧美一区二区精品久导航| 天堂午夜影视日韩欧美一区二区| www.欧美.com| 欧美激情一区二区在线| 精品无人区卡一卡二卡三乱码免费卡 | 欧美四级电影在线观看| 国产精品国产馆在线真实露脸 | 国产麻豆精品视频| 欧美sm极限捆绑bd| 日韩和欧美一区二区| 欧美日韩中文字幕精品| 成人免费在线视频观看| 成人国产亚洲欧美成人综合网 | 国产精品久久久久久久久快鸭| 黄页网站大全一区二区| 日韩一级片网址| 久久99精品国产| 亚洲精品在线电影| 极品美女销魂一区二区三区免费| 日韩一区二区影院| 老司机精品视频在线| 精品久久人人做人人爽| 九九视频精品免费| 精品日韩在线观看| 国产一区二区福利视频| 精品裸体舞一区二区三区| 久久99久久精品| 亚洲精品在线免费观看视频| 国产一区二区在线视频| 久久嫩草精品久久久精品| 国产成人免费在线视频| 国产精品麻豆视频| 99re成人在线| 亚洲午夜影视影院在线观看| 欧美精品v国产精品v日韩精品| 无码av免费一区二区三区试看| 91精品国产福利在线观看 | 久久亚洲综合av| 成人丝袜18视频在线观看| 亚洲欧美一区二区视频| 色成人在线视频| 奇米精品一区二区三区在线观看| 精品国产免费久久| 99麻豆久久久国产精品免费| 亚洲图片欧美一区| 精品国免费一区二区三区| av一区二区不卡| 日韩制服丝袜av| 国产日韩v精品一区二区| 91蝌蚪国产九色| 欧美a级一区二区| 国产精品久久久久天堂| 欧美精品v国产精品v日韩精品| 精品亚洲成a人在线观看| 最新国产精品久久精品| 7777精品伊人久久久大香线蕉经典版下载| 老司机精品视频一区二区三区| 国产精品三级av在线播放| 欧美男人的天堂一二区| 国产福利精品一区二区| 亚洲v日本v欧美v久久精品| 久久精品亚洲一区二区三区浴池| 日本国产一区二区| 国产黄色精品网站| 石原莉奈一区二区三区在线观看 | 91浏览器打开| 国产真实乱偷精品视频免| 亚洲一区av在线| 国产欧美日韩视频一区二区| 欧美电影在线免费观看| 成人开心网精品视频| 麻豆成人综合网| 亚洲影院免费观看| 国产精品久久三| 久久久五月婷婷| 91精品啪在线观看国产60岁| 欧美中文字幕不卡| 韩国av一区二区| 日本午夜一本久久久综合| 亚洲美女少妇撒尿| 中文字幕不卡在线播放| 欧美成人国产一区二区| 欧美精品丝袜中出| 日本乱人伦aⅴ精品| av一区二区三区黑人| 丰满亚洲少妇av| 国产成人综合自拍| 国产一区不卡在线| 国产激情一区二区三区| 国产一区欧美二区| 国产一区亚洲一区| 国精产品一区一区三区mba桃花| 免费视频最近日韩| 日韩二区三区在线观看| 丝袜诱惑亚洲看片| 蜜臀久久99精品久久久画质超高清| 亚洲妇熟xx妇色黄| 五月天亚洲精品| 日韩激情视频在线观看| 日欧美一区二区| 奇米精品一区二区三区在线观看 | 亚洲精品免费在线播放| 日韩美女精品在线| 亚洲精品成人在线| 亚洲高清久久久| 日韩高清在线观看| 美女视频黄久久| 国内精品伊人久久久久av影院 | eeuss鲁片一区二区三区在线看| 国产一区二三区好的| 在线亚洲高清视频| 欧美在线综合视频| 91精品国产高清一区二区三区蜜臀| 日韩无一区二区| 久久美女高清视频| 亚洲人一二三区| 亚洲1区2区3区视频| 美国欧美日韩国产在线播放| 激情六月婷婷久久| 99精品国产视频| 欧洲亚洲精品在线| 精品久久国产老人久久综合| 中文字幕欧美国产| 亚洲一级二级在线| 国内精品免费在线观看| 成人黄色av网站在线| 欧美三级视频在线观看| 欧美mv日韩mv| 国产精品久久久久久妇女6080| 亚洲一区欧美一区| 国内外成人在线视频| 91蝌蚪国产九色| 日韩三级精品电影久久久| 成人欧美一区二区三区小说 | 欧美不卡视频一区| 国产精品久久久久天堂| 日本美女一区二区三区| 成人av电影免费观看| 日韩欧美一级二级三级久久久| 欧美激情一区不卡| 免费观看一级欧美片| 日本道色综合久久| 日本一区二区三区dvd视频在线|