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

📄 lcd_hg1286.lis

📁 基于ATmega8开发的关于医疗康复的机器人
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00CC           ; void lcd_dis(uchar x,uchar y,uchar *datac)
 00CC           ; {
 00CC                   .dbline 90
 00CC           ;       switch (x){                             //判断所要显示行
 00CC BB24              clr R11
 00CE C501              movw R24,R10
 00D0 8130              cpi R24,1
 00D2 E0E0              ldi R30,0
 00D4 9E07              cpc R25,R30
 00D6 69F0              breq L19
 00D8           X5:
 00D8 8230              cpi R24,2
 00DA E0E0              ldi R30,0
 00DC 9E07              cpc R25,R30
 00DE 69F0              breq L20
 00E0           X6:
 00E0 8330              cpi R24,3
 00E2 E0E0              ldi R30,0
 00E4 9E07              cpc R25,R30
 00E6 69F0              breq L21
 00E8           X7:
 00E8 8430              cpi R24,4
 00EA E0E0              ldi R30,0
 00EC 9E07              cpc R25,R30
 00EE 69F0              breq L22
 00F0           X8:
 00F0 0FC0              rjmp L16
 00F2           L19:
 00F2                   .dbline 91
 00F2           ;               case 1: wr_com(0x80+y);break;   //所要显示行和列
 00F2 062F              mov R16,R22
 00F4 0058              subi R16,128    ; addi 128
 00F6 84DF              rcall _wr_com
 00F8                   .dbline 91
 00F8 0BC0              rjmp L17
 00FA           L20:
 00FA                   .dbline 92
 00FA           ;               case 2: wr_com(0x90+y);break;
 00FA 062F              mov R16,R22
 00FC 0057              subi R16,112    ; addi 144
 00FE 80DF              rcall _wr_com
 0100                   .dbline 92
 0100 07C0              rjmp L17
 0102           L21:
 0102                   .dbline 93
 0102           ;               case 3: wr_com(0x88+y);break;
 0102 062F              mov R16,R22
 0104 0857              subi R16,120    ; addi 136
 0106 7CDF              rcall _wr_com
 0108                   .dbline 93
 0108 03C0              rjmp L17
 010A           L22:
 010A                   .dbline 94
 010A           ;               case 4: wr_com(0x98+y);break;
 010A 062F              mov R16,R22
 010C 0856              subi R16,104    ; addi 152
 010E 78DF              rcall _wr_com
 0110                   .dbline 94
 0110           L16:
 0110           L17:
 0110                   .dbline 96
 0110           ;     }//end switch
 0110           ;       wr_date(datac);                 //定点显示数据第一个字节
 0110 8A01              movw R16,R20
 0112 82DF              rcall _wr_date
 0114                   .dbline 97
 0114           ;       wr_date(&(*(datac+1))); //定点显示数据第二个字节
 0114 8A01              movw R16,R20
 0116 0F5F              subi R16,255  ; offset = 1
 0118 1F4F              sbci R17,255
 011A 7EDF              rcall _wr_date
 011C                   .dbline -2
 011C           L15:
 011C                   .dbline 0 ; func end
 011C 00C0              rjmp pop_xgsetF00C
 011E                   .dbsym r datac 20 pc
 011E                   .dbsym r y 22 c
 011E                   .dbsym r x 10 c
 011E                   .dbend
 011E                   .dbfunc e clr _clr fV
 011E           ;              a -> y+0
 011E           ;              i -> R20
                        .even
 011E           _clr::
 011E 4A93              st -y,R20
 0120 2197              sbiw R28,1
 0122                   .dbline -1
 0122                   .dbline 107
 0122           ; }
 0122           ; /**********************清屏函数***********************
 0122           ; *函    数:clr
 0122           ; *函数功能:清屏
 0122           ; *入口参数:无
 0122           ; *返 回 值:无
 0122           ; *备    注:
 0122           ; ****************************************************/
 0122           ; void clr(void)
 0122           ; {
 0122                   .dbline 108
 0122           ;       uchar i,a=0x20;
 0122 80E2              ldi R24,32
 0124 8883              std y+0,R24
 0126                   .dbline 109
 0126           ;       wr_com(0x80);           //显示命令
 0126 00E8              ldi R16,128
 0128 6BDF              rcall _wr_com
 012A                   .dbline 110
 012A           ;       for(i=1;i<=64;i++)
 012A 41E0              ldi R20,1
 012C 03C0              rjmp L27
 012E           L24:
 012E                   .dbline 111
 012E           ;               wr_date(&a);    //全部显示空格
 012E 8E01              movw R16,R28
 0130 73DF              rcall _wr_date
 0132           L25:
 0132                   .dbline 110
 0132 4395              inc R20
 0134           L27:
 0134                   .dbline 110
 0134 80E4              ldi R24,64
 0136 8417              cp R24,R20
 0138 D0F7              brsh L24
 013A           X9:
 013A                   .dbline -2
 013A           L23:
 013A                   .dbline 0 ; func end
 013A 2196              adiw R28,1
 013C 4991              ld R20,y+
 013E 0895              ret
 0140                   .dbsym l a 0 c
 0140                   .dbsym r i 20 c
 0140                   .dbend
 0140                   .dbfunc e page0 _page0 fV
                        .even
 0140           _page0::
 0140 2297              sbiw R28,2
 0142                   .dbline -1
 0142                   .dbline 121
 0142           ; }
 0142           ; /**********************欢迎界面*********************
 0142           ; *函    数:page0
 0142           ; *函数功能:显示欢迎界面
 0142           ; *入口参数:无
 0142           ; *返 回 值:无
 0142           ; *备    注:
 0142           ; ****************************************************/
 0142           ; void page0(void)
 0142           ; {
 0142                   .dbline 122
 0142           ;       dis(2,15,Welcome);      //显示欢迎数组
 0142 80E0              ldi R24,<_Welcome
 0144 90E0              ldi R25,>_Welcome
 0146 9983              std y+1,R25
 0148 8883              std y+0,R24
 014A 2FE0              ldi R18,15
 014C 02E0              ldi R16,2
 014E 86DF              rcall _dis
 0150                   .dbline 123
 0150           ;       delay_nms(100);         //延时
 0150 04E6              ldi R16,100
 0152 10E0              ldi R17,0
 0154 73D1              rcall _delay_nms
 0156                   .dbline -2
 0156           L28:
 0156                   .dbline 0 ; func end
 0156 2296              adiw R28,2
 0158 0895              ret
 015A                   .dbend
 015A                   .dbfunc e K_Symbol _K_Symbol fV
                        .even
 015A           _K_Symbol::
 015A 2297              sbiw R28,2
 015C                   .dbline -1
 015C                   .dbline 133
 015C           ; }
 015C           ; /*************************动作界面******************
 015C           ; *函    数:K_Symbol
 015C           ; *函数功能:显示键符名称
 015C           ; *入口参数:无
 015C           ; *返 回 值:无
 015C           ; *备    注:
 015C           ; ****************************************************/
 015C           ; void K_Symbol(void)
 015C           ; {
 015C                   .dbline 134
 015C           ;       lcd_dis(1,0x7,Symbol);          //第一行显示键值符号K1
 015C 80E0              ldi R24,<_Symbol
 015E 90E0              ldi R25,>_Symbol
 0160 9983              std y+1,R25
 0162 8883              std y+0,R24
 0164 27E0              ldi R18,7
 0166 01E0              ldi R16,1
 0168 ACDF              rcall _lcd_dis
 016A                   .dbline 135
 016A           ;       lcd_dis(2,0x7,Symbol+2);        //第二行显示键值符号K2
 016A 80E0              ldi R24,<_Symbol+2
 016C 90E0              ldi R25,>_Symbol+2
 016E 9983              std y+1,R25
 0170 8883              std y+0,R24
 0172 27E0              ldi R18,7
 0174 02E0              ldi R16,2
 0176 A5DF              rcall _lcd_dis
 0178                   .dbline 136
 0178           ;       lcd_dis(3,0x7,Symbol+4);
 0178 80E0              ldi R24,<_Symbol+4
 017A 90E0              ldi R25,>_Symbol+4
 017C 9983              std y+1,R25
 017E 8883              std y+0,R24
 0180 27E0              ldi R18,7
 0182 03E0              ldi R16,3
 0184 9EDF              rcall _lcd_dis
 0186                   .dbline 137
 0186           ;       lcd_dis(4,0x7,Symbol+6);
 0186 80E0              ldi R24,<_Symbol+6
 0188 90E0              ldi R25,>_Symbol+6
 018A 9983              std y+1,R25
 018C 8883              std y+0,R24
 018E 27E0              ldi R18,7
 0190 04E0              ldi R16,4
 0192 97DF              rcall _lcd_dis
 0194                   .dbline -2
 0194           L29:
 0194                   .dbline 0 ; func end
 0194 2296              adiw R28,2
 0196 0895              ret
 0198                   .dbend
 0198                   .dbfunc e page1 _page1 fV
                        .even
 0198           _page1::
 0198 2297              sbiw R28,2
 019A                   .dbline -1
 019A                   .dbline 147
 019A           ; }
 019A           ; /********************四种模式界面********************
 019A           ; *函    数:page1
 019A           ; *函数功能:显示模式名称
 019A           ; *入口参数:无
 019A           ; *返 回 值:无
 019A           ; *备    注:
 019A           ; ****************************************************/
 019A           ; void page1(void)
 019A           ; {    
 019A                   .dbline 148
 019A           ;       clr();                  //清屏
 019A C1DF              rcall _clr
 019C                   .dbline 149
 019C           ;       dis(1,8,mode1);         //第一行显示模式1
 019C 80E0              ldi R24,<_mode1
 019E 90E0              ldi R25,>_mode1
 01A0 9983              std y+1,R25
 01A2 8883              std y+0,R24
 01A4 28E0              ldi R18,8
 01A6 01E0              ldi R16,1
 01A8 59DF              rcall _dis
 01AA                   .dbline 150
 01AA           ;       dis(2,8,mode2);         //第二行显示模式2       
 01AA 80E0              ldi R24,<_mode2
 01AC 90E0              ldi R25,>_mode2
 01AE 9983              std y+1,R25
 01B0 8883              std y+0,R24
 01B2 28E0              ldi R18,8
 01B4 02E0              ldi R16,2
 01B6 52DF              rcall _dis
 01B8                   .dbline 151
 01B8           ;       dis(3,8,mode3); 
 01B8 80E0              ldi R24,<_mode3
 01BA 90E0              ldi R25,>_mode3
 01BC 9983              std y+1,R25
 01BE 8883              std y+0,R24
 01C0 28E0              ldi R18,8
 01C2 03E0              ldi R16,3
 01C4 4BDF              rcall _dis
 01C6                   .dbline 152
 01C6           ;       dis(4,8,mode4);    
 01C6 80E0              ldi R24,<_mode4
 01C8 90E0              ldi R25,>_mode4
 01CA 9983              std y+1,R25
 01CC 8883              std y+0,R24
 01CE 28E0              ldi R18,8
 01D0 04E0              ldi R16,4
 01D2 44DF              rcall _dis
 01D4                   .dbline 153
 01D4           ;       K_Symbol();             //显示键盘符号
 01D4 C2DF              rcall _K_Symbol
 01D6                   .dbline -2
 01D6           L33:
 01D6                   .dbline 0 ; func end
 01D6 2296              adiw R28,2
 01D8 0895              ret
 01DA                   .dbend
 01DA                   .dbfunc e page2 _page2 fV
                        .even
 01DA           _page2::
 01DA 2297              sbiw R28,2
 01DC                   .dbline -1

⌨️ 快捷键说明

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