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

📄 m.lst

📁 08山东电子电子竞赛智能小车程序基于PIC+红外+电子罗盘ourdev551262 包含源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
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 + -