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

📄 258.asm

📁 汇编语言写的数据采集程序,已调试通过,使用的是51单片机.
💻 ASM
字号:
         xa bit p2.0
         xb bit p2.1
         xc bit p2.2
         ale bit p2.3
         st bit p2.4
         oe bit p2.5
         eoc bit p3.7
         lamp bit p3.5
         speak bit p3.6

         ORG 00H
         LJMP START
         ORG 0BH
         LJMP T0X
         ORG 30H


start:          mov     sp,70h
                CLR     A           ;
                MOV     P2,A        ;P2口置0
                MOV     R0,#20H     ;内存循环清0(20H-2BH)
                MOV     R2,#0CH     ;
LOOPMEM:        MOV     @R0,A       ;
                INC     R0          ;
                DJNZ    R2,LOOPMEM  ;

                MOV     A,#0FFH     ;
                MOV     P0,A    	;P0、P1、P3端口置1
                MOV     P1,A    	;
                MOV     P3,A    	;

                MOV TMOD,#01H
                MOV TH0,#high(65536-4000)
                MOV TL0,#low(65536-4000)
                  
                setb   tr0
                setb   et0
                SETB EA
               
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

          main: nop
                nop
                nop
                nop
                nop
                call testst
                WAIT: JNB EOC,WAIT0
                SETB OE
                MOV 20h,P0
                CLR OE
          wait0:ajmp main
                
        testst: clr tr0
                clr et0
                clr xc
                setb xb
                setb xa
                setb ale
                nop
                nop
                clr xc
                setb xb
                setb xa
                clr ale

                CLR ST
                nop
                nop
                SETB ST
                nop
                nop
                nop
                CLR ST
                setb   tr0
                setb   et0
                ret
          
           bcd: MOV A,20h
                MOV B,#100
                DIV AB
                MOV 2ah,A
                MOV A,B
                MOV B,#10
                DIV AB
                MOV 29h,A
                MOV 28h,B
                mov 2bh,#3
                ret
         
            DISP: call bcd
                  MOV     R1,#28H       ;赋显示数据单元首址
                  MOV     R5,#0FEH      ;扫描字
         PLAY:    MOV     P1,#0FFH      	  ;关显示
                  MOV     A,R5          	  ;取扫描字
                  ANL     P3,A              ;开显示
                  MOV    A,@R1              ;取显示数据
                  MOV    DPTR,#TAB          ;取段码表首址
                  MOVC   A,@A+DPTR          ;查显示数据对应段码
                  MOV    P1,A                ;段码放入P1口
                  LCALL  DL1MS              ;显示1MS
                  INC    R1                 ;指向下一地址
                  MOV    A,P3               ;取P3口扫描字
                  JNB    ACC.3,ENDOUT       ;四位显示完转ENDOUT结束
                  RL     A                  ;扫描字循环左移
                  MOV    R5,A               ;扫描字放入R5暂存
                  MOV    P3,#0FFH           ;显示暂停
                  AJMP   PLAY               ;转PLAY循环
       ENDOUT:    MOV    P3,#0FFH           ;显示结束,端口置1
                  MOV    P1,#0FFH
                  ret

             T0X: NOP
                  clr tr0
                  clr et0
                  MOV TH0,#high(65536-4000)
                  MOV TL0,#low(65536-4000)
                  mov r4,#80
            round:call disp
                  djnz r4,round
                  setb   tr0
                  setb   et0
                  reti


      ;LED数码显示管用共阳段码表,分别对应0-9,最后一个是"熄灭符"
TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
;
; 1MS延时子程序,LED显示用
DL1MS:          MOV	 R6,#20      ;
DL1:            MOV	 R7,#25
DL2:            DJNZ     R7,DL2
                DJNZ     R6,DL1
                RET
                end






⌨️ 快捷键说明

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