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

📄 1

📁 RM51单片机实验板配套实验例程库
💻
📖 第 1 页 / 共 3 页
字号:
                                                                    页     1
                                                                    05-15-05
                                                                    15:13:08
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;                   **********************************
            ;                   *                                 *
            ;                   *  四字16*16点阵电子屏字符显示器  *
            ;                   *     AT89C52   12MHZ晶振         *
            ;                   *       2005.5.10   LRM           *
            ;                   **********************************
            ;显示字用查表法,不占内存,用四个16*16共阳LED点阵显示,
            ;效果:向上滚动显示字,每次四个,重复循环。
            ;R2:行扫描地址(从00-0FH)。
            ;R3:滚动显示时控制移动速度,也可控制静止显示的时间。
            ;************;
            ;中断入口程序;
            ;************;
            ;
            ORG     0000H
0000 02002C LJMP    START
            ORG     0003H
0003 32     RETI
            ORG     000BH
000B 0200A9 LJMP    INTT0
            ORG     0013H
0013 32     RETI
            ORG     001BH
001B 32     RETI
            ORG     0023H
0023 32     RETI
            ORG     002BH
002B 32     RETI
            ;
            ;************;
            ; 初始化程序 ;
            ;************;
            ;
            ;
            ;************;
            ;   主程序   ;
            ;************;
            ;
002C 752000 START:          MOV     20H,#00H             ;清标志,00H为1帧扫描结束标志
002F 74FF                   MOV     A,#0FFH              ;端口初始化
0031 F590                   MOV     P1,A
0033 F5A0                   MOV     P2,A
0035 F5B0                   MOV     P3,A
0037 F580                   MOV     P0,A
0039 C296                   CLR     P1.6            ;串行寄存器打入输出端控制位
003B 758901                 MOV     TMOD,#01H       ;使用T0作16位定时器,行扫描用。
003E 758CFC                 MOV     TH0,#0FCH       ;1ms初值(12MHZ)
0041 758A18                 MOV     TL0,#18H


E:\楼然苗\应用源程序\四字显示程序\四字显示汇编程序\4_16.ASM     
 
                                                                    页     2
                                                                    05-15-05
                                                                    15:13:08
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0044 759800                 MOV     SCON,#00H       ;串口0方式传送显示字节
0047 75A882                 MOV     IE,#82H         ;T0中断允许,总中断允许
004A 758170                 MOV     SP,#70H
004D 120098                 LCALL   DIS1            ;显示准备,黑屏,1.5秒
0050 90013E MAIN:           MOV     DPTR,#TAB
0053 12005E                 LCALL   MOVDISP         ;逐排显示,每次四字)
0056 90013E                 MOV     DPTR,#TAB
0059 120080                 LCALL   MOVDISP1        ;滚动显示,每排四字)
005C 0150                   AJMP    MAIN
            ;
            ;
            ;********************;
            ; 四字逐排显示子程序 ;
            ;********************;
            ;每次四字移入移出显示方式,入口时定义好DPTR值
            ;
005E 7906   MOVDISP:        MOV     R1,#6           ;显示6排字,每排四字(R1=排数)
0060 7B64   DISLOOP:        MOV     R3,#100         ;每排显示时间1.6*100=1.6S
0062 7A00   DISMOV:         MOV     R2,#00H         ;第0行开始
0064 D28C                   SETB    TR0             ;开扫描(每次一帧)
0066 100002 WAITMOV:        JBC     00H,DISMOV1     ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒)
0069 0166                   AJMP    WAITMOV
006B DBF5   DISMOV1:        DJNZ    R3,DISMOV       ;1帧重复显示(控制显示时间)
006D 7480                   MOV     A,#128          ;显示字指针移一排(每排4字*32=128)
006F 2582                   ADD     A,DPL           ;
0071 F582                   MOV     DPL,A
0073 7400                   MOV     A,#0
0075 3583                   ADDC    A,DPH
0077 F583                   MOV     DPH,A
0079 19                     DEC     R1              ;R1为0,显示完
007A E9                     MOV     A,R1
007B 6002                   JZ      MOVOUT          ;
007D 0160                   AJMP    DISLOOP         ;
007F 22     MOVOUT:         RET                     ;移动显示结束
            ;
            ;********************;
            ; 四字滚动显示子程序 ;
            ;********************;
            ;每排四字向上移出显示方式,入口时定义好DPTR值
            ;
0080 79FF   MOVDISP1:        MOV     R1,#255          ;向上移动显示6排字,每排四字(R1=排数*16)
0082 7B0A   DISLOOP1:        MOV     R3,#10          ;移动速度1.6*10=0.16S
0084 7A00   DISMOV2:         MOV     R2,#00H         ;第0行开始
0086 D28C                    SETB    TR0             ;开扫描(每次一帧)
0088 100002 WAITMOV1:        JBC     00H,DISMOV3     ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒)
008B 0188                    AJMP    WAITMOV1
008D DBF5   DISMOV3:         DJNZ    R3,DISMOV2      ;1帧重复显示(控制移动速度)
008F A3                      INC     DPTR            ;显示字指针移一行(二字节位置)


E:\楼然苗\应用源程序\四字显示程序\四字显示汇编程序\4_16.ASM     
 
                                                                    页     3
                                                                    05-15-05
                                                                    15:13:08
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0090 A3                      INC     DPTR
0091 19                      DEC     R1              ;R1为0,显示完
0092 E9                      MOV     A,R1
0093 6002                    JZ      MOVOUT1         ;
0095 0182                    AJMP    DISLOOP1        ;
0097 22     MOVOUT1:         RET                     ;移动显示结束
            ;
            ;
            ;*****************;
            ; 四个字显示子程序  ;
            ;*****************;
            ;静止显示表中某四个字
0098 7B5A   DIS1:           MOV     R3,#5AH         ;静止显示时间控制(16MS*#=1.6秒)
009A 7A00   DIS11:          MOV     R2,#00H         ;一帧扫描初始值(行地址从00-0FH)
009C 90013E                 MOV     DPTR,#TAB       ;取表首址
009F D28C                   SETB    TR0             ;开扫描(每次一帧)
00A1 100002 WAIT11:         JBC     00H,DIS111      ;为1,扫描一帧结束
00A4 01A1                   AJMP    WAIT11
00A6 DBF2   DIS111:         DJNZ    R3,DIS11
00A8 22                     RET
            ;
            ;
            ;************;
            ;  扫描程序  ;
            ;************;
            ;1MS传送一行,每行显示1毫秒,一次传送四个字的某行共8个字节.
            ;
00A9 C0E0   INTT0:          PUSH    ACC
00AB 758CFC                 MOV     TH0,#0FCH       ;1ms初值重装
00AE 758A18                 MOV     TL0,#18H
00B1 7461                   MOV     A,#97           ;指向第四个字行右字节
00B3 2582                   ADD     A,DPL
00B5 F582                   MOV     DPL,A
00B7 7400                   MOV     A,#0
00B9 3583                   ADDC    A,DPH
00BB F583                   MOV     DPH,A
00BD 7400                   MOV     A,#0
00BF 93                     MOVC     A,@A+DPTR      ;查表
00C0 F599                   MOV     SBUF,A          ;串口0方式发送
00C2 109902 WAIT:           JBC     TI,GO           ;等待发送完毕
00C5 01C2                   AJMP    WAIT            ;
00C7 E582   GO:             MOV     A,DPL           ;指向第四个字行左字节
00C9 9401                   SUBB    A,#1
00CB F582                   MOV     DPL,A
00CD E583                   MOV     A,DPH
00CF 9400                   SUBB    A,#0
00D1 F583                   MOV     DPH,A
00D3 7400                   MOV     A,#0


E:\楼然苗\应用源程序\四字显示程序\四字显示汇编程序\4_16.ASM     
 
                                                                    页     4
                                                                    05-15-05
                                                                    15:13:08
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

00D5 93                     MOVC     A,@A+DPTR
00D6 F599                   MOV     SBUF,A
00D8 109902 WAIT1:          JBC     TI,GO1
00DB 01D8                   AJMP    WAIT1
            ;
00DD 7803   GO1:            MOV     R0,#03H
00DF E582   MLOOP:          MOV     A,DPL           ;指向前三个字行右字节
00E1 941F                   SUBB    A,#31
00E3 F582                   MOV     DPL,A
00E5 E583                   MOV     A,DPH
00E7 9400                   SUBB    A,#0
00E9 F583                   MOV     DPH,A
00EB 7400                   MOV     A,#0
00ED 93                     MOVC     A,@A+DPTR      ;查表
00EE F599                   MOV     SBUF,A          ;串口0方式发送
00F0 109902 WAIT2:          JBC     TI,GO2           ;等待发送完毕
00F3 01F0                   AJMP    WAIT2            ;
00F5 E582   GO2:            MOV     A,DPL           ;指向前三个字行左字节
00F7 9401                   SUBB    A,#1
00F9 F582                   MOV     DPL,A
00FB E583                   MOV     A,DPH
00FD 9400                   SUBB    A,#0
00FF F583                   MOV     DPH,A
0101 7400                   MOV     A,#0
0103 93                     MOVC     A,@A+DPTR
0104 F599                   MOV     SBUF,A
0106 109902 WAIT3:          JBC     TI,GO3
0109 2106                   AJMP    WAIT3
010B D8D2   GO3:            DJNZ    R0,MLOOP        ;执行三次
            ;
            ;
010D D297                   SETB    P1.7            ;关行显示,准备涮新
010F 00                     NOP                     ;串口寄存器数据稳定
0110 D296                   SETB    P1.6            ;产生上升沿,行数据打入输出端
0112 00                     NOP                     ;
0113 00                     NOP                     ;
0114 C296                   CLR     P1.6            ;恢复低电平
0116 EA                     MOV     A,R2            ;修改显示行地址
0117 44F0                   ORL     A,#0F0H         ;修改显示行地址
0119 FA                     MOV     R2,A            ;修改显示行地址
011A E590                   MOV     A,P1            ;修改显示行地址
011C 440F                   ORL     A,#0FH          ;修改显示行地址
011E 5A                     ANL     A,R2            ;修改显示行地址
011F F590                   MOV     P1,A            ;修改完成
0121 C297                   CLR     P1.7            ;开行显示
0123 0A                     INC     R2              ;下一行扫描地址值
0124 A3                     INC     DPTR            ;
0125 A3                     INC     DPTR            ;下一行数据地址


E:\楼然苗\应用源程序\四字显示程序\四字显示汇编程序\4_16.ASM     
 
                                                                    页     5
                                                                    05-15-05
                                                                    15:13:08
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0126 EA                     MOV     A,R2
0127 540F                   ANL     A,#0FH
0129 7010                   JNZ     GO4
012B D200                   SETB    00H             ;R2为10H,现为末行扫描,置1帧结束标志
012D E582                   MOV     A,DPL           ;指针修正为原帧初值
012F 9420                   SUBB    A,#32
0131 F582                   MOV     DPL,A
0133 E583                   MOV     A,DPH
0135 9400                   SUBB    A,#0
0137 F583                   MOV     DPH,A
0139 C28C                   CLR     TR0             ;一帧扫描完,关扫描
013B D0E0   GO4:            POP     ACC
013D 32                     RETI                    ;退出

⌨️ 快捷键说明

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