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

📄 led

📁 常用单片机程序范例代码
💻
字号:
      ;***************************************************************************
      ;*;p0口LED数码管动态驱动     *
      ;* Support telephone:  (www.ggdl.com )                       
      ;*
      ;*               
      ;*
      ;* 
      ;*************************************************************************** 
;
      a_bit equ 20h ;数码管个位数存放内存位置
      b_bit equ 21h ;数码管十位数存放内存位置
      temp equ 22h ;计数器数值存放内存位置
      org 0000h
      ajmp main
      org 030h
      main:nop
      star: mov temp,#0 ;初始化计数器,从0开始
      clr p2.0;
      stlop: acall display;调用显示子程序
      inc temp;对计数器加1
      mov a,temp
      cjne a,#100,next ;判断计数器是否满100?
      mov temp,#0;满100就清零重新开始
      next: ljmp stlop;不满就循环执行

;显示子程序
     display: mov a,temp ;将temp中的十六进制数转换成10进制 
     mov b,#10 ;10进制/10=10进制
     div ab
     mov b_bit,a ;十位在a
     mov a_bit,b ;个位在b
;
     mov dptr,#numtab ;指定查表启始地址
     mov r0,#4 
     dpl1: mov r1,#250 ;
     dplop: mov a,a_bit ;取个位数
     MOVC A,@A+DPTR ;查个位数的7段代码
     mov p0,a ;送出个位的7段代码
     clr p2.4 ;开个位显示
     acall d1ms ;显示162微秒
     setb p2.4;关闭个位显示,防止鬼影
     mov a,b_bit ;取十位数
     MOVC A,@A+DPTR ;查十位数的7段代码
     mov p0,a ;送出十位的7段代码
     clr p2.5 ;开十位显示
     acall d1ms ;显示162微秒
     setb p2.5;关闭十位显示,防止鬼影
     djnz r1,dplop ;循环执行250次
     djnz r0,dpl1 ;循环执行250X4=1000次
     ret

;2+2X80=162微秒,延时按12MHZ计算
    D1MS: MOV R7,#0F8H 
    DJNZ R7,$
    RET

;实验板上的7段数码管0~9数字的共阴显示代码;注意阅读LED数码管的引脚资料。
numtab: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

end


⌨️ 快捷键说明

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