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

📄 des3428.lst

📁 Led控制,这是一个不错的东东,希望对这方面的朋友有帮助
💻 LST
字号:
00:         ;create by bighandfor des3428, 4/27/2007                                                                         
00:         ;LED program for DES3428                                                   
00:         ;                                                                          
00:         ;LED sequence:                                                             
00:         ;  
00:         ;LED for FE ports                                                                                                                                  
00:         ;Bit NO.	 0						    1	              2	                  3	         
00:         ;Function	 p1/10	    		p1/100	  			p2/10	      				p2/100
00:         ;Bit NO.	 4						    5	              6	                  7 	       
00:         ;Function	 p3/10		    	p3/100	  			p4/10	      				p4/100
00:         ;						.
00:         ;						.
00:         ;						.
00:         ;Bit NO.	 44						    45	              46	                47	       
00:         ;Function	 p23/10	  			p23/100	  			p24/10							p24/100
00:         
00:         ;LED for SIO port                                                               
00:         ;Bit NO.	 48						    49	            50	                51	       
00:         ;Function	 SIO_p1/100/10	SIO_p1/1000	  	SIO_p2/100/10				SIO_p2/1000
00:         
00:         ;LED for combo port                                                                
00:         ;Bit NO.	 52						    53	            54	                55	       
00:         ;Function	 COM_p1/100/10	COM_p1/1000  		COM_p2/100/10				COM_p2/1000
00:         
00:         ;LED for 7-seg led                                                                       
00:         ;Bit NO.	 56						    57	            58	              	59	       
00:         ;Function	 1A/1B/7_SEG	  2A/7_SEG_LED		2B/7_SEG_LED	    	2C/7_SEG_LED
00:         ;Bit NO.	 60						    61	            62	                63
00:         ;Function	 2D/7_SEG_LE	  2E/7_SEG_LED	  2F/7_SEG_LED	      2G/7_SEG_LE
00:         
00:         
00:         ; Symbolic names for the bits of the port status fields                
00:         ;                                                                      
00:         RX                 equ     0x0     ; received packet                   
00:         TX                 equ     0x1     ; transmitted packet                
00:         COLL               equ     0x2     ; collision indicator               
00:         SPEED_C            equ     0x3     ; 100 Mbps                          
00:         SPEED_M            equ     0x4     ; 1000 Mbps                         
00:         DUPLEX             equ     0x5     ; half/full duplex                  
00:         FLOW               equ     0x6     ; flow control capable              
00:         LINKUP             equ     0x7     ; link down/up status               
00:         LINKEN             equ     0x8     ; link disabled/enabled status      
00:         ZERO               equ     0xE     ; always 0                          
00:         ONE                equ     0xF     ; always 1  
00:         
00:         
00:         LED_FE_END         equ     24  ;24
00:         LED_SFP_END	       equ     26  ;24 + 2
00:         LED_XE_END         equ     28  ;24 + 2 + 2
00:         LED_MG_END      	 equ     36  ;24 + 2 + 2 + 8 
00:         LED_TOTAL_NUM      equ     36 
00:         LED_TOTAL_BITS     equ     64 
00:         
00:         ;
00:         LED_TIMER          equ     0xC0 ;led timer
00:         counter            equ     0xC1 ;led counter
00:         phyport            equ     0xC2 ;physical port number
00:         
00:         ;per port's link status
00:         ;Host update LED_LINK according link state
00:         ;bit0-bit3: timer
00:         ;bit4: 0=linkdown, 1=linkup
00:         ;bit5:medium, 1=fiber, 0=copper
00:         ;bit6:100M/1000M, 1=1000M on GE port,or 100M on FE port, 0=100M/10M on GE port,or 10M on FE port 
00:         ;bit7: 7 segment led
00:         
00:         ;one byte per port, total 58 bytes
00:         LED_LINK           equ    0xC4  ; total 28
00:         
00:         begin:
00:             ;initialize
00: 02 00       ld      A, 0
02: 60 C1       ld      (counter), A
04:         
04:         ledloop:
04:             ;Assign the first port
04: 12 00       ld      B, 0
06: 06 C1       ld  		A, (counter)
08: 67 7A       call    getportmap
0A: 06 C2       ld      A, (phyport)
0C: 28          port    A
0D:         
0D: F2 C4       add     A, LED_LINK	  ; A = LED_LINK[phyport]
0F: 67 1B       call    led_link_status
11: 86 C1       inc     (counter)
13: 06 C1       ld      A, (counter)
15: D2 24       cmp     A, LED_TOTAL_NUM
17: 74 04       jnz     ledloop
19:         sendto:
19: 3A 40       send LED_TOTAL_BITS   
1B:         
1B:         ;assume the addrss of link status for phyport has been loaded into A, 
1B:         led_link_status:
1B: 16 C1       ld      B,(counter)
1D:         fe_port:
1D: DA 18       cmp     B, LED_FE_END
1F: 75 29       jnc     xe_port
21: 77 39   		jmp     check_link
23:         sfp_port:
23: DA 1A   		cmp     B, LED_SFP_END
25: 75 23   		jnc     sfp_port
27: 77 39   		jmp     check_link	
29:         xe_port:
29: DA 1C   		cmp     B, LED_XE_END
2B: 75 2F   		jnc     seven_seg
2D: 77 39   		jmp     check_link
2F:         					    
2F:         seven_seg:
2F: DA 24       cmp     B, LED_MG_END  ; if (counter >= LED_MG_END) jmp mg_end
31: 75 A1       jnc     mg_end 
33: 4A 07       tst     (A), 7     
35: 71 68       jc      LED_ON_ONEBIT
37: 77 64       jmp     LED_OFF_ONEBIT
39:         
39:         check_link:
39: 4A 04       tst    (A), 4
3B: 75 61       jnc    LINK_DOWN
3D:         traffic:
3D: 32 00       pushst  RX
3F: 32 01       pushst  TX
41: B7          tor
42: 97          pop     
43: 71 4F       jc      LINK_BLINK 
45: 14          ld      B,(A)
46: CA F0       and     B, 0xF0
48: 41          ld	    (A), B    ;reset led timer
49:         LINK_UP:
49: 4A 06       tst     (A), 6
4B: 71 73       jc      LED_ON_GREEN   
4D: 77 6C       jmp     LED_ON_AMBER
4F:         
4F:         ;(A): link status; B: counter
4F:         LINK_BLINK:
4F: 84          inc    (A)
50: 14          ld      B,(A)
51: CA 0F       and     B, 0x0F
53: DA 02       cmp     B,2
55: 71 61       jc      LINK_DOWN
57: DA 03       cmp     B,3
59: 71 49       jc      LINK_UP
5B: 14          ld      B, (A)
5C: CA F0       and     B, 0xF0
5E: 41          ld      (A),B
5F: 77 4F       jmp     LINK_BLINK   
61:         
61:         LINK_DOWN:
61: 32 0F       pushst    ONE
63: 87          pack
64:         LED_OFF_ONEBIT:
64: 32 0F       pushst    ONE
66: 87          pack
67: 57          ret 
68:         
68:         LED_ON_ONEBIT:
68: 32 0E       pushst    ZERO
6A: 87          pack
6B: 57          ret
6C:             
6C:         LED_ON_AMBER:
6C: 32 0E       pushst    ZERO
6E: 87          pack
6F: 32 0F       pushst    ONE
71: 87          pack
72: 57          ret
73:             
73:         LED_ON_GREEN:
73: 32 0F       pushst    ONE
75: 87          pack
76: 32 0E       pushst    ZERO
78: 87          pack
79: 57          ret
7A:             
7A:         ;get portmap, assume counter has been loaded into A
7A:         getportmap:
7A: D2 18      cmp A, LED_FE_END ; if (counter >= LED_FE_END) jump sfp_portmap
7C: 75 84      jnc  sfp_portmap
7E: 12 06      ld B,6
80: F1         add A,B
81: 60 C2      ld (phyport), A
83: 57       	 ret
84:         sfp_portmap:
84: D2 1A      cmp A, LED_SFP_END ; if (counter >= LEDSFP_END) jump xe_portmap
86: 75 8E      jnc xe_portmap
88: 12 14      ld B, 20
8A: E1         sub A, B
8B: 60 C2      ld (phyport), A
8D: 57         ret
8E:         xe_portmap:
8E: D2 1C      cmp A,LED_XE_END
90: 75 98      jnc mg_portmap
92: 12 19      ld B, 25
94: E1         sub A, B
95: 60 C2      ld (phyport), A
97: 57         ret
98:         mg_portmap:
98: D2 24      cmp A, LED_MG_END
9A: 75 A1      jnc mg_end
9C: 12 1B   	 ld B, 27
9E: E1      	 sub A, B
9F: 60 C2   	 ld (phyport), A
A1:         mg_end:
A1: 57         ret
A2:            



----- symbol table, 43 symbols -----
          rx	0x0000
          tx	0x0001
        coll	0x0002
     speed_c	0x0003
     speed_m	0x0004
      duplex	0x0005
        flow	0x0006
      linkup	0x0007
      linken	0x0008
        zero	0x000E
         one	0x000F
  led_fe_end	0x0018
 led_sfp_end	0x001A
  led_xe_end	0x001C
  led_mg_end	0x0024
led_total_num	0x0024
led_total_bits	0x0040
   led_timer	0x00C0
     counter	0x00C1
     phyport	0x00C2
    led_link	0x00C4
       begin	0x0000
     ledloop	0x0004
      sendto	0x0019
led_link_status	0x001B
     fe_port	0x001D
    sfp_port	0x0023
     xe_port	0x0029
   seven_seg	0x002F
  check_link	0x0039
     traffic	0x003D
     link_up	0x0049
  link_blink	0x004F
   link_down	0x0061
led_off_onebit	0x0064
led_on_onebit	0x0068
led_on_amber	0x006C
led_on_green	0x0073
  getportmap	0x007A
 sfp_portmap	0x0084
  xe_portmap	0x008E
  mg_portmap	0x0098
      mg_end	0x00A1

⌨️ 快捷键说明

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