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

📄 scar.lst

📁 基于Robo-PICA robot kit的PIC 16F877a的单片机编程 Innovative Experiment Co.,Ltd.
💻 LST
📖 第 1 页 / 共 5 页
字号:
0133:  MOVWF  53
0134:  BCF    03.5
0135:  CALL   0DD
.................... 	delay_ms(5);  
0136:  MOVLW  05
0137:  BSF    03.5
0138:  MOVWF  55
0139:  BCF    03.5
013A:  CALL   0B9
.................... 	LCD_write_char(0,0x28);  
013B:  BSF    03.5
013C:  CLRF   52
013D:  MOVLW  28
013E:  MOVWF  53
013F:  BCF    03.5
0140:  CALL   0DD
.................... 	delay_ms(5);  
0141:  MOVLW  05
0142:  BSF    03.5
0143:  MOVWF  55
0144:  BCF    03.5
0145:  CALL   0B9
.................... 	LCD_write_char(0,0x28); //显示模式设置(以后均检测忙信号)//  
0146:  BSF    03.5
0147:  CLRF   52
0148:  MOVLW  28
0149:  MOVWF  53
014A:  BCF    03.5
014B:  CALL   0DD
.................... 	LCD_write_char(0,0x08); // 显示关闭 //  
014C:  BSF    03.5
014D:  CLRF   52
014E:  MOVLW  08
014F:  MOVWF  53
0150:  BCF    03.5
0151:  CALL   0DD
.................... 	LCD_write_char(0,0x01); // 显示清屏 //  
0152:  BSF    03.5
0153:  CLRF   52
0154:  MOVLW  01
0155:  MOVWF  53
0156:  BCF    03.5
0157:  CALL   0DD
.................... 	LCD_write_char(0,0x06); // 显示光标移动设置 //  
0158:  BSF    03.5
0159:  CLRF   52
015A:  MOVLW  06
015B:  MOVWF  53
015C:  BCF    03.5
015D:  CALL   0DD
.................... 	LCD_write_char(0,0x0c); // 显示开及光标设置 //  
015E:  BSF    03.5
015F:  CLRF   52
0160:  MOVLW  0C
0161:  MOVWF  53
0162:  BCF    03.5
0163:  CALL   0DD
.................... 	LCD_write_char(0,0x01);  
0164:  BSF    03.5
0165:  CLRF   52
0166:  MOVLW  01
0167:  MOVWF  53
0168:  BCF    03.5
0169:  CALL   0DD
.................... }  
016A:  BSF    0A.3
016B:  BCF    0A.4
016C:  GOTO   16B (RETURN)
....................   
.................... void motorA_Forward()   
.................... {  
.................... 	output_high(PIN_C2);  
*
041F:  BCF    67.2
0420:  MOVF   67,W
0421:  BSF    03.5
0422:  MOVWF  07
0423:  BCF    03.5
0424:  BSF    07.2
.................... 	output_low(PIN_D0);  
0425:  BSF    03.5
0426:  BCF    08.0
0427:  BCF    03.5
0428:  BCF    08.0
.................... 	output_high(PIN_D1);  
0429:  BSF    03.5
042A:  BCF    08.1
042B:  BCF    03.5
042C:  BSF    08.1
.................... }  
042D:  RETLW  00
....................   
.................... void motorA_Backward()   
.................... {  
.................... 	output_high(PIN_C2);  
*
0497:  BCF    67.2
0498:  MOVF   67,W
0499:  BSF    03.5
049A:  MOVWF  07
049B:  BCF    03.5
049C:  BSF    07.2
.................... 	output_high(PIN_D0);  
049D:  BSF    03.5
049E:  BCF    08.0
049F:  BCF    03.5
04A0:  BSF    08.0
.................... 	output_low(PIN_D1);  
04A1:  BSF    03.5
04A2:  BCF    08.1
04A3:  BCF    03.5
04A4:  BCF    08.1
.................... }  
04A5:  RETLW  00
....................   
.................... void brakeA()  
.................... {  
.................... 	output_high(PIN_C2);  
*
0477:  BCF    67.2
0478:  MOVF   67,W
0479:  BSF    03.5
047A:  MOVWF  07
047B:  BCF    03.5
047C:  BSF    07.2
.................... 	output_high(PIN_D0);  
047D:  BSF    03.5
047E:  BCF    08.0
047F:  BCF    03.5
0480:  BSF    08.0
.................... 	output_high(PIN_D1);  
0481:  BSF    03.5
0482:  BCF    08.1
0483:  BCF    03.5
0484:  BSF    08.1
.................... }  
....................   
.................... void brakeB()   
.................... {  
.................... 	output_high(PIN_C1);  
0485:  BCF    67.1
0486:  MOVF   67,W
0487:  BSF    03.5
0488:  MOVWF  07
0489:  BCF    03.5
048A:  BSF    07.1
.................... 	output_high(PIN_D2);  
048B:  BSF    03.5
048C:  BCF    08.2
048D:  BCF    03.5
048E:  BSF    08.2
.................... 	output_high(PIN_D3);  
048F:  BSF    03.5
0490:  BCF    08.3
0491:  BCF    03.5
0492:  BSF    08.3
.................... }  
....................   
.................... void motorB_Forward()   
.................... {  
.................... 	output_high(PIN_C1);  
*
042E:  BCF    67.1
042F:  MOVF   67,W
0430:  BSF    03.5
0431:  MOVWF  07
0432:  BCF    03.5
0433:  BSF    07.1
.................... 	output_low(PIN_D2);  
0434:  BSF    03.5
0435:  BCF    08.2
0436:  BCF    03.5
0437:  BCF    08.2
.................... 	output_high(PIN_D3);  
0438:  BSF    03.5
0439:  BCF    08.3
043A:  BCF    03.5
043B:  BSF    08.3
.................... }  
043C:  RETLW  00
....................   
.................... void motorB_Backward()  
.................... {  
.................... 	output_high(PIN_C1);  
*
0591:  BCF    67.1
0592:  MOVF   67,W
0593:  BSF    03.5
0594:  MOVWF  07
0595:  BCF    03.5
0596:  BSF    07.1
.................... 	output_high(PIN_D2);  
0597:  BSF    03.5
0598:  BCF    08.2
0599:  BCF    03.5
059A:  BSF    08.2
.................... 	output_low(PIN_D3);  
059B:  BSF    03.5
059C:  BCF    08.3
059D:  BCF    03.5
059E:  BCF    08.3
.................... }  
....................   
.................... void GoStraight()                          
.................... {  
.................... 	motorA_Forward();  
*
0494:  CALL   41F
.................... 	motorB_Forward();  
0495:  CALL   42E
.................... }  
0496:  RETLW  00
....................   
.................... void GoBack()  
.................... {  
.................... 	motorA_Backward();  
.................... 	motorB_Backward();  
.................... }  
....................   
.................... void TurnLeft()  
.................... {  
.................... 	motorA_Backward();  
*
05A0:  CALL   497
.................... 	motorB_Forward();     
05A1:  CALL   42E
.................... }  
05A2:  RETLW  00
.................... void TurnRight()  
.................... {  
.................... 	motorA_Forward();  
*
0590:  CALL   41F
.................... 	motorB_Backward();  
.................... }  
*
059F:  RETLW  00
.................... void brake()  
.................... {  
.................... 	brakeA();  
.................... 	brakeB();  
.................... }	  
*
0493:  RETLW  00
....................   
.................... void TurnLittle(int16 dir)  
.................... {	  
.................... 	int16 i;  
.................... 	for(i=0; i<2000; i++)  
*
0452:  CLRF   55
0453:  CLRF   54
0454:  MOVF   55,W
0455:  SUBLW  07
0456:  BTFSS  03.0
0457:  GOTO   46F
0458:  BTFSS  03.2
0459:  GOTO   45E
045A:  MOVF   54,W
045B:  SUBLW  CF
045C:  BTFSS  03.0
045D:  GOTO   46F
.................... 	{  
.................... 		//direction == 1(LETURN_RIGHTFT) ||  direction == 0(RIGHT)  
.................... 		dir??otorA_Forward():motorB_Forward();  
045E:  MOVF   52,W
045F:  IORWF  53,W
0460:  BTFSC  03.2
0461:  GOTO   468
0462:  BCF    03.5
0463:  CALL   41F
0464:  CLRF   7A
0465:  MOVF   78,W
0466:  GOTO   46A
0467:  BSF    03.5
0468:  BCF    03.5
0469:  CALL   42E
.................... 	}  
046A:  BSF    03.5
046B:  INCF   54,F
046C:  BTFSC  03.2
046D:  INCF   55,F
046E:  GOTO   454
.................... }  
....................   
.................... void TurnAngle(int16 dir, int16 angle) // angle must be multiple 1 degree  
.................... {  
.................... 	for(i=0; i<angle; i++)  
*
043D:  CLRF   21
043E:  CLRF   20
043F:  MOVF   21,W
0440:  BSF    03.5
0441:  SUBWF  51,W
0442:  BTFSS  03.0
0443:  GOTO   475
0444:  BTFSS  03.2
0445:  GOTO   44E
0446:  MOVF   50,W
0447:  BCF    03.5
0448:  SUBWF  20,W
0449:  BTFSS  03.0
044A:  GOTO   44D
044B:  BSF    03.5
044C:  GOTO   475
044D:  BSF    03.5
.................... 	{  
.................... 		TurnLittle(dir);  
044E:  MOVF   4F,W
044F:  MOVWF  53
0450:  MOVF   4E,W
0451:  MOVWF  52
.................... 	}  
*
046F:  BCF    03.5
0470:  INCF   20,F
0471:  BTFSC  03.2
0472:  INCF   21,F
0473:  GOTO   43F
0474:  BSF    03.5
.................... }  
0475:  BCF    03.5
0476:  RETLW  00
....................   
.................... int16 Read_IrSensor(int16 channel)  
.................... {  
.................... 	int16 value;  
.................... 	setup_adc_ports(A_ANALOG );  
*
055E:  MOVLW  82
055F:  BSF    03.5
0560:  MOVWF  1F
.................... 	setup_adc(ADC_CLOCK_INTERNAL );  
0561:  BCF    03.5
0562:  MOVF   1F,W
0563:  ANDLW  38
0564:  IORLW  C1
0565:  MOVWF  1F
.................... 	set_adc_channel(channel);  
0566:  BSF    03.5
0567:  RLF    56,W
0568:  MOVWF  77
0569:  RLF    57,W
056A:  MOVWF  78
056B:  RLF    77,F
056C:  RLF    78,F
056D:  RLF    77,F
056E:  RLF    78,F
056F:  MOVLW  F8
0570:  ANDWF  77,F
0571:  BCF    03.5
0572:  MOVF   1F,W
0573:  ANDLW  C7
0574:  IORWF  77,W
0575:  MOVWF  1F
.................... 	delay_us(10);  
0576:  MOVLW  10
0577:  MOVWF  77

⌨️ 快捷键说明

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