myproj.asm

来自「暑假为学生培训写的51相关接口的所有源码及项目代码」· 汇编 代码 · 共 184 行

ASM
184
字号
	org 0000H
	LJMP Main
	org 0003H
	LJMP Int0Add
	org 000bH
	LJMP TimeSec
	org 0013H
	LJMP Int1Dec
	org 0023H
	LJMP RecvDat
	org 0100H
Main:			;初始化
	mov	SP,#60h	
	mov R0,#01h
	mov R1,#10h
	mov R4,#00h
	mov R3,#3ch
	mov R2,#00h
	mov P2,#0FFh
	mov P0,#0FFH
	mov DPTR,#0400H
	mov	TMOD,#21h
	mov TH1,#0fdh
	mov	TL1,#0Fdh
	mov TH0,#00h
	mov TL0,#00h
	mov SCON,#50h
	mov PCON,#00h
	mov IE,#0d7h
    setb it1
    setb it0
    setb TR1
	setb TR0
	clr	 ri	
	clr  F0
Again:			;循环调用显示
	Call DispLed
	Call DispNum
	JMP	Again
;LED显示
DispLed:
	mov P2,#80h
	jb F0,ShowOtr
	mov P0,R4
	JMP Show
ShowOtr:
	CJNE R4,#04h,ShowStart
	mov P0,R2
	JMP Show
ShowStart:
	mov P0,R3
Show:
	mov R6,#05h
	Call DelayMs
	ret
;数码显示  注意修改位控位及位控电平
DispNum:
	mov A,R0
	mov B,#0Ah
	div AB
	movc A,@A+DPTR
	mov p2,#40h
	mov p0,A
	mov R6,#05h
	Call DelayMs
	mov A,B
	movc A,@A+DPTR
	mov p2,#20H
	mov P0,A
	mov R6,#05h
	Call DelayMs
	ret
;外部中断0
Int0Add:
	clr ex0
	JNB F0,AddR1
	CJNE R4,#04H,AddR3
	inc R2
	CJNE R2,#02h,Exit0
	mov R2,#00H
	JMP Exit0
AddR3:
	inc R3
	CJNE R3,#63h,Exit0
	mov R3,#00H
	JMP Exit0
AddR1:
	inc R4
	CJNE R4,#06h,Exit0
	mov R4,#00H
Exit0:
	setb ex0
	reti
;外部中断1
Int1Dec:
	clr ex1
	CJNE R4,#00H,Next01
	setb TR0
	JMP Exit1
Next01:
	CJNE R4,#01H,Next02
	clr TR0
	JMP Exit1
Next02:
	CJNE R4,#02H,Next03
	mov R0,#00H
	JMP Exit1
Next03:
	CJNE R4,#03H,NextOther
	CJNE R2,#00H,MODE1
	mov R0,#00h
	JMP Exit1
MODE1:
	mov A,R3
	mov R0,A
	JMP Exit1
NextOther:
	CPL F0
Exit1:
	setb ex1
	reti
;串行中断  实现简单的置数及计数启停
RecvDat:	
	jnb TI,RiCom
	CLR TI
RiCom:
	jnb RI,ExitCom
	CLR RI
	mov A,SBUF
	mov R0,A
	CJNE R0,#00h,NextCom
	CLR TR0
NextCom:
	CJNE R0,#01h,ExitCom
	mov TH0,#0ffh
	mov TL0,#0ffh
	mov R1,#10h
	Setb TR0
ExitCom:
	reti
;定时器中断0
TimeSec:
	mov TL0,#00h
	mov TH0,#00h
	DJNZ R1,ExitSec
	mov R1,#10H
	CJNE R2,#00H,DecR0
	inc R0
	CJNE R0,#3Ch,ExitSec
	mov R0,#0h
	JMP ExitSec
DecR0:
	dec R0
	CJNE R0,#00h,ExitSec
	mov A,R3
	mov R0,A
ExitSec:
	reti
;秒级延时子程序以130050us为单位,最大为130050us		
DelaySs:		
	mov 	r6,#0ffh
ss:	
	mov 	r7,#0ffh
	djnz 	r7,$
	djnz 	r6,ss
	djnz	r5,DelaySs
	ret
;毫秒延时子程序以510us为单位,最大为130050us		
DelayMs:		
	mov 	r7,#0ffh
	djnz 	r7,$
	djnz 	r6,DelayMs
	ret
;微秒延时以2us为单位,最大为510us
DelayUs:
	djnz r7,$           
    ret
	
	org 0400h
;共阳极数码管数模0~9、A~F
DB  0C0h,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB	080H,090H,088H,083H,0C6H,0A1H,086H,08EH
	
end

⌨️ 快捷键说明

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