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

📄 last.asm

📁 打开后有详细说明
💻 ASM
字号:
	org	0000h
	
	N_50ms	equ	14h	;定时器,定时时间 = 50ms*N_50ms
	Dir1H	equ	50h	;方向1选择寄存器,选择东西或南北方向的数码管高位
	Dir1L	equ	51h	;方向1选择寄存器,选择东西或南北方向的数码管低位
	Dir2H	equ	52h	;方向2选择寄存器,选择东西或南北方向的数码管高位
	Dir2L	equ	53h	;方向2选择寄存器,选择东西或南北方向的数码管低位

	ljmp	main	
	org	0003h
	ljmp	hurryEW
	org	0013h
	ljmp	hurrySN	
	org	000bh
	ljmp	time1s
	
main:				; 东西红灯35s 同时 南北绿30s,黄5s
	mov	r4,#23h		; r4:显示东西红灯倒计时数值 - 35s
				; 在前30s-6s中南北绿亮,后5s南北黄亮
	mov	Dir1H,#0d0h 	; 方向选择    	
	mov	Dir1L,#0e0h 
	mov	Dir2H,#070h 
	mov	Dir2L,#0b0h 
	mov	p1,#00h		
	setb	p1.0	
	setb	p1.3				
	cjne	r4,#05h,redE
yellowE:setb	p1.5
	clr	p1.3
	sjmp	overE
redE:	jc	yellowE
	setb	p1.3
overE:	acall	disp
	clr	p1.0
	clr	p1.5	
				; 同理,南北红灯35s 同时 东西绿30s,黄5s
	mov	Dir1H,#070h 	; 方向选择 
	mov	Dir1L,#0b0h
	mov	Dir2H,#0d0h 	   	
	mov	Dir2L,#0e0h  
	mov	p1,#00h		
	setb	p1.1	
	setb	p1.2				
	cjne	r4,#05h,redS
yellowS:setb	p1.4
	clr	p1.2
	sjmp	overS
redS:	jc	yellowS
	setb	p1.2
overS:	acall	disp
	clr	p1.1
	clr	p1.4					
	sjmp	main	

disp:	setb	EA			
	setb	TR0
	setb	EX0
	clr	IT0
	mov	TMOD,#01h	
	setb	ET0	
	mov	r7,#N_50ms	        
	mov	TH0,#0ffh
	mov	TL0,#0b0h	
	mov	dptr,#2100h	
	mov	a,#03h		
	movx	@dptr,a
led:	mov	dptr,#2101h	; 方向1 位码H
	mov	a,Dir1H
	movx	@dptr,a	
	mov	a,r4
	mov	b,#0ah
	div	ab	
	mov	dptr,#TAB
	movc	a,@a+dptr
	mov	dptr,#2102h
	movx	@dptr,a	
	acall	delay	
	mov	dptr,#2101h	; 方向1 位码L	
	mov	a,Dir1L
	movx	@dptr,a		
	mov	dptr,#TAB
	mov	a,b		
	movc	a,@a+dptr	
	mov	dptr,#2102h
	movx	@dptr,a	
	acall	delay	
	cjne	r4,#05h,down30			
down5:	mov	a,r4		; 方向2 5s --
	clr	c
	subb	a,#1eh
	mov	b,#00h
	sjmp	leddisp	
down30:	jc	down5	
	mov	a,r4		; 方向2 30s --
	clr	c
	subb	a,#05h
	mov	b,#0ah
	div	ab	
leddisp:mov	dptr,#2101h	; 方向2 位码H	
	mov	a,Dir2H
	movx	@dptr,a			
	mov	dptr,#TAB
	movc	a,@a+dptr
	mov	dptr,#2102h	
	movx	@dptr,a	
	acall	delay	
	mov	dptr,#2101h	; 方向2 位码L
	mov	a,Dir2L
	movx	@dptr,a		
	mov	dptr,#TAB	
	mov	a,b		
	movc	a,@a+dptr	
	mov	dptr,#2102h	
	movx	@dptr,a	
	acall	delay		
	cjne	r4,#0ffh,led
	ret
	
	
delay:				; 延时2.5ms
	mov	r6,#05h
d1:	mov	r5,#0fah
d0:	djnz	r5,d0
	djnz	r6,d1
	ret	
	
time1s:				; 定时器服务程序,间隔1s将r4减1一次
	djnz	r7,reload			
	mov	r7,#N_50ms	
	dec	r4	
reload:	mov	TH0,#03ch
	mov	TL0,#0b0h
	reti

hurryEW:			; 东西紧急,东西红
	setb	p1.0
	acall	delay	
	clr	p1.2	
        clr	p1.4
        mov	p1,#00h        
	reti

hurrySN:			; 南北紧急,南北红
	setb	p1.1
	acall	delay	
	clr	p1.3	
        clr	p1.5
        mov	p1,#00h        
	reti

TAB:	db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h

	end

⌨️ 快捷键说明

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