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

📄 av_2717_015.lst

📁 一个双路马达驱动与8LED显示的电动玩具!
💻 LST
📖 第 1 页 / 共 4 页
字号:
   311                     			MOV 	R0,A
   312                     			INC		RSR
   313                     			DJZ		DIS_TEMP
   314                     			JMP		LOOP2	
   315                     		*/
   316 000A7 1810          			MOV		A,@0X10
   317 000A8 0044          			MOV		RSR,A
   318 000A9               LOOP2:
   319 000A9 0080          			CLRA
   320 000AA 0040          			MOV 	R0,A
   321 000AB 0544          			INC		RSR
   322 000AC 18F0          			MOV		A,@0XF0
   323 000AD 0104          			SUB		A,RSR
   324 000AE 0E03          			JBS		STATUS,C
   325 000AF 14A9          			JMP		LOOP2
   326                     			
   327 000B0 1801          			MOV		A,@0X01
   328 000B1 0064          			MOV		MODE,A
   329                     			
   330 000B2 1855          			MOV		A,@0X55				
   331 000B3 0056          			MOV		POWERTEST1,A
   332                     		
   333 000B4 18AA          			MOV		A,@0XAA
   334 000B5 0057          			MOV		POWERTEST2,A	
   335                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&			
   336 000B6               MAIN:
   337 000B6 0004          			WDTC			
   338 000B7 1880          			MOV		A,@0X80		;enable the WDT
   339 000B8 000E          			IOW		WDTCR
   340                     			
   341 000B9 00CF          			CLR		RF	
   342 000BA 1840          			MOV		A,@0X40		;set TCC prescaler as 1:2  (100*2/4)*2=0.1ms
   343 000BB 0002          			CONTW
   344 000BC 18AA          			MOV		A,@0XAA
   345 000BD 0041          			MOV		TCC,A   ;set TCC  time equal 250   
   346                     		
   347 000BE 1801          			MOV		A,@0X01     ;enable TCC time intterrupt flag
   348 000BF 000F          			IOW		IMR
   349                     	
   350 000C0 0010          			ENI	
   351                     ;***********************************************************
   352                     ;主程序循环(LED循环扫描,马达循环驱动)
   353 000C1               LOOP:
   354 000C1 0004          			WDTC
   355 000C2 1832          			MOV		A,@0X32				;0.5S 无速度便SLEEP
   356 000C3 011C          			SUB		A,SLEEP_FLAG
   357 000C4 0C03          			JBC		STATUS,C
   358 000C5 14D4          			JMP		MODE0
   359                     			
   360 000C6 0424          			MOV		A,MODE
   361 000C7 03C2          			ADD		PC,A
   362                     			
   363 000C8 14C1          			JMP		LOOP
   364 000C9 14F8          			JMP		MODE1
   365 000CA 14FC          			JMP		MODE2
   366 000CB 150E          			JMP		MODE3	
   367 000CC 0000          			NOP
   368 000CD 0000          			NOP
   369 000CE 14C1          			JMP		LOOP			
   370                     
   371 000CF               LOOP1:
   372 000CF 0425          			MOV		A,R5_BUF
   373 000D0 0045          			MOV		PORT5,A
   374 000D1 0426          			MOV		A,R6_BUF
   375 000D2 0046          			MOV		PORT6,A
   376 000D3 14C1          			JMP		LOOP
   377                     			
   378                     ;******************************************************
   379                     ; SLEEP MODE
   380                     
   381 000D4               MODE0:
   382 000D4 0000          			NOP
   383 000D5 0000          			NOP
   384 000D6 00DC          			CLR		SLEEP_FLAG
   385 000D7 0011          			DISI
   386                     			
   387 000D8 18F8          			MOV		A,@0XF8
   388 000D9 0006          			IOW		0X06
   389                     			
   390 000DA 1800          			MOV		A,@0X00
   391 000DB 0045          			MOV		PORT5,A
   392 000DC 121B          			CALL	DELAY
   393                     			
   394 000DD 00C1          			CLR		TCC			;must do when the cont is change
   395 000DE 0004          			WDTC
   396 000DF 180F          			MOV		A,@0X0F
   397 000E0 0002          			CONTW
   398                     		
   399 000E1 1800          			MOV		A,@0X00
   400 000E2 000E          			IOW		WDTCR
   401                     
   402                     		
   403 000E3 0446          			MOV 	PORT6,PORT6  
   404                     		
   405 000E4 1802          			MOV		A,@0X02
   406 000E5 000F          			IOW		IMR
   407                     		
   408 000E6 0011          			DISI
   409                     		
   410 000E7 0003          			SLEP
   411                     		
   412 000E8               WAKE_UP:
   413 000E8 0000          			NOP
   414 000E9 0000          			NOP
   415 000EA 0011          			DISI				;colse the intterrupt
   416 000EB 1838          			MOV		A,@0X38
   417 000EC 0006          			IOW		0X06
   418                     			
   419 000ED 0004                  	WDTC
   420 000EE 1880          			MOV		A,@0X80		;enable the WDT
   421 000EF 000E          			IOW		WDTCR
   422                     		
   423 000F0 1840          			MOV		A,@0X40
   424 000F1 0002          			CONTW
   425 000F2 18AA          			MOV		A,@0XAA
   426 000F3 0041          			MOV		TCC,A
   427                     		
   428 000F4 1801          			MOV		A,@0X01     ;enable TCC time intterrupt flag
   429 000F5 000F          			IOW		IMR
   430                     		
   431 000F6 0010          			ENI					;enable the intterrupt
   432 000F7 14C1          			JMP		LOOP
   433                     			
   434                     			
   435                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   436                     ;MODE1
   437                     
   438 000F8               MODE1:
   439 000F8 1180          			CALL		DIS_MODE
   440 000F9 1120          			CALL		MOTOR_G_DRIVE
   441 000FA 115D          			CALL		MOTOR_M_DRIVE
   442 000FB 14CF          			JMP			LOOP1
   443                     			
   444                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   445                     ;MODE2
   446                     
   447 000FC               MODE2:		
   448 000FC 0CD5          			JBC			FLAG1,MODE_DO_FLAG
   449 000FD 1506          			JMP			MODE2_DO
   450                     			
   451 000FE 0C55          			JBC			FLAG1,NEG_FLAG
   452 000FF 1502          			JMP			$+3
   453                     			
   454 00100 0A55          			BS			FLAG1,NEG_FLAG
   455 00101 1503          			JMP			$+2
   456                     			
   457 00102 0855          			BC			FLAG1,NEG_FLAG
   458                     			
   459 00103 00DD          			CLR			COUNT_G_10MS
   460 00104 00DE          			CLR			COUNT_M_10MS
   461 00105 0AD5          			BS			FLAG1,MODE_DO_FLAG
   462                     			
   463 00106               MODE2_DO:
   464 00106 1896          			MOV			A,@0X96
   465 00107 0067          			MOV			G_T_REG,A	;马达正(反)转周期
   466 00108 1832          			MOV			A,@0X32
   467 00109 0068          			MOV			POS_REG,A		;停止时间(间断时间)
   468 0010A 1180          			CALL		DIS_MODE
   469 0010B 1139          			CALL		MOTOR_G_POS_NEG
   470 0010C 1171          			CALL		MOTOR_M_POS_NEG	
   471 0010D 14CF          			JMP			LOOP1		
   472                     
   473                     ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
   474                     ;MODE3
   475                     
   476 0010E               MODE3:
   477 0010E 0CD5          			JBC			FLAG1,MODE_DO_FLAG
   478 0010F 1518          			JMP			MODE3_DO
   479                     			
   480 00110 0C55          			JBC			FLAG1,NEG_FLAG
   481 00111 1514          			JMP			$+3
   482                     			
   483 00112 0A55          			BS			FLAG1,NEG_FLAG
   484 00113 1515          			JMP			$+2
   485                     			
   486 00114 0855          			BC			FLAG1,NEG_FLAG
   487                     			
   488 00115 00DD          			CLR			COUNT_G_10MS
   489 00116 00DE          			CLR			COUNT_M_10MS
   490 00117 0AD5          			BS			FLAG1,MODE_DO_FLAG
   491                     			
   492 00118               MODE3_DO:
   493 00118 1864          			MOV			A,@0X64
   494 00119 0067          			MOV			G_T_REG,A	;马达正(反)转周期
   495 0011A 1832          			MOV			A,@0X32
   496 0011B 0068          			MOV			POS_REG,A		;停止时间(间断时间)
   497 0011C 1180          			CALL		DIS_MODE
   498 0011D 1139          			CALL		MOTOR_G_POS_NEG
   499 0011E 1171          			CALL		MOTOR_M_POS_NEG	
   500 0011F 14CF          			JMP			LOOP1					
   501                     			
   502                     
   503                     
   504                     ;********************************************************
   505                     
   506 00120               MOTOR_G_DRIVE:
   507                     
   508 00120 0E15          			JBS		FLAG1,DELAY_ON_G_FLAG
   509 00121 1531          			JMP		SPEED_G_OFF
   510                     			
   511 00122               SPEED_G_ON:
   512 00122 0C55          			JBC		FLAG1,NEG_FLAG		;逆时针转动标志
   513 00123 1527          			JMP		$+4
   514                     			
   515 00124 0826          			BC		R6_BUF,MOTOR_G_LGA		;		顺时针
   516 00125 0A66          			BS		R6_BUF,MOTOR_G_LGB
   517 00126 1529          			JMP		$+3
   518                     			
   519 00127 0A26          			BS		R6_BUF,MOTOR_G_LGA			;	逆时针
   520 00128 0866          			BC		R6_BUF,MOTOR_G_LGB
   521                     			
   522 00129 0421          			MOV		A,SPEED_G		;H time of a cycle
   523 0012A 1010          			CALL	SPEED_G_TAB
   524                     			
   525 0012B 0118          			SUB		A,REG_G_100US
   526 0012C 0E03          			JBS		STATUS,C
   527 0012D 0012          			RET
   528                     
   529 0012E 0815          			BC		FLAG1,DELAY_ON_G_FLAG
   530 0012F 0826          			BC		R6_BUF,MOTOR_G_LGA		;跳转是停止
   531 00130 0866          			BC		R6_BUF,MOTOR_G_LGB
   532                     			
   533 00131               SPEED_G_OFF:
   534 00131 1864          			MOV		A,@0X64			;whole time of a cycle is 10.0ms
   535 00132 0118          			SUB		A,REG_G_100US
   536 00133 0E03          			JBS		STATUS,C
   537 00134 0012          			RET
   538                     			
   539 00135 055D          			INC		COUNT_G_10MS
   540 00136 00D8          			CLR		REG_G_100US
   541 00137 0A15          			BS		FLAG1,DELAY_ON_G_FLAG
   542 00138 0012          			RET
   543                     			
   544                     ;******************************************************************************
   545 00139               MOTOR_G_POS_NEG:
   546 00139 0C55          			JBC		FLAG1,NEG_FLAG
   547 0013A 154C          			JMP		MOTOR_G_NEG
   548                     			
   549 0013B 0427          			MOV		A,G_T_REG			;正转周期
   550 0013C 011D          			SUB		A,COUNT_G_10MS
   551 0013D 0E03          			JBS		STATUS,C
   552 0013E 1542          			JMP		$+4
   553                     			
   554 0013F 0A55          			BS		FLAG1,NEG_FLAG
   555 00140 00DD          			CLR		COUNT_G_10MS
   556 00141 0012          			RET
   557                     			
   558                     			
   559 00142 0428          			MOV		A,POS_REG		;正转关闭时间
   560 00143 011D          			SUB		A,COUNT_G_10MS
   561 00144 0E03          			JBS		STATUS,C
   562 00145 1548          			JMP		$+3
   563                     			
   564 00146 1120          			CALL	MOTOR_G_DRIVE
   565 00147 0012          			RET
   566                     			
   567 00148 1120          			CALL	MOTOR_G_DRIVE
   568 00149 0826          			BC		R6_BUF,MOTOR_G_LGA		;方向改变时延时
   569 0014A 0866          			BC		R6_BUF,MOTOR_G_LGB
   570 0014B 0012          			RET
   571                     			
   572 0014C               MOTOR_G_NEG:
   573 0014C 0427          			MOV		A,G_T_REG		;反转周期
   574 0014D 011D          			SUB		A,COUNT_G_10MS
   575 0014E 0E03          			JBS		STATUS,C
   576 0014F 1553          			JMP		$+4
   577                     			
   578 00150 0855          			BC		FLAG1,NEG_FLAG
   579 00151 00DD          			CLR		COUNT_G_10MS
   580 00152 0012          			RET
   581                     			
   582 00153 0428          			MOV		A,POS_REG		;反转停止时间
   583 00154 011D          			SUB		A,COUNT_G_10MS
   584 00155 0E03          			JBS		STATUS,C
   585 00156 1559          			JMP		$+3
   586                     			
   587 00157 1120          			CALL	MOTOR_G_DRIVE
   588 00158 0012          			RET
   589                     			
   590 00159 1120          			CALL	MOTOR_G_DRIVE
   591 0015A 0826          			BC		R6_BUF,MOTOR_G_LGA		;方向改变时延时
   592 0015B 0866          			BC		R6_BUF,MOTOR_G_LGB
   593 0015C 0012          			RET
   594                     			
   595                     ;***************************************************************************************
   596 0015D               MOTOR_M_DRIVE:
   597                     
   598 0015D 0E95          			JBS		FLAG1,DELAY_ON_M_FLAG
   599 0015E 1569          			JMP		SPEED_M_OFF
   600                     			
   601 0015F               SPEED_M_ON:
   602                     			
   603 0015F 041F          			MOV		A,SPEED_M		;H time of a cycle
   604 00160 1018          			CALL	SPEED_M_TAB
   605                     			
   606 00161 0119          			SUB		A,REG_M_100US
   607 00162 0C03          			JBC		STATUS,C
   608 00163 1566          			JMP		$+3
   609                     			
   610 00164 0AA6          			BS		R6_BUF,MOTOR_M_LM
   611 00165 0012          			RET
   612                     			
   613 00166 08A6          			BC		R6_BUF,MOTOR_M_LM
   614 00167 0895          			BC		FLAG1,DELAY_ON_M_FLAG
   615 00168 0012          			RET
   616                     			
   617 00169               SPEED_M_OFF:
   618 00169 1864          			MOV		A,@0X64			;whole time of a cycle is 10.0ms
   619 0016A 0119          			SUB		A,REG_M_100US
   620 0016B 0E03          			JBS		STATUS,C

⌨️ 快捷键说明

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