📄 mc_16f72.inc
字号:
;USER DEFINED VARIABLES
#ifdef PIC16F72
INCLUDE <P16F72.INC>
#endif
#ifdef PIC16F73
INCLUDE <P16F73.INC>
#endif
;---------------------------------------------------------------------------------------
;OSCILLATOR FREQUENCY
#DEFINE OSCILLATOR D'20000000'
;---------------------------------------------------------------------------------------
;TIMER0 PRESCALER
#DEFINE TIMER0_PRESCALE D'128'
;---------------------------------------------------------------------------------------
;NUMBER OF ENTRIES IN THE SINE TABLE, OR THE SAMPLING FREQUENCY
#DEFINE SINE_TABLE_ENTRIES D'19'
;---------------------------------------------------------------------------------------
;PORT AND BIT DEFINITIONS
#define KEY_PORT PORTB
#define RUN_STOP_KEY 2 ;RB1
#define FWD_REV_KEY 1
#define DEBOUNCE_COUNT 0x80
;BIT DEFINITION OF FLAGS
#DEFINE MOTOR_FREQ_COUNTER 0
#DEFINE OFFSET1_FLAG 1
#DEFINE OFFSET2_FLAG 2
#DEFINE OFFSET3_FLAG 3
;BIT DEFINITION OF FLAGS1
#define RUN_STOP 0
#define FWD_REV 1
#define DEBOUNCE 2
#define KEY_RS 4
#define KEY_FR 5
#define KEY_PRESSED 6
;FLAG1 flags definition
#define PWM_FIRST 0
#define PWM_SECOND 1
#define PWM_THIRD 3
#define PWM_NEW_CYCLE 4
;BIT DEFINITION OF FLAGS2
#DEFINE FREQ_REF 0
#DEFINE MOTOR_CUR 1
#DEFINE HEATSINK_TEMP 2
#DEFINE OVER_CURRENT 3
#DEFINE OVER_TEMPARATURE 4
#DEFINE DELAY_COUNT1 0XFF
#DEFINE DELAY_COUNT2 0XFF
#define PWM_PORT PORTC
#define PWM0_PIN 0
#define PWM1_PIN 1
#define PWM2_PIN 2
#define PWM3_PIN 3
#define PWM4_PIN 4
#define PWM5_PIN 5
;Define maximum allowed motor current here
;The value should be 26d/Amp with 0.05Ohm shunt resistor and 10 amplifying ratio.
#define MAX_MOTOR_CURRENT 0x80 ;5 Amps
;Define maximum allowed heatsink temparature here
#define MAX_HEATSINK_TEMP 0x80
;----------------------------------------------------------------
#define PORT_RELAY PORTB
#define RELAY_BIT 7
#define HARDWARE_OC_COUNT 0x5
;---------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------
#ifdef PIC16F72
; UDATA 20h
W_TEMP equ 0x20 ;LOCATION FOR SAVING 'WREG' DURING INTERRUPT
STATUS_TEMP equ 0x21 ;LOCATION FOR SAVING 'STATUS' DURING INTERRUPT
FLAGS equ 0x22 ;FLAGS REGISTERS USED TO INDICATE DIFFERENT STATUS
FLAGS1 equ 0x23 ;FLAGS REGISTERS USED TO INDICATE DIFFERENT STATUS
FLAGS2 equ 0x24 ;FLAGS REGISTERS USED TO INDICATE DIFFERENT STATUS
TEMP_LOC equ 0x25 ;GENERAL PURPOSE TEMPORARY LOCATION
TEMP_LOC_1 equ 0x26 ;GENERAL PURPOSE TEMPORARY LOCATION
TEMP_LOC_2 equ 0x27 ;GENERAL PURPOSE TEMPORARY LOCATION
NO_1_LSB equ 0x28 ;NUMERATOR(LSB) AND QUOTIENT(LSB) OR MULTIPLIER(LSB)
RESULT_LSB equ 0x29 ;RESULT OF MULTIPLICATION(LSB)/REMAINDER(LSB)
RESULT_MSB equ 0x2A ;resULT OF MULTIPLICATION(MSB)/REMAINDER(MSB)
VDC_COUNT equ 0x2B ;DIGITAL COUNT OF DC BUS VOLTAGE
NEW_FREQ equ 0x2C ;NEW REFERENCE FREQUENCY INPUT
MOTOR_FREQUENCY equ 0x2D ;TEMPORAY LOCATION FOR HOLDING DEC_COUNTER OR ACC_COUNTER
TABLE_OFFSET1 equ 0x2E ;PHASE1 OFFSET TO THE SINE TABLE
TABLE_OFFSET2 equ 0x2F ;PHASE2 OFFSET TO THE SINE TABLE
TABLE_OFFSET3 equ 0x30 ;PHASE3 OFFSET TO THE SINE TABLE
SINE_TABLE_RAM equ 0X31 ;SINE TABLE, 0x14 bytes
PWM_PR_CH1_Buff equ 0x50 ;Priority definition on channels
PWM_PR_CH2_Buff equ 0x51
PWM_PR_CH3_Buff equ 0x52
PWM1_DS_Buff equ 0x53 ;Duty cycle buffers
PWM2_DS_Buff equ 0x54
PWM3_DS_Buff equ 0x55
PWM4_DS_Buff equ 0x56
OC_COUNT equ 0x57 ;Count for over current
DEBOUNCE_COUNTER equ 0x58
#endif
;***********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -