⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 375interface.s

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 S
字号:
	.module _375interface.c
	.area text(rom, con, rel)
	.dbfile E:\software\MP3程序\Ch375b\375interface.c
	.dbfunc e CH375_PORT_INIT _CH375_PORT_INIT fV
	.even
_CH375_PORT_INIT::
	.dbline -1
	.dbline 30
; #include <iom64v.h>
; #include <macros.h>
; #define  UINT8 unsigned char
; /******************************************************************************/
; 
; #define	 USED_BUS		//屏闭后使用I/O模拟总线操作
; 
; #ifdef USED_BUS
; #define CH375_CMD_PORT_ADDR 0xfe00		 //命令口
; #define CH375_DAT_PORT_ADDR	0xfc00		 //数据口
; #endif
; #define  CH375_INT BIT(1)				 //CH375联络信号
; 
; 
; 
; #ifndef USED_BUS
; #define  CH375_CS  BIT(0)
; #define  CH375_A0  BIT(1)
; #define  CH375_RD  BIT(1)
; #define  CH375_WR  BIT(0)
; void mDelay1uS(void)  /* 至少延时1uS,根据单片机主频调整 */
; {
; 	//UINT8	i;
; 	//for ( i = 1; i != 0; i -- );
; 	NOP();
; }
; #endif
; 
; void CH375_PORT_INIT( )  /* 由于使用通用I/O模块并口读写时序,所以进行初始化 */
; {
	.dbline 32
;  	#ifdef USED_BUS
; 	Print_str("Init CH375 used External bus...\r\n");
	ldi R16,<L2
	ldi R17,>L2
	xcall _Print_str
	.dbline 42
; 	#else 
; 	Print_str("Init CH375 used I/O bus...\r\n");
; 	DDRA = 0x00;  /* 设置8位并口为输入 */
; 	PORTC=CH375_CS; //设置CS,WR,RD默认为高电平 0x08为3310引脚*/
; 	DDRC =CH375_CS|CH375_A0;  /* 设置CS,WR,RD,A0为输出,设置INT#为输入 */
; 	PORTG = CH375_WR|CH375_RD;
; 	DDRG  = CH375_WR|CH375_RD;
; 	#endif
; 	
; 	DDRD &= ~(CH375_INT);
	cbi 0x11,1
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e xWriteCH375Cmd _xWriteCH375Cmd fV
;           mCmd -> R16
	.even
_xWriteCH375Cmd::
	.dbline -1
	.dbline 46
; }
; 
; void xWriteCH375Cmd( UINT8 mCmd )		/* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */
; {
	.dbline 48
; 	#ifdef USED_BUS
; 	*(volatile unsigned char *)CH375_CMD_PORT_ADDR = mCmd; /*通过并口直接读写CH375而非普通I/O模拟 */
	sts 65024,R16
	.dbline 49
; 	NOP();  /* 至少延时1uS */
	nop
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbsym r mCmd 16 c
	.dbend
	.dbfunc e xWriteCH375Data _xWriteCH375Data fV
;          mData -> R16
	.even
_xWriteCH375Data::
	.dbline -1
	.dbline 66
; 	#else
; 	PORTC |=CH375_A0;// 0x08;  /* 输出A0=1 */
; 	PORTA = mCmd;  /* 向CH375的并口输出数据 */
; 	DDRA = 0xFF;  /* 并口D0-D7输出 */
; 	PORTC &=~(CH375_CS);// 0xF9;  /* 输出有效写控制信号, 写CH375芯片的命令端口, A0=1; CS=0; WR=0; RD=1; */
; 	PORTG &=~(CH375_WR);
; 	DDRA = 0xFF;  /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
; 	PORTC |= CH375_CS;// 0x07;  /* 输出无效的控制信号, 完成操作CH375芯片, A0=1; CS=1; WR=1; RD=1; */
; 	PORTG |= CH375_WR|CH375_RD;
; 	DDRA = 0x00;  /* 禁止数据输出 */
; 	PORTC &= ~(CH375_A0);  /* 输出A0=0; 可选操作 */
; 	NOP();//mDelay1uS( ); mDelay1uS( );  /* 至少延时2uS */
; 	#endif
; }
; 
; void xWriteCH375Data( UINT8 mData )		/* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */
; {
	.dbline 68
;  	#ifdef USED_BUS
;     *(volatile unsigned char *)CH375_DAT_PORT_ADDR = mData; /* 通过并口直接读写CH375而非普通I/O模拟 */
	sts 64512,R16
	.dbline 69
; 	NOP();  /* 至少延时1uS */
	nop
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbsym r mData 16 c
	.dbend
	.dbfunc e xReadCH375Data _xReadCH375Data fc
;          mData -> R16
	.even
_xReadCH375Data::
	.dbline -1
	.dbline 84
; 	#else
; 	PORTA = mData;  /* 向CH375的并口输出数据 */
; 	DDRA = 0xFF;  /* 并口D0-D7输出 */
; 	PORTC &= ~(CH375_A0|CH375_CS);//0xF1;  /* 输出有效写控制信号, 写CH375芯片的数据端口, A0=0; CS=0; WR=0; RD=1; */
; 	PORTG &= ~(CH375_WR);
; 	DDRA = 0xFF;  /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
; 	PORTC |= CH375_CS;//0x07;  /* 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */
; 	PORTG |= CH375_RD|CH375_WR;
; 	DDRA = 0x00;  /* 禁止数据输出 */
; 	NOP();//mDelay1uS( );  /* 至少延时1.2uS */
; 	#endif
; }
; 
; UINT8 xReadCH375Data( void )			/* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */
; {
	.dbline 87
; 	UINT8	mData;
; 	#ifdef USED_BUS
; 	NOP();  /* 至少延时1uS */
	nop
	.dbline 88
; 	mData = *(volatile unsigned char *)CH375_DAT_PORT_ADDR;  /*通过并口直接读写CH375而非普通I/O模拟 */
	lds R16,64512
	.dbline 89
; 	return( mData );
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbsym r mData 16 c
	.dbend
	.area data(ram, con, rel)
	.dbfile E:\software\MP3程序\Ch375b\375interface.c
L2:
	.blkb 34
	.area idata
	.byte 'I,'n,'i,'t,32,'C,'H,51,55,53,32,'u,'s,'e,'d,32
	.byte 'E,'x,'t,'e,'r,'n,'a,'l,32,'b,'u,'s,46,46,46,13
	.byte 10,0
	.area data(ram, con, rel)
	.dbfile E:\software\MP3程序\Ch375b\375interface.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -