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

📄 main.lst

📁 实现彩色LED灯变换控制
💻 LST
📖 第 1 页 / 共 3 页
字号:
     1                     ;=====================================================
     2                     ;Program Start
     3                     ;=====================================================
     4                     	include	"include.dt"
     1            C        ;-----------------------------------------------------
     2            C        ;Gerenal Register Define
     3            C        ;-----------------------------------------------------
     4       0000 C        R0					EQU		0x00
     5       0001 C        TCC		  	 	EQU		0x01
     6       0002 C        PC					EQU		0x02
     7       0003 C        STATUS				EQU		0x03
     8       0004 C        R4					EQU		0x04
     9       0005 C        R5					EQU		0x05
    10       0006 C        R6					EQU		0x06
    11       000F C        RF					EQU		0x0F
    12       0005 C        IOC5	  			EQU		0x05
    13       0006 C        IOC6		  		EQU		0x06
    14       000B C        IOCB		  		EQU		0x0B
    15       000C C        IOCC		  		EQU		0x0C
    16       000D C        IOCD		  		EQU		0x0D
    17       000E C        IOCE		  		EQU		0x0E
    18       000F C        IOCF		 	 	EQU		0x0F
    19            C        
    20            C        ;-----------------------------------------------------
    21            C        ;Constant Define
    22            C        ;-----------------------------------------------------
    23       0002 C        Z					 EQU		2
    24       0000 C        C					 EQU		0
    25            C        
    26            C        ;-----------------------------------------------------
    27            C        ;User Register Define
    28            C        ;-----------------------------------------------------
    29       0010 C        Temp			  	EQU		0x10
    30       0011 C        Count		 	    EQU		0x11
    31       0012 C        Flag			 	 EQU		0x12
    32       0013 C        DispMode			  EQU		0x13
    33       0014 C        TimeBase			  EQU		0x14
    34       0015 C        Mode		  		EQU		0x15
    35       0016 C        Dirct				 EQU		0x16
    36       0017 C        Red_Dirct	 		EQU		0x17
    37       0018 C        Green_Dirct  	 	EQU		0x18
    38       0019 C        Blue_Dirct			EQU		0x19
    39       001A C        CntDirct_h			EQU		0x1A
    40       001B C        CntDirct_l			EQU		0x1B
    41       001C C        Duty_RED	 		 EQU		0x1C
    42       001D C        Duty_GREEN   		 EQU		0x1D
    43       001E C        Duty_BLUE			 EQU		0x1E
    44            C        
    45       0020 C        TimeCnt  			 EQU		0x20
    46       0021 C        IRNum				 EQU		0x21
    47       0022 C        IR_Status			 EQU		0x22
    48       0023 C        IRCode_E			  EQU		0x23
    49       0024 C        IRCode_H			  EQU		0x24
    50       0025 C        IRCode_M			  EQU		0x25
    51       0026 C        IRCode_L			  EQU		0x26
    52            C        
    53       0028 C        A_PUSH   			 EQU		0x28
    54       0029 C        STATUS_PUSH		   EQU		0x29
    55       002A C        CntPWM_RED			EQU		0x2A
    56       002B C        CntPWM_GREEN		  EQU		0x2B
    57       002C C        CntPWM_BLUE		   EQU		0x2C
    58            C        
    59       002D C        DispMode_Bak		  EQU		0x2D
    60            C        
    61            C        
    62            C        
    63            C        
    64            C        ;-----------------------------------------------------
    65            C        ;Flag Define:
    66            C        ;-----------------------------------------------------
    67       0000 C        IR_VALID			  EQU		0
    68       0001 C        TCC100US		 	 EQU		1
    69       0002 C        POWER_VALID		   EQU		2
    70       0003 C        POWEROFF			  EQU		3
    71            C        
    72            C        ;-----------------------------------------------------
    73            C        ;IR_Status Define:
    74            C        ;-----------------------------------------------------
    75       0000 C        IR_HEAD_LOW		   EQU         0
    76       0001 C        IR_HEAD_HIGH		  EQU         1
    77       0002 C        IR_DATA_LOW           EQU         2
    78       0003 C        IR_DATA_HIGH          EQU         3
    79            C        
    80            C        ;-----------------------------------------------------
    81            C        ;IR Unit Time Define:
    82            C        ;-----------------------------------------------------
    83       003C C        IR_HEAD_LOWMIN		EQU		  60
    84       0064 C        IR_HEAD_LOWMAX	    EQU		  100
    85            C        
    86       001E C        IR_HEAD_HIGHMIN	   EQU		  30
    87       0032 C        IR_HEAD_HIGHMAX	   EQU		  50
    88            C        
    89       0003 C        IR_DATA_LOWMIN	    EQU		  3
    90       0008 C        IR_DATA_LOWMAX	    EQU		  8
    91            C        
    92       0003 C        IR_ZERO_MIN	       EQU		  3
    93       0008 C        IR_ZERO_MAX	       EQU		  8
    94            C        
    95       000C C        IR_ONE_MIN	        EQU		  12
    96       0012 C        IR_ONE_MAX	        EQU		  18
    97            C        
    98            C        
    99            C        ;-----------------------------------------------------
   100            C        ;Color Data Table Define
   101            C        ;-----------------------------------------------------
   102       0000 C        DECR				  EQU			0
   103       0001 C        INCR				  EQU			1
   104       0002 C        EMPTY				 EQU			2
   105       0004 C        FULL			  	EQU			4
   106            C        
   107            C        ;-----------------------------------------------------
   108            C        ;I/O Define
   109            C        ;-----------------------------------------------------
   110            C        SET_LEFT_RED_ON	MACRO
   111            C        	bc	R6,3
   112            C        	ENDM
   113            C        
   114            C        SET_LEFT_RED_OFF	MACRO
   115            C        	bs	R6,3
   116            C        	ENDM
   117            C        
   118            C        LEFT_RED_ON_SKIP	MACRO
   119            C        	jbc	R6,3
   120            C        	ENDM
   121            C        
   122            C        LEFT_RED_OFF_SKIP	MACRO
   123            C        	jbs	R6,3
   124            C        	ENDM
   125            C        ;-----------------------------------------------------
   126            C        SET_LEFT_GREEN_ON	MACRO
   127            C        	bc	R6,2
   128            C        	ENDM
   129            C        
   130            C        SET_LEFT_GREEN_OFF	MACRO
   131            C        	bs	R6,2
   132            C        	ENDM
   133            C        
   134            C        LEFT_GREEN_ON_SKIP	MACRO
   135            C        	jbc	R6,2
   136            C        	ENDM
   137            C        
   138            C        LEFT_GREEN_OFF_SKIP	MACRO
   139            C        	jbs	R6,2
   140            C        	ENDM
   141            C        ;-----------------------------------------------------
   142            C        SET_LEFT_BLUE_ON	MACRO
   143            C        	bc	R6,1
   144            C        	ENDM
   145            C        
   146            C        SET_LEFT_BLUE_OFF	MACRO
   147            C        	bs	R6,1
   148            C        	ENDM
   149            C        
   150            C        LEFT_BLUE_ON_SKIP	MACRO
   151            C        	jbc	R6,1
   152            C        	ENDM
   153            C        
   154            C        LEFT_BLUE_OFF_SKIP	MACRO
   155            C        	jbs	R6,1
   156            C        	ENDM
   157            C        ;-----------------------------------------------------
   158            C        SET_RIGHT_RED_ON	MACRO
   159            C        	bc	R6,4
   160            C        	ENDM
   161            C        
   162            C        SET_RIGHT_RED_OFF	MACRO
   163            C        	bs	R6,4
   164            C        	ENDM
   165            C        
   166            C        RIGHT_RED_ON_SKIP	MACRO
   167            C        	jbc	R6,4
   168            C        	ENDM
   169            C        
   170            C        RIGHT_RED_OFF_SKIP	MACRO
   171            C        	jbs	R6,4
   172            C        	ENDM
   173            C        ;-----------------------------------------------------
   174            C        SET_RIGHT_GREEN_ON	MACRO
   175            C        	bc	R6,5
   176            C        	ENDM
   177            C        
   178            C        SET_RIGHT_GREEN_OFF	MACRO
   179            C        	bs	R6,5
   180            C        	ENDM
   181            C        
   182            C        RIGHT_GREEN_ON_SKIP	MACRO
   183            C        	jbc	R6,5
   184            C        	ENDM
   185            C        
   186            C        RIGHT_GREEN_OFF_SKIP	MACRO
   187            C        	jbs	R6,5
   188            C        	ENDM
   189            C        ;-----------------------------------------------------
   190            C        SET_RIGHT_BLUE_ON	MACRO
   191            C        	bc	R6,6
   192            C        	ENDM
   193            C        
   194            C        SET_RIGHT_BLUE_OFF	MACRO
   195            C        	bs	R6,6
   196            C        	ENDM
   197            C        
   198            C        RIGHT_BLUE_ON_SKIP	MACRO
   199            C        	jbc	R6,6
   200            C        	ENDM
   201            C        
   202            C        RIGHT_BLUE_OFF_SKIP	MACRO
   203            C        	jbs	R6,6
   204            C        	ENDM
   205            C        ;-----------------------------------------------------
   206            C        IR_HIGH_SKIP		MACRO
   207            C        	jbs	R6,7
   208            C        	ENDM
   209            C        
   210            C        IR_LOW_SKIP		MACRO
   211            C        	jbc	R6,7
   212            C        	ENDM
   213            C        ;-----------------------------------------------------
   214            C        
   215            C        
     5                     
     6                     	ORG	0x000
     7 00000 1460          	jmp	Start
     8 00001 0000          	nop
     9 00002 0000          	nop
    10 00003 0000          	nop
    11 00004 0000          	nop
    12 00005 0000          	nop
    13 00006 0000          	nop
    14 00007 0000          	nop
    15                     	ORG	0x008
    16 00008               INT_Entry:						;100us TCC Interrupt
    17 00008 0068          	mov	A_PUSH,A			   ;A==>A_PUSH
    18 00009 0703          	swapa  STATUS				 ;
    19 0000A 0069          	mov	STATUS_PUSH,A		  ;STATUS==>STATUS_PUSH
    20 0000B 0560          	inc	TimeCnt
    21 0000C 0A52          	bs	 Flag, TCC100US
    22 0000D 18A3          	mov	A,@0x0A3
    23 0000E 0041          	mov	TCC,A
    24 0000F 080F          	bc	 RF,0
    25 00010 0729          	swapa  STATUS_PUSH			;
    26 00011 0043          	mov	STATUS,A			   ;STATUS_PUSH==>STATUS
    27 00012 0768          	swap   A_PUSH
    28 00013 0728          	swapa  A_PUSH				 ;A_PUSH==>A
    29 00014 0013          	reti
    30                     
    31                     	ORG	0x020
    32 00020               Red_Table:
    33 00020 03C2          	add	 PC, A
    34 00021 1C00          	retl	@DECR			;0
    35 00022 1C02          	retl	@EMPTY		   ;1
    36 00023 1C01          	retl	@INCR			;2
    37 00024 1C00          	retl	@DECR			;3
    38 00025 1C01          	retl	@INCR			;4
    39 00026 1C04          	retl	@FULL			;5
    40 00027 1C00          	retl	@DECR			;6
    41 00028 1C01          	retl	@INCR			;7
    42 00029 1C00          	retl	@DECR			;8
    43 0002A 1C02          	retl	@EMPTY		   ;9
    44 0002B 1C01          	retl	@INCR			;10
    45                     	
    46 0002C               Green_Table:
    47 0002C 03C2          	add	 PC, A
    48 0002D 1C01          	retl	@INCR			;0
    49 0002E 1C00          	retl	@DECR			;1
    50 0002F 1C02          	retl	@EMPTY		   ;2
    51 00030 1C01          	retl	@INCR			;3
    52 00031 1C04          	retl	@FULL			;4
    53 00032 1C00          	retl	@DECR			;5
    54 00033 1C01          	retl	@INCR			;6
    55 00034 1C00          	retl	@DECR			;7
    56 00035 1C02          	retl	@EMPTY		   ;8
    57 00036 1C01          	retl	@INCR			;9
    58 00037 1C00          	retl	@DECR			;10
    59                     
    60 00038               Blue_Table:
    61 00038 03C2          	add	 PC, A
    62 00039 1C02          	retl	@EMPTY		   ;0

⌨️ 快捷键说明

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