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

📄 test01.asm

📁 简单的 51单片机源程序--数码管显示1-100计数器
💻 ASM
字号:
51单片机源程序--数码管显示1-100计数器 
[ 2007-11-22 22:06:00 | By: emcu51 ] 
  
; /* 51单片机开发板V3.0和V4.0适用*/
;1 到100数码管显示

ABIT EQU 20H        ;个位数存放处
BBIT EQU 21H          ;十位数存放处
TEMP EQU 22H          ;计数器寄存器

  START:MOV P2,#0FFH
MOV TEMP,#0  ;初始化计数器

  STLOP:ACALL DISPLAY
        INC TEMP
        MOV A,TEMP
        CJNE A,#100,NEXT ;=100重来
        MOV TEMP,#0
    NEXT:LJMP STLOP

;显示子程序
DISPLAY:  mov p0,0ffh
          MOV A,TEMP ;将temp中的十六进制数转换成10进制 
        MOV B,#10  ;10进制/10=10进制
        DIV AB
        MOV BBIT,A ;十位在a
        MOV ABIT,B ;个位在b

;p0口接段码a,b,c,d,e,f,g,  p2口接位码,选哪个数码管显示 
        MOV DPTR,#TAB ;指定查表启始地址
        MOV R0,#4 
    DPL1:MOV R1,#250 ;显示1000次
  DPLOP:MOV A,ABIT ;取个位数
        MOVC A,@A+DPTR ;查个位数的7段代码
        MOV P0,A ;送出个位的7段代码
        CLR P2.0 ;开个位显示
        ACALL D1MS ;显示1ms
      
        SETB P2.0
        MOV A,BBIT ;取十位数
        MOVC A,@A+DPTR ;查十位数的7段代码
        MOV P0,A ;送出十位的7段代码
        CLR P2.1 ;开十位显示
        ACALL D1MS ;显示1ms
        SETB P2.1
        DJNZ R1,DPLOP ;100次没完循环
        DJNZ R0,DPL1 ;4个100次没完循环
        RET
;1MS延时(按12MHZ算)
;====================================================
    D1MS:MOV R7,#80 
        DJNZ R7,$
        RET
;7段数码管各划的数字排列表
    TAB:DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0F8h,80h,90h
          ;不带小数点0 1 2 3 4 5 6 7 8 9
        END
 

⌨️ 快捷键说明

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