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

📄 jiaotong.asm

📁 用DSP实现的交通灯程序
💻 ASM
字号:
**********************************************************************************
*  jiaotong.asm	 v1.00  交通灯程序	                                             *
*  版权(c) 	2004-		北京百科融创科技有限公司		                         *
*  设计者:	赵治心																 *
*  邮箱:   ourui.wl@263.net								                     *
**********************************************************************************

r16  .set 280h
r17 .set  282h
r18   .set  284h
r21  .set  286h
r22   .set  288h     ;r22 为调用显示一次的列数
r23   .set  28ah     ;r24显示起始页 
r24   .set  28ch     ;r24显示起始列
r25  .set  28eh      ;r25显示结束页
r26   .set   294h
pbdatdir   .set  709ah           
dp_user   .set  5h
dp_pf2    .set  0e1h
padatdir  .set 7098h
pcdatdir   .set  709ch
mcra     .set    7090h
mcrb    .set    7092h
mcrc    .set    7094h
pedatdir   .set   7095h
passtime	.set 20
flashtime	.set 5
    .data 
numtable:
	.word 77h,14h,0b3h,0b6h,0d4h,0e6h,0e7h,34h,0f7h,0f6h
    .include  "240xa.inc"
    .def _c_int0

 .text
_c_int0
         clrc  INTM
         clrc  SXM
         clrc OVM
         clrc CNF
         ldp  #dp_pf2-1
		 lacl #0E01h
         sacl SCSR1
         nop
         ldp #0e0h
         splk  #0e8h,WDCR
         ldp #0
         splk  #0h,IMR
         splk #0ffffh,IFR
         ldp  	#dp_user
		 splk	#0,r22
         out 	r22,WSGR
 		 ldp	#dp_user
         lar	ar3,#passtime
         call	init
         call	showtime
loop1
		 ldp	#dp_user
		 lacl	#066h
		 sacl	r16
		 out	r16,3000h
status1	
		 call	showtime
		 call   delay
		 call	delay
		 mar	*,ar3
		 lar	ar0,	#flashtime	
		 sbrk  #1h
         cmpr 00	
         bcnd	status1,NTC
status2
		 call	showtime
         call	delay
         ldp	#dp_user
		 lacl	#00h
		 sacl	r16
		 out	r16,3000h
		 call	delay
		 ldp	#dp_user
		 lacl	#66h
		 sacl	r16
		 out	r16,3000h
		 call	showtime
		 mar	*,ar3
		 lar   ar0,#00h
		 sbrk  #1h
         cmpr 00
         bcnd	status2,NTC
         call	showtime
         call	delay
         call	delay
         lar	ar3,#passtime
         ldp	#dp_user
		 lacl	#099h
		 sacl	r16
		 out	r16,3000h
status3
		 call	showtime
		 call   delay
		 call	delay
		 mar	*,ar3
		 lar	ar0,	#flashtime	
		 sbrk  #1h
         cmpr 00	
         bcnd	status3,NTC
status4
	     call	showtime
         call	delay
         ldp	#dp_user
		 lacl	#00h
		 sacl	r16
		 out	r16,3000h
		 call	delay
		 ldp	#dp_user
		 lacl	#099h
		 sacl	r16
		 out	r16,3000h
		 call	showtime
		 mar	*,ar3
		 lar   ar0,#00h
		 sbrk  #1h
         cmpr 00
         bcnd	status4,NTC
         call	showtime
         call	delay
         call	delay
		 lar	ar3,#passtime
         b      loop1
         ret
		 
;*************************************************************************     
delay:   
         lar ar2,#2
delay2:  mar  *,ar5
         lar ar5,#0fFffh
         lar   ar0,#00h
delay1:  sbrk  #1h
          nop
          cmpr 00
          bcnd    delay1,NTC
          mar	*,ar2
          sbrk	#1
          cmpr	00
          bcnd	delay2,NTC
          ret 
;*************************************************************************
showtime:
		sar		ar3,	r18
		ldp  	#dp_user
		splk	#0,r22
		splk	#0,r23
		splk	#0,r24
		lar		ar2,#0
		lacl	r18
		mar		*,ar2
comph
		sub		#10
		sacl	r24
		sach	r23
		lacl	r22
		add		#1
		sacl	r22
		lacc	r23,16
		add		r24
		bcnd	comph,geq
		add		#10
		add		#numtable
		sacl	r23
		tblr	r23
		out		r23,	2002h
		out		r23,	2006h
		lacl	r22
		add		#numtable-1
		sacl	r23
		tblr	r23
		out		r23,	2001h
		out		r23,	2005h
	    ret
;**************************************************************************
init:
		ldp  #dp_user  
		lacl #80h        
	    sacl r16
	    out  r16,2000h
	    out  r16,2001h
	    out  r16,2002h
	    out  r16,2003h
	    out  r16,2004h
	    out  r16,2005h
	    out  r16,2006h
	    out	 r16,2007h	
	   	ret	    
;**************************************************************************
        .end   

⌨️ 快捷键说明

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