📄 lcd_hg1286.s
字号:
.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 + -