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

📄 07_08.lst

📁 一个16LED显示的双路马达驱动电路图
💻 LST
📖 第 1 页 / 共 4 页
字号:
   599 0018E               LEDDUTY0:
   600 0018E 0422                  MOV     A,SPEED_L
   601 0018F 1040                  CALL    MODE1_TABH
   602 00190 190E                  OR      A,@0b00001110     ;60 
   603 00191 0054                  MOV     R6_BUF,A
   604 00192 15F1                  JMP     LEDDISOUT
   605 00193               LEDDUTY1:
   606 00193 0422                  MOV     A,SPEED_L
   607 00194 104A                  CALL    MODE1_TABL
   608 00195 190D                  OR      A,@0b00001101     ;61
   609 00196 0054                  MOV     R6_BUF,A
   610 00197 15F1                  JMP     LEDDISOUT
   611 00198               LEDDUTY2:
   612 00198 0423                  MOV     A,SPEED_R
   613 00199 1040                  CALL    MODE1_TABH
   614 0019A 190B                  OR      A,@0b00001011     ;62
   615 0019B 0054                  MOV     R6_BUF,A
   616 0019C 15F1                  JMP     LEDDISOUT
   617 0019D               LEDDUTY3: 
   618 0019D 0423                  MOV     A,SPEED_R
   619 0019E 104A                  CALL    MODE1_TABL
   620 0019F 1907                  OR      A,@0b00000111     ;63   
   621 001A0 0054                  MOV     R6_BUF,A
   622 001A1 15F1                  JMP		LEDDISOUT
   623                                
   624                     ;*******************************************
   625 001A2               DIS_MODE3:
   626 001A2 1802          		MOV		A,@0X02   ;display every bit 60ms 
   627 001A3 031F          		XOR	  	A,FLAG_30MS
   628 001A4 0E83          		JBS	 	STATUS,Z
   629 001A5 15D5          		JMP	  	DIS_M2
   630 001A6 00DF          		CLR	  	FLAG_30MS
   631 001A7 15AD          		JMP	  	TEST2L
   632                     		
   633                     ;********************************************************
   634 001A8               DIS_MODE2:
   635 001A8 1802          		MOV	  	A,@0X02   ;display every bit 60ms 
   636 001A9 031E          		XOR	  	A,REG_30MS
   637 001AA 0E83          		JBS	  	STATUS,Z
   638 001AB 15D5          		JMP	  	DIS_M2
   639 001AC 00DE          		CLR	  	REG_30MS
   640                     ;***************************************************** change speed_duty
   641 001AD               TEST2L:	
   642 001AD 0462          		MOV	  	SPEED_L,SPEED_L  ;test speed_l is not equal 0
   643 001AE 0C83          		JBC	  	STATUS,Z
   644 001AF 15C1          		JMP	  	TEST2R
   645 001B0 0466          		MOV	  	SPEEDL_DUTY,SPEEDL_DUTY		;speedl_duty is using as to switch led
   646 001B1 0E83          		JBS	  	STATUS,Z
   647 001B2 15B5          		JMP	  	TEST2LH
   648 001B3 1800          		MOV	  	A,@0X00
   649 001B4 0067          		MOV	  	SPEEDL_FLAG,A			;speedl_flag is switch down and up 0=up
   650 001B5               TEST2LH:
   651 001B5 1809          		MOV	  	A,@0X09
   652 001B6 0326          		XOR	  	A,SPEEDL_DUTY
   653 001B7 0E83          		JBS	  	STATUS,Z
   654 001B8 15BB          		JMP	  	TEST2LF
   655 001B9 1801          		MOV   	A,@0X01
   656 001BA 0067          		MOV	  	SPEEDL_FLAG,A
   657 001BB               TEST2LF:								;switch down and up from the speedl_flag=0 up speedl=1 down
   658 001BB 0467          		MOV   	SPEEDL_FLAG,SPEEDL_FLAG
   659 001BC 0C83          		JBC   	STATUS,Z
   660 001BD 0566          		INC	  	SPEEDL_DUTY
   661                     	
   662 001BE 0467          		MOV	  	SPEEDL_FLAG,SPEEDL_FLAG
   663 001BF 0E83          		JBS	  	STATUS,Z
   664 001C0 01E6          		DEC	  	SPEEDL_DUTY
   665                     
   666                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   667 001C1               TEST2R:
   668 001C1 0463          		MOV	  	SPEED_R,SPEED_R
   669 001C2 0C83          		JBC	  	STATUS,Z
   670 001C3 15D5          		JMP	  	DIS_M2
   671 001C4 0468          		MOV   	SPEEDR_DUTY,SPEEDR_DUTY
   672 001C5 0E83          		JBS	  	STATUS,Z
   673 001C6 15C9          		JMP	  	TEST2RH
   674 001C7 1800          		MOV	  	A,@0X00
   675 001C8 0069          		MOV	  	SPEEDR_FLAG,A
   676 001C9               TEST2RH:
   677 001C9 1809          		MOV	  	A,@0X09
   678 001CA 0328          		XOR	  	A,SPEEDR_DUTY
   679 001CB 0E83          		JBS	  	STATUS,Z
   680 001CC 15CF          		JMP	  	TEST2RF
   681 001CD 1801          		MOV   	A,@0X01
   682 001CE 0069          		MOV	  	SPEEDR_FLAG,A
   683 001CF               TEST2RF:						;switch  up and down
   684 001CF 0469          		MOV	  	SPEEDR_FLAG,SPEEDR_FLAG
   685 001D0 0C83          		JBC	  	STATUS,Z
   686 001D1 0568          		INC	  	SPEEDR_DUTY
   687                     
   688 001D2 0469          		MOV	  	SPEEDR_FLAG,SPEEDR_FLAG
   689 001D3 0E83          		JBS   	STATUS,Z
   690 001D4 01E8          		DEC	  	SPEEDR_DUTY
   691                     		
   692                     ;*******************************		
   693 001D5               DIS_M2:
   694 001D5 1800          		MOV	  	A,@0X00
   695 001D6 0462          		MOV	  	SPEED_L,SPEED_L		;test the speedl=0?
   696 001D7 0C83          		JBC   	STATUS,Z
   697 001D8 00E6          		CLR   	SPEEDL_DUTY
   698                     		
   699 001D9 0463          		MOV	  	SPEED_R,SPEED_R
   700 001DA 0C83          		JBC	  	STATUS,Z
   701 001DB 00E8          		CLR	  	SPEEDR_DUTY
   702                     		
   703 001DC 0424          		MOV   	A,LED_DUTY
   704 001DD 03C2          		ADD	  	PC,A
   705 001DE 15E2          		JMP	  	LEDDUTY00
   706 001DF 15E6          		JMP	  	LEDDUTY01
   707 001E0 15EA          		JMP   	LEDDUTY02
   708 001E1 15EE          		JMP	  	LEDDUTY03
   709                     
   710 001E2               LEDDUTY00:
   711 001E2 0426          		MOV	  	A,SPEEDL_DUTY
   712 001E3 1054          		CALL  	MODE2L_TAB
   713 001E4 0054          		MOV	  	R6_BUF,A
   714 001E5 15F1          		JMP	  	LEDDISOUT
   715                     
   716 001E6               LEDDUTY01:
   717 001E6 0426          		MOV	  	A,SPEEDL_DUTY
   718 001E7 1054          		CALL  	MODE2L_TAB
   719 001E8 0054          		MOV	  	R6_BUF,A
   720 001E9 15F1          		JMP   	LEDDISOUT
   721                     
   722 001EA               LEDDUTY02:
   723 001EA 0428          		MOV	  	A,SPEEDR_DUTY
   724 001EB 105E          		CALL  	MODE2R_TAB
   725 001EC 0054          		MOV	  	R6_BUF,A
   726 001ED 15F1          		JMP	  	LEDDISOUT
   727                     
   728 001EE               LEDDUTY03:
   729 001EE 0428          		MOV	  	A,SPEEDR_DUTY
   730 001EF 105E          		CALL  	MODE2R_TAB
   731 001F0 0054          		MOV	  	R6_BUF,A
   732                     		
   733                     ;****************************************************
   734 001F1               LEDDISOUT:
   735 001F1 0414                  MOV    	A,R6_BUF
   736 001F2 0046                  MOV    	PORT6,A
   737                     		
   738                     ;***************************************************MOTORPLAY 
   739                     ;***************************************************
   740 001F3               MOTORPLAY:
   741 001F3 0425          		MOV		A,MODE
   742 001F4 03C2          		ADD		PC,A		;switch motor mode
   743 001F5 15F8          		JMP		MODE1
   744 001F6 161C          		JMP		MODE2
   745 001F7 1623          		JMP		MODE3
   746                     		
   747                     ;**************************************MODE1		
   748 001F8               MODE1:
   749                     
   750 001F8 0895          		BC		R5_BUF,CONT1_L
   751 001F9 0855          		BC		R5_BUF,CONT2_L
   752                     		
   753 001FA 0E57          		JBS		FLAG0,TURNL_FLAG		;switch left motor play from the turnl_flag
   754 001FB 1265          		CALL	MODE1_L
   755                     		
   756 001FC 0C57          		JBC		FLAG0,TURNL_FLAG
   757 001FD 127B          		CALL	MODE1_L_NEV
   758                     		
   759 001FE 0C18          		JBC		FLAG1,MOTORL_ON			;test the motorl_on that delay in mode2 and mode3
   760 001FF 1602          		JMP		$+3
   761 00200 0895          		BC		R5_BUF,CONT1_L			;if motorl_on=0 close the G+
   762 00201 0855          		BC		R5_BUF,CONT2_L
   763                     		
   764 00202 0462          		MOV		SPEED_L,SPEED_L		;test speedl  equal 0
   765 00203 0E83          		JBS		STATUS,Z
   766 00204 1607          		JMP		$+3
   767 00205 0895          		BC		R5_BUF,CONT1_L		;if speedl=0 then close the G+
   768 00206 0855          		BC		R5_BUF,CONT2_L
   769                     		
   770                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&		
   771 00207               MODE1R:		
   772 00207 08D5          		BC		R5_BUF,CONT1_R
   773 00208 0915          		BC		R5_BUF,CONT2_R
   774                     		
   775 00209 0E97          		JBS		FLAG0,TURNR_FLAG		;switch right motor play 
   776 0020A 1291          		CALL	MODE1_R
   777                     		
   778 0020B 0C97          		JBC		FLAG0,TURNR_FLAG
   779 0020C 12A7          		CALL	MODE1_R_NEV
   780                     		
   781 0020D 0C58          		JBC		FLAG1,MOTORR_ON			;test the motorr_on use in mode2(4*18ms close)  and mode3(3*18ms close) 
   782 0020E 1611          		JMP		$+3
   783 0020F 08D5          		BC		R5_BUF,CONT1_R
   784 00210 0915          		BC		R5_BUF,CONT2_R
   785                     		
   786 00211 0463          		MOV		SPEED_R,SPEED_R			;test the speedr=0? if speedr=0 close right motor
   787 00212 0E83          		JBS		STATUS,Z
   788 00213 1616          		JMP		$+3
   789 00214 08D5          		BC		R5_BUF,CONT1_R
   790 00215 0915          		BC		R5_BUF,CONT2_R
   791                     		
   792 00216 0415          		MOV		A,R5_BUF
   793 00217 1960          		OR		A,@0X60			;give data to port5 from r5_buf
   794 00218 1AE1          		AND		A,@0XE1
   795 00219 0215          		OR		A,R5_BUF
   796 0021A 0045          		MOV		PORT5,A
   797 0021B 16BD          		JMP		INT_EXIT
   798                     				
   799                     ;**************************************************	
   800 0021C               MODE2:
   801 0021C 183C          	 	MOV     A,@0X3C				; the left total timer 60*18ms=120*9ms
   802 0021D 006F                  MOV     POSL_REG,A
   803 0021E 1844                  MOV		A,@0X44				;the right total timer 68*18ms=204*6ms
   804 0021F 0071                  MOV		POSR_REG,A
   805 00220 1804                  MOV     A,@0X04				;delay 4*18ms for low
   806 00221 0070                  MOV     NEV_REG,A
   807 00222 162A                  JMP     TURNL
   808                     ;***************************************************		
   809 00223               MODE3:
   810 00223 181E          		MOV     A,@0X1E				;the left total timer 30*18ms=60*9ms
   811 00224 006F                  MOV     POSL_REG,A
   812 00225 1822                  MOV		A,@0X22				;the right total timer 34*18ms=102*6ms
   813 00226 0071                  MOV		POSR_REG,A
   814 00227 1803                  MOV     A,@0X03				;delay 4*18ms for low
   815 00228 0070                  MOV     NEV_REG,A
   816 00229 162A                  JMP     TURNL
   817                             
   818                     ;**************************************************
   819 0022A               TURNL:
   820 0022A 0C57          		JBC		FLAG0,TURNL_FLAG	;test the turnl_flag
   821 0022B 163A          		JMP		TURNL_ON
   822 0022C               TURNL_OFF:
   823 0022C 042F                  MOV     A,POSL_REG			;the left total timer
   824 0022D 031A                  XOR     A,REGL_18MS
   825 0022E 0E83                  JBS     STATUS,Z			;if the total timer is out then jump to turnl_on
   826 0022F 1633                  JMP     $+4
   827                     
   828 00230 0A57                  BS      FLAG0,TURNL_FLAG
   829 00231 00DA          		CLR     REGL_18MS
   830 00232 1647                  JMP     TURNR
   831                                       
   832 00233 0430                  MOV     A,NEV_REG
   833 00234 011A                  SUB     A,REGL_18MS			;if the nev_reg timer is not out then colse the motorl 
   834                             
   835 00235 0C03                  JBC     STATUS,C
   836 00236 0A18                  BS		FLAG1,MOTORL_ON		
   837                             
   838 00237 0E03                  JBS		STATUS,C
   839 00238 0818                  BC		FLAG1,MOTORL_ON
   840                             
   841 00239 1647                  JMP		TURNR
   842                     
   843 0023A               TURNL_ON:
   844 0023A 042F          		MOV		A,POSL_REG
   845 0023B 031A          		XOR		A,REGL_18MS
   846 0023C 0E83          		JBS		STATUS,Z
   847 0023D 1641          		JMP		$+4
   848                     		
   849 0023E 0857          		BC		FLAG0,TURNL_FLAG
   850 0023F 00DA          		CLR		REGL_18MS
   851 00240 1647          		JMP		TURNR
   852                     		
   853 00241 0430          		MOV		A,NEV_REG
   854 00242 011A          		SUB		A,REGL_18MS
   855 00243 0C03          		JBC		STATUS,C
   856 00244 0A18          		BS		FLAG1,MOTORL_ON
   857                     		
   858 00245 0E03          		JBS		STATUS,C
   859 00246 0818          		BC		FLAG1,MOTORL_ON
   860                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&			
   861 00247               TURNR:
   862 00247 0C97          		JBC		FLAG0,TURNR_FLAG
   863 00248 1657          		JMP		TURNR_ON
   864                     		
   865 00249               TURNR_OFF:
   866 00249 0431                  MOV     A,POSR_REG
   867 0024A 031B                  XOR     A,REGR_18MS
   868 0024B 0E83                  JBS     STATUS,Z
   869 0024C 1650                  JMP     $+4
   870                     
   871 0024D 0A97                  BS      FLAG0,TURNR_FLAG
   872 0024E 00DB          		CLR     REGR_18MS
   873 0024F 1664                  JMP     TURN_EXIT
   874                                       
   875 00250 0430                  MOV     A,NEV_REG
   876 00251 011B                  SUB     A,REGR_18MS
   877 00252 0C03                  JBC     STATUS,C
   878 00253 0A58                  BS		FLAG1,MOTORR_ON
   879                             
   880 00254 0E03                  JBS		STATUS,C
   881 00255 0858                  BC		FLAG1,MOTORR_ON
   882                             
   883 00256 1664                  JMP		TURN_EXIT
   884                     
   885 00257               TURNR_ON:
   886 00257 0431          		MOV		A,POSR_REG
   887 00258 031B          		XOR		A,REGR_18MS
   888 00259 0E83          		JBS		STATUS,Z
   889 0025A 165E          		JMP		$+4
   890                     		
   891 0025B 0897          		BC		FLAG0,TURNR_FLAG
   892 0025C 00DB          		CLR		REGR_18MS
   893 0025D 1664          		JMP		TURN_EXIT
   894                     		
   895 0025E 0430          		MOV		A,NEV_REG
   896 0025F 011B          		SUB		A,REGR_18MS
   897 00260 0C03          		JBC		STATUS,C

⌨️ 快捷键说明

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