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

📄 main.s

📁 ATMEGA128控制4×6矩阵键盘,LCD1602 使用protues软件可仿真 附带图片可观看效果
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
	.dbfunc e Init_Port _Init_Port fV
	.even
_Init_Port::
	.dbline -1
	.dbline 19
; /********************************************************************************************
; *项目名:ATMEGA128控制4×6矩阵键盘,LCD1602
; *项目描述:4×6键盘,通过按键来开启发光二极管,显示液晶1602屏幕
; *硬件条件:1.CPU:ATMEGA128
; 		  2.晶振:1MHz
; *作者:cheungman
; *日期:2007.11.12
; *********************************************************************************************/
; #include "common.h"
; 
; /********************************************************************************************
; * 函数名称:Init_Port()
; * 功    能:I/O口初始化
; * 入口参数:无
; * 出口参数:无
; * 说    明:
; *********************************************************************************************/
; void Init_Port(void)
; {
	.dbline 20
;  	PORTB=0xff;
	ldi R24,255
	out 0x18,R24
	.dbline 21
; 	DDRB=0xff;
	out 0x17,R24
	.dbline 22
; 	PORTD=0xff;
	out 0x12,R24
	.dbline 23
; 	DDRB=0xc0;
	ldi R24,192
	out 0x17,R24
	.dbline 24
; 	PORTF=0xff;
	ldi R24,255
	sts 98,R24
	.dbline 25
; 	DDRF=0xff;
	sts 97,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;          table -> y+2
;           temp -> R20
	.even
_main::
	sbiw R28,7
	.dbline -1
	.dbline 29
; }
; 
; void main(void)
; {
	.dbline 33
; 	unsigned char temp;
; 	//unsigned char *p;
; 	unsigned char table[5];
; 	Init_LCD();
	xcall _Init_LCD
	.dbline 34
; 	Init_Port(); 
	xcall _Init_Port
	.dbline 35
; 	LCD_DisplayString(1,1,"key scan test start");
	ldi R24,<L3
	ldi R25,>L3
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,1
	xcall _LCD_DisplayString
	.dbline 36
; 	delay_nms(200);
	ldi R16,200
	ldi R17,0
	xcall _delay_nms
	.dbline 37
; 	LCD_Clear(); 
	xcall _LCD_Clear
	xjmp L5
L4:
	.dbline 39
; 	while(1)
; 	{
	.dbline 40
; 		LCD_DisplayString(1,1,"The number of key is");
	ldi R24,<L7
	ldi R25,>L7
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,1
	xcall _LCD_DisplayString
	.dbline 41
; 		temp=key_scan();
	xcall _key_scan
	mov R20,R16
	.dbline 42
; 		if(temp==1)
	cpi R16,1
	brne L8
X0:
	.dbline 43
; 		{
	.dbline 44
; 		 	LCD_Clear(); 
	xcall _LCD_Clear
	.dbline 45
; 			LCD_DisplayString(2,1,"zhangwen");
	ldi R24,<L10
	ldi R25,>L10
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,2
	xcall _LCD_DisplayString
	.dbline 46
; 			led(temp);
	mov R16,R20
	xcall _led
	.dbline 47
; 		}
	xjmp L9
L8:
	.dbline 48
; 		else if(temp==2)
	cpi R20,2
	brne L11
X1:
	.dbline 49
; 		{
	.dbline 50
; 		 	 LCD_Clear();
	xcall _LCD_Clear
	.dbline 51
; 			 LCD_DisplayString(2,1,"Creator"); 
	ldi R24,<L13
	ldi R25,>L13
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,2
	xcall _LCD_DisplayString
	.dbline 52
; 			 led(temp); 
	mov R16,R20
	xcall _led
	.dbline 53
; 		}
	xjmp L12
L11:
	.dbline 54
; 		else if(temp==3)
	cpi R20,3
	brne L14
X2:
	.dbline 55
; 		{
	.dbline 56
; 		 	 LCD_Clear();
	xcall _LCD_Clear
	.dbline 57
; 			 table[0]=temp;
	std y+2,R20
	.dbline 58
; 			 table[1]=temp+1;
	mov R24,R20
	subi R24,255    ; addi 1
	std y+3,R24
	.dbline 59
; 			 LCD_DisplayString(2,1,table); 
	movw R24,R28
	adiw R24,2
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,2
	xcall _LCD_DisplayString
	.dbline 60
; 		}
L14:
L12:
L9:
	.dbline 61
; 	}
L5:
	.dbline 38
	xjmp L4
X3:
	.dbline -2
L2:
	.dbline 0 ; func end
	adiw R28,7
	ret
	.dbsym l table 2 A[5:5]c
	.dbsym r temp 20 c
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
L13:
	.blkb 8
	.area idata
	.byte 'C,'r,'e,'a,'t,'o,'r,0
	.area data(ram, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
L10:
	.blkb 9
	.area idata
	.byte 'z,'h,'a,'n,'g,'w,'e,'n,0
	.area data(ram, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
L7:
	.blkb 21
	.area idata
	.byte 'T,'h,'e,32,'n,'u,'m,'b,'e,'r,32,'o,'f,32,'k,'e
	.byte 'y,32,'i,'s,0
	.area data(ram, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
L3:
	.blkb 20
	.area idata
	.byte 'k,'e,'y,32,'s,'c,'a,'n,32,'t,'e,'s,'t,32,'s,'t
	.byte 'a,'r,'t,0
	.area data(ram, con, rel)
	.dbfile D:\ICCAVR~1\模块化~1\src\main.c
; }
; 			
; 			
; 		
;   	

⌨️ 快捷键说明

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