📄 m.lst
字号:
.................... LCD_Write (comm,0x01); /*清屏,地址指针指向00H*/
02BA: CLRF 48
02BC: MOVLW 01
02BE: MOVWF 49
02C0: RCALL 01F6
.................... delay_us(100);
02C2: MOVLW 21
02C4: MOVWF 00
02C6: DECFSZ 00,F
02C8: BRA 02C6
.................... LCD_Write (comm,0x06); /*光标的移动方向*/
02CA: CLRF 48
02CC: MOVLW 06
02CE: MOVWF 49
02D0: RCALL 01F6
.................... LCD_Write(comm,0x0c); /*开显示,关游标*/
02D2: CLRF 48
02D4: MOVLW 0C
02D6: MOVWF 49
02D8: RCALL 01F6
.................... LCD_disp_CLS ();
02DA: RCALL 028C
.................... }
02DC: GOTO 0308 (RETURN)
....................
....................
....................
.................... //显示8位数据
.................... void LCD_disp_valueInt8(unsigned char value)
.................... {
.................... unsigned char i,j,k;
.................... i=value/100;
.................... k=value%100;
.................... j=k/10;
.................... k=k%10;
....................
.................... if(i!=0)
.................... {
.................... LCD_Write (dat,'0'+i);
.................... LCD_Write (dat,'0'+j);
.................... }else if(j!=0)
.................... {
.................... LCD_Write (dat,'0'+j);
.................... }
.................... LCD_Write (dat,'0'+k);
.................... }
....................
.................... #include "c_realtime_isr.h"
.................... //系统时钟 不精确
.................... unsigned int16 SyS_Clock;
.................... //超时定时器
.................... unsigned char TimeOut;
....................
.................... //打开定时
.................... void Time_Start(unsigned int16 timeset)
.................... {
.................... SyS_Clock=timeset;
*
094C: MOVFF 3C,29
0950: MOVFF 3B,28
.................... enable_interrupts(INT_RTCC);
0954: BSF FF2.5
.................... }
0956: RETLW 00
....................
.................... //关闭定时
.................... void Time_Stop()
.................... {
.................... disable_interrupts(INT_RTCC);
*
09C4: BCF FF2.5
.................... }
09C6: RETLW 00
....................
.................... //获得时间
.................... unsigned int16 Time_Get()
.................... {
.................... Time_update=0;
*
0958: CLRF 19
.................... return SyS_Clock;
095A: MOVFF 28,01
095E: MOVFF 29,02
.................... }
0962: RETLW 00
....................
....................
.................... //------------时钟中断-------------
.................... #int_RTCC
.................... void RTCC_isr(void)
.................... {
.................... set_timer0(0);
*
00E8: CLRF FD7
00EA: CLRF FD6
....................
.................... Time_update=1;
00EC: MOVLW 01
00EE: MOVWF 19
.................... SyS_Clock++;
00F0: INCF 28,F
00F2: BTFSC FD8.2
00F4: INCF 29,F
.................... //1秒分辨率超时变量
.................... TimeOut++;
00F6: INCF 2A,F
.................... }
....................
.................... //初始化实时时钟
00F8: BCF FF2.2
00FA: GOTO 0064
.................... void init_rtclock()
.................... {
.................... Time_update=1;
*
02E0: MOVLW 01
02E2: MOVWF 19
.................... SyS_Clock=0;
02E4: CLRF 29
02E6: CLRF 28
.................... setup_counters(RTCC_INTERNAL,RTCC_DIV_16);
02E8: BCF FD1.0
02EA: MOVLW 83
02EC: MOVWF FD5
.................... }
02EE: GOTO 030A (RETURN)
....................
.................... #include "c_carContrl.h"
.................... //==========================================左轮控制
....................
.................... //左前直走
.................... void CC_Goahead_L()
.................... {
.................... output_low(ELeft_M0);
*
012A: BCF F93.0
012C: BCF F8A.0
.................... output_high(ELeft_M1);
012E: BCF F93.1
0130: BSF F8A.1
....................
....................
....................
.................... }
0132: RETLW 00
.................... //左后直走
.................... void CC_GoBack_L()
.................... {
.................... output_low(ELeft_M1);
0134: BCF F93.1
0136: BCF F8A.1
.................... output_high(ELeft_M0);
0138: BCF F93.0
013A: BSF F8A.0
.................... }
013C: RETLW 00
....................
.................... //左停止
.................... void CC_Stop_L()
.................... {
.................... output_low(ELeft_M0);
*
011E: BCF F93.0
0120: BCF F8A.0
.................... output_low(ELeft_M1);
0122: BCF F93.1
0124: BCF F8A.1
.................... }
0126: GOTO 016E (RETURN)
....................
....................
....................
.................... //==========================================右轮控制
.................... //右前直走
.................... void CC_Goahead_R()
.................... {
.................... output_low(ERight_M0);
*
00FE: BCF F93.2
0100: BCF F8A.2
.................... output_high(ERight_M1);
0102: BCF F93.5
0104: BSF F8A.5
.................... }
0106: RETLW 00
....................
....................
....................
.................... //右后直走
.................... void CC_GoBack_R()
.................... {
.................... output_low(ERight_M1);
0108: BCF F93.5
010A: BCF F8A.5
.................... output_high(ERight_M0);
010C: BCF F93.2
010E: BSF F8A.2
.................... }
0110: RETLW 00
....................
.................... //右停止
.................... void CC_Stop_R()
.................... {
.................... output_low(ERight_M1);
0112: BCF F93.5
0114: BCF F8A.5
.................... output_low(ERight_M0);
0116: BCF F93.2
0118: BCF F8A.2
.................... }
011A: GOTO 0168 (RETURN)
....................
....................
....................
....................
.................... //===============================================两轮控制
.................... //左转90
.................... void CC_turnleft90()
.................... {
.................... CC_GoBack_L();
*
0986: CALL 0134
.................... CC_Goahead_R();
098A: CALL 00FE
....................
.................... }
098E: RETLW 00
....................
.................... //右转90
.................... void CC_turnright90()
.................... {
....................
.................... CC_GoBack_R();
*
097C: CALL 0108
.................... CC_Goahead_L();
0980: CALL 012A
....................
.................... }
0984: RETLW 00
....................
.................... //停止
.................... void CC_CarStop()
.................... {
.................... output_low(ELeft_M0);
*
0964: BCF F93.0
0966: BCF F8A.0
.................... output_low(ELeft_M1);
0968: BCF F93.1
096A: BCF F8A.1
.................... output_low(ERight_M1);
096C: BCF F93.5
096E: BCF F8A.5
.................... output_low(ERight_M0);
0970: BCF F93.2
0972: BCF F8A.2
.................... }
0974: RETLW 00
....................
....................
.................... //倒转
.................... void CC_carGoBack()
.................... {
.................... CC_GoBack_R();
.................... CC_GoBack_L();
.................... }
....................
.................... //贴左墙走
.................... void Left_along()
.................... {
.................... if(LS==1)
*
08FE: BTFSS 1E.0
0900: BRA 091A
.................... {
.................... PWM_SetDRC(1,2);
0902: MOVLW 01
0904: MOVWF 3B
0906: MOVLW 02
0908: MOVWF 3C
090A: RCALL 0872
.................... PWM_SetDuty(70,70);
090C: CLRF 3C
090E: MOVLW 46
0910: MOVWF 3B
0912: CLRF 3E
0914: MOVWF 3D
0916: RCALL 087C
.................... }
.................... else if(RS==1)
0918: BRA 094A
091A: BTFSS 1E.1
091C: BRA 0936
.................... {
.................... PWM_SetDRC(2,1);
091E: MOVLW 02
0920: MOVWF 3B
0922: MOVLW 01
0924: MOVWF 3C
0926: RCALL 0872
.................... PWM_SetDuty(70,70);
0928: CLRF 3C
092A: MOVLW 46
092C: MOVWF 3B
092E: CLRF 3E
0930: MOVWF 3D
0932: RCALL 087C
.................... }
.................... else
0934: BRA 094A
.................... {
.................... PWM_SetDuty(22,22);
0936: CLRF 3C
0938: MOVLW 16
093A: MOVWF 3B
093C: CLRF 3E
093E: MOVWF 3D
0940: RCALL 087C
.................... PWM_SetDRC(1,1);
0942: MOVLW 01
0944: MOVWF 3B
0946: MOVWF 3C
0948: RCALL 0872
.................... }
....................
.................... }
094A: RETLW 00
....................
.................... //贴左墙走带参数
.................... void Left_along(unsigned char Lefttmp,unsigned char righttmp)
.................... {
.................... if(LS==1)
.................... {
.................... PWM_SetDRC(1,2);
.................... PWM_SetDuty(70,70);
.................... }
.................... else if(RS==1)
.................... {
.................... PWM_SetDRC(2,1);
.................... PWM_SetDuty(70,70);
.................... }
.................... else
.................... {
.................... PWM_SetDuty(Lefttmp,righttmp);
.................... PWM_SetDRC(1,1);
.................... }
....................
.................... }
....................
....................
.................... //贴右墙走
.................... void Right_along()
.................... {
.................... if(RS==1)
*
0990: BTFSS 1E.1
0992: BRA 09AC
.................... {
.................... PWM_SetDRC(2,1);
0994: MOVLW 02
0996: MOVWF 3B
0998: MOVLW 01
099A: MOVWF 3C
099C: RCALL 0872
.................... PWM_SetDuty(90,90);
099E: CLRF 3C
09A0: MOVLW 5A
09A2: MOVWF 3B
09A4: CLRF 3E
09A6: MOVWF 3D
09A8: RCALL 087C
.................... }
.................... else
09AA: BRA 09C0
.................... {
.................... PWM_SetDuty(22,22);
09AC: CLRF 3C
09AE: MOVLW 16
09B0: MOVWF 3B
09B2: CLRF 3E
09B4: MOVWF 3D
09B6: RCALL 087C
.................... PWM_SetDRC(1,1);
09B8: MOVLW 01
09BA: MOVWF 3B
09BC: MOVWF 3C
09BE: RCALL 0872
.................... }
....................
.................... }
09C0: GOTO 0C9C (RETURN)
....................
....................
.................... //电磁铁断开 0 关闭 1 开启
.................... void Iron(int1 enable)
.................... {
.................... if (enable==1)
*
0328: DECFSZ 3B,W
032A: BRA 0332
.................... {
.................... output_low(EEorn);
032C: BCF F96.0
032E: BCF F8D.0
.................... }
.................... else
0330: BRA 0336
.................... {
.................... output_high(EEorn);
0332: BCF F96.0
0334: BSF F8D.0
.................... }
.................... }
0336: RETLW 00
.................... //喇叭 0 关闭 1 开启
.................... void Beep(int1 enable)
.................... {
.................... if (enable==1)
*
0544: DECFSZ 3B,W
0546: BRA 054E
.................... {
.................... output_high(EBeep);
0548: BCF F96.1
054A: BSF F8D.1
.................... }
.................... else
054C: BRA 0552
.................... {
.................... output_low(EBeep);
054E: BCF F96.1
0550: BCF F8D.1
.................... }
....................
....................
....................
.................... }
0552: RETLW 00
....................
....................
.................... #include "c_softpwm.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -