📄 m.lst
字号:
CCS PCH C Compiler, Version 4.074, 19306 19-九月-08 21:26
Filename: m.lst
ROM used: 4080 bytes (25%)
Largest free fragment is 12304
RAM used: 61 (8%) at main() level
77 (10%) worst case
Stack: 6 worst case (4 in main + 2 for interrupts)
*
0000: GOTO 09C8
*
0008: MOVWF 05
000A: MOVFF FD8,06
000E: MOVFF FE0,07
0012: MOVLB 0
0014: MOVFF FE9,0D
0018: MOVFF FEA,08
001C: MOVFF FE1,09
0020: MOVFF FE2,0A
0024: MOVFF FD9,0B
0028: MOVFF FDA,0C
002C: MOVFF FF3,14
0030: MOVFF FF4,15
0034: MOVFF FFA,16
0038: MOVFF 00,0F
003C: MOVFF 01,10
0040: MOVFF 02,11
0044: MOVFF 03,12
0048: MOVFF 04,13
004C: BTFSS FF2.5
004E: GOTO 0058
0052: BTFSC FF2.2
0054: GOTO 00E8
0058: BTFSS F9D.1
005A: GOTO 0064
005E: BTFSC F9E.1
0060: GOTO 013E
0064: MOVFF 0F,00
0068: MOVFF 10,01
006C: MOVFF 11,02
0070: MOVFF 12,03
0074: MOVFF 13,04
0078: BSF 0E.7
007A: MOVFF 0D,FE9
007E: MOVFF 08,FEA
0082: MOVFF 09,FE1
0086: MOVFF 0A,FE2
008A: MOVFF 0B,FD9
008E: MOVFF 0C,FDA
0092: MOVFF 14,FF3
0096: MOVFF 15,FF4
009A: MOVFF 16,FFA
009E: MOVF 05,W
00A0: MOVFF 07,FE0
00A4: MOVFF 06,FD8
00A8: RETFIE 0
.................... #include "C_main.h"
.................... #include "A_head.h"
.................... #include "18f448.h"
.................... //////// Standard Header file for the PIC18F448 device ////////////////
.................... #device PIC18F448
.................... #list
....................
.................... #device ADC=10
.................... #use delay(clock=4M)
*
01CE: CLRF FEA
01D0: MOVLW 42
01D2: MOVWF FE9
01D4: MOVF FEF,W
01D6: BZ 01F4
01D8: MOVLW 01
01DA: MOVWF 01
01DC: CLRF 00
01DE: DECFSZ 00,F
01E0: BRA 01DE
01E2: DECFSZ 01,F
01E4: BRA 01DC
01E6: MOVLW 4A
01E8: MOVWF 00
01EA: DECFSZ 00,F
01EC: BRA 01EA
01EE: BRA 01F0
01F0: DECFSZ FEF,F
01F2: BRA 01D8
01F4: RETLW 00
.................... #fuses hs,nowdt
.................... #include "h_IO.h"
....................
....................
.................... //==================================================硬件层
.................... //光耦定义
....................
.................... #define HardL_J1 PIN_A0
.................... #define HardL_J2 PIN_A1
.................... #define HardL_J3 PIN_A2
.................... #define HardL_J4 PIN_A3
.................... #define HardL_J5 PIN_A5
.................... #define HardL_J6 PIN_A4
.................... #define HardL_J7 PIN_C7
.................... #define HardL_J8 PIN_B3
....................
.................... //LCD定义
.................... #define HardL_LCD_4 PIN_C6
.................... #define HardL_LCD_5 PIN_C1
.................... #define HardL_LCD_6 PIN_C2
.................... #define HardL_LCD_7 PIN_C3
.................... #define HardL_LCD_9 PIN_C4
.................... #define HardL_LCD_11 PIN_C5
.................... #define HardL_LCD_12 PIN_D0
.................... #define HardL_LCD_13 PIN_D1
.................... #define HardL_LCD_14 PIN_D2
.................... #define HardL_LCD_15 PIN_D3
.................... #define HardL_LCD_16 PIN_D4
.................... #define HardL_LCD_17 PIN_D5
.................... #define HardL_LCD_18 PIN_D6
.................... #define HardL_LCD_19 PIN_D7
.................... //J16
.................... #define HardL_J16_1 PIN_B0
.................... #define HardL_J16_2 PIN_B1
.................... #define HardL_J16_3 PIN_B2
.................... #define HardL_J16_4 PIN_B5
.................... #define HardL_J16_5 PIN_B4
....................
.................... //继电器U11-Q1
.................... #define HardL_U11 PIN_E0
.................... #define HardL_U12 PIN_E1
....................
....................
....................
.................... //===================================================软件定义
.................... //启动按键
.................... #define Key HardL_LCD_15
....................
.................... //前左右传感器(光耦)right_Top
.................... #define SRed_Head HardL_J5
.................... #define SRed_Right_T HardL_J2
.................... #define SRed_Left_T HardL_J3
....................
....................
.................... //接近传感器
.................... #define SNear HardL_J4
....................
.................... //左右底盘(对管)
.................... //#define SRed_Left_B HardL_J16_1
.................... //#define SRed_Right_B HardL_J16_2
.................... #define SRed_B_Left HardL_J7
.................... #define SRed_B_Right HardL_J8
....................
.................... //电磁铁
.................... #define EEorn HardL_U11
....................
.................... //蜂鸣器
.................... #define EBeep HardL_U12
....................
.................... //电机控制
.................... //左侧
.................... #define ELeft_M0 HardL_J16_1
.................... #define ELeft_M1 HardL_J16_2
....................
.................... //右侧
.................... #define ERight_M0 HardL_J16_3
.................... #define ERight_M1 HardL_J16_4
....................
....................
.................... #include "h_menu.h"
.................... const unsigned char frm_welcom[]={
.................... "请按键 "
.................... };
.................... const unsigned char ERon[]={
.................... "救援开始"
.................... };
.................... const unsigned char finish[]={
.................... "救援结束"
.................... };
....................
.................... const unsigned char Blank[]={
.................... " "
.................... };
....................
.................... const unsigned char frmAbtime[]={
.................... "AB段时间: "
.................... };
....................
.................... const unsigned char frmBCtime[]={
.................... "BD段时间: "
.................... };
....................
.................... #include "h_lcm.h"
.................... /*---------------LCD初始化----------*/
.................... void init_LCD();
....................
.................... /*---------------清屏---------------*/
.................... void LCD_disp_CLS();
....................
.................... /*---------------设置字符显示位置( 0<=x<=7,0<=y<=3)---------------*/
.................... void LCD_setpos(unsigned char X,unsigned char Y);
....................
.................... /*---------------时钟显示8位数字----------------*/
.................... void LCD_disp_timenum(unsigned char value);
.................... /*---------------LCD显示8位数字----------------*/
.................... void LCD_disp_valueInt8(unsigned char value);
.................... /*---------------LCD显示16位数字----------------*/
.................... void LCD_disp_valueInt16(unsigned long value);
.................... /*---------------显示1个RAM汉字或字符----------------*/
.................... void LCD_disp_Putchar(unsigned char data);
....................
....................
.................... /*--------------显示RAM字符串----------------*/
.................... void LCDprintf(unsigned char *PrintData,unsigned char X,unsigned char Y);
....................
.................... /*---------------显示ROM字符串----------------*/
.................... // void LCDprintR(long addr,unsigned char X,unsigned char Y);
....................
.................... void LCDprintR(unsigned char *addr,unsigned char X,unsigned char Y);
....................
....................
.................... #include "h_realtime_isr.h"
....................
....................
.................... //打开计时
.................... void Time_Start();
.................... //关闭机时
.................... void Time_Stop();
.................... //获取时间
.................... unsigned int16 Time_Get();
.................... //时间更新
.................... unsigned char Time_update;
....................
.................... //初始化实时时钟
.................... void init_rtclock();
....................
....................
....................
....................
....................
.................... #include "h_carContrl.h"
.................... //左前直走
.................... void CC_Goahead_L();
.................... //左后直走
.................... void CC_GoBack_L();
.................... //左停止
.................... void CC_Stop_L();
....................
.................... //右前直走
.................... void CC_Goahead_R();
.................... //右后直走
.................... void CC_GoBack_R();
.................... //右停止
.................... void CC_Stop_R();
....................
.................... //===============================================两轮控制
.................... //右转90
.................... void CC_turnright90();
.................... //左转90
.................... void CC_turnleft90();
.................... //停止
.................... void CC_CarStop();
.................... //倒转
.................... void CC_carGoBack();
....................
.................... //贴左墙走
.................... void Left_along();
.................... //贴左墙走带参数
.................... void Left_along(unsigned char Lefttmp,unsigned char righttmp);
....................
.................... //贴右墙走
.................... void Right_along();
....................
.................... //电磁铁断开 0 关闭 1 开启
.................... void Iron(int1 enable);
.................... //喇叭 0 关闭 1 开启
.................... void Beep(int1 enable);
....................
.................... #include "h_softpwm.h"
.................... //PWM启动
.................... void PWM_Start();
.................... //PWM停止
.................... void PWM_Stop();
.................... //小车控制初始化
.................... void init_CarCtrl();
....................
.................... //PWM占空比设置
.................... void PWM_SetDuty(unsigned int16 Left_Pwm_Tmp,unsigned int16 Right_Pwm_Tmp);
....................
.................... //PWM设置方向
.................... void PWM_SetDRC(unsigned char Left_Drection,unsigned char Right_Drection);
.................... //小车运行方向 0停 1 前 2后
.................... #define Car_Stop 0
.................... #define Car_Goahead 1
.................... #define Car_GoBack 2
....................
.................... //时间更新标志
.................... //int1 TimeUsUpdate;
.................... //1mS微时间
.................... unsigned int16 TimeUs;
.................... //标准电压
.................... #define StandedV 315
.................... //现在电压
.................... unsigned int16 NowV;
....................
.................... #include "h_main.h"
.................... //左传感器
.................... int1 LS;
.................... //右传感器
.................... int1 RS;
.................... //前传感器
.................... int1 HS;
.................... //电磁传感器
.................... int1 ES;
....................
.................... //底盘左光电
.................... int1 BL;
.................... //底盘右光电
.................... int1 BR;
....................
....................
.................... //上次光电改变标志
.................... int1 LightUpdate_Last;
.................... //10光电改变标志
.................... int1 LightUpdate10;
....................
.................... //光电改变标志
.................... int1 LightUpdate;
.................... //光电改变标志施密特
.................... int1 LightUpdateS;
....................
.................... //底盘光电检测控制位
.................... int1 Butten_Detect;
....................
....................
.................... unsigned char LightUpdateCount;
.................... #define Simit 50
....................
.................... #include "h_FAD.h"
.................... //获得角度变量
.................... unsigned int16 NorthRad;
.................... //罗盘初始化
.................... void init_spi();
.................... //硬磁补偿开始
.................... unsigned char HardStart();
.................... //硬磁补偿结束
.................... unsigned char HardStop();
.................... //正北校准
.................... unsigned char North();
.................... //读方位角
.................... unsigned int16 GetNorth();
....................
....................
....................
.................... //设置相对原点
.................... void SetOrg(unsigned int16 myNorthTmp);
.................... //获得用户相对方位角
.................... unsigned int16 GetNorthMy();
....................
.................... //显示方位
.................... void dispNorth();
....................
.................... #include "h_ADC.h"
....................
.................... //转换结束标志
.................... int1 ADUpdate;
.................... //A/d初始化
.................... void init_adc();
.................... //获得AD
.................... unsigned int16 GetVol();
.................... //启动
.................... void ADStart();
.................... //停止
.................... void AdStop();
....................
....................
....................
.................... #include "c_ADC.h"
.................... #BYTE ADCon0=0x1f
.................... //转换结果
.................... unsigned int16 AD_result;
....................
.................... /*
.................... #int_AD
.................... void AD_isr()
.................... {
.................... // if(bit_test(ADCon0,2)==1)
.................... // {
.................... AD_result=read_adc();
.................... set_adc_channel(0);
.................... ADUpdate=1;
.................... // }
.................... ADCon0|=0x04;
....................
.................... }
.................... */
.................... //获得AD
.................... unsigned int16 GetVol()
.................... {
.................... AD_result=read_adc();
*
0554: BSF FC2.2
0556: BTFSC FC2.2
0558: BRA 0556
055A: MOVFF FC3,23
055E: MOVFF FC4,24
.................... ADUpdate=0;
0562: BCF 1F.3
.................... return AD_result;
0564: MOVFF 23,01
0568: MOVFF 24,02
.................... }
056C: GOTO 0A5C (RETURN)
....................
.................... //A/d初始化
.................... void init_adc()
.................... {
....................
.................... //a0为模拟口,测量电压用
.................... setup_adc_ports(AN0);
*
01A4: BCF FC1.0
01A6: BSF FC1.1
01A8: BSF FC1.2
01AA: BSF FC1.3
.................... setup_adc (ADC_CLOCK_DIV_32);
01AC: BCF FC1.6
01AE: BCF FC2.6
01B0: BSF FC2.7
01B2: BSF FC1.7
01B4: BSF FC2.0
.................... //A/D用中断
.................... //enable_interrupts(INT_AD);
.................... set_adc_channel(0);
01B6: MOVLW 00
01B8: MOVWF 01
01BA: MOVF FC2,W
01BC: ANDLW C7
01BE: IORWF 01,W
01C0: MOVWF FC2
.................... //启动A/D
.................... ADCon0|=0x04;
01C2: BSF 1F.2
.................... ADUpdate=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -