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

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

?? 語音1.s

?? ISD1720芯片實現錄音,定點錄音,播放,定點播放等.
?? S
字號:
	.module _語音1.c
	.area text(rom, con, rel)
	.dbfile E:\寫的程序\AVR(C)\語音1.c
	.dbfunc e spi_sent_init _spi_sent_init fV
	.even
_spi_sent_init::
	.dbline -1
	.dbline 51
; 
; /****************************************************************
;            在發送命令時的第四位是開LED指示位
; 		   當C4=1時開啟,要指示話要在每個命令中將此位置位
; 		   以下的程序都將此位置位了。
; /*****************************************************************
; 
; #define PU      PU(0x11) //POWER UP 01
; #define PD      PU(0x17) //POWER DOWN 07
; #define EXTLCK  PU(0x5A) //是否使能外部時鐘 4A
; 
; #define STOP    PU(0x12) //停止   02
; #define RESET   PU(0x13) //復位  03
; #define FWD     PU(0x01) //下一曲 48
; #define PLAY    PU(0x50) //播放當前曲目  40
; #define REC     PU(0x51) //從當前地址開始錄音 41
; 
; #define CLR_INT  PU(0x14) //清除中斷和EOM位  04 
; #define ERASE    PU(0x52) //擦除當前曲目 42
; #define G_ERASE  PU(0x53) //擦除全部曲目除了提示音 43
; 
; #define WR_NVCFG  PU(0x56) //將APC的內容寫到NVCFG中 46
; #define LD_NVCFG  PU(0x57) //將NVCFG的內容加載到APC中 47
; #define CHK_MEM   PU(0x59) //檢查環形存儲結構 49
; 
; #define RD_STATUS  status_address(0x15) //讀取狀態寄存器,當前地址 05
; #define DEVID      status_address(0x19) //讀取器件ID 09
; 
; #define RD_PLAY_PTR  status_address_pointer(0x16) //讀取狀態寄存器,當前地址和播放指針 06
; #define RD_REC_PTR   status_address_pointer(0x18) //讀取狀態寄存器,當前地址和錄音指針 08
; #define RD_APC       status_address_pointer(0x54) //讀取狀態寄存器,當前地址和APC寄存器 44
; /****************************************************************************
;     下面的程序是要用
; unsigned char command_data(unsigned char command,unsigned int data1,unsigned int data2)
;    該函數要實現如下功能由不同的命令實現
;    返回的i值是狀態值
; ***********************************************************************
; i=command_data(0x55,data1,data2);//wr_apc1(void);將<D11:D0>的數據寫進APC寄存器,并由VOL管腳調節音量 45
; i=command_data(0x75,data1,data2);//wr_apc2(void);將<D11:D0>的數據寫進APC寄存器,并由<D2:D0>調節音量 65
; 
; i=command_data(0x90,data1,data2); //set_play(void);//從<S10:S0>開始播放,直到<E10:E0>或EOM 80
; i=command_data(0x91,data1,data2); //set_rec(void); //從<S10:S0>開始錄音,直到<E10:E0> 81
; i=command_data(0x92,data1,data2); //set_erase(void);//擦除<S10:S0>到<E10:E0>的內容 82
; 
; /***********************************************************
;                     SPI發送程序
; *************************************************************/
; #include <iom16v.h>
; #include <macros.h>
; void spi_sent_init(void)
; { PORTB |= (1<<PB4)|(1<<PB5)|(1<<PB6)|(1<<PB7); 	
	.dbline 51
	in R24,0x18
	ori R24,240
	out 0x18,R24
	.dbline 52
;   DDRB |= (1<<DDB5)|(1<<DDB7)|(1<<DDB4);       //設置MOSI,SCK和SS為輸出 
	in R24,0x17
	ori R24,176
	out 0x17,R24
	.dbline 53
;   SPCR = (1<<SPE)|(1<<DORD)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);//設置為主機,LSB先發送
	ldi R24,115
	out 0xd,R24
	.dbline 54
;   SPSR = 0x00;              //預分頻為128
	clr R2
	out 0xe,R2
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SPI _SPI fc
;           sign -> R20
;           Data -> R16,R17
	.even
_SPI::
	xcall push_gset1
	.dbline -1
	.dbline 58
; }
; 
; unsigned char SPI(unsigned int Data)
; { 
	.dbline 60
;   unsigned char sign;
;   PORTB &=~ (1<<PB4);            //強制接收方進入從模式
	cbi 0x18,4
	.dbline 61
;   SPCR |= (1<<MSTR);             // MSTR有時會被清零,這里強制進入主機模式
	sbi 0xd,4
	.dbline 62
;   SPDR = Data;              //啟動數據傳輸 
	out 0xf,R16
L3:
	.dbline 63
L4:
	.dbline 63
;   while(!(SPSR&(1<<SPIF)));      //等待傳輸結束 
	sbis 0xe,7
	rjmp L3
	.dbline 64
;   PORTB |= (1<<PB4);
	sbi 0x18,4
	.dbline 65
;   sign=SPSR;
	in R20,0xe
	.dbline 66
;   sign=SPDR;
	in R20,0xf
	.dbline 67
;   return sign;            
	mov R16,R20
	.dbline -2
L2:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r sign 20 c
	.dbsym r Data 16 i
	.dbend
	.dbfunc e PU _PU fc
;              i -> R20
;           data -> R22
	.even
_PU::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 73
; }
; /***********************************************************
;                     命令程序
; *************************************************************/
; unsigned char PU(unsigned char data)
; {
L7:
	.dbline 76
;    unsigned char i;
;    do
;    {
	.dbline 77
;      i=SPI(data);//發送命令
	mov R16,R22
	clr R17
	xcall _SPI
	mov R20,R16
	.dbline 78
;    }
L8:
	.dbline 79
;    while((i=SPI(0x00))&0x01);//檢測發送的命令是否接收了上一個命令
	clr R16
	clr R17
	xcall _SPI
	mov R20,R16
	sbrc R20,0
	rjmp L7
	.dbline 80
;    return i;
	.dbline -2
L6:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r data 22 c
	.dbend
	.dbfunc e status_address _status_address fi
;              k -> R20,R21
;              i -> R22
;           data -> R10
	.even
_status_address::
	xcall push_gset3
	mov R10,R16
	.dbline -1
	.dbline 84
; }
; //*************************************************************
; unsigned int status_address(unsigned char data)//讀取狀態寄存器,當前地址
; {
L11:
	.dbline 88
;     unsigned char i;
; 	unsigned int k;
;    do
;    {
	.dbline 89
;      i=SPI(data);//發送命令
	mov R16,R10
	clr R17
	xcall _SPI
	mov R22,R16
	.dbline 90
;    }
L12:
	.dbline 91
;    while((i=SPI(0x00))&0x01);//檢測發送的命令是否接收了上一個命令
	clr R16
	clr R17
	xcall _SPI
	mov R22,R16
	sbrc R22,0
	rjmp L11
	.dbline 92
;    k=SPI(0x00);//讀當前地址
	clr R16
	clr R17
	xcall _SPI
	mov R20,R16
	clr R21
	.dbline 93
;    k=(8<<k)+i;//低位是狀態,高位是地址
	ldi R16,8
	ldi R17,0
	movw R18,R20
	xcall lsl16
	movw R20,R16
	mov R2,R22
	clr R3
	add R20,R2
	adc R21,R3
	.dbline 94
;    return k;
	movw R16,R20
	.dbline -2
L10:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r k 20 i
	.dbsym r i 22 c
	.dbsym r data 10 c
	.dbend
	.dbfunc e status_address_pointer _status_address_pointer fL
;              j -> R20
;              k -> y+0
;              i -> R22
;           data -> R10
	.even
_status_address_pointer::
	xcall push_gset3
	mov R10,R16
	sbiw R28,4
	.dbline -1
	.dbline 98
; }
; //*************************************************************
; long status_address_pointer(unsigned char data)//讀取狀態寄存器,當前地址和播放指針
; {
L15:
	.dbline 102
;     unsigned char i,j;
; 	long k;
;    do
;    {
	.dbline 103
;      i=SPI(data);//發送命令
	mov R16,R10
	clr R17
	xcall _SPI
	mov R22,R16
	.dbline 104
;    }
L16:
	.dbline 105
;    while((i=SPI(0x00))&0x01);//檢測發送的命令是否接收了上一個命令
	clr R16
	clr R17
	xcall _SPI
	mov R22,R16
	sbrc R22,0
	rjmp L15
	.dbline 106
;    j=SPI(0x00);//讀當前地址
	clr R16
	clr R17
	xcall _SPI
	mov R20,R16
	.dbline 107
;    k=SPI(0x00);//讀播放指針
	clr R16
	clr R17
	xcall _SPI
	mov R2,R16
	clr R3
	clr R4
	clr R5
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 108
;    k=(8<<k)+j;//低位是狀態,高位是地址
	movw R30,R28
	ldd R18,z+0
	ldd R19,z+1
	ldi R16,8
	ldi R17,0
	xcall lsl16
	movw R2,R16
	mov R4,R20
	clr R5
	add R2,R4
	adc R3,R5
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 109
;    k=(8<<k)+i;//低位是狀態,中間是地址,高位是播放指針
	movw R30,R28
	ldd R18,z+0
	ldd R19,z+1
	ldi R16,8
	ldi R17,0
	xcall lsl16
	movw R2,R16
	mov R4,R22
	clr R5
	add R2,R4
	adc R3,R5
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 110
;    return k;
	movw R30,R28
	ldd R16,z+0
	ldd R17,z+1
	ldd R18,z+2
	ldd R19,z+3
	.dbline -2
L14:
	adiw R28,4
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym l k 0 L
	.dbsym r i 22 c
	.dbsym r data 10 c
	.dbend
	.dbfunc e command_data _command_data fc
;              n -> R20
;              m -> R22
;              j -> R10
;              k -> R12
;              i -> R14
;          data2 -> y+14
;          data1 -> R20,R21
;        command -> y+10
	.even
_command_data::
	xcall push_arg4
	xcall push_gset5
	movw R20,R18
	.dbline -1
	.dbline 114
; }
; //*************************************************************
; unsigned char command_data(unsigned char command,unsigned int data1,unsigned int data2)
; {
	.dbline 116
;    unsigned char i,j,k,m,n;
;    j=data1/256;k=data1%256;
	movw R10,R20
	mov R10,R11
	clr R11
	.dbline 116
	movw R24,R20
	andi R25,0
	mov R12,R24
	.dbline 117
;    m=data2/256;n=data2%256;
	ldd R22,y+14
	ldd R23,y+15
	mov R22,R23
	clr R23
	.dbline 117
	ldd R20,y+14
	ldd R21,y+15
	andi R21,0
L19:
	.dbline 119
;    do
;    {
	.dbline 120
;      i=SPI(command);//發送命令
	ldd R16,y+10
	clr R17
	xcall _SPI
	mov R14,R16
	.dbline 121
;    }
L20:
	.dbline 122
;    while((i=SPI(0x00))&0x01);//檢測發送的命令是否接收了上一個命令
	clr R16
	clr R17
	xcall _SPI
	mov R14,R16
	sbrc R14,0
	rjmp L19
	.dbline 123
;    k=SPI(k);k=SPI(j);
	mov R16,R12
	clr R17
	xcall _SPI
	.dbline 123
	mov R16,R10
	clr R17
	xcall _SPI
	.dbline 124
;    k=SPI(n);k=SPI(m);
	mov R16,R20
	clr R17
	xcall _SPI
	.dbline 124
	mov R16,R22
	clr R17
	xcall _SPI
	mov R12,R16
	.dbline 125
;    return i;
	mov R16,R14
	.dbline -2
L18:
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r n 20 c
	.dbsym r m 22 c
	.dbsym r j 10 c
	.dbsym r k 12 c
	.dbsym r i 14 c
	.dbsym l data2 14 i
	.dbsym r data1 20 i
	.dbsym l command 10 c
	.dbend

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机精品视频在线| 在线一区二区三区四区五区| 91免费精品国自产拍在线不卡| 色婷婷久久久亚洲一区二区三区| 欧美一区二区成人| 亚洲欧洲av在线| 精东粉嫩av免费一区二区三区| 91麻豆国产福利在线观看| 欧美精品一区在线观看| 日韩av中文字幕一区二区三区| 99久久国产综合精品色伊| 日韩精品专区在线| 午夜精品福利一区二区蜜股av| 成人高清av在线| 欧美精品一区二区三区在线| 首页欧美精品中文字幕| 91久久精品一区二区三| 一区精品在线播放| 成人午夜在线播放| 久久久99精品免费观看不卡| 美日韩一区二区三区| 欧美日韩国产成人在线免费| 亚洲精品第1页| 99精品视频一区| 国产精品国产a| 国产成人av网站| 久久品道一品道久久精品| 麻豆freexxxx性91精品| 91精品国产色综合久久不卡电影| 亚洲国产欧美日韩另类综合 | 在线免费观看不卡av| 国产精品欧美一级免费| 成人一区在线看| 欧美国产综合一区二区| 成人黄色大片在线观看| 国产精品区一区二区三| 99riav一区二区三区| 亚洲精品视频免费观看| 在线观看不卡视频| 亚洲一区二区av电影| 欧美日韩国产一级二级| 亚洲成av人影院| 欧美一区二区久久| 国产曰批免费观看久久久| 久久久久久久综合| 99re66热这里只有精品3直播| 国产精品污污网站在线观看| 91丨九色丨尤物| 亚洲第一福利一区| 久久伊人中文字幕| 波多野洁衣一区| 亚洲综合色婷婷| 欧美一区二区三区在线观看| 久久99久久99精品免视看婷婷 | 中文字幕日韩精品一区| 91在线小视频| 日韩国产成人精品| 久久久91精品国产一区二区三区| 97精品久久久午夜一区二区三区 | 日韩欧美久久久| 国产一区二区导航在线播放| 国产欧美中文在线| 欧美在线播放高清精品| 免费在线看一区| 久久久精品黄色| 欧美亚洲国产一区二区三区va| 日韩福利电影在线| 亚洲国产成人自拍| 欧美日韩成人激情| 成人手机电影网| 三级不卡在线观看| 国产精品美女一区二区三区| 欧美日韩亚洲丝袜制服| 国产剧情av麻豆香蕉精品| 一卡二卡欧美日韩| 国产亚洲精品中文字幕| 在线视频综合导航| 国产乱子轮精品视频| 亚洲第一福利视频在线| 国产欧美一区二区精品忘忧草| 在线免费一区三区| 丁香婷婷综合网| 久久精品国产久精国产爱| 亚洲欧美日韩久久精品| 久久综合狠狠综合| 3d成人动漫网站| 色婷婷精品久久二区二区蜜臂av| 久久国产欧美日韩精品| 亚洲成人午夜电影| 亚洲视频一二三区| 久久亚洲精华国产精华液| 欧美视频在线一区二区三区| 东方欧美亚洲色图在线| 韩日av一区二区| 午夜精品久久久久| 亚洲综合成人在线视频| 国产精品视频一二三| 欧美成人免费网站| 日韩午夜精品电影| 欧美日韩视频在线观看一区二区三区 | 亚洲欧美综合另类在线卡通| 久久久亚洲精品一区二区三区| 欧美一区二区三区思思人| 欧美自拍偷拍一区| 91香蕉视频在线| 99久久精品情趣| www.欧美色图| 成人小视频在线| 国产福利一区二区三区视频在线| 国产一区二区三区久久久| 美日韩一区二区三区| 青青草国产精品97视觉盛宴| 亚洲电影激情视频网站| 亚洲最大成人综合| 亚洲综合999| 亚洲高清免费一级二级三级| 午夜欧美2019年伦理 | 中文字幕佐山爱一区二区免费| 国产精品嫩草久久久久| 一区视频在线播放| 亚洲欧美国产毛片在线| 一区二区三区四区亚洲| 亚洲精品国产品国语在线app| 亚洲伦在线观看| 午夜欧美一区二区三区在线播放| 午夜精品一区二区三区电影天堂| 亚洲成a人片在线观看中文| 日本成人在线不卡视频| 九色综合狠狠综合久久| 国产精品综合视频| 不卡一区中文字幕| 欧美影院一区二区| 777奇米成人网| 国产日韩欧美一区二区三区综合 | 亚洲18女电影在线观看| 日本午夜一本久久久综合| 国产麻豆欧美日韩一区| 99精品一区二区| 欧美高清性hdvideosex| 日韩欧美成人午夜| 亚洲国产精品t66y| 亚洲成av人片一区二区| 开心九九激情九九欧美日韩精美视频电影 | 一区二区欧美国产| 蜜桃一区二区三区在线| 国产成人在线看| 91福利国产成人精品照片| 日韩欧美国产一区二区在线播放| 久久久不卡影院| 亚洲综合图片区| 国产精品77777| 在线一区二区三区| 久久久久久夜精品精品免费| 亚洲激情欧美激情| 韩国欧美国产一区| 91黄色在线观看| 久久免费美女视频| 亚洲一级二级三级在线免费观看| 精品一区二区三区视频在线观看 | 99久久国产综合精品色伊| 日韩一区二区在线观看| 亚洲女人的天堂| 国产一区在线不卡| 欧美三级三级三级爽爽爽| 久久久国产午夜精品| 综合久久国产九一剧情麻豆| 美日韩一区二区| 欧美日韩一卡二卡三卡| 中文字幕一区二区三区视频| 免费在线成人网| 91美女片黄在线| 日本一区二区免费在线观看视频| 亚洲成人精品一区| 色综合久久久久久久久久久| 久久精品欧美日韩| 美日韩一区二区| 欧美日韩国产影片| 亚洲乱码国产乱码精品精98午夜| 国产精品一区二区在线播放| 欧美一区二区三区成人| 亚洲精品第1页| 91女人视频在线观看| 欧美r级电影在线观看| 天使萌一区二区三区免费观看| 91在线小视频| 国产精品色眯眯| 懂色av噜噜一区二区三区av| 久久亚洲综合色| 精品一区二区三区在线观看| 91精品中文字幕一区二区三区| 亚洲精品老司机| 91国产免费看| 亚洲国产另类av| 欧美日韩一区二区欧美激情| 亚洲综合免费观看高清在线观看| 色噜噜偷拍精品综合在线| 亚洲视频在线观看一区| 97se亚洲国产综合在线| 17c精品麻豆一区二区免费| 懂色av一区二区夜夜嗨|