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

📄 4.lst

📁 《51系列单片机设计实例》配套光盘中的实例4
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                    页     1
                                                                    01-29-03
                                                                    01:12:20
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;************************;
            ;八路模拟数据采集显示电路;
            ;     2001.10.08编      ;
            ;************************;
            ;
            ;70H-77H存放采样值,78H-7BH存放显示数据,依次为个位、十位、百位、通道标志
            ;
            ;*************************************
            ;*                                   *
            ;*      主程序和中断程序入口         *
            ;*                                   *
            ;*************************************
            ORG     0000H    ;程序执行开始地址
0000 020040 LJMP    START    ;跳至START执行
            ORG     0003H    ;外中断0中断入口地址
0003 32     RETI             ;中断返回(不开中断)
            ORG     000BH    ;定时器T0中断入口地址
000B 32     RETI             ;中断返回(不开中断)
            ORG     0013H    ;外中断1中断入口地址
0013 32     RETI             ;中断返回(不开中断)
            ORG     001BH    ;定时器T1中断入口地址
001B 32     RETI             ;中断返回(不开中断)
            ORG     0023H    ;串行口中断入口地址
0023 32     RETI             ;中断返回(不开中断)
            ORG     002BH    ;定时器T2中断入口地址
002B 32     RETI             ;中断返回(不开中断)
            ;
            ;*************************************
            ;*                                   *
            ;*       初始化程序中的各变量        *
            ;*                                   *
            ;*************************************
002C E4     CLEARMEMIO:     CLR     A           ;
002D F5A0                   MOV     P2,A        ;P2口置0
002F 7870                   MOV     R0,#70H     ;内存循环清0(70H-7BH)
0031 7A0C                   MOV     R2,#0CH     ;
0033 F6     LOOPMEM:        MOV     @R0,A       ;
0034 08                     INC     R0          ;
0035 DAFC                   DJNZ    R2,LOOPMEM  ;
0037 74FF                   MOV     A,#0FFH     ;
0039 F580                   MOV     P0,A    	;P0、P1、P3端口置1
003B F590                   MOV     P1,A    	;
003D F5B0                   MOV     P3,A    	;
003F 22                     RET             	;子程序返回
            ;
            ;*************************************
            ;*                                   *
            ;*	    主 程 序                 *


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例4\4.ASM      
 
                                                                    页     2
                                                                    01-29-03
                                                                    01:12:20
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;*                                   *
            ;*************************************
0040 12002C START:          LCALL   CLEARMEMIO      ;初始化
0043 120051 MAIN:           LCALL   DISPLAY         ;显示数据一次
0046 1200B2                 LCALL   TEST            ;测量一次
0049 0143   		AJMP	MAIN            ;返回MAIN循环
004B 00     		NOP	                ;PC值出错处理
004C 00     		NOP                     ;空操作
004D 00     		NOP                     ;空操作
004E 020040 		LJMP	START           ;重新复位起动
            ;
0051 7B08   DISPLAY:        MOV     R3,#08H         ;8路信号循环显示控制
0053 7870                   MOV     R0,#70H         ;显示数据初址(70H-77H)
0055 757B00                 MOV     7BH,#00H        ;显示通道路数(0-7)
0058 E6     DISLOOP1:       MOV     A,@R0           ;显示数据转为三位十进制BCD码存入
0059 75F064                 MOV     B,#100          ;7AH、79H、78H显示单元内
005C 84                     DIV     AB              ;显示数据除100
005D F57A                   MOV     7AH,A           ;商入7AH
005F 740A                   MOV     A,#10           ;A放入数10
0061 C5F0                   XCH     A,B             ;余数与数10交换
0063 84                     DIV     AB              ;余数除10
0064 F579                   MOV     79H,A           ;商入79H
0066 85F078                 MOV     78H,B           ;余数入78H
0069 7AFF                   MOV     R2,#0FFH       ;每路显示时间控制 4MS*255
006B 120076 DISLOOP2:       LCALL   DISP           ;调四位LED显示程序
006E DAFB                   DJNZ    R2,DISLOOP2    ;每路显示时间控制
0070 08                     INC     R0             ;显示下一路
0071 057B                   INC     7BH            ;通道显示数值加1
0073 DBE3                   DJNZ    R3,DISLOOP1    ;8路显示未完转DISLOOP1再循环
0075 22                     RET                    ;8路显示完子程序结束
            ;
            ; LED共阳显示子程序,显示内容在78H-7BH,数据在P1输出,列扫描在P3.0-P3.3口
0076 7978   DISP:           MOV     R1,#78H       ;赋显示数据单元首址
0078 7DFE                   MOV     R5,#0FEH      ;扫描字
007A 7590FF PLAY:           MOV     P1,#0FFH      	  ;关显示
007D ED                     MOV     A,R5          	  ;取扫描字
007E 52B0                   ANL     P3,A              ;开显示
0080 E7                     MOV    A,@R1              ;取显示数据
0081 90009E                 MOV    DPTR,#TAB          ;取段码表首址
0084 93                     MOVC   A,@A+DPTR          ;查显示数据对应段码
0085 F590                   MOV    P1,A                ;段码放入P1口
0087 1200A9                 LCALL  DL1MS              ;显示1MS
008A 09                     INC    R1                 ;指向下一地址
008B E5B0                   MOV    A,P3               ;取P3口扫描字
008D 30E307                 JNB    ACC.3,ENDOUT       ;四位显示完转ENDOUT结束
0090 23                     RL     A                  ;扫描字循环左移
0091 FD                     MOV    R5,A               ;扫描字放入R5暂存
0092 75B0FF                 MOV    P3,#0FFH           ;显示暂停


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例4\4.ASM      
 
                                                                    页     3
                                                                    01-29-03
                                                                    01:12:20
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0095 017A                   AJMP   PLAY               ;转PLAY循环
0097 75B0FF ENDOUT:         MOV    P3,#0FFH           ;显示结束,端口置1
009A 7590FF                 MOV    P1,#0FFH           ;
009D 22                     RET                       ;子程序返回
            ;
            ;LED数码显示管用共阳段码表,分别对应0-9,最后一个是"熄灭符"
009E C0F9A4 
00A1 B09992 
00A4 82F880 
00A7 90FF   TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
            ;
            ; 1MS延时子程序,LED显示用
00A9 7E14   DL1MS:          MOV	 R6,#14H      ;
00AB 7F19   DL1:            MOV	 R7,#19H
00AD DFFE   DL2:            DJNZ     R7,DL2
00AF DEFA                   DJNZ     R6,DL1
00B1 22                     RET
            ;
            ;模数转换测量子程序
00B2 E4     TEST:           CLR     A          ;清累加器A
00B3 F5A0                   MOV     P2,A       ;清P2口
00B5 7870                   MOV     R0,#70H    ;转换值存放首址
00B7 7F08                   MOV     R7,#08H    ;转换8次控制
00B9 1200C1                 LCALL  TESTART     ;启动测试
00BC 20B713 WAIT:           JB     P3.7,MOVD   ;等A/D转换结束信号后转MOVD
00BF 01BC                   AJMP   WAIT        ;P3.7为0等待
            ;
00C1 D2A3   TESTART:        SETB    P2.3       ;锁存测试通道地址
00C3 00                     NOP                ; 延时2微秒
00C4 00                     NOP                ;
00C5 C2A3                   CLR     P2.3       ;测试通道地址锁存完毕
00C7 D2A4                   SETB    P2.4      ; 启动测试,发开始脉冲
00C9 00                     NOP               ; 延时2微秒
00CA 00                     NOP               		  ;
00CB C2A4                   CLR     P2.4      		  ; 发启动脉冲完毕
00CD 00                     NOP                       ;延时4微秒
00CE 00                     NOP                       ;
00CF 00                     NOP                       ;
00D0 00                     NOP                       ;
00D1 22                     RET                       ;子程序调用结束
            ;
            ; 取A/D转换数据至70H-77H内存单元
00D2 D2A5   MOVD:           SETB    P2.5              ;8090输出允许
00D4 E580                   MOV     A,P0              ;将A/D转换值移入A
00D6 F6                     MOV     @R0,A             ;放入内存单元
00D7 C2A5                   CLR     P2.5              ;关闭8090输出
00D9 08                     INC     R0                ;内存地址加1
00DA E5A0                   MOV     A,P2              ;通道地址移入A


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例4\4.ASM      
 
                                                                    页     4

⌨️ 快捷键说明

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