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

📄 oled.s

📁 nRF24L01详细编程资料
💻 S
字号:
	.module OLED.c
	.area text(rom, con, rel)
	.dbfile D:\OLED\OLED.c
	.dbfunc e InitOLED _InitOLED fV
	.even
_InitOLED::
	.dbline -1
	.dbline 20
; //ICC-AVR application builder : 2006-02-12 14:00:00
; // Target : ATmega48
; // Crystal: 8.000Mhz
; // Author:  jackyan
; 
; 
; #include "iom48v.h"
; #include "macros.h"
; #include "Defs.h"
; #include "OLED.h"
; #include "var.h"
; #include "eeprom.h"
; 
; extern void I2C_Write(unsigned char M_ADD, unsigned char Data);
; extern unsigned char I2C_Read(unsigned char M_ADD);
; 
; 
; 
; void InitOLED(void)
; {
	.dbline 21
; 	WriteMode();
	rcall _WriteMode
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e WriteOLED _WriteOLED fV
;          temp2 -> R20
;           temp -> R22
;            val -> R10
;        address -> R12
	.even
_WriteOLED::
	rcall push_gset4
	mov R10,R18
	mov R12,R16
	.dbline -1
	.dbline 25
; }
; 
; void WriteOLED(ubyte address,ubyte val)
; {
	.dbline 26
; 	ubyte temp=0;
	clr R22
	.dbline 27
; 	ubyte temp2=20;
	ldi R20,20
	rjmp L4
L3:
	.dbline 29
; 	while(temp2!=0)
; 		{
	.dbline 30
; 		I2C_Write(address,val);
	mov R18,R10
	mov R16,R12
	rcall _I2C_Write
	.dbline 31
; 		temp=ReadOLED(address);
	mov R16,R12
	rcall _ReadOLED
	mov R22,R16
	.dbline 32
; 		if(temp!=val)
	cp R16,R10
	breq L5
	.dbline 33
; 			{
	.dbline 34
; 			temp2--;
	dec R20
	.dbline 35
; 			WDR();
	wdr
	.dbline 36
; 			for(temp=0;temp<100;temp++)
	clr R22
	rjmp L11
L8:
	.dbline 37
L9:
	.dbline 36
	inc R22
L11:
	.dbline 36
	cpi R22,100
	brlo L8
	.dbline 38
; 				;
; 			}
	.dbline 40
; 		else
; 			break;
L7:
	.dbline 41
L4:
	.dbline 28
	tst R20
	brne L3
L5:
	.dbline 42
; 		}
; 	if (temp2==0)	// 连续10次都没有成功
	tst R20
	brne L12
	.dbline 43
	.dbline 43
	lds R24,_Flag
	ori R24,2
	sts _Flag,R24
	.dbline 43
L12:
	.dbline 43
; 		set(Flag,bitOledError);	
	.dbline -2
L2:
	rcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r temp2 20 c
	.dbsym r temp 22 c
	.dbsym r val 10 c
	.dbsym r address 12 c
	.dbend
	.dbfunc e ReadOLED _ReadOLED fc
;           temp -> R20
;        address -> R20
	.even
_ReadOLED::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 47
; }
; 
; ubyte ReadOLED(ubyte address)
; {
	.dbline 49
; 	ubyte temp;
; 	temp=I2C_Read(address);
	mov R16,R20
	rcall _I2C_Read
	mov R20,R16
	.dbline 50
; 	return temp;
	.dbline -2
L14:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbsym r address 20 c
	.dbend
	.dbfunc e WriteMode _WriteMode fV
;           temp -> <dead>
;          temp2 -> R20
	.even
_WriteMode::
	rcall push_gset1
	.dbline -1
	.dbline 54
; }
; 
; void WriteMode(void)
; {
	.dbline 56
; 	ubyte temp,temp2;
; 	temp2=0;
	clr R20
	.dbline 57
; 	clr(Flag,bitOledError);
	.dbline 57
	lds R24,_Flag
	andi R24,253
	sts _Flag,R24
	.dbline 57
	.dbline 57
	.dbline 59
; 	
; 	if (OLEDMode==NTSC)
	lds R24,_OLEDMode
	cpi R24,85
	breq X0
	rjmp L16
X0:
	.dbline 60
; 		{
	.dbline 61
; 		WriteOLED(0x01,0x78);
	ldi R18,120
	ldi R16,1
	rcall _WriteOLED
	.dbline 62
; 		WriteOLED(0x02,0x30);
	ldi R18,48
	ldi R16,2
	rcall _WriteOLED
	.dbline 63
; 		WriteOLED(0x03,0x78);
	ldi R18,120
	ldi R16,3
	rcall _WriteOLED
	.dbline 64
; 		WriteOLED(0x04,0x30);
	ldi R18,48
	ldi R16,4
	rcall _WriteOLED
	.dbline 65
; 		WriteOLED(0x05,0x78);
	ldi R18,120
	ldi R16,5
	rcall _WriteOLED
	.dbline 67
; 		
; 		WriteOLED(0x06,0x30);
	ldi R18,48
	ldi R16,6
	rcall _WriteOLED
	.dbline 68
; 		WriteOLED(0x07,Contrast);
	lds R18,_Contrast
	ldi R16,7
	rcall _WriteOLED
	.dbline 69
; 		WriteOLED(0x08,Bright);
	lds R18,_Bright
	ldi R16,8
	rcall _WriteOLED
	.dbline 70
; 		WriteOLED(0x09,0x12);
	ldi R18,18
	ldi R16,9
	rcall _WriteOLED
	.dbline 71
; 		WriteOLED(0x0a,0x01);
	ldi R18,1
	ldi R16,10
	rcall _WriteOLED
	.dbline 72
; 		WriteOLED(0x0b,0x00);
	clr R18
	ldi R16,11
	rcall _WriteOLED
	.dbline 74
; 
; 		WriteOLED(0x0c,0x02);
	ldi R18,2
	ldi R16,12
	rcall _WriteOLED
	.dbline 75
; 		WriteOLED(0x0d,0x00);
	clr R18
	ldi R16,13
	rcall _WriteOLED
	.dbline 76
; 		WriteOLED(0x0e,0x80);
	ldi R18,128
	ldi R16,14
	rcall _WriteOLED
	.dbline 77
; 		WriteOLED(0x0f,0x0a);
	ldi R18,10
	ldi R16,15
	rcall _WriteOLED
	.dbline 78
; 		WriteOLED(0x10,0x1b);
	ldi R18,27
	ldi R16,16
	rcall _WriteOLED
	.dbline 79
; 		WriteOLED(0x11,0x07);
	ldi R18,7
	ldi R16,17
	rcall _WriteOLED
	.dbline 81
; 
; 		WriteOLED(0x12,0x08);
	ldi R18,8
	ldi R16,18
	rcall _WriteOLED
	.dbline 82
; 		WriteOLED(0x13,0x7b);
	ldi R18,123
	ldi R16,19
	rcall _WriteOLED
	.dbline 83
; 		WriteOLED(0x14,0x0f);
	ldi R18,15
	ldi R16,20
	rcall _WriteOLED
	.dbline 84
; 		WriteOLED(0x15,0xd8);
	ldi R18,216
	ldi R16,21
	rcall _WriteOLED
	.dbline 85
; 		WriteOLED(0x16,0x0c);
	ldi R18,12
	ldi R16,22
	rcall _WriteOLED
	.dbline 86
; 		WriteOLED(0x17,0x01);
	ldi R18,1
	ldi R16,23
	rcall _WriteOLED
	.dbline 88
; 
; 		WriteOLED(0x18,0xc0);
	ldi R18,192
	ldi R16,24
	rcall _WriteOLED
	.dbline 89
; 		WriteOLED(0x19,0x00);
	clr R18
	ldi R16,25
	rcall _WriteOLED
	.dbline 90
; 		WriteOLED(0x1a,0x00);
	clr R18
	ldi R16,26
	rcall _WriteOLED
	.dbline 91
; 		}
	rjmp L17
L16:
	.dbline 93
	.dbline 94
	ldi R18,120
	ldi R16,1
	rcall _WriteOLED
	.dbline 95
	ldi R18,56
	ldi R16,2
	rcall _WriteOLED
	.dbline 96
	ldi R18,120
	ldi R16,3
	rcall _WriteOLED
	.dbline 97
	ldi R18,56
	ldi R16,4
	rcall _WriteOLED
	.dbline 98
	ldi R18,120
	ldi R16,5
	rcall _WriteOLED
	.dbline 100
	ldi R18,56
	ldi R16,6
	rcall _WriteOLED
	.dbline 101
	lds R18,_Contrast
	ldi R16,7
	rcall _WriteOLED
	.dbline 102
	lds R18,_Bright
	ldi R16,8
	rcall _WriteOLED
	.dbline 103
	ldi R18,74
	ldi R16,9
	rcall _WriteOLED
	.dbline 104
	ldi R18,16
	ldi R16,10
	rcall _WriteOLED
	.dbline 105
	clr R18
	ldi R16,11
	rcall _WriteOLED
	.dbline 107
	ldi R18,2
	ldi R16,12
	rcall _WriteOLED
	.dbline 108
	clr R18
	ldi R16,13
	rcall _WriteOLED
	.dbline 109
	ldi R18,128
	ldi R16,14
	rcall _WriteOLED
	.dbline 110
	ldi R18,192
	ldi R16,15
	rcall _WriteOLED
	.dbline 111
	ldi R18,27
	ldi R16,16
	rcall _WriteOLED
	.dbline 112
	ldi R18,7
	ldi R16,17
	rcall _WriteOLED
	.dbline 114
	clr R18
	ldi R16,18
	rcall _WriteOLED
	.dbline 115
	ldi R18,144
	ldi R16,19
	rcall _WriteOLED
	.dbline 116
	ldi R18,15
	ldi R16,20
	rcall _WriteOLED
	.dbline 117
	ldi R18,216
	ldi R16,21
	rcall _WriteOLED
	.dbline 118
	ldi R18,12
	ldi R16,22
	rcall _WriteOLED
	.dbline 119
	ldi R18,1
	ldi R16,23
	rcall _WriteOLED
	.dbline 121
	ldi R18,192
	ldi R16,24
	rcall _WriteOLED
	.dbline 122
	clr R18
	ldi R16,25
	rcall _WriteOLED
	.dbline 123
	ldi R18,192
	ldi R16,26
	rcall _WriteOLED
	.dbline 124
L17:
	.dbline -2
L15:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l temp 1 c
	.dbsym r temp2 20 c
	.dbend
	.dbfunc e WriteBright _WriteBright fV
	.even
_WriteBright::
	.dbline -1
	.dbline 128
; 	else	// if (OLEDMode==Pal)
; 		{
; 		WriteOLED(0x01,0x78);
; 		WriteOLED(0x02,0x38);
; 		WriteOLED(0x03,0x78);
; 		WriteOLED(0x04,0x38);
; 		WriteOLED(0x05,0x78);
; 		
; 		WriteOLED(0x06,0x38);
; 		WriteOLED(0x07,Contrast);
; 		WriteOLED(0x08,Bright);
; 		WriteOLED(0x09,0x4a);
; 		WriteOLED(0x0a,0x10);
; 		WriteOLED(0x0b,0x00);
; 
; 		WriteOLED(0x0c,0x02);
; 		WriteOLED(0x0d,0x00);
; 		WriteOLED(0x0e,0x80);
; 		WriteOLED(0x0f,0xc0);
; 		WriteOLED(0x10,0x1b);
; 		WriteOLED(0x11,0x07);
; 
; 		WriteOLED(0x12,0x00);
; 		WriteOLED(0x13,0x90);
; 		WriteOLED(0x14,0x0f);
; 		WriteOLED(0x15,0xd8);
; 		WriteOLED(0x16,0x0c);
; 		WriteOLED(0x17,0x01);
; 
; 		WriteOLED(0x18,0xc0);
; 		WriteOLED(0x19,0x00);
; 		WriteOLED(0x1a,0xc0);
; 		}
; }
; 
; void WriteBright(void)
; {
	.dbline 130
; //	WriteDA(Bright);
; 	WriteOLED(0x08,Bright);
	lds R18,_Bright
	ldi R16,8
	rcall _WriteOLED
	.dbline -2
L18:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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