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

📄 my.asm

📁 汇编语言写的时钟程序,已调试通过,使用的是51单片机.
💻 ASM
字号:
;************************;
;八路模拟数据采集显示电路;
;         ;
;************************;
;
;70H-77H存放采样值,78H-7BH存放显示数据,依次为个位、十位、百位、通道标志
;
;*************************************
;*                                   *
;*      主程序和中断程序入口         *
;*                                   *
;*************************************
         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 main
main: mov a,#00h
      mov p2,a
      mov a,#0ffh
      mov p1,a
      mov p3,a
      mov p0,a
      mov 70h,#00h
      mov 78h,#00h
      mov 79h,#00h
      mov 7ah,#00h
      mov 7bh,#00h

start:;clr xc
      ;setb xb
      ;setb xa
      MOV P2,#00h       ;清P2口
      ;call bcd
      ;call display
wait: call testst   ;启动A/D

wait1:jb eoc,movd1    ;=1转换结束
      ;call bcd
      ;call display
      jmp  wait1

movd1:call movd
      call bcd
      ;call gogo
      mov r3,#20
dis:  call display
      call display

      djnz r3, dis
      jmp wait





testst:

       setb ale
       nop
       nop
       ;clr xc
       ;setb xb
       ;setb xa
       clr ale

       ;clr st
       ;nop
       ;nop
       setb st
       nop
       nop
       clr st
       nop
       nop
       nop
       ret

movd: setb oe
      mov 70h,p0
      clr oe
       RET
bcd:
    mov a,70h
    mov b,#100
    div ab
    mov 7ah,a
    mov a,#10
    xch a,b
    div ab
    mov 79h,a
    mov 78h,b
    mov 7bh,#03h
    ret

DISPLAY:        MOV     R1,#78H       ;赋显示数据单元首址
                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  delay0              ;显示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
                ;mov a,p3
                ;mov r0,#0fh
                ;xchd a,@r0
                ;mov p3,a
                MOV    P1,#0FFH           ;
                RET                       ;子程序返回


;LED数码显示管用共阳段码表,分别对应0-9,最后一个是"熄灭符"
TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH


; 1MS延时子程序,LED显示用
DL1MS:          MOV	 R4,#14H      ;
DL1:            MOV	 R3,#19H
DL2:            DJNZ     R3,DL2
                DJNZ     R4,DL1
                RET
   delay0:mov r6,#20  ;1ms
      x1:mov r7,#18
      x2:djnz r7,x2
          djnz r6,x1
          ret
          end

⌨️ 快捷键说明

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