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

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

?? vs1011b.lis

?? 采用Mega16+VS1011B+SD卡制作的Mp3
?? LIS
?? 第 1 頁 / 共 2 頁
字號:
                        .module VS1011B.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\學習\AVRpro\Mega16程序\TestLCD\VS1011B.c
 0000                   .dbfunc e VS1011B_SPI_Low _VS1011B_SPI_Low fV
                        .even
 0000           _VS1011B_SPI_Low::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; # include "iom16v.h"
 0000           ; # include "macros.h"
 0000           ; # include "VS1011B.h"
 0000           ; 
 0000           ; #define uchar unsigned char
 0000           ; #define uint  unsigned int
 0000           ; #ifndef  SPI_CS_Deassert()
 0000           ;                #define MMC_SD_PORT       PORTB  //引腳定義
 0000           ;                #define MMC_SD_CS_PIN     4      //mega16,MMC/SD卡的片選引腳,接PortB4/ss
 0000           ;                #define SPI_CS_Deassert() MMC_SD_PORT |=  BIT(MMC_SD_CS_PIN)  //SS為高,釋放MMC
 0000           ; #endif
 0000           ; 
 0000           ; extern unsigned char CurVol,CurBass;
 0000           ; extern void Delay(unsigned int DelayTimes);
 0000           ; 
 0000           ; //以最低速度運行      //low speed
 0000           ; void VS1011B_SPI_Low(void)
 0000           ; {
 0000                   .dbline 19
 0000           ;       SPCR =   BIT(SPE)|BIT(MSTR)|BIT(SPR1)|BIT(SPR0);
 0000 83E5              ldi R24,83
 0002 8DB9              out 0xd,R24
 0004                   .dbline 20
 0004           ;       SPSR &= ~BIT(SPI2X);
 0004 7098              cbi 0xe,0
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbend
 0008                   .dbfunc e VS1011B_SPI_High _VS1011B_SPI_High fV
                        .even
 0008           _VS1011B_SPI_High::
 0008                   .dbline -1
 0008                   .dbline 25
 0008           ; }
 0008           ; 
 0008           ; //以FCK/4速度運行     //full speed
 0008           ; void VS1011B_SPI_High(void)
 0008           ; {
 0008                   .dbline 26
 0008           ;       SPCR =  BIT(SPE)|BIT(MSTR);
 0008 80E5              ldi R24,80
 000A 8DB9              out 0xd,R24
 000C                   .dbline 27
 000C           ;       SPSR |= BIT(SPI2X);
 000C 709A              sbi 0xe,0
 000E                   .dbline -2
 000E           L2:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbend
 0010                   .dbfunc e VS1011B_WriteByte _VS1011B_WriteByte fV
 0010           ;             CH -> R16
                        .even
 0010           _VS1011B_WriteByte::
 0010                   .dbline -1
 0010                   .dbline 32
 0010           ; }
 0010           ; 
 0010           ; //向VS1011B寫一字節           //write one byte to vs1011b
 0010           ; void VS1011B_WriteByte(unsigned char CH)
 0010           ; {   
 0010                   .dbline 33
 0010           ;       SPDR = CH;
 0010 0FB9              out 0xf,R16
 0012           L4:
 0012                   .dbline 34
 0012           ;       while(!(SPSR & BIT(SPIF)));
 0012           L5:
 0012                   .dbline 34
 0012 779B              sbis 0xe,7
 0014 FECF              rjmp L4
 0016           X0:
 0016                   .dbline -2
 0016           L3:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbsym r CH 16 c
 0018                   .dbend
 0018                   .dbfunc e VS1011B_ReadByte _VS1011B_ReadByte fc
                        .even
 0018           _VS1011B_ReadByte::
 0018                   .dbline -1
 0018                   .dbline 39
 0018           ; }
 0018           ; 
 0018           ; //從VS1011B讀一字節           //read one byte from vs1011b
 0018           ; unsigned char VS1011B_ReadByte(void)
 0018           ; {
 0018                   .dbline 40
 0018           ;     SPDR = 0xff;
 0018 8FEF              ldi R24,255
 001A 8FB9              out 0xf,R24
 001C           L8:
 001C                   .dbline 41
 001C           ;       while(!(SPSR & BIT(SPIF)));
 001C           L9:
 001C                   .dbline 41
 001C 779B              sbis 0xe,7
 001E FECF              rjmp L8
 0020           X1:
 0020                   .dbline 42
 0020           ;       return SPDR;
 0020 0FB1              in R16,0xf
 0022                   .dbline -2
 0022           L7:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
 0024                   .dbfunc e VS1011B_WriteCMD _VS1011B_WriteCMD fV
 0024           ;            dat -> R10,R11
 0024           ;           addr -> R12
                        .even
 0024           _VS1011B_WriteCMD::
 0024 0E940000          xcall push_xgset003C
 0028 5901              movw R10,R18
 002A C02E              mov R12,R16
 002C                   .dbline -1
 002C                   .dbline 47
 002C           ; }
 002C           ; 
 002C           ; //寫寄存器,參數,地址和數據  //config register
 002C           ; void VS1011B_WriteCMD(unsigned char addr, unsigned int dat)
 002C           ; {
 002C                   .dbline 48
 002C           ;       VS1011B_XDCS_H();
 002C D89A              sbi 0x1b,0
 002E                   .dbline 49
 002E           ;       VS1011B_XCS_L();
 002E D998              cbi 0x1b,1
 0030                   .dbline 50
 0030           ;       VS1011B_WriteByte(0x02);
 0030 02E0              ldi R16,2
 0032 EEDF              xcall _VS1011B_WriteByte
 0034                   .dbline 51
 0034           ;       VS1011B_WriteByte(addr);
 0034 0C2D              mov R16,R12
 0036 ECDF              xcall _VS1011B_WriteByte
 0038                   .dbline 52
 0038           ;       VS1011B_WriteByte(dat>>8);
 0038 8501              movw R16,R10
 003A 012F              mov R16,R17
 003C 1127              clr R17
 003E E8DF              xcall _VS1011B_WriteByte
 0040                   .dbline 53
 0040           ;       VS1011B_WriteByte(dat);
 0040 0A2D              mov R16,R10
 0042 E6DF              xcall _VS1011B_WriteByte
 0044                   .dbline 54
 0044           ;       VS1011B_XCS_H();
 0044 D99A              sbi 0x1b,1
 0046                   .dbline -2
 0046           L11:
 0046                   .dbline 0 ; func end
 0046 0C940000          xjmp pop_xgset003C
 004A                   .dbsym r dat 10 i
 004A                   .dbsym r addr 12 c
 004A                   .dbend
 004A                   .dbfunc e VS1011B_ReadCMD _VS1011B_ReadCMD fi
 004A           ;           temp -> R10,R11
 004A           ;           addr -> R10
                        .even
 004A           _VS1011B_ReadCMD::
 004A AA92              st -y,R10
 004C BA92              st -y,R11
 004E A02E              mov R10,R16
 0050                   .dbline -1
 0050                   .dbline 59
 0050           ; }
 0050           ; 
 0050           ; //讀寄存器,參數 地址 返回內容        //read register
 0050           ; unsigned int VS1011B_ReadCMD(unsigned char addr)
 0050           ; {
 0050                   .dbline 61
 0050           ;       unsigned int temp;
 0050           ;       VS1011B_XDCS_H();
 0050 D89A              sbi 0x1b,0
 0052                   .dbline 62
 0052           ;       VS1011B_XCS_L();
 0052 D998              cbi 0x1b,1
 0054                   .dbline 63
 0054           ;       VS1011B_WriteByte(0x03);
 0054 03E0              ldi R16,3
 0056 DCDF              xcall _VS1011B_WriteByte
 0058                   .dbline 64
 0058           ;       VS1011B_WriteByte(addr);
 0058 0A2D              mov R16,R10
 005A DADF              xcall _VS1011B_WriteByte
 005C                   .dbline 65
 005C           ;       temp = VS1011B_ReadByte();
 005C DDDF              xcall _VS1011B_ReadByte
 005E A02E              mov R10,R16
 0060 BB24              clr R11
 0062                   .dbline 66
 0062           ;       temp <<= 8;
 0062 BA2C              mov R11,R10
 0064 AA24              clr R10
 0066                   .dbline 67
 0066           ;       temp += VS1011B_ReadByte();
 0066 D8DF              xcall _VS1011B_ReadByte
 0068 202E              mov R2,R16
 006A 3324              clr R3
 006C A20C              add R10,R2
 006E B31C              adc R11,R3
 0070                   .dbline 68
 0070           ;       VS1011B_XCS_H();
 0070 D99A              sbi 0x1b,1
 0072                   .dbline 69
 0072           ;       return temp;
 0072 8501              movw R16,R10
 0074                   .dbline -2
 0074           L12:
 0074                   .dbline 0 ; func end
 0074 B990              ld R11,y+
 0076 A990              ld R10,y+
 0078 0895              ret
 007A                   .dbsym r temp 10 i
 007A                   .dbsym r addr 10 c
 007A                   .dbend
 007A                   .dbfunc e VS1011B_WriteDAT _VS1011B_WriteDAT fV
 007A           ;            dat -> R10
                        .even
 007A           _VS1011B_WriteDAT::
 007A AA92              st -y,R10
 007C A02E              mov R10,R16
 007E                   .dbline -1
 007E                   .dbline 74
 007E           ; }
 007E           ; 
 007E           ; //寫數據,音樂數據            //write data (music data)
 007E           ; void VS1011B_WriteDAT(unsigned char dat)
 007E           ; {
 007E                   .dbline 75
 007E           ;       VS1011B_XDCS_L();
 007E D898              cbi 0x1b,0
 0080                   .dbline 76
 0080           ;       VS1011B_WriteByte(dat);
 0080 0A2D              mov R16,R10
 0082 C6DF              xcall _VS1011B_WriteByte
 0084                   .dbline 77
 0084           ;       VS1011B_XDCS_H();
 0084 D89A              sbi 0x1b,0
 0086                   .dbline 78
 0086           ;       VS1011B_XCS_H();
 0086 D99A              sbi 0x1b,1
 0088                   .dbline -2
 0088           L13:
 0088                   .dbline 0 ; func end
 0088 A990              ld R10,y+
 008A 0895              ret
 008C                   .dbsym r dat 10 c
 008C                   .dbend
 008C                   .dbfunc e VS1011B_Init _VS1011B_Init fc
 008C           ;            Tmp -> R10,R11
 008C           ;          retry -> R20
                        .even
 008C           _VS1011B_Init::
 008C 0E940000          xcall push_xgsetF03C
 0090                   .dbline -1
 0090                   .dbline 83
 0090           ; }
 0090           ; 
 0090           ; // 1 means fail, 0 OK!
 0090           ; unsigned char VS1011B_Init(void)
 0090           ; {
 0090                   .dbline 86
 0090           ;       unsigned char retry;
 0090           ;       unsigned int Tmp;
 0090           ;       DDRB |= BIT(4)|BIT(5)|BIT(7);  //mega16,這些SPI端口要輸出
 0090 87B3              in R24,0x17
 0092 806B              ori R24,176
 0094 87BB              out 0x17,R24
 0096                   .dbline 87
 0096           ;       DDRB &=~BIT(6); //MISO為輸入方式 
 0096 BE98              cbi 0x17,6
 0098                   .dbline 88
 0098           ;       SPI_CS_Deassert();  //釋放MMC/SD卡
 0098 C49A              sbi 0x18,4
 009A                   .dbline 89
 009A           ;       VS1011B_PORT_INI();
 009A 8AB3              in R24,0x1a
 009C 8364              ori R24,67

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产精品久久久久久久久久| 亚洲成人免费看| 国产精品人成在线观看免费| 欧美激情综合网| 午夜精品福利在线| 丁香亚洲综合激情啪啪综合| 一本在线高清不卡dvd| 日韩一二三区不卡| 精品美女在线播放| 国产精品入口麻豆原神| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产高清精品在线| 欧美日韩精品高清| 欧美激情一区二区三区不卡 | 在线亚洲一区二区| 精品国产电影一区二区| 亚洲国产精品嫩草影院| 国产精品亚洲第一| 色婷婷精品久久二区二区蜜臀av | 亚洲国产视频一区| 成人综合日日夜夜| 精品免费国产一区二区三区四区| 亚洲色欲色欲www在线观看| 激情综合一区二区三区| 777午夜精品视频在线播放| 综合中文字幕亚洲| 91免费在线看| 亚洲欧美另类小说| 91香蕉视频黄| 亚洲人成电影网站色mp4| www.激情成人| 成人欧美一区二区三区小说| 成人18视频日本| 亚洲色图一区二区三区| 成人精品电影在线观看| 国产精品蜜臀在线观看| 成人丝袜视频网| 中文字幕精品综合| www.欧美日韩| 亚洲综合自拍偷拍| 欧美日韩视频一区二区| 亚洲成人777| 久久免费视频色| 成人午夜又粗又硬又大| 亚洲成人综合网站| 日韩女优av电影在线观看| 蜜桃视频一区二区三区在线观看| 久久久噜噜噜久久人人看| 国产凹凸在线观看一区二区| 国产精品大尺度| 7777精品伊人久久久大香线蕉完整版| 国产一区二区在线观看免费| 中文字幕的久久| 亚洲国产精品高清| 欧美一级久久久久久久大片| 国产不卡在线播放| 日韩精品1区2区3区| 国产精品欧美久久久久无广告| 91高清视频免费看| 国产a精品视频| 偷拍一区二区三区四区| 亚洲欧美成aⅴ人在线观看| 日韩一区二区免费在线观看| 精品久久久久久久久久久院品网| 91在线观看免费视频| 国产经典欧美精品| 日韩和欧美一区二区三区| 亚洲综合在线观看视频| 爽好多水快深点欧美视频| 日韩毛片精品高清免费| wwwwww.欧美系列| 欧美精品一区二区久久婷婷| 欧美剧在线免费观看网站| 91视频在线观看免费| 不卡的电影网站| 粉嫩av一区二区三区在线播放 | 久久天天做天天爱综合色| 欧美一区二区视频观看视频| 欧美最猛性xxxxx直播| 日本乱人伦一区| 日本精品裸体写真集在线观看| 99国产精品久久久久| 色综合久久88色综合天天免费| 日韩欧美在线一区二区三区| 欧美在线一二三四区| 91精品国产综合久久精品麻豆| 欧美一级片在线看| 国产午夜精品久久久久久免费视| 欧美白人最猛性xxxxx69交| 久久久久久久性| 亚洲综合色自拍一区| 美女一区二区在线观看| 成人avav影音| 欧美日韩一级片网站| 精品美女在线观看| 亚洲乱码国产乱码精品精98午夜 | 一区在线播放视频| 免费在线欧美视频| 国产精品99久久久久久久vr| 97se亚洲国产综合自在线观| 欧美一区二视频| 亚洲欧美在线观看| 久久福利视频一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 一级做a爱片久久| 国产精品亚洲专一区二区三区 | 国产成人av在线影院| 欧美欧美欧美欧美| 国产精品白丝在线| 免费成人在线视频观看| 色综合激情久久| 国产色一区二区| 国产麻豆视频精品| 欧美肥妇bbw| 午夜免费久久看| 日本高清不卡视频| 中文字幕视频一区| 91在线视频在线| 亚洲三级在线观看| 粉嫩aⅴ一区二区三区四区五区| 国产精品久久久久aaaa| 午夜av区久久| 不卡一区在线观看| 日本一区二区三区四区在线视频| 久久国产精品99精品国产| 日韩一二三区不卡| 久草热8精品视频在线观看| 欧美一卡二卡在线观看| 蜜臀av一级做a爰片久久| 日韩欧美视频一区| 国内外精品视频| 亚洲在线视频网站| 91网站视频在线观看| 一区二区三区四区国产精品| 欧亚一区二区三区| 日韩av一区二| 国产精品视频九色porn| 成人黄色在线网站| 亚洲超碰精品一区二区| 精品国产3级a| 99精品热视频| 精品一区二区免费视频| 国产农村妇女毛片精品久久麻豆 | 久久综合久色欧美综合狠狠| 99re热这里只有精品免费视频| 亚洲国产综合色| 日本一区二区高清| 777色狠狠一区二区三区| 国产黄色成人av| 婷婷一区二区三区| 日韩美女精品在线| 精品国产91亚洲一区二区三区婷婷| av激情综合网| 国产乱码精品一区二区三区忘忧草| 一区二区三区国产精品| 精品精品国产高清a毛片牛牛| 日本韩国欧美三级| 99久久免费视频.com| 黄页网站大全一区二区| 青草av.久久免费一区| 亚洲国产精品一区二区www| 综合中文字幕亚洲| 国产精品久久久久久妇女6080| 精品国产免费人成电影在线观看四季| 91丨porny丨最新| 91视视频在线观看入口直接观看www| 精品一区二区三区av| 美女网站色91| 精品一区二区三区香蕉蜜桃| 亚洲va韩国va欧美va精品| 亚洲中国最大av网站| 亚洲成人激情av| 日本不卡不码高清免费观看 | 91福利视频久久久久| 欧美性xxxxx极品少妇| 欧美男生操女生| 精品国产一区二区三区不卡| 国产三级精品三级| 1024精品合集| 亚洲综合偷拍欧美一区色| 午夜精品在线视频一区| 国产精品中文字幕欧美| 丁香婷婷综合激情五月色| 色八戒一区二区三区| 欧美成人一区二区三区片免费| 国产色一区二区| 一区二区三区欧美| 经典三级一区二区| 欧美日韩国产三级| 国产精品天干天干在线综合| 亚洲精品欧美在线| 国产精品一区免费在线观看| 91论坛在线播放| 久久综合色天天久久综合图片| 亚洲色欲色欲www| 国产激情一区二区三区| 777色狠狠一区二区三区| 国产精品麻豆久久久| 久久99久久99小草精品免视看| 色成年激情久久综合|