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

📄 lcd.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0324 6C06              inc 6,X
 0326 6C07              inc 7,X
 0328           L42:
 0328                   .dbline 134
 0328 E606              lda 6,X
 032A A10E              cmp #14
 032C 23D1              bls L39
 032E                   .dbline 139
 032E           ;      {
 032E           ;         LcdShGr16P(y,Px,RC);    //显示右边框 
 032E           ;         LcdShGr16P(y,Px-7,LC);  //显示左边框      
 032E           ;      }
 032E           ;   Wtite_Command(0b00110000);//基本指令
 032E A630              lda #48
 0330 87                psha
 0331 CD041D            jsr _Wtite_Command
 0334 A701              ais #1
 0336 95                tsx
 0337                   .dbline -2
 0337           L27:
 0337 A709              ais #9
 0339                   .dbline 0 ; func end
 0339 81                rts
 033A                   .dbsym l RC 0 S
 033A                   .dbsym l LC 2 S
 033A                   .dbsym l TBC 4 S
 033A                   .dbsym l i 6 c
 033A                   .dbsym l y 7 c
 033A                   .dbsym l Px 8 c
 033A                   .dbsym l GrE 12 c
 033A                   .dbsym l ln 11 c
 033A                   .dbend
 033A                   .dbfunc e LcdShGrClr _LcdShGrClr fV
 033A           ;              y -> 0,X
 033A           ;             Px -> 1,X
 033A           _LcdShGrClr::
 033A                   .dbline -1
 033A A7FE              ais #-2
 033C 95                tsx
 033D                   .dbline 148
 033D           ; }
 033D           ; 
 033D           ; /*LcdShGrClr:在Lcd上清图形显示屏-------------------------------------------*
 033D           ; *功  能:在Lcd上清图形显示屏(清GDRAM)                                       *
 033D           ; *参  数:无                                                                 *
 033D           ; *返  回:无                                                                 *
 033D           ; *-------------------------------------------------------------------------*/
 033D           ; void LcdShGrClr(void)
 033D           ; {  
 033D                   .dbline 150
 033D           ;   INT8U Px,y;               //行页号,列坐标的循环变量
 033D           ;   Wtite_Command(0b00110110);//扩展指令,绘图开  
 033D A636              lda #54
 033F 87                psha
 0340 CD041D            jsr _Wtite_Command
 0343 A701              ais #1
 0345 95                tsx
 0346                   .dbline 152
 0346           ;   //[清图形显示屏(清GDRAM)]
 0346           ;   for(y=0;y<=31;y++)
 0346 7F                clr ,X
 0347 2020              bra L47
 0349           L44:
 0349                   .dbline 153
 0349           ;      for(Px=0;Px<=15;Px++)
 0349 6F01              clr 1,X
 034B 2015              bra L51
 034D           L48:
 034D                   .dbline 154
 034D 450000            ldhx #0
 0350 89                pshx
 0351 8B                pshh
 0352 95                tsx
 0353 AF02              aix #2
 0355 E601              lda 1,X
 0357 87                psha
 0358 F6                lda ,X
 0359 87                psha
 035A CD03E7            jsr _LcdShGr16P
 035D A704              ais #4
 035F 95                tsx
 0360           L49:
 0360                   .dbline 153
 0360 6C01              inc 1,X
 0362           L51:
 0362                   .dbline 153
 0362 E601              lda 1,X
 0364 A10F              cmp #15
 0366 23E5              bls L48
 0368           L45:
 0368                   .dbline 152
 0368 7C                inc ,X
 0369           L47:
 0369                   .dbline 152
 0369 F6                lda ,X
 036A A11F              cmp #31
 036C 23DB              bls L44
 036E                   .dbline 155
 036E           ;         LcdShGr16P(y,Px,0);  //写入0为清屏
 036E           ;   Wtite_Command(0b00110000);//基本指令
 036E A630              lda #48
 0370 87                psha
 0371 CD041D            jsr _Wtite_Command
 0374 A701              ais #1
 0376 95                tsx
 0377                   .dbline -2
 0377           L43:
 0377 A702              ais #2
 0379                   .dbline 0 ; func end
 0379 81                rts
 037A                   .dbsym l y 0 c
 037A                   .dbsym l Px 1 c
 037A                   .dbend
 037A                   .dbfunc e LcdShGr1P _LcdShGr1P fV
 037A           ;          value -> 0,X
 037A           ;              x -> 5,X
 037A           ;              y -> 4,X
 037A           _LcdShGr1P::
 037A                   .dbline -1
 037A A7FE              ais #-2
 037C 95                tsx
 037D                   .dbline 164
 037D           ; }
 037D           ; 
 037D           ; /*LcdShGr1P:在Lcd的指定位置上画一个点--------------------------------------*
 037D           ; *功  能:在Lcd的指定位置上画一个点                                          *
 037D           ; *参  数:y为纵坐标(0-63),x为横坐标(0-127)                                  *
 037D           ; *返  回:无                                                                 *
 037D           ; *-------------------------------------------------------------------------*/
 037D           ; void LcdShGr1P(INT8U y,INT8U x)
 037D           ; {
 037D                   .dbline 165
 037D           ;   INT16U value=32768;      //初始值为0b1000000000000000
 037D A680              lda #-128
 037F F7                sta ,X
 0380 A600              lda #0
 0382 E701              sta 1,X
 0384                   .dbline 166
 0384           ;   if(y>=32)                //第三四行必须调整x和y坐标
 0384 E604              lda 4,X
 0386 A120              cmp #32
 0388 250A              blo L53
 038A                   .dbline 167
 038A           ;      {y=y-32;x=x+16*8;}
 038A                   .dbline 167
 038A A020              sub #32
 038C E704              sta 4,X
 038E                   .dbline 167
 038E E605              lda 5,X
 0390 AB80              add #-128
 0392 E705              sta 5,X
 0394                   .dbline 167
 0394           L53:
 0394                   .dbline 168
 0394           ;   value>>=(x-x/16*16);     //写入的16位数据
 0394 3F00              clr *__r0
 0396 E605              lda 5,X
 0398 B700              sta *__rlo
 039A 4E0000            mov *__r0,*__rhi
 039D A610              lda #16
 039F 87                psha
 03A0 4F                clra
 03A1 87                psha
 03A2 CD0000            jsr __divmod16s
 03A5 A702              ais #2
 03A7 4E0000            mov *__rhi,*__r0
 03AA 4E0000            mov *__rlo,*__r1
 03AD A604              lda #4
 03AF           X5:
 03AF 3800              lsl *__r1
 03B1 3900              rol *__r0
 03B3 4BFA              dbnza X5
 03B5 3F00              clr *__r2
 03B7 E605              lda 5,X
 03B9 B000              sub *__r1
 03BB B700              sta *__r1
 03BD B600              lda *__r2
 03BF B200              sbc *__r0
 03C1 B600              lda *__r1
 03C3 A40F              and #15
 03C5 2705              beq X7
 03C7           X6:
 03C7 74                lsr ,X
 03C8 6601              ror 1,X
 03CA 4BFB              dbnza X6
 03CC           X7:
 03CC                   .dbline 169
 03CC           ;   LcdShGr16P(y,x/16,value);//显示相应的点
 03CC E601              lda 1,X
 03CE 87                psha
 03CF F6                lda ,X
 03D0 87                psha
 03D1 E605              lda 5,X
 03D3 AE10              ldx #16
 03D5 8C                clrh
 03D6 52                div
 03D7 95                tsx
 03D8 AF02              aix #2
 03DA 87                psha
 03DB E604              lda 4,X
 03DD 87                psha
 03DE CD03E7            jsr _LcdShGr16P
 03E1 A704              ais #4
 03E3 95                tsx
 03E4                   .dbline -2
 03E4           L52:
 03E4 A702              ais #2
 03E6                   .dbline 0 ; func end
 03E6 81                rts
 03E7                   .dbsym l value 0 i
 03E7                   .dbsym l x 5 c
 03E7                   .dbsym l y 4 c
 03E7                   .dbend
 03E7                   .dbfunc e LcdShGr16P _LcdShGr16P fV
 03E7           ;          value -> 4,X
 03E7           ;             Px -> 3,X
 03E7           ;              y -> 2,X
 03E7           _LcdShGr16P::
 03E7                   .dbline -1
 03E7 95                tsx
 03E8                   .dbline 178
 03E8           ;  }
 03E8           ; 
 03E8           ; /*LcdShGr16P:在Lcd指定位置上设置线型16个点的显示---------------------------*
 03E8           ; *功  能:在Lcd指定位置上设置线型16个点的显示                                *
 03E8           ; *参  数:y为纵坐标(0-63),Px为页号(0-15),value为16位数据                   *
 03E8           ; *返  回:无                                                                 *
 03E8           ; *-------------------------------------------------------------------------*/
 03E8           ; void LcdShGr16P(INT8U y,INT8U Px,INT16S value)
 03E8           ; {
 03E8                   .dbline 180
 03E8           ;  //Wtite_Command(0b00110110); //8位数据,扩展指令,绘图开
 03E8           ;   Wtite_Command(y|0b10000000);//设置6位绘图列地址
 03E8 E602              lda 2,X
 03EA AA80              ora #-128
 03EC 87                psha
 03ED CD041D            jsr _Wtite_Command
 03F0 A701              ais #1
 03F2 95                tsx
 03F3                   .dbline 181
 03F3           ;   Wtite_Command(Px|0b10000000);//设置4位绘图行地址
 03F3 E603              lda 3,X
 03F5 AA80              ora #-128
 03F7 87                psha
 03F8 CD041D            jsr _Wtite_Command
 03FB A701              ais #1
 03FD 95                tsx
 03FE                   .dbline 182
 03FE           ;   Wtite_Data((INT8U)(value>>8));//写入高8个字节
 03FE E604              lda 4,X
 0400 B700              sta *__r1
 0402 3F00              clr *__r0
 0404 3D00              tst *__r1
 0406 2A02              bpl X8
 0408 3300              com *__r0
 040A           X8:
 040A B600              lda *__r1
 040C 87                psha
 040D CD0438            jsr _Wtite_Data
 0410 A701              ais #1
 0412 95                tsx
 0413                   .dbline 183
 0413           ;   Wtite_Data((INT8U)value);     //写入低8个字节
 0413 E605              lda 5,X
 0415 87                psha
 0416 CD0438            jsr _Wtite_Data
 0419 A701              ais #1
 041B 95                tsx
 041C                   .dbline -2
 041C           L55:
 041C                   .dbline 0 ; func end
 041C 81                rts
 041D                   .dbsym l value 4 S
 041D                   .dbsym l Px 3 c
 041D                   .dbsym l y 2 c
 041D                   .dbend
 041D                   .dbfunc e Wtite_Command _Wtite_Command fV
 041D           ;        command -> 2,X
 041D           _Wtite_Command::
 041D                   .dbline -1
 041D 95                tsx
 041E                   .dbline 194
 041E           ;  //Wtite_Command(0b00110000); //8位数据,基本指令
 041E           ; }
 041E           ; 
 041E           ; /*===============[Lcd基本操作:包括写指令,写数据和延时]===================*/
 041E           ; /*Wtite_Command:执行参数中的给定命令---------------------------------------*
 041E           ; *功  能:执行参数中的给定命令                                               *
 041E           ; *参  数:command为待执行的命令码                                            *
 041E           ; *返  回:无                                                                 *
 041E           ; *-------------------------------------------------------------------------*/
 041E           ; void Wtite_Command(INT8U command)
 041E           ; {
 041E                   .dbline 195
 041E           ;       LCD_CtrlPort&=~(1<<LCD_RS);  //RS=0
 041E 1302              bclr #1,0x2
 0420                   .dbline 196
 0420           ;       LCD_CtrlPort&=~(1<<LCD_RW);  //RW=0
 0420 1502              bclr #2,0x2
 0422                   .dbline 197
 0422           ;       LCD_DataPort=command;        //数据上线
 0422 E602              lda 2,X
 0424 B701              sta 0x1
 0426                   .dbline 198
 0426           ;       LCD_CtrlPort|=(1<<LCD_E);    //E=1
 0426 1602              bset #3,0x2
 0428                   .dbline 199
 0428           ;     asm("nop");                  //使数据稳定
 0428 9D                nop
 0429                   .dbline 200
 0429           ;     asm("nop");
 0429 9D                nop
 042A                   .dbline 201
 042A           ;       LCD_CtrlPort&=~(1<<LCD_E);   //E=0,使数据有效
 042A 1702              bclr #3,0x2
 042C                   .dbline 202
 042C           ;       delay72us;                   //延时>72us
 042C 45001E            ldhx #30
 042F 89                pshx
 0430 8B                pshh
 0431 CD0453            jsr _DelayTimes
 0434 A702              ais #2
 0436 95                tsx
 0437                   .dbline -2
 0437           L56:
 0437                   .dbline 0 ; func end
 0437 81                rts
 0438                   .dbsym l command 2 c
 0438                   .dbend
 0438                   .dbfunc e Wtite_Data _Wtite_Data fV
 0438           ;           data -> 2,X
 0438           _Wtite_Data::
 0438                   .dbline -1
 0438 95                tsx
 0439                   .dbline 211
 0439           ; }
 0439           ; 
 0439           ; /*Wtite_Data:将参数中给定的数据写入液晶控制器------------------------------*
 0439           ; *功  能:将参数中给定的数据写入液晶控制器                                   *
 0439           ; *参  数:data为待写入的数据                                                 *
 0439           ; *返  回:无                                                                 *
 0439           ; *-------------------------------------------------------------------------*/
 0439           ; void Wtite_Data(INT8U data)
 0439           ; {
 0439                   .dbline 212
 0439           ;       LCD_CtrlPort|=(1<<LCD_RS);    //RS=1
 0439 1202              bset #1,0x2
 043B                   .dbline 213
 043B           ;       LCD_CtrlPort&=~(1<<LCD_RW);   //RW=0
 043B 1502              bclr #2,0x2
 043D                   .dbline 214
 043D           ;       LCD_DataPort=data;            //数据上线
 043D E602              lda 2,X
 043F B701              sta 0x1
 0441                   .dbline 215
 0441           ;       LCD_CtrlPort|=(1<<LCD_E);     //E=1
 0441 1602              bset #3,0x2
 0443                   .dbline 216
 0443           ;     asm("nop");                   //使数据稳定
 0443 9D                nop
 0444                   .dbline 217
 0444           ;     asm("nop");
 0444 9D                nop
 0445                   .dbline 218
 0445           ;       LCD_CtrlPort&=~(1<<LCD_E);    //E=0,使数据有效
 0445 1702              bclr #3,0x2
 0447                   .dbline 219
 0447           ;       delay72us;                    //延时>72us
 0447 45001E            ldhx #30
 044A 89                pshx
 044B 8B                pshh
 044C CD0453            jsr _DelayTimes
 044F A702              ais #2

⌨️ 快捷键说明

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