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

📄 12232.s

📁 AVR单片机做的MP3
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module _12232.c
	.area text(rom, con, rel)
	.dbfile D:\ICCFIL~1\五键MP3ICC\12232.c
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 10
; #include <iom16v.h> 
; #include <macros.h> 
; #include<12232.h>
; #include<main.h>
; #include<fat16.h>
; uint16 zikustart;
; extern BPB_SecPerClus;
; extern BUFFER[512];
; void delay_1ms(void) 
; { 
	.dbline 12
	clr R16
	clr R17
	rjmp L8
L5:
	.dbline 12
L6:
	.dbline 12
	subi R16,255  ; offset = 1
	sbci R17,255
L8:
	.dbline 12
;    unsigned int i; 
;    for(i=0;i<1142;i++); 
	cpi R16,118
	ldi R30,4
	cpc R17,R30
	brlo L5
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_10us _delay_10us fV
;              i -> R16
	.even
_delay_10us::
	.dbline -1
	.dbline 16
; } 
; 
; void delay_10us(void) 
; { 
	.dbline 18
	clr R16
	rjmp L13
L10:
	.dbline 18
L11:
	.dbline 18
	inc R16
L13:
	.dbline 18
;    unsigned char i; 
;    for(i=0;i<10;i++); 
	cpi R16,10
	brlo L10
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e delay _delay fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 22
; } 
; 
; void delay(unsigned int n) 
; { 
	.dbline 24
	clr R20
	clr R21
	rjmp L18
L15:
	.dbline 24
	rcall _delay_1ms
L16:
	.dbline 24
	subi R20,255  ; offset = 1
	sbci R21,255
L18:
	.dbline 24
;    unsigned int i; 
;    for(i=0;i<n;i++)delay_1ms(); 
	cp R20,R22
	cpc R21,R23
	brlo L15
	.dbline -2
L14:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e OUTMD _OUTMD fV
;              i -> R20
	.even
_OUTMD::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 27
; } 
; void OUTMD(unsigned char i) 
; { 
	.dbline 28
;     delay_10us(); 
	rcall _delay_10us
	.dbline 29
;    lcd_control_port = 0xff; 
	ldi R24,255
	out 0x1b,R24
	.dbline 30
;    lcd_control_port &= ~RW; 
	cbi 0x1b,1
	.dbline 31
;     delay_10us(); 
	rcall _delay_10us
	.dbline 32
;    lcd_control_port |= A0;    
	sbi 0x1b,0
	.dbline 33
;     delay_10us(); 
	rcall _delay_10us
	.dbline 34
;    DATA=i; 
	out 0x12,R20
	.dbline 35
;     delay_10us(); 
	rcall _delay_10us
	.dbline 36
;    lcd_control_port &= ~E1; 
	cbi 0x1b,3
	.dbline -2
L19:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e OUTMI _OUTMI fV
;              i -> R20
	.even
_OUTMI::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 41
;     
; } 
; 
; void OUTMI(unsigned char i) 
; { 
	.dbline 42
;     delay_10us(); 
	rcall _delay_10us
	.dbline 43
;    lcd_control_port = 0xff; 
	ldi R24,255
	out 0x1b,R24
	.dbline 44
;    lcd_control_port &= ~RW; 
	cbi 0x1b,1
	.dbline 45
;     delay_10us(); 
	rcall _delay_10us
	.dbline 46
;    lcd_control_port &= ~A0;    
	cbi 0x1b,0
	.dbline 47
;     delay_10us();
	rcall _delay_10us
	.dbline 48
;    DATA=i; 
	out 0x12,R20
	.dbline 49
;     delay_10us(); 
	rcall _delay_10us
	.dbline 50
;    lcd_control_port &= ~E1;
	cbi 0x1b,3
	.dbline -2
L20:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e OUTSD _OUTSD fV
;              i -> R20
	.even
_OUTSD::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 55
;     
; } 
; 
; void OUTSD(unsigned char i) 
; { 
	.dbline 56
;     delay_10us(); 
	rcall _delay_10us
	.dbline 57
;    lcd_control_port = 0xff; 
	ldi R24,255
	out 0x1b,R24
	.dbline 58
;    lcd_control_port &= ~RW; 
	cbi 0x1b,1
	.dbline 59
;     delay_10us(); 
	rcall _delay_10us
	.dbline 60
;    lcd_control_port |= A0;    
	sbi 0x1b,0
	.dbline 61
;     delay_10us(); 
	rcall _delay_10us
	.dbline 62
;    DATA=i; 
	out 0x12,R20
	.dbline 63
;     delay_10us(); 
	rcall _delay_10us
	.dbline 64
;    lcd_control_port &=~E2; 
	cbi 0x1b,2
	.dbline -2
L21:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e OUTSI _OUTSI fV
;              i -> R20
	.even
_OUTSI::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 69
; 
; } 
; 
; void OUTSI(unsigned char i) 
; { 
	.dbline 70
;     delay_10us(); 
	rcall _delay_10us
	.dbline 71
;    lcd_control_port = 0xff; 
	ldi R24,255
	out 0x1b,R24
	.dbline 72
;    lcd_control_port &= ~RW; 
	cbi 0x1b,1
	.dbline 73
;     delay_10us(); 
	rcall _delay_10us
	.dbline 74
;    lcd_control_port &= ~A0;    
	cbi 0x1b,0
	.dbline 75
;     delay_10us(); 
	rcall _delay_10us
	.dbline 76
;    DATA=i; 
	out 0x12,R20
	.dbline 77
;     delay_10us(); 
	rcall _delay_10us
	.dbline 78
;    lcd_control_port &=~E2; 
	cbi 0x1b,2
	.dbline -2
L22:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e lcdini _lcdini fV
	.even
_lcdini::
	.dbline -1
	.dbline 83
;     
; } 
; 
; void lcdini(void) 
; { 
	.dbline 84
;   DATA=0xff; 
	ldi R24,255
	out 0x12,R24
	.dbline 85
;   lcd_data_ddr|=0xff; 
	in R24,0x11
	ori R24,255
	out 0x11,R24
	.dbline 86
;   lcd_control_port|=0xff; 
	in R24,0x1b
	ori R24,255
	out 0x1b,R24
	.dbline 87
;   lcd_control_ddr=0x0f;
	ldi R24,15
	out 0x1a,R24
	.dbline 88
;   lcd_light_ddr|=0x02;
	sbi 0x14,1
	.dbline 89
;    OUTMI(0XAE);  
	ldi R16,174
	rcall _OUTMI
	.dbline 90
;    OUTMI(0XC0); 
	ldi R16,192
	rcall _OUTMI
	.dbline 91
;    OUTMI(0XA0); 
	ldi R16,160
	rcall _OUTMI
	.dbline 92
;    OUTMI(0XA4); 
	ldi R16,164
	rcall _OUTMI
	.dbline 93
;    OUTMI(0XA9);
	ldi R16,169
	rcall _OUTMI
	.dbline 94
;    OUTMI(0XAF);
	ldi R16,175
	rcall _OUTMI
	.dbline 96
;    
;    OUTSI(0XAE); 
	ldi R16,174
	rcall _OUTSI
	.dbline 97
;    OUTSI(0XC0);
	ldi R16,192
	rcall _OUTSI
	.dbline 98
;    OUTSI(0XA0);
	ldi R16,160
	rcall _OUTSI
	.dbline 99
;    OUTSI(0XA4); 
	ldi R16,164
	rcall _OUTSI
	.dbline 100
;    OUTSI(0XA9);  
	ldi R16,169
	rcall _OUTSI
	.dbline 101
;    OUTSI(0XAF);    
	ldi R16,175
	rcall _OUTSI
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SetPage _SetPage fV
;          page1 -> R20
;          page0 -> R22
	.even
_SetPage::
	rcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 106
; } 
; 
; 
; void SetPage(uint8 page0,uint8 page1) 
; { 
	.dbline 107
; OUTMI(0xB8|page0); 
	mov R16,R22
	ori R16,184
	rcall _OUTMI
	.dbline 108
; OUTSI(0xB8|page1); 
	mov R16,R20
	ori R16,184
	rcall _OUTSI
	.dbline -2
L24:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r page1 20 c
	.dbsym r page0 22 c
	.dbend
	.dbfunc e SetAddress _SetAddress fV
;       address1 -> R20
;       address0 -> R22
	.even
_SetAddress::
	rcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 112
; } 
; 
; void SetAddress(uint8 address0,uint8 address1) 
; { 
	.dbline 113
; OUTMI(address0); 
	mov R16,R22
	rcall _OUTMI
	.dbline 114
; OUTSI(address1); 
	mov R16,R20
	rcall _OUTSI
	.dbline -2
L25:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r address1 20 c
	.dbsym r address0 22 c
	.dbend
	.dbfunc e PutCharR _PutCharR fV
;             ch -> R20
	.even
_PutCharR::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 118
; } 
; 
; void PutCharR(uint8 ch) 
; { 
	.dbline 119
; OUTSD(ch); 
	mov R16,R20
	rcall _OUTSD
	.dbline -2
L26:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r ch 20 c
	.dbend
	.dbfunc e PutCharL _PutCharL fV
;             ch -> R20
	.even
_PutCharL::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 123
; } 
; 
; void PutCharL(uint8 ch) 
; { 
	.dbline 124
; OUTMD(ch); 
	mov R16,R20
	rcall _OUTMD
	.dbline -2
L27:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r ch 20 c
	.dbend
	.dbfunc e clrscr _clrscr fV

⌨️ 快捷键说明

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