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

📄 sxd.txt

📁 Keil uVision2下
💻 TXT
字号:
功能:Keil uVision2下,串口模式0串行移位输出,与74LS164配合点亮7段数码管

$NOMOD51
$INCLUDE (REG52.INC) ;包含自定义的头文件,可以不要

   ORG	0000H			
	LJMP	MAIN			;跳转指令,程序跳转到MAIN处
   ORG	0003H
    LJMP INT0ISR           ;外部中断0的中断服务程序置于此处 ;或者RETI
   ORG 000BH    
    LJMP Timer0ISR	 
   ORG 0013H    
    LJMP INT1ISR 
   ORG 001BH    
    LJMP Timer1ISR	
   ORG 0023H    
    LJMP UARTISR
   ORG 002BH    
   LJMP Timer2ISR        ;仅52系列
;*************************************************************************
; 主程序
;**************************************************************************
   ORG 30h
 MAIN:
    MOV TCON,#01H; INT0 , 
    MOV TMOD,#00000001B ;MODE 1,16Bits,Timer
	MOV TH0,#15H
	MOV TL0,#0A0H; 6Oms
	SETB TR0
	SETB ET0;   Enable Counter/Timer0 Interrupt
	SETB EX0     ;Enable external INT0
	SETB EA
	MOV IP,#00H

    MOV SCON,#00H ;SERIAL PORT, MODE 0,REN=0 
	CLR 20H;    Byte 20H
	MOV A,20H
    ACALL DISPLAY
	     
	SJMP $      ;Waiting for interrupt
 
;***********************************************************************
;LED7段数码管
;入口参数:Acc
;占用资源:Acc,串口
;出口参数:无
;***********************************************************************  
DISPLAY:
      MOV   DPTR, #TABLE
      MOVC  A, @A+DPTR
	  CLR   TI		   ;TI清0
      MOV   SBUF, A	   ;发送
      JNB   TI, $	   ;等待发送完成
      RET

;**********************************************************************   
;延时2S子程序
;入口参数:无
;占用资源:已被入栈保护
;出口参数:无
;**********************************************************************
DELAY2S:	
            PUSH ACC  ;Store Accumulateor
			MOV A,R1
			PUSH ACC  ;Store R1
			MOV A,R2
			PUSH ACC  ;Store R2
			MOV A,R3
			PUSH ACC ;Store R3 			         	
		MOV R1,#07H	     ;R1=03,delay about 1s@11.0592M;
DL13:   MOV	R2,	#0FFH		;1
DL12:	MOV	R3,	#0ffH	;1
DL11:	NOP				;1
		NOP			    	;1
		DJNZ	R3,	DL11		;2
		DJNZ	R2,	DL12		;2
		DJNZ    R1,DL13
		    POP ACC 
		    MOV R3,A ;Resume R3
			POP ACC 
		    MOV R2,A ;Resume R2
			POP ACC 
		    MOV R1,A ;Resume R1
			POP ACC ;Resume Accumulater
		RET			    	;2
;**********************************************************************   
;延时2S子程序
;入口参数:无
;占用资源:已被入栈保护
;出口参数:无
;**********************************************************************
DELAY10mS:
            PUSH ACC  ;Store Accumulateor
			MOV A,R1
			PUSH ACC  ;Store R1
			MOV A,R2
			PUSH ACC  ;Store R2
           	MOV	R1,	#0AH	;   delay 10ms @11.0592M;
DL22:		MOV	R2,	#0f0H	;1  ,machine cycle 1+[1+(1+2+1)*R2+2]*R1+2
DL21:		NOP				;1
	    	NOP			    	;1
			DJNZ	R2,	DL21	;2
			DJNZ	R1,	DL22	;2
			POP ACC 
		    MOV R2,A ;Resume R2
			POP ACC 
		    MOV R1,A ;Resume R1
			POP ACC
			RET			    	;2   
			    
;**********************************************************************   
;延时1mS子程序
;入口参数:无
;占用资源:已被入栈保护
;出口参数:无
;**********************************************************************	                  
DELAY1mS:  
            PUSH ACC  ;Store Accumulateor
			MOV A,R1
			PUSH ACC  ;Store R1
			MOV A,R2
			PUSH ACC  ;Store R2           
		    MOV	R1,	#0AH	;  delay 1ms@11.0592M;
DL2:		MOV	R2,	#019H	;1
DL1:		NOP				;1
	    	NOP			    	;1
			DJNZ	R2,	DL1		;2
			DJNZ	R1,	DL2		;2
			POP ACC 
		    MOV R2,A ;Resume R2
			POP ACC 
		    MOV R1,A ;Resume R1
			POP ACC
			RET			    	;2

;**********************************************************************   
;七段数码管字模
;**********************************************************************	
TABLE:DB 0C0H,0F9H,0A4H	   ;0,1,2
      DB 0B0H,99H,92H	   ;3,4,5
      DB 82H,0F8H,00H,90H  ;6,7,8,9
 
;**********************************************************************   
;中断服务子程序
;占用资源:?
;出口参数:?
;**********************************************************************

INT0ISR:           ;外部中断0的中断服务程序置于此处 ;或者RETI
	INC 20H
    MOV A,20H
	PUSH ACC
    ACALL DISPLAY
	POP ACC		
	CJNE A,#9, NEXTLOOP
	MOV 20H,#0ffH    ;0ffh+1=00
NEXTLOOP:  
	 
     RETI

Timer0ISR:
    MOV TH0,#15H
	MOV TL0,#0A0H; 6Oms
	SETB TR0

    CPL P3.4
     RETI	 
      
INT1ISR: 
     RETI
    
Timer1ISR:	
  	 RETI
UARTISR:
   	 RETI
Timer2ISR:        ;仅52系列
	 RETI



    END

⌨️ 快捷键说明

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