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

📄 led_display.asm

📁 汇编编写的S52单片机控制的LED数码管灯显示2位16进制程序
💻 ASM
字号:
ORG 0000H
LJMP MAIN
ORG 000BH            ;定义定时器0中断
LJMP LED_INT        
MAIN:MOV TMOD,#01H   ;采用定时器工作方式1,16位计数器
     MOV TH0,3CH     ;采用T0计数器,并设初始值为3cafh
     MOV TL0,0AFH    
     MOV P2,#0FFH    ;对p2口初始化
     MOV P0,#0FFH    ;对P1口初始化
     MOV P2,#00H     ;清发光二极管显示
     MOV P0,#00H     ;清LED显示
     SETB EA         ;开中断
     SETB ET0        ;开定时器中断
     SETB TR0        ;起用定时器T0
     ;SETB P2.5       
     ;SETB P2.6
     CLR P3.5        ;关蜂鸣器
     MOV R3,#00H     ;设R3为显示寄存器
     MOV R4,#014H    ;设置50ms定时器的循环次数
     MOV R7,#030H    ;设置在中断情况下循环显示的次数

;*****************************************************     


DISPLAY:                    ;显示程序
        CJNE R3,#20H,CONTI  
CONTI:  
        MOV P2,R3           ;点亮二极管
        JC LED_DIS          ;区分显示
        MOV P2,#0FFH        ;当R3大于32时显示全1
LED_DIS:                    ;LED显示
        MOV A,R3
        MOV B,#0AH          ;将R3中的高低分开
	DIV AB
        SETB P1.0           ;设置位选
        CLR  P1.1
        MOV DPTR,#TABLE           
	MOVC A,@A+DPTR      ;查表取值
	MOV P0,A            
	LCALL DELAY1
	SETB P1.1
	CLR P1.0
        MOV A,B
	MOVC A,@A+DPTR
	MOV P0,A
	LCALL DELAY1

LED_CONTR:JB P2.5,CONTR_INT  ;按键功能定义
AJMP DISPLAY

;***************************************************	

LED_INT:DJNZ R4,NEXT       ;中断程序
        INC R3             ;显存内容自加
	CJNE R3,#63H,LOOP  
	MOV R3,#00H
LOOP:   MOV R4,#014H
NEXT:   MOV TH0,3CH        ;初值重载
        MOV TL0,0AFH
	RETI

;**************************************************


CONTR_INT:CPL EA           ;当P2.5按下对中断EA取反决定动静显示
        LCALL DELAY
	JB EA,DISPLAY      ;静态显示下处理其它近键
LOOP2:  JB P2.6,AD
        JB P2.7,DE
        LCALL DISPLAY1
	JB P2.5,CONTR_INT
        LJMP LOOP2
        
AD:     INC R3
        LCALL DISPLAY1       ;按键消抖用多次显示实现了
	CJNE R3,#63H,LOOP2 
	MOV R3,#00H	
	AJMP LOOP2
DE:     LCALL DISPLAY1     
        DJNZ R3,LOOP2
        MOV R3,#63H
	AJMP LOOP2

;**************************************************

DISPLAY1:                    ;按键响应过程中的显示程序
        CJNE R3,#20H,CONTI1
CONTI1: MOV P2,R3
        JC LED_DIS1        
        MOV P2,#0FFH
LED_DIS1:
        MOV A,R3
        MOV B,#0AH
	DIV AB
        SETB P1.0
        CLR  P1.1
        MOV DPTR,#TABLE      
	MOVC A,@A+DPTR
	MOV P0,A
	LCALL DELAY1
	SETB P1.1
	CLR P1.0
        MOV A,B
	MOVC A,@A+DPTR
	MOV P0,A
	LCALL DELAY1
	DJNZ R7,DISPLAY1
	MOV R7,#030H
	RET
	  
DELAY: MOV R5,#00H           ;去抖动延时程序
LOOP4: MOV R6,#00H           
LOOP3: DJNZ R6,LOOP3
       DJNZ R5,LOOP4
       RET
DELAY1:MOV R5,#02H           ;显示延时
LOOP6: MOV R6,#00H
LOOP5: DJNZ R6,LOOP5
       DJNZ R5,LOOP6
       RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH
      DB 7DH,07H,7FH,6FH,77H,7CH
      DB 39H,5EH,79H,71H
 END

⌨️ 快捷键说明

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