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

📄 lcd_hg1286.s

📁 基于ATmega8开发的关于医疗康复的机器人
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbline 163
; }
; /**************************动作界面*******************
; *函    数:page2
; *函数功能:显示动作名称
; *入口参数:无
; *返 回 值:无
; *备    注:
; ****************************************************/
; void page2(void)
; {
	.dbline 164
;  	clr();        		//清屏
	rcall _clr
	.dbline 165
;  	dis(1,6,Par1);		//各行显示对应动作参数
	ldi R24,<_Par1
	ldi R25,>_Par1
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R16,1
	rcall _dis
	.dbline 166
;  	dis(2,6,Par2);
	ldi R24,<_Par2
	ldi R25,>_Par2
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R16,2
	rcall _dis
	.dbline 167
;  	dis(3,6,Par3);
	ldi R24,<_Par3
	ldi R25,>_Par3
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R16,3
	rcall _dis
	.dbline 168
;  	dis(4,6,Par4);
	ldi R24,<_Par4
	ldi R25,>_Par4
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R16,4
	rcall _dis
	.dbline -2
L34:
	.dbline 0 ; func end
	adiw R28,2
	ret
	.dbend
	.dbfunc e page3 _page3 fV
	.even
_page3::
	sbiw R28,2
	.dbline -1
	.dbline 178
; }	
; /*********************参数值界面*********************
; *函    数:page3
; *函数功能:显示动作、百分比、时间量
; *入口参数:无
; *返 回 值:无
; *备    注:
; ****************************************************/
; void page3(void)
; {
	.dbline 179
;  	lcd_dis(1,0x3,(name+temp*8));		//显示动作
	ldi R24,<_name
	ldi R25,>_name
	lds R2,_temp
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,3
	ldi R16,1
	rcall _lcd_dis
	.dbline 180
;  	lcd_dis(1,0x4,(name+temp*8+2));
	ldi R24,<_name+2
	ldi R25,>_name+2
	lds R2,_temp
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R16,1
	rcall _lcd_dis
	.dbline 181
;  	lcd_dis(1,0x5,(name+temp*8+4));
	ldi R24,<_name+4
	ldi R25,>_name+4
	lds R2,_temp
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,5
	ldi R16,1
	rcall _lcd_dis
	.dbline 182
;  	lcd_dis(1,0x6,(name+temp*8+6));
	ldi R24,<_name+6
	ldi R25,>_name+6
	lds R2,_temp
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,6
	ldi R16,1
	rcall _lcd_dis
	.dbline 183
;  	lcd_dis(2,0x3,(shu+temp1*4));		//显示幅度
	ldi R24,<_shu
	ldi R25,>_shu
	lds R2,_temp1
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,3
	ldi R16,2
	rcall _lcd_dis
	.dbline 184
;  	lcd_dis(2,0x4,(shu+temp1*4+2));
	ldi R24,<_shu+2
	ldi R25,>_shu+2
	lds R2,_temp1
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R16,2
	rcall _lcd_dis
	.dbline 185
;  	lcd_dis(3,0x3,(Minutes+temp2*6));	//显示时间
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes
	ldi R25,>_Minutes
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,3
	ldi R16,3
	rcall _lcd_dis
	.dbline 186
;  	lcd_dis(3,0x4,(Minutes+temp2*6+2));	
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes+2
	ldi R25,>_Minutes+2
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R16,3
	rcall _lcd_dis
	.dbline 187
;  	lcd_dis(3,0x5,(Minutes+temp2*6+4)); 
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes+4
	ldi R25,>_Minutes+4
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,5
	ldi R16,3
	rcall _lcd_dis
	.dbline 188
;  	lcd_dis(4,0x3,(shu+temp3*4));		//显示力量
	ldi R24,<_shu
	ldi R25,>_shu
	lds R2,_temp3
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,3
	ldi R16,4
	rcall _lcd_dis
	.dbline 189
;  	lcd_dis(4,0x4,(shu+temp3*4+2));
	ldi R24,<_shu+2
	ldi R25,>_shu+2
	lds R2,_temp3
	clr R3
	lsl R2
	rol R3
	lsl R2
	rol R3
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R16,4
	rcall _lcd_dis
	.dbline 190
;  	K_Symbol();       					//键盘符号显示
	rcall _K_Symbol
	.dbline -2
L35:
	.dbline 0 ; func end
	adiw R28,2
	ret
	.dbend
	.dbfunc e page4 _page4 fV
	.even
_page4::
	sbiw R28,2
	.dbline -1
	.dbline 200
; }
; /********************时间到后显示界面***************
; *函    数:page4
; *函数功能:显示时间到界面
; *入口参数:无
; *返 回 值:无
; *备    注:
; ****************************************************/
; void page4(void)
; { 
	.dbline 201
;  	clr();								//清屏
	rcall _clr
	.dbline 202
;  	dis(2,15,Welcome);					//显示欢迎
	ldi R24,<_Welcome
	ldi R25,>_Welcome
	std y+1,R25
	std y+0,R24
	ldi R18,15
	ldi R16,2
	rcall _dis
	.dbline 203
;  	lcd_dis(3,0x2,(Minutes+temp2*6));	
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes
	ldi R25,>_Minutes
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,2
	ldi R16,3
	rcall _lcd_dis
	.dbline 204
;  	lcd_dis(3,0x3,(Minutes+temp2*6+2));
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes+2
	ldi R25,>_Minutes+2
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,3
	ldi R16,3
	rcall _lcd_dis
	.dbline 205
;  	lcd_dis(3,0x4,(Minutes+temp2*6+4));
	lds R2,_temp2
	ldi R24,6
	mul R24,R2
	movw R2,R0
	ldi R24,<_Minutes+4
	ldi R25,>_Minutes+4
	add R2,R24
	adc R3,R25
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R16,3
	rcall _lcd_dis
	.dbline 206
;  	lcd_dis(3,0x5,dao);					//显示“到!”
	ldi R24,<_dao
	ldi R25,>_dao
	std y+1,R25
	std y+0,R24
	ldi R18,5
	ldi R16,3
	rcall _lcd_dis
	.dbline 207
;  	lcd_dis(3,0x6,(dao+2));	
	ldi R24,<_dao+2
	ldi R25,>_dao+2
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R16,3
	rcall _lcd_dis
	.dbline -2
L43:
	.dbline 0 ; func end
	adiw R28,2
	ret
	.dbend
	.dbfunc e delay_1us _delay_1us fV
	.even
_delay_1us::
	.dbline -1
	.dbline 217
; }	
; /********************延时函数***************
; *函    数:dalay
; *函数功能:软件延时
; *入口参数:无
; *返 回 值:无
; *备    注:
; ****************************************************/ 
; void delay_1us(void)                 	//1us延时函数
; {
	.dbline 218
;   	asm("nop");
	nop
	.dbline -2
L47:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_nus _delay_nus fV
;              i -> R20,R21
;              n -> R10,R11
	.even
_delay_nus::
	rcall push_xgset300C
	movw R10,R16
	.dbline -1
	.dbline 222
; }
; 
; void delay_nus(unsigned int n)       	//N us延时函数
; {
	.dbline 223
;   	unsigned int i=0;
	clr R20
	clr R21
	.dbline 224
;   	for (i=0;i<n;i++);
	rjmp L52
L49:
	.dbline 224
L50:
	.dbline 224
	subi R20,255  ; offset = 1
	sbci R21,255
L52:
	.dbline 224
	cp R20,R10
	cpc R21,R11
	brlo L49
X10:
	.dbline 225
;   		delay_1us();
	rcall _delay_1us
	.dbline -2
L48:
	.dbline 0 ; func end
	rjmp pop_xgset300C
	.dbsym r i 20 i
	.dbsym r n 10 i
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 228
; }
; void delay_1ms(void)                 	//1ms延时函数
; {
	.dbline 230
;   	unsigned int i;
;   	for (i=0;i<1140;i++);
	clr R16
	clr R17
	rjmp L57
L54:
	.dbline 230
L55:
	.dbline 230
	subi R16,255  ; offset = 1
	sbci R17,255
L57:
	.dbline 230
	cpi R16,116
	ldi R30,4
	cpc R17,R30
	brlo L54
X11:
	.dbline -2
L53:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_nms _delay_nms fV
;              i -> R20,R21
;              n -> R10,R11
	.even
_delay_nms::
	rcall push_xgset300C
	movw R10,R16
	.dbline -1
	.dbline 233
; }
; void delay_nms(unsigned int n)       	//N ms延时函数
; {
	.dbline 234
;   	unsigned int i=0;
	clr R20
	clr R21
	.dbline 235
;   	for (i=0;i<n;i++)
	rjmp L62
L59:
	.dbline 236
;   	delay_1ms();
	rcall _delay_1ms
L60:
	.dbline 235
	subi R20,255  ; offset = 1
	sbci R21,255
L62:
	.dbline 235
	cp R20,R10
	cpc R21,R11
	brlo L59
X12:
	.dbline -2
L58:
	.dbline 0 ; func end
	rjmp pop_xgset300C
	.dbsym r i 20 i
	.dbsym r n 10 i
	.dbend
	.dbfunc e display _display fV
	.even
_display::
	st -y,R20
	st -y,R21
	.dbline -1
	.dbline 240
; }  
;  
; void display(void)
; {
	.dbline 241
;   	switch(page){
	lds R20,_page
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L67
X13:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L68
X14:
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L69
X15:
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	breq L70
X16:
	rjmp L65
L67:
	.dbline 242
;       	case 0:	page0();flag=1;page=1;break;	//欢迎界面
	rcall _page0
	.dbline 242
	ldi R24,1
	sts _flag,R24
	.dbline 242
	sts _page,R24
	.dbline 242
	rjmp L65
L68:
	.dbline 243
; 	   	case 1:	page1();flag=0;		  break;	//参数设置页面
	rcall _page1
	.dbline 243
	clr R2
	sts _flag,R2
	.dbline 243
	rjmp L65
L69:
	.dbline 244
; 	   	case 2:	page2();flag=0;		  break;	//开始界面
	rcall _page2
	.dbline 244
	clr R2
	sts _flag,R2
	.dbline 244
	rjmp L65
L70:
	.dbline 245
; 	   	case 3:	page3();flag=0;       break;	//结束界面
	rcall _page3
	.dbline 245
	clr R2
	sts _flag,R2
	.dbline 245
	.dbline 246
;       	default:break;
L65:
	.dbline -2
L63:
	.dbline 0 ; func end
	ld R21,y+
	ld R20,y+
	ret
	.dbend
; 	}	
; }

⌨️ 快捷键说明

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