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

📄 x36vznys.lst

📁 三轮电动车有刷控制器程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
MPASM  4.00 Released                             X36VZNYS.ASM   2-7-2007  13:57:55         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;****************************************************************
                      00002 ;程序名称: 48V有刷智能控制器
                      00003 ;单片机  : PIC16F716     4M晶振
                      00004 ;功能    :  转把调速度,助力,定速,刹车        
                      00005 ;           欠压保护,过流保护,限流保护 
                      00006 ;编写日期:2006年9月21日
                      00007 ;修改日期:2007年1月14日  修改成48V电动三轮车控制器
                      00008 ;****************************************************************
                      00009 ;list p = 16f716     ;4M晶振
                      00010  #include"p16f716.inc"
                      00001         LIST
                      00002 ; P16F716.INC  Standard Header File, Version 1.01    Microchip Technology, Inc.
                      00257         LIST
                      00011 ;----------------------------------------------------------------
2007   1F76           00012  __CONFIG(0X1F76)                 ;配置位  WDT开   代码保护开
                      00013 ;-------------参数------------------------------------------------
                      00014 ;#define   QYDW   0x8F            ;欠压值      ;0X8F
                      00015 ;#define   QYUP   0x98            ;欠压重开值  ;0X98
                      00016 #define   QYDW   0x9C             ;欠压值      ;0X95
                      00017 #define   QYUP   0xA5             ;欠压重开值  ;0X9A
                      00018 #define   QYXS   0xA9             ;欠压报警输出
                      00019 #define   DLXZ   0x4a             ;限制电流值
                      00020 #define   TSON   0x52             ;转把开启电压1.6V
                      00021 #define   YSTS   0x0C             ;转把有效确定延时计数次数
                      00022 #define   LOSTS  0xE5             ;转把掉线保护电压   4.4V 
                      00023 #define   _BANK  STATUS,5         ;BANK1,换页
                      00024 ;----------I/0--------------------------------------------------
                      00025 #define   PGL    PORTB,0          ;过流检测    RB0
                      00026 #define   PDS    PORTB,1          ;巡航 定速   RB1
                      00027 #define   PSC    PORTB,2          ;刹车(低电平)RB2
                      00028 #define   PZL    PORTA,2          ;助力(脉宽)  RA2
                      00029 #define   PQY    PORTB,6          ;欠压报警闪烁输出(初始1)
                      00030 ;----------寄存器------------------------------------------------
                      00031 ;PWM
  00000020            00032 IN_PWM    EQU     0X20            ;外设输入PWM(转把\助力)
  00000021            00033 PWM       EQU     0X21            ;PWM脉宽输出
  00000022            00034 PWML      EQU     0X22            ;PWM脉宽输出低2位
  00000023            00035 PWMH      EQU     0X23            ;PWM脉宽输出高8位 
  0000003F            00036 IN_PWM_TM EQU     0X3F            ;PWM加延时
                      00037 ;转把
  00000024            00038 TSS       EQU     0X24            ;转把有效确定延时
  00000025            00039 TS_V      EQU     0X25            ;转把采样电压
  00000026            00040 TS_PWS    EQU     0X26
                      00041 ;电池电压
  00000027            00042 DC_V      EQU     0X27            ;电池采样电压
  00000028            00043 DC_L      EQU     0X28            ;电压高位
  00000029            00044 DC_H      EQU     0X29            ;电压低位  
  0000002A            00045 DC_CONT   EQU     0X2A            ;电压采样次数
  00000042            00046 DC_YTM    EQU     0X42            ;二次欠压延长计数()
  00000043            00047 QYBJ_TM   EQU     0X43            ;欠压报警延时间
  00000044            00048 BJ_T      EQU     0X44            ;亮灭交替次数
  00000045            00049 BJ_CT     EQU     0X45            ;亮灭交替计数
                      00050 ;电流
MPASM  4.00 Released                             X36VZNYS.ASM   2-7-2007  13:57:55         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

  0000002B            00051 DL_V      EQU     0X2B            ;电流采样电压
  0000002C            00052 DL_PWS    EQU     0X2C         
                      00053 ;助力                          
  0000002D            00054 ZL_1S     EQU     0X2D            ;助力1.6S延时
  0000002E            00055 ZL_TIM    EQU     0X2E            ;助力脉宽计数
  0000002F            00056 ZL_TIM_H  EQU     0X2F            ;助力高脉宽计数
  00000030            00057 ZL_TIM_L  EQU     0X30            ;助力低脉宽计数
  00000031            00058 ZL_HL     EQU     0X31            ;助力中断值
  00000032            00059 ZL_V      EQU     0X32            ;助力中断输出值
  00000033            00060 ZLTP      EQU     0X33            ;助力处理缓冲
  00000034            00061 ZL_PWS    EQU     0X34            ;助力PWM调整值
                      00062 ;定速
  00000035            00063 DS_TIM    EQU     0X35            ;定速键延时
                      00064 ;AD中断
  00000036            00065 ADTP0     EQU     0X36            ;AD转换通道控制 
  00000037            00066 ADTP1     EQU     0X37
                      00067 ;定时器1中断
  00000038            00068 TIMTP0    EQU     0X38            ;定时器1定时控制
  00000039            00069 TIMTP1    EQU     0X39    
  0000003A            00070 RS        EQU     0X3A            ;软件延时间
  0000003B            00071 RSS       EQU     0X3B            ;软件延时间
                      00072 ;位定义 
  0000003C            00073 ADWEI     EQU     0X3C            ;AD位
  0000003D            00074 PWMWEI    EQU     0X3D            ;PWM控制位
  0000003E            00075 WEI       EQU     0X3E
                      00076 
                      00077 #define  OFF      PWMWEI,0        ;复位标志位
                      00078 #define  PWM_OUT  PWMWEI,1        ;PWM输出标志位
                      00079 #define  INCPWM   PWMWEI,2        ;加PWM
                      00080 #define  DECPWM   PWMWEI,3        ;减PWM
                      00081 #define  DS_ON    PWMWEI,4        ;定速度键有效标志
                      00082 #define  DS_DW    PWMWEI,5        ;定速度键按下效标志
                      00083 #define  ZL_ON    PWMWEI,6        ;助力模式启动
                      00084 #define  ZL_PZL   PWMWEI,7        ;助力原来状态
                      00085 
                      00086 #define  TS_AD    ADWEI,0         ;转把电压在转换 
                      00087 #define  DC_AD    ADWEI,1
                      00088 #define  DL_AD    ADWEI,2
                      00089 #define  TS_OK    ADWEI,3         ;转把电压在转换完毕 
                      00090 #define  DC_OK    ADWEI,4
                      00091 #define  DL_OK    ADWEI,5
                      00092 #define  TS_YX    ADWEI,6         ;转把开启
                      00093 #define  ZL_OK    ADWEI,7         ;助力输出标志位
                      00094 
                      00095 #define  DS_OK    WEI,0           ;定速度开启标志位
                      00096 ;#define  ZL_SA      WEI,1        ;助力开启速度
                      00097 #define  DC_BJ    WEI,1           ;欠电压报警位  
                      00098 
  00000040            00099 W_TEMP      EQU   0X40            ;备份  W
  00000041            00100 STATUS_TEMP EQU   0X41            ;备份 STATUS
                      00101 ;****************************************************************
                      00102 ;----------------------------------------------------------------
                      00103 ;              开始程序
MPASM  4.00 Released                             X36VZNYS.ASM   2-7-2007  13:57:55         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00104 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0000                  00105               ORG 0X00
0000   0064           00106               CLRWDT                   ;清看门狗
0001   283C           00107               GOTO MAIN
0004                  00108               ORG 0X04
                      00109 ;--------------中断---------------------------------------------
0004   1283           00110               BANKSEL W_TEMP           ;中断 
0005   00C0           00111               MOVWF W_TEMP             ;备份  W
0006   0E03           00112               SWAPF STATUS,W
0007   0183           00113               CLRF STATUS          
0008   00C1           00114               MOVWF STATUS_TEMP        ;备份 STATUS 
                      00115                                        ;中断向量
0009   180C           00116               BTFSC PIR1,TMR1IF        
000A   2815           00117               GOTO INT_TMR1            ;Timer1中断
                      00118 
000B   1B0C           00119               BTFSC PIR1,ADIF           ;AD中断
000C   28B3           00120               GOTO INT_AD
                      00121              
000D   188B           00122               BTFSC INTCON,INTF        ;RB0/INT中断
000E   2825           00123               GOTO INT_RB0             ;过电流中断
                      00124              
000F   0183           00125 INT_RET       CLRF STATUS              ;恢复
0010   0E41           00126               SWAPF STATUS_TEMP,W      ;还原 STATUS
0011   0083           00127               MOVWF STATUS
0012   0EC0           00128               SWAPF W_TEMP,F           ;还原 W   
0013   0E40           00129               SWAPF W_TEMP,W
0014   0009           00130               RETFIE                   ;中断返回              
                      00131 ;----------------------------------------------------------------
                      00132 ;Timer1中断
0015                  00133 INT_TMR1      
0015   100C           00134               BCF PIR1,TMR1IF          ;中断标志位清0
0016   1010           00135               BCF T1CON,0              ;关Timer1
0017   30FE           00136               MOVLW 0XFE
0018   008F           00137               MOVWF TMR1H             
0019   018E           00138               CLRF TMR1L               ;512US
                      00139 
001A   151F           00140               BSF ADCON0,GO            ;开AD转换 
001B   14BD           00141               BSF PWM_OUT              ;PWM输出调整使能     
                      00142               ;CALL ZLJC                ;助力脉宽检测        
                      00143    
001C   0BB8           00144               DECFSZ TIMTP0,F
001D   2823           00145               GOTO INT_RTM
001E   303C           00146               MOVLW 0X3C               ;60次*512US=30MS
001F   00B8           00147               MOVWF TIMTP0  
0020   21E5           00148               CALL QYBJ                ;欠压报警程序  
0021   21C5           00149               CALL ZLJCOUT             ;助力输出控制
0022   21CF           00150               CALL CLDS                ;定速键检测
0023                  00151 INT_RTM
0023   1410           00152               BSF T1CON,0              ;开Timer1
0024   280F           00153               GOTO INT_RET             
                      00154 ;----------------------------------------------------------------  
                      00155 ;过流中断
0025                  00156 INT_RB0       
MPASM  4.00 Released                             X36VZNYS.ASM   2-7-2007  13:57:55         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0025   108B           00157               BCF INTCON,INTF          ;清中断标志位  
0026   1806           00158               BTFSC PGL
0027   283B           00159               GOTO INT_RBR
0028   21FA           00160               CALL DEC10US             ;延时20US
0029   21FA           00161               CALL DEC10US
002A   1806           00162               BTFSC PGL                ;确定有过流 
002B   283B           00163               GOTO INT_RBR     
002C                  00164 INT_RB
002C   1217           00165               BCF CCP1CON,4            ;关脉宽输出
002D   1297           00166               BCF CCP1CON,5
002E   0195           00167               CLRF CCPR1L  
002F   0064           00168               CLRWDT                   ;清看门狗
0030   138B           00169               BCF INTCON,GIE           ;关全局中断使能
0031   111F           00170               BCF ADCON0,GO            ;关AD转换
0032   11BC           00171               BCF TS_OK
0033   12BC           00172               BCF DL_OK
0034   123C           00173               BCF DC_OK
0035   143D           00174               BSF OFF                  ;置复位标志
0036   1C06           00175               BTFSS PGL
0037   282C           00176               GOTO INT_RB              ;还有过流
0038   21FF           00177               CALL DEC10MS             ;确定是否还有过流
0039   1C06           00178               BTFSS PGL                ;没有过流,退出
003A   282C           00179               GOTO INT_RB                                            
003B                  00180 INT_RBR                                
003B   280F           00181               GOTO  INT_RET              
                      00182 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                      00183 ;================================================================
                      00184 ;             主程序
                      00185 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
003C                  00186 MAIN
003C   30FF           00187              MOVLW 0XFF               ;I/0初始化
003D   0086           00188              MOVWF PORTB
003E   3007           00189              movlw B'00000111'        ;RB0-RB2为输入,RB3-RB7为输出
003F   1683           00190              BSF _BANK
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0040   0086           00191              movwf TRISB
0041   1283           00192              BCF _BANK

⌨️ 快捷键说明

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