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

📄 lcd.ls1

📁 一个完整的51单片机的操作糸统源程序! 内容十分丰富!很有借鉴价值!
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0027 00              393             NOP     
                     394     ;                       _nop_();
                     395                             ; SOURCE LINE # 145
0028 00              396             NOP     
                     397     ;                       _nop_();
                     398                             ; SOURCE LINE # 146
0029 00              399             NOP     
                     400     ;                       _nop_();
                     401                             ; SOURCE LINE # 147
002A 00              402             NOP     
                     403     ;                       _nop_();
                     404                             ; SOURCE LINE # 148
002B 00              405             NOP     
                     406     ;               }
                     407                             ; SOURCE LINE # 149
002C 0E              408             INC     R6
002D EE              409             MOV     A,R6
002E B440EB          410             CJNE    A,#040H,?C0008
                     411     ;       }
                     412                             ; SOURCE LINE # 150
0031                 413     ?C0007:
0031 0F              414             INC     R7
0032 EF              415             MOV     A,R7
0033 B408CC          416             CJNE    A,#08H,?C0005
                     417     ; }
                     418                             ; SOURCE LINE # 151
0036                 419     ?C0011:
0036 22              420             RET     
                     421     ; END OF lcd_clear
                     422     
                     423     ; 
                     424     ; 
                     425     ; /****************************************************************************************
                             **
                     426     ; *函数名:              lcd_display_graphic
                     427     ; *参数:                        XStart          X轴起始位置,为像素点位置
                     428     ;                               YStart          Y轴起始位置,为像素点位置
                     429     ;                               Width           图像宽度像素值
                     430     ;                               Height          图像高度像素值
                     431     ;                               bReverseDisplay         标识是否反显
                     432     ;                               GraphicIndex            图像显示索引
                     433     ; *返回值:              无
                     434     ; *描述:                        显示一幅图像的程序
                     435     ; *编写:                        王绍伟
                     436     ; *版本信息:            V1.0                    2003年8月15日
                     437     ; *****************************************************************************************
                             */
                     438     ;  extern void lcd_display_graphic(                             /*为整个PAGE显示,不能任意位
                             置*/
                     439     
----                 440             RSEG  ?PR?_lcd_display_graphic?LCD
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE     8

0000                 441     _lcd_display_graphic:
                     442             USING   0
                     443                             ; SOURCE LINE # 167
0000 900000   F      444             MOV     DPTR,#XStart?544
0003 EF              445             MOV     A,R7
0004 F0              446             MOVX    @DPTR,A
                     447     ;---- Variable 'YStart?545' assigned to Register 'R5' ----
                     448     ;---- Variable 'Width?546' assigned to Register 'R1' ----
0005 A903            449             MOV     R1,AR3
                     450     ;                                                               byte XStart,
                     451     ;                                                               byte YStart,
                     452     ;                                                               byte Width,
                     453     ;                                                               byte Height,
                     454     ;                                                               bool bReverseDisplay,
                     455     ;                                                               byte GraphicIndex)         
                                            
                     456     ; {     
                     457                             ; SOURCE LINE # 174
                     458     ;       byte PageCounter;               /*页计数值*/
                     459     ;       byte ColumnCounter;             /*X位置计数值*/
                     460     ;       byte PageStart;                 /*起始页码*/
                     461     ;       byte PageEnd;                   /*终止页码*/
                     462     ;       byte code *pGraphic;    /*指向发送显示数据的指针*/
                     463     ; 
                     464     ;       pGraphic = g_Graphic[GraphicIndex];     /*r取出要显示的图像区头地址给指针pGraphic*/
                     465                             ; SOURCE LINE # 181
0007 900000   F      466             MOV     DPTR,#GraphicIndex?549
000A E0              467             MOVX    A,@DPTR
000B 25E0            468             ADD     A,ACC
000D 2400     F      469             ADD     A,#LOW (g_Graphic)
000F F582            470             MOV     DPL,A
0011 E4              471             CLR     A
0012 3400     F      472             ADDC    A,#HIGH (g_Graphic)
0014 F583            473             MOV     DPH,A
0016 E0              474             MOVX    A,@DPTR
0017 FE              475             MOV     R6,A
0018 A3              476             INC     DPTR
0019 E0              477             MOVX    A,@DPTR
                     478     ;---- Variable 'pGraphic?554' assigned to Register 'R2/R3' ----
001A FB              479             MOV     R3,A
001B AA06            480             MOV     R2,AR6
                     481     ;       PageStart = YStart >> 3;                /*r由于是整页显示,不能随意位置,所以指定除8*
                             /
                     482                             ; SOURCE LINE # 182
001D ED              483             MOV     A,R5
001E 13              484             RRC     A
001F 13              485             RRC     A
0020 13              486             RRC     A
0021 541F            487             ANL     A,#01FH
0023 900000   F      488             MOV     DPTR,#PageStart?552
0026 F0              489             MOVX    @DPTR,A
                     490     ;       PageEnd = (YStart + Height) >> 3;
                     491                             ; SOURCE LINE # 183
0027 900000   F      492             MOV     DPTR,#Height?547
002A E0              493             MOVX    A,@DPTR
002B 2D              494             ADD     A,R5
002C FF              495             MOV     R7,A
002D E4              496             CLR     A
002E 33              497             RLC     A
002F FE              498             MOV     R6,A
0030 EF              499             MOV     A,R7
0031 7803            500             MOV     R0,#03H
0033                 501     ?C0040:
0033 CE              502             XCH     A,R6
0034 A2E7            503             MOV     C,ACC.7
0036 13              504             RRC     A
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE     9

0037 CE              505             XCH     A,R6
0038 13              506             RRC     A
0039 D8F8            507             DJNZ    R0,?C0040
003B 900000   F      508             MOV     DPTR,#PageEnd?553
003E F0              509             MOVX    @DPTR,A
                     510     ; 
                     511     ;       
                     512     ;       for(PageCounter = PageStart; PageCounter < PageEnd; PageCounter++)
                     513                             ; SOURCE LINE # 186
003F 900000   F      514             MOV     DPTR,#PageStart?552
0042 E0              515             MOVX    A,@DPTR
                     516     ;---- Variable 'PageCounter?550' assigned to Register 'R6' ----
0043 FE              517             MOV     R6,A
0044                 518     ?C0012:
0044 900000   F      519             MOV     DPTR,#PageEnd?553
0047 E0              520             MOVX    A,@DPTR
0048 FF              521             MOV     R7,A
0049 EE              522             MOV     A,R6
004A C3              523             CLR     C
004B 9F              524             SUBB    A,R7
004C 5046            525             JNC     ?C0020
                     526     ;       {
                     527                             ; SOURCE LINE # 187
                     528     ;               SetColumn(XStart);
                     529                             ; SOURCE LINE # 188
004E 900000   F      530             MOV     DPTR,#XStart?544
0051 E0              531             MOVX    A,@DPTR
0052 FF              532             MOV     R7,A
0053 120000   F      533             LCALL   _SetColumn
                     534     ;               SetPage(PageCounter);
                     535                             ; SOURCE LINE # 189
0056 AF06            536             MOV     R7,AR6
0058 120000   F      537             LCALL   _SetPage
                     538     ;               RS = 1;
                     539                             ; SOURCE LINE # 190
005B 90F802          540             MOV     DPTR,#0F802H
005E 7401            541             MOV     A,#01H
0060 F0              542             MOVX    @DPTR,A
                     543     ;               for(ColumnCounter = 0; ColumnCounter < Width; ColumnCounter++)
                     544                             ; SOURCE LINE # 191
                     545     ;---- Variable 'ColumnCounter?551' assigned to Register 'R7' ----
0061 E4              546             CLR     A
0062 FF              547             MOV     R7,A
0063                 548     ?C0015:
0063 EF              549             MOV     A,R7
0064 C3              550             CLR     C
0065 99              551             SUBB    A,R1
0066 5029            552             JNC     ?C0014
                     553     ;               {
                     554                             ; SOURCE LINE # 192
                     555     ;                       if(!bReverseDisplay)
                     556                             ; SOURCE LINE # 193
0068 200010   F      557             JB      bReverseDisplay?548,?C0018
                     558     ;                       {
                     559                             ; SOURCE LINE # 194
                     560     ;                               WLCD = *pGraphic++;             /*r正常显示,白屏黑字*/
                     561                             ; SOURCE LINE # 195
006B 0B              562             INC     R3
006C EB              563             MOV     A,R3
006D AC02            564             MOV     R4,AR2
006F 7001            565             JNZ     ?C0041
0071 0A              566             INC     R2
0072                 567     ?C0041:
0072 14              568             DEC     A
0073 F582            569             MOV     DPL,A
0075 8C83            570             MOV     DPH,R4
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE    10

0077 E4              571             CLR     A
0078 93              572             MOVC    A,@A+DPTR
                     573     ;                       }
                     574                             ; SOURCE LINE # 196
0079 800F            575             SJMP    ?C0045
007B                 576     ?C0018:
                     577     ;                       else
                     578     ;                       {
                     579                             ; SOURCE LINE # 198
                     580     ;                               WLCD = ~(*pGraphic++);  /*r反转显示,黑屏白字*/
                     581                             ; SOURCE LINE # 199
007B 0B              582             INC     R3
007C EB              583             MOV     A,R3
007D AC02            584             MOV     R4,AR2
007F 7001            585             JNZ     ?C0042
0081 0A              586             INC     R2
0082                 587     ?C0042:
0082 14              588             DEC     A
0083 F582            589             MOV     DPL,A
0085 8C83            590             MOV     DPH,R4
0087 E4              591             CLR     A
0088 93              592             MOVC    A,@A+DPTR
0089 F4              593             CPL     A

⌨️ 快捷键说明

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