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

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

?? sd.s

?? 基于ATmega64的MP3程序
?? S
?? 第 1 頁 / 共 2 頁
字號:
	.module SD.c
	.area text(rom, con, rel)
	.dbfile D:\TDDownload\MP3BOA~1.8\SD.c
	.dbfunc e Read_Byte_SD _Read_Byte_SD fc
	.even
_Read_Byte_SD::
	.dbline -1
	.dbline 13
; //ICC-AVR application builder : 2005-11-12 17:11:59
; // Target : M16
; // Crystal: 8.0000Mhz
; // copyright:魯軍波(endylu)
; // www.shop34612283.taobao.com
; // www.adembed.com
; #include <iom16v.h>
; #include <macros.h>
; #include "main.h"
; 
; //=======================================================================
; uint8 Read_Byte_SD(void) 
; { 
	.dbline 15
;  //char Byte; 
;  SPDR=0xff; 
	ldi R24,255
	out 0xf,R24
L2:
	.dbline 16
L3:
	.dbline 16
;  while(!(SPSR&(1<<SPIF)));
	sbis 0xe,7
	rjmp L2
	.dbline 19
;  
;  //Byte=SPDR;
;  return(SPDR); 
	in R16,0xf
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Write_Byte_SD _Write_Byte_SD fV
;           Byte -> R16
	.even
_Write_Byte_SD::
	.dbline -1
	.dbline 24
; }
; 
; //=======================================================================
; void Write_Byte_SD(uint8 Byte) 
; { 
	.dbline 25
;  SPDR=Byte; 
	out 0xf,R16
L6:
	.dbline 26
L7:
	.dbline 26
;  while(!(SPSR&(1<<SPIF)));
	sbis 0xe,7
	rjmp L6
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbsym r Byte 16 c
	.dbend
	.dbfunc e Write_Command_SD1 _Write_Command_SD1 fc
;        Timeout -> R20
;              a -> R22
;            tmp -> R10
;            CMD -> R12,R13
	.even
_Write_Command_SD1::
	xcall push_gset4
	movw R12,R16
	.dbline -1
	.dbline 31
; } 
; 
; //=======================================================================
; uint8 Write_Command_SD1(uint8*CMD) 
; { 
	.dbline 33
;  uint8 a; 
;  uint8 tmp=0xff; 
	ldi R24,255
	mov R10,R24
	.dbline 34
;  uint8 Timeout=0; 
	clr R20
	.dbline 37
; 
;  // Raise chip select 
;  SD_Disable(); 
	sbi 0x18,4
	.dbline 37
	.dbline 40
; 
;  // Send an 8 bit pulse 
;  Write_Byte_SD(0xFF); 
	ldi R16,255
	xcall _Write_Byte_SD
	.dbline 43
;  
;  // Lower chip select 
;  SD_Enable(); 
	cbi 0x18,4
	.dbline 43
	.dbline 46
; 
;  //Send the 6 byte command 
;  for(a=0;a<0x06;a++) 
	clr R22
	xjmp L13
L10:
	.dbline 47
	.dbline 48
	movw R30,R12
	ld R16,Z+
	movw R12,R30
	xcall _Write_Byte_SD
	.dbline 49
L11:
	.dbline 46
	inc R22
L13:
	.dbline 46
	cpi R22,6
	brlo L10
	xjmp L15
L14:
	.dbline 53
;     {
;      Write_Byte_SD(*CMD++); 
;     } 
; 
;  //Wait for the response 
;  while(tmp==0xff)
;       {
	.dbline 54
;        tmp=Read_Byte_SD(); 
	xcall _Read_Byte_SD
	mov R10,R16
	.dbline 55
;        if(Timeout++>100) 
	mov R2,R20
	clr R3
	subi R20,255    ; addi 1
	ldi R24,100
	cp R24,R2
	brsh L17
	.dbline 56
;          { 
	.dbline 57
;           break; 
	xjmp L16
L17:
	.dbline 59
L15:
	.dbline 52
	mov R24,R10
	cpi R24,255
	breq L14
L16:
	.dbline 62
;          } 
;       } 
;  //SD_Disable(); 
;  //for some reason we need to delay  10here 
;  return(tmp); 
	mov R16,R10
	.dbline -2
L9:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r Timeout 20 c
	.dbsym r a 22 c
	.dbsym r tmp 10 c
	.dbsym r CMD 12 pc
	.dbend
	.dbfunc e Write_Command_SD _Write_Command_SD fc
;        Timeout -> R20
;            tmp -> R22
;        address -> y+8
;            CMD -> R22
	.even
_Write_Command_SD::
	st -y,r19
	st -y,r18
	xcall push_gset4
	mov R22,R16
	.dbline -1
	.dbline 67
; }
; 
; //=======================================================================
; uint8 Write_Command_SD(uint8 CMD,uint32 address) 
; { 
	.dbline 70
;  
;  uint8 tmp; 
;  uint8 Timeout=0; 
	clr R20
	.dbline 73
;  
;  // Raise chip select 
;  SD_Disable(); 
	sbi 0x18,4
	.dbline 73
	.dbline 76
; 
;  // Send an 8 bit pulse 
;  Write_Byte_SD(0xFF); 
	ldi R16,255
	xcall _Write_Byte_SD
	.dbline 79
;  
;  // Lower chip select 
;  SD_Enable(); 
	cbi 0x18,4
	.dbline 79
	.dbline 81
;  //Send the 6 byte command  
;   Write_Byte_SD(CMD);
	mov R16,R22
	xcall _Write_Byte_SD
	.dbline 82
;   Write_Byte_SD(address>>24);
	ldi R24,24
	ldi R25,0
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	st -y,R24
	movw R16,R2
	movw R18,R4
	xcall lsr32
	xcall _Write_Byte_SD
	.dbline 83
;   Write_Byte_SD(address>>16);
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	movw R2,R4
	clr R4
	clr R5
	mov R16,R2
	xcall _Write_Byte_SD
	.dbline 84
;   Write_Byte_SD(address>>8);
	ldi R24,8
	ldi R25,0
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	st -y,R24
	movw R16,R2
	movw R18,R4
	xcall lsr32
	xcall _Write_Byte_SD
	.dbline 85
;   Write_Byte_SD(address);
	movw R30,R28
	ldd R16,z+8
	xcall _Write_Byte_SD
	.dbline 86
;   Write_Byte_SD(0xff);
	ldi R16,255
	xcall _Write_Byte_SD
	.dbline 90
;   
; 
;  //Wait for the response 
;  tmp=Read_Byte_SD();
	xcall _Read_Byte_SD
	mov R22,R16
	xjmp L21
L20:
	.dbline 92
	.dbline 93
	xcall _Read_Byte_SD
	mov R22,R16
	.dbline 94
L21:
	.dbline 91
;  while((tmp==0xff)&(Timeout++<8)) 
	cpi R22,255
	brne L23
	ldi R24,1
	ldi R25,0
	movw R12,R24
	xjmp L24
L23:
	clr R12
	clr R13
L24:
	mov R2,R20
	clr R3
	subi R20,255    ; addi 1
	mov R24,R2
	cpi R24,8
	brsh L25
	ldi R24,1
	ldi R25,0
	movw R10,R24
	xjmp L26
L25:
	clr R10
	clr R11
L26:
	movw R2,R12
	and R2,R10
	and R3,R11
	tst R2
	brne L20
	tst R3
	brne L20
X0:
	.dbline 96
;       {
;        tmp=Read_Byte_SD();  
;       } 
;  //SD_Disable(); 
;  return(tmp); 
	mov R16,R22
	.dbline -2
L19:
	xcall pop_gset4
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r Timeout 20 c
	.dbsym r tmp 22 c
	.dbsym l address 8 l
	.dbsym r CMD 22 c
	.dbend
	.area lit(rom, con, rel)
L28:
	.byte 64,0
	.byte 0,0
	.byte 0,149
	.area text(rom, con, rel)
	.dbfile D:\TDDownload\MP3BOA~1.8\SD.c
	.dbfunc e SDInit _SDInit fc
;              b -> R10
;              a -> R20
;          retry -> R22
;            CMD -> y+0
	.even
_SDInit::
	xcall push_gset3
	sbiw R28,6
	.dbline -1
	.dbline 101
; }
; 
; //=======================================================================
; uint8 SDInit(void)
; { 
	.dbline 103
;  uint8 a,b,retry; 
;  uint8 CMD[]={0x40,0x00,0x00,0x00,0x00,0x95}; 
	ldi R24,<L28
	ldi R25,>L28
	movw R30,R28
	ldi R16,6
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	.dbline 105
;  
;  asm("cli"); //clear all interrupt.
	cli
	.dbline 108
;  // Set certain pins to inputs and others to outputs 
;  // Only SPI_DI (data in) is an input 
;  SD_Direction_REG&=~(1<<SPI_DI); 
	cbi 0x17,6
	.dbline 109
;  SD_Direction_REG|=(1<<SPI_Clock); 
	sbi 0x17,7
	.dbline 110
;  SD_Direction_REG|=(1<<SPI_DO); 
	sbi 0x17,5
	.dbline 111
;  SD_Direction_REG|=(1<<SD_Chip_Select); 
	sbi 0x17,4
	.dbline 112
;  SD_Write|=(1<<SD_Chip_Select); 
	sbi 0x18,4
	.dbline 113
;  SD_Write|=(1<<SPI_DI); 
	sbi 0x18,6
	.dbline 116
; 
;  //We need to wait for the SD_Direction_REG to be ready 
;  for(a=0;a<200;a++) 
	clr R20
	xjmp L32
L29:
	.dbline 117
	.dbline 118
	nop
	.dbline 119
L30:
	.dbline 116
	inc R20
L32:
	.dbline 116
	cpi R20,200
	brlo L29
	.dbline 119
;     {
;      nop();
;     }; 
	.dbline 121
;  //Enable SPI in Master Mode with IDLE low and clock at 8M/128 
; SPCR=(1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1); 
	ldi R24,83
	out 0xd,R24
	.dbline 122
; SPSR&=~(1<<SPI2X); 
	cbi 0xe,0
	.dbline 125
;   
;  // We need to give the card about a Hundred cycles to load 
;  for (b=0;b<0x0f;++b) 
	clr R10
	xjmp L36
L33:
	.dbline 126
	.dbline 127
	ldi R16,255
	xcall _Write_Byte_SD
	.dbline 128
L34:
	.dbline 125
	inc R10
L36:
	.dbline 125
	mov R24,R10
	cpi R24,15
	brlo L33
	.dbline 131
;      {
;       Write_Byte_SD(0xff); 
;      } 
; 
;  //Send the initialization commands to the card 
;  retry=0; 
	clr R22
	xjmp L38
L37:
	.dbline 134
;   
;  while(Write_Command_SD1(CMD)!=0X01)
;  {
	.dbline 135
;   Delay_ms(10);              //很重要,要不然就要REST才可以
	ldi R16,10
	ldi R17,0
	xcall _Delay_ms
	.dbline 137
;  //fail and return 
;  if(retry++>50) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频免费观看| 国产一区二区三区视频在线播放| 成人高清伦理免费影院在线观看| 久久看人人爽人人| 国产91高潮流白浆在线麻豆| 国产精品女同互慰在线看 | 青青草原综合久久大伊人精品优势 | 国产九色精品成人porny| 日韩视频不卡中文| 国产成人8x视频一区二区| 国产精品福利一区二区三区| 91高清在线观看| 免费成人美女在线观看.| 久久美女高清视频| 91美女蜜桃在线| 青青草成人在线观看| 国产丝袜在线精品| 在线精品视频小说1| 美女国产一区二区| 中文字幕在线观看一区| 欧美日韩国产中文| 国产成人免费9x9x人网站视频| 国产精品久久99| 欧美日韩视频在线一区二区 | 久久久久久久久蜜桃| 91免费观看视频| 日韩成人精品在线| 国产精品色呦呦| 7777精品久久久大香线蕉| 国产福利一区在线| 婷婷成人综合网| 玉米视频成人免费看| 欧美精品粉嫩高潮一区二区| 国产精品18久久久久久久久久久久| 亚洲品质自拍视频| 久久综合九色欧美综合狠狠| 色婷婷国产精品久久包臀 | 国产日本亚洲高清| 欧美色大人视频| 成人av在线一区二区三区| 首页综合国产亚洲丝袜| 国产精品电影一区二区| 欧美一区三区二区| 色视频欧美一区二区三区| 国产最新精品免费| 亚洲v中文字幕| 综合久久一区二区三区| 久久亚洲影视婷婷| 欧美一区二区黄色| 日本韩国一区二区| 丰满少妇久久久久久久 | 国产在线国偷精品免费看| 亚洲一线二线三线视频| 国产精品福利在线播放| 国产三级一区二区| 日韩午夜激情免费电影| 欧洲精品一区二区三区在线观看| 国产成人99久久亚洲综合精品| 蜜乳av一区二区三区| 午夜影视日本亚洲欧洲精品| 亚洲视频免费观看| **性色生活片久久毛片| 欧美激情一区二区三区不卡| 久久久亚洲高清| 精品国产电影一区二区| 欧美一区午夜视频在线观看| 欧美日本不卡视频| 欧美色综合影院| 欧美亚洲尤物久久| 欧美网站大全在线观看| 91成人免费电影| 欧洲国产伦久久久久久久| 色综合一区二区三区| www.99精品| 99精品久久只有精品| 岛国精品一区二区| youjizz国产精品| 波多野结衣在线一区| 成人激情视频网站| thepron国产精品| 99国产麻豆精品| 色综合一个色综合亚洲| 欧美喷潮久久久xxxxx| 欧美性受xxxx| 欧美一级二级在线观看| 日韩免费高清av| 久久精品一区二区三区av| 久久理论电影网| 一色屋精品亚洲香蕉网站| 日韩理论片网站| 亚洲综合色婷婷| 午夜欧美电影在线观看| 美脚の诱脚舐め脚责91| 国产高清在线观看免费不卡| 风间由美一区二区三区在线观看 | 日韩欧美中文字幕公布| 久久久影视传媒| 日韩毛片一二三区| 亚洲国产精品视频| 久久精品99国产精品| 国产99精品国产| 在线观看国产精品网站| 日韩一区二区三区免费看 | 久久免费电影网| 国产精品久久久久久久久快鸭| 亚洲色图都市小说| 婷婷夜色潮精品综合在线| 韩国精品在线观看| 91美女蜜桃在线| 日韩精品最新网址| 亚洲欧美日韩人成在线播放| 五月婷婷色综合| 国产精品一区二区无线| 在线观看免费视频综合| 精品不卡在线视频| 亚洲欧美精品午睡沙发| 蜜桃视频在线观看一区二区| 成人黄色一级视频| 日韩美一区二区三区| **性色生活片久久毛片| 久久99精品国产麻豆婷婷| 91浏览器入口在线观看| 国产精品传媒视频| 青青草精品视频| 91小视频在线| 久久久久久久综合日本| 香蕉乱码成人久久天堂爱免费| 国产精品中文有码| 欧美日韩国产精品成人| 中文字幕日韩欧美一区二区三区| 青青青伊人色综合久久| 在线观看日韩av先锋影音电影院| 久久久久一区二区三区四区| 日韩成人免费在线| 欧美亚洲国产bt| 国产精品伦一区| 久久国产成人午夜av影院| 日本韩国精品在线| 国产精品私人影院| 国产精品一区二区在线播放 | 日韩精品一区二| 亚洲在线视频免费观看| 成人国产精品免费| 久久久精品国产免费观看同学| 日韩综合在线视频| 欧美综合天天夜夜久久| 国产精品卡一卡二| 国产精品中文字幕欧美| 欧美一级xxx| 视频在线在亚洲| 欧美三级一区二区| 亚洲精品一二三| 9色porny自拍视频一区二区| 国产三区在线成人av| 国产一区啦啦啦在线观看| 欧美一区二区三区系列电影| 五月天一区二区| 欧美性猛片xxxx免费看久爱| 亚洲少妇30p| 91女厕偷拍女厕偷拍高清| 一区在线观看视频| av午夜一区麻豆| 成人欧美一区二区三区视频网页| 成人晚上爱看视频| 国产精品视频免费| 波多野结衣精品在线| 国产精品久久免费看| 成人h精品动漫一区二区三区| 欧美激情在线看| 成人网页在线观看| 亚洲日本va在线观看| 91免费在线视频观看| 亚洲一区国产视频| 欧美精三区欧美精三区| 肉丝袜脚交视频一区二区| 欧美一级精品在线| 国产一区二区三区电影在线观看 | 欧美日韩黄色一区二区| 亚洲va欧美va人人爽| 欧美一区二区在线免费观看| 麻豆精品视频在线观看| 久久综合九色综合97_久久久 | 美国av一区二区| 精品国产伦一区二区三区观看体验| 成人黄色在线视频| 一级精品视频在线观看宜春院| 色国产精品一区在线观看| 午夜av区久久| 精品福利在线导航| 97精品国产露脸对白| 亚洲成人免费在线观看| 欧美videofree性高清杂交| 风间由美一区二区av101| 亚洲欧美另类久久久精品| 欧美一区二区三区白人| 国产激情一区二区三区四区| 一区二区三区在线视频观看| 6080yy午夜一二三区久久| 国产馆精品极品| 亚洲第一精品在线|