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

📄 lcd.ls1

📁 一个完整的51单片机的操作糸统源程序! 内容十分丰富!很有借鉴价值!
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     794     ; *函数名:              lcd_display_text
                     795     ; *参数:                        XStart                  字符串开始X坐标像素值
                     796     ;                               YStart                  字符串开始Y坐标像素值,实际得按照pag
                             e显示
                     797     ;                               bReverseDisplay 标识是否反显
                     798     ;                               pText                   指向字符串ASCII码存放首址的指针
                     799     ; *返回值:              无
                     800     ; *描述:                        显示小于8个字符的字符串文本
                     801     ; *编写:                        王绍伟
                     802     ; *版本信息:            V1.0                    2003年8月15日
                     803     ; *****************************************************************************************
                             */
                     804     ; extern void lcd_display_text( byte XStart,
                     805     
----                 806             RSEG  ?PR?_lcd_display_text?LCD
0000                 807     _lcd_display_text:
                     808             USING   0
                     809                             ; SOURCE LINE # 265
0000 900000   F      810             MOV     DPTR,#XStart?764
0003 EF              811             MOV     A,R7
0004 F0              812             MOVX    @DPTR,A
0005 A3              813             INC     DPTR
0006 ED              814             MOV     A,R5
0007 F0              815             MOVX    @DPTR,A
                     816     ;                                                        byte YStart, 
                     817     ;                                                        bool bReverseDisplay,
                     818     ;                                                        byte* pText)
                     819     ; {
                     820                             ; SOURCE LINE # 269
                     821     ;       byte i;
                     822     ;       byte len;
                     823     ;       len = strlen(pText);
                     824                             ; SOURCE LINE # 272
0008 A3              825             INC     DPTR
0009 E0              826             MOVX    A,@DPTR
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE    14

000A FB              827             MOV     R3,A
000B A3              828             INC     DPTR
000C E0              829             MOVX    A,@DPTR
000D FA              830             MOV     R2,A
000E A3              831             INC     DPTR
000F E0              832             MOVX    A,@DPTR
0010 F9              833             MOV     R1,A
0011 120000   F      834             LCALL   _strlen
0014 900000   F      835             MOV     DPTR,#len?769
0017 EF              836             MOV     A,R7
0018 F0              837             MOVX    @DPTR,A
                     838     ;       if(len > 8)
                     839                             ; SOURCE LINE # 273
0019 D3              840             SETB    C
001A 9408            841             SUBB    A,#08H
001C 4003            842             JC      ?C0030
                     843     ;       {
                     844                             ; SOURCE LINE # 274
                     845     ;               len = 8;
                     846                             ; SOURCE LINE # 275
001E 7408            847             MOV     A,#08H
0020 F0              848             MOVX    @DPTR,A
                     849     ;       }
                     850                             ; SOURCE LINE # 276
0021                 851     ?C0030:
                     852     ;       for(i = 0; i < len; i++)
                     853                             ; SOURCE LINE # 277
0021 E4              854             CLR     A
0022 900000   F      855             MOV     DPTR,#i?768
0025 F0              856             MOVX    @DPTR,A
0026                 857     ?C0031:
0026 900000   F      858             MOV     DPTR,#len?769
0029 E0              859             MOVX    A,@DPTR
002A FF              860             MOV     R7,A
002B 900000   F      861             MOV     DPTR,#i?768
002E E0              862             MOVX    A,@DPTR
002F FE              863             MOV     R6,A
0030 C3              864             CLR     C
0031 9F              865             SUBB    A,R7
0032 502F            866             JNC     ?C0034
                     867     ;       {
                     868                             ; SOURCE LINE # 278
                     869     ;               lcd_display_char(XStart + i * 8, YStart, bReverseDisplay, *pText++);
                     870                             ; SOURCE LINE # 279
0034 EE              871             MOV     A,R6
0035 75F008          872             MOV     B,#08H
0038 A4              873             MUL     AB
0039 FF              874             MOV     R7,A
003A 900000   F      875             MOV     DPTR,#XStart?764
003D E0              876             MOVX    A,@DPTR
003E 2F              877             ADD     A,R7
003F FF              878             MOV     R7,A
0040 A3              879             INC     DPTR
0041 E0              880             MOVX    A,@DPTR
0042 FD              881             MOV     R5,A
0043 A200     F      882             MOV     C,bReverseDisplay?766
0045 9200     F      883             MOV     ?_lcd_display_char?BIT,C
0047 A3              884             INC     DPTR
0048 E0              885             MOVX    A,@DPTR
0049 FB              886             MOV     R3,A
004A A3              887             INC     DPTR
004B E4              888             CLR     A
004C 75F001          889             MOV     B,#01H
004F 120000   F      890             LCALL   ?C?ILDIX
0052 A9F0            891             MOV     R1,B
0054 FA              892             MOV     R2,A
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE    15

0055 120000   F      893             LCALL   ?C?CLDPTR
0058 120000   F      894             LCALL   L?0050
                     895     ;       }
                     896                             ; SOURCE LINE # 280
005B 900000   F      897             MOV     DPTR,#i?768
005E E0              898             MOVX    A,@DPTR
005F 04              899             INC     A
0060 F0              900             MOVX    @DPTR,A
0061 80C3            901             SJMP    ?C0031
                     902     ; }
                     903                             ; SOURCE LINE # 281
0063                 904     ?C0034:
0063 22              905             RET     
                     906     ; END OF _lcd_display_text
                     907     
                     908     ; 
                     909     ; 
                     910     ; /****************************************************************************************
                             **
                     911     ; *函数名:              lcd_display_byte
                     912     ; *参数:                        XStart
                     913     ;                               YStart
                     914     ;                               bHex                    标识是否为十六进制数据
                     915     ;                               bReverseDisplay 标识是否反显
                     916     ;                               value
                     917     ; *返回值:              无
                     918     ; *描述:                        在LCD液晶屏上显示一个字节的内容,若此字节中数标识用
                     919     ;                               十六进制显示,则其中字节的高四位为                          
                                  一个字符的ASCII码
                     920     ;                               值,低四位又是另外一个字符的ASCII码字
                     921     ; *编写:王绍伟
                     922     ; *版本信息:V1.0                        2003年8月15日
                     923     ; *****************************************************************************************
                             */
                     924     ; extern void lcd_display_byte(byte XStart,
                     925     
----                 926             RSEG  ?PR?_lcd_display_byte?LCD
0000                 927     _lcd_display_byte:
                     928             USING   0
                     929                             ; SOURCE LINE # 298
0000 900000   F      930             MOV     DPTR,#XStart?870
0003 EF              931             MOV     A,R7
0004 F0              932             MOVX    @DPTR,A
0005 A3              933             INC     DPTR
0006 ED              934             MOV     A,R5
0007 F0              935             MOVX    @DPTR,A
                     936     ;                                                        byte YStart, 
                     937     ;                                                        bool bHex,
                     938     ;                                                        bool bReverseDisplay,
                     939     ;                                                        byte value)
                     940     ;  {
                     941                             ; SOURCE LINE # 303
                     942     ;        byte Shift;            /*暂存余数*/
                     943     ;        byte Result;           /*暂存除得结果值*/
                     944     ; 
                     945     ;        if(bHex)
                     946                             ; SOURCE LINE # 307
0008 300029   F      947             JNB     bHex?872,?C0035
                     948     ;        {
                     949                             ; SOURCE LINE # 308
                     950     ;               lcd_display_char(XStart + 8, YStart, bReverseDisplay, g_Data2Char[value&0x0
                             F]);
                     951                             ; SOURCE LINE # 309
000B 900000   F      952             MOV     DPTR,#XStart?870
000E E0              953             MOVX    A,@DPTR
000F 2408            954             ADD     A,#08H
A51 MACRO ASSEMBLER  LCD                                                                  10/31/2003 02:22:22 PAGE    16

0011 FF              955             MOV     R7,A
0012 A3              956             INC     DPTR
0013 E0              957             MOVX    A,@DPTR
0014 FD              958             MOV     R5,A
0015 A200     F      959             MOV     C,bReverseDisplay?873
0017 9200     F      960             MOV     ?_lcd_display_char?BIT,C
0019 A3              961             INC     DPTR
001A E0              962             MOVX    A,@DPTR
001B 540F            963             ANL     A,#0FH
001D 120000   F      964             LCALL   L?0049
                     965     ;               lcd_display_char(XStart, YStart, bReverseDisplay, g_Data2Char[value>>4]);
                     966                             ; SOURCE LINE # 310
0020 900000   F      967             MOV     DPTR,#XStart?870
0023 E0              968             MOVX    A,@DPTR
0024 FF              969             MOV     R7,A
0025 A3              970             INC     DPTR
0026 E0              971             MOVX    A,@DPTR
0027 FD              972             MOV     R5,A
0028 A200     F      973             MOV     C,bReverseDisplay?873
002A 9200     F      974             MOV     ?_lcd_display_char?BIT,C
002C A3              975             INC     DPTR
002D E0              976             MOVX    A,@DPTR
002E FE              977             MOV     R6,A
002F C4              978             SWAP    A
0030 540F            979             ANL     A,#0FH
                     980     ;        }
                     981                             ; SOURCE LINE # 311
0032 8052            982             SJMP    ?C0047
0034                 983     ?C0035:
                     984     ;        else
                     985     ;        {
                     986                             ; SOURCE LINE # 313
                     987     ;               Shift = value % 100;
                     988                             ; SOURCE LINE # 314
0034 900000   F      989             MOV     DPTR,#value?874
0037 E0              990             MOVX    A,@DPTR
0038 FF              991             MOV     R7,A
0039 75F064          992             MOV     B,#064H
003C 84

⌨️ 快捷键说明

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