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

📄 main.s

📁 meg16 的所有功能实例
💻 S
📖 第 1 页 / 共 3 页
字号:
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 254,255
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 255,63
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 15,15
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 127,255
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 255,255
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 255,231
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 7,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 1,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 2,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,31
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 63,31
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 7,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,2
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 1,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,3
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 3,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.dbsym e AVR_bmp _AVR_bmp A[144:144]c
	.area text(rom, con, rel)
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110/5110.h
	.dbfile D:\(H-drive)\程序范例\Mega16例程\19.LCD5110\main.c
	.dbfunc e Delay_us _Delay_us fV
;           time -> R16,R17
	.even
_Delay_us::
	.dbline -1
	.dbline 8
; #include <iom16v.h>
; #include <MACROS.h>
; #include "Define.h"
; #include "5110.h"
; 
; /******************************************************************************/
; void Delay_us(unsigned int time)
; {
L2:
	.dbline 9
L3:
	.dbline 9
; while(time--);
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r time 16 i
	.dbend
	.dbfunc e Delay_ms _Delay_ms fV
;           time -> R20,R21
	.even
_Delay_ms::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 13
; }
; 
; void Delay_ms(unsigned int time)
; {
	xjmp L7
L6:
	.dbline 15
	.dbline 16
	ldi R16,1000
	ldi R17,3
	xcall _Delay_us
	.dbline 17
L7:
	.dbline 14
; while(time--)
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L6
	tst R3
	brne L6
X1:
	.dbline -2
L5:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r time 20 i
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	sbiw R28,7
	.dbline -1
	.dbline 21
; 	{
; 	Delay_us(1000);
; 	}
; }
; 
; void main(void) 
; {
	.dbline 22
; 	LCD_init();//初始化液晶    
	xcall _LCD_init
	.dbline 23
; 	LCD_clear();
	xcall _LCD_clear
	.dbline 25
; 	
; 	SETBIT(DDRC,BACKLED_EN);   			//配置背光控制端口										
	sbi 0x14,7
	.dbline 26
; 	CLEARBIT(PORTC,BACKLED_EN);			//使能背光
	cbi 0x15,7
	xjmp L11
L10:
	.dbline 29
	.dbline 30
	xcall _LCD_clear
	.dbline 31
	ldi R24,<L13
	ldi R25,>L13
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_write_english_string
	.dbline 32
	ldi R24,<L14
	ldi R25,>L14
	std y+1,R25
	std y+0,R24
	ldi R18,5
	clr R16
	xcall _LCD_write_english_string
	.dbline 33
	ldi R24,<L15
	ldi R25,>L15
	std y+1,R25
	std y+0,R24
	ldi R18,5
	ldi R16,21
	xcall _LCD_write_english_string
	.dbline 34
	ldi R24,<L16
	ldi R25,>L16
	std y+1,R25
	std y+0,R24
	ldi R18,5
	ldi R16,66
	xcall _LCD_write_english_string
	.dbline 35
	clr R2
	std y+6,R2
	std y+4,R2
	ldi R24,7
	std y+2,R24
	ldi R24,12
	std y+0,R24
	ldi R18,3
	clr R16
	xcall _LCD_write_chinese_string
	.dbline 37
	ldi R16,5000
	ldi R17,19
	xcall _Delay_ms
	.dbline 38
	xcall _LCD_clear
	.dbline 39
	ldi R24,24
	std y+4,R24
	ldi R24,48
	std y+2,R24
	ldi R24,<_AVR_bmp
	ldi R25,>_AVR_bmp
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	xcall _LCD_draw_bmp_pixel
	.dbline 40
	ldi R16,2000
	ldi R17,7
	xcall _Delay_ms
	.dbline 41
L11:
	.dbline 28
	xjmp L10
X2:
	.dbline -2
L9:
	adiw R28,7
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e LCD_init _LCD_init fV
	.even
_LCD_init::
	.dbline -1
	.dbline 48
; 	
; 	while(1)  
; 	{	
; 		LCD_clear();
; 		LCD_write_english_string(0,0,"---ADEmbed----");
; 		LCD_write_english_string(0,5,"www.");
; 		LCD_write_english_string(21,5,"adembed.");
; 		LCD_write_english_string(66,5,"com");
; 		LCD_write_chinese_string(0,3,12,7,0,0);
; 		
; 		Delay_ms(5000);
; 		LCD_clear();
; 		LCD_draw_bmp_pixel(0,0,AVR_bmp,48,24);
; 		Delay_ms(2000);
; 	}	
; 	  
; }
; 
; 
; /********************************************************************************************************************/ 
; void LCD_init(void)
; {
	.dbline 50
; 	//先设置为输出
;     SETBIT(LCD_DIR,SCLK);
	sbi 0x17,7
	.dbline 51
;     SETBIT(LCD_DIR,SDIN);
	sbi 0x17,5
	.dbline 52
;     SETBIT(LCD_DIR,LCD_DC);
	sbi 0x17,6
	.dbline 53
;     SETBIT(LCD_DIR,LCD_CE);
	sbi 0x17,4
	.dbline 63
;     //SETBIT(LCD_DIR,LCD_RST);
; 	  
;     // 产生一个让LCD复位的低电平脉冲
;     
; 	//CLEARBIT(LCD_PORT,LCD_RST);//LCD_RST = 0;
;     //delay_1us();
; 	//SETBIT(LCD_PORT,LCD_RST);//LCD_RST = 1;
;     
; 	// 关闭LCD
; 	CLEARBIT(LCD_PORT,LCD_CE);//LCD_CE = 0;
	cbi 0x18,4
	.dbline 64
;     delay_1us();
	xcall _delay_1us
	.dbline 67
; 	
; 	// 使能LCD
; 	SETBIT(LCD_PORT,LCD_CE);//LCD_CE = 1;
	sbi 0x18,4
	.dbline 68
;     delay_1us();
	xcall _delay_1us
	.dbline 70
; 
;     LCD_write_byte(0x21, 0);	// 使用扩展命令设置LCD模式
	clr R18
	ldi R16,33
	xcall _LCD_write_byte
	.dbline 71
;     LCD_write_byte(0xc8, 0);	// 设置偏置电压
	clr R18
	ldi R16,200
	xcall _LCD_write_byte
	.dbline 72
;     LCD_write_byte(0x06, 0);	// 温度校正
	clr R18
	ldi R16,6
	xcall _LCD_write_byte
	.dbline 73
;     LCD_write_byte(0x13, 0);	// 1:48
	clr R18
	ldi R16,19
	xcall _LCD_write_byte
	.dbline 74
;     LCD_write_byte(0x20, 0);	// 使用基本命令
	clr R18
	ldi R16,32
	xcall _LCD_write_byte
	.dbline 75
;     LCD_clear();	            // 清屏
	xcall _LCD_clear
	.dbline 76
;     LCD_write_byte(0x0c, 0);	// 设定显示模式,正常显示
	clr R18
	ldi R16,12
	xcall _LCD_write_byte
	.dbline 79
;         
;     // 关闭LCD
;     CLEARBIT(LCD_PORT,LCD_CE);//LCD_CE = 0;
	cbi 0x18,4
	.dbline -2
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e LCD_clear _LCD_clear fV
;              i -> R20,R21
	.even
_LCD_clear::
	xcall push_gset1
	.dbline -1
	.dbline 83
; }
; /********************************************************************************************************************/
; void LCD_clear(void)
; {
	.dbline 86
;     unsigned int i;
; 
;     LCD_write_byte(0x0c, 0);			
	clr R18
	ldi R16,12
	xcall _LCD_write_byte
	.dbline 87
;     LCD_write_byte(0x80, 0);			
	clr R18
	ldi R16,128
	xcall _LCD_write_byte
	.dbline 89
; 
;     for (i=0; i<504; i++)
	clr R20
	clr R21
	xjmp L22
L19:
	.dbline 90
	.dbline 91
	ldi R18,1
	clr R16
	xcall _LCD_write_byte
	.dbline 92
L20:
	.dbline 89
	subi R20,255  ; offset = 1
	sbci R21,255
L22:
	.dbline 89
	cpi R20,248
	ldi R30,1
	cpc R21,R30
	brlo L19
	.dbline -2
L18:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e delay_1us _delay_1us fV
;              i -> R16,R17
	.even
_delay_1us::
	.dbline -1
	.dbline 96
; 	{
;         LCD_write_byte(0, 1);
; 	}			
; }
; /********************************************************************************************************************/
; void delay_1us(void)                 //1us延时函数
; {
	.dbline 98
	clr R16
	clr R17
	xjmp L27
L24:
	.dbline 98
L25:
	.dbline 98
	subi R16,255  ; offset = 1
	sbci R17,255
L27:
	.dbline 98
;    unsigned int i;
;    for(i=0;i<12000;i++);
	cpi R16,224
	ldi R30,46
	cpc R17,R30
	brlo L24
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e LCD_set_XY _LCD_set_XY fV
;              Y -> R22
;              X -> R20
	.even
_LCD_set_XY::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 102
; }
; /********************************************************************************************************************/
; void LCD_set_XY(unsigned char X, unsigned char Y)
; {
	.dbline 103
;     LCD_write_byte(0x40 | Y, 0);// column
	clr R18
	mov R16,R22
	ori R16,64
	xcall _LCD_write_byte
	.dbline 104
;     LCD_write_byte(0x80 | X, 0);// row
	clr R18
	mov R16,R20
	ori R16,128
	xcall _LCD_write_byte
	.dbline -2

⌨️ 快捷键说明

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