|
发表于 2017-2-10 10:30:29
|
显示全部楼层
ADC、比较器都关掉。
这里有两个1503的初始化,你参考一下:
-------------------------------------------
OSCCON = 0B1101010 ; //4MHz内置振荡
OPTION_REG = 0x81 ; //4分频
PORTA = 0 ;
LATA = 0 ;
ANSELA = 0 ;
TRISA = 0B11000 ; //RA5,RA2,RA1,RA0:OUTPUT; RA4,RA3:INPUT
PORTC = 0 ;
LATC = 0 ;
ANSELC = 0 ;
TRISC = 0xFF ; //RC全部为输入脚
------------------------------------------------------------
INITIALIZATION
BANKSEL OSCCON ;;★设置RC/4M,选择1扇区
MOVLW 6AH ;H'01101010'
MOVWF OSCCON ;
;
BANKSEL LATA ;;★设置PA状态,选择0扇区
CLRF LATA ;PA输出缓存状态寄存器清零
BANKSEL PORTA ;
CLRF PORTA ;PORTA输出为低电平
BANKSEL ANSELA ;选择1扇区
CLRF ANSELA ;取消PA引脚和PC引脚的模拟输入功能,设置相应的引脚为数字IO
BANKSEL TRISA ;
MOVLW B'00000100';
MOVWF TRISA ;设置PA引脚方向,PA0/1/5为输出,SYN/ALT/RED
;
BANKSEL LATC ;;★设置PC状态,
CLRF LATC ;PC输出缓存状态寄存器清零
BANKSEL PORTC ;;★设置PC状态,
CLRF PORTC ;设置PORTC输出为0
BANKSEL ANSELC ;选择1扇区
CLRF ANSELC ;取消PA引脚和PC引脚的模拟输入功能,设置相应的引脚为数字IO
BANKSEL TRISC ;
MOVLW B'00000011';
MOVWF TRISC ;设置PC引脚方向,PC4/5为输出(BLUE/WHITE),PC0/1为输入(WHITE/GREEN)
;
BANKSEL OPTION_REG;★设置TIM0,开始计时 ;
MOVLW 87H ;关闭弱上拉,选择内部时钟作为TIM0时钟源,预分频分配给TIM0
MOVWF OPTION_REG;256分频,0.00001s*256*256=0.065536s
BANKSEL LAMP_STATE
MOVLW 7FH ;
MOVWF ADDRH ;
MOVLW 0FDH ;
MOVWF ADDRL ;
;
CLRF GREEN_COUNT ;EQU 0X25,绿线计时寄存器
CLRF SLAVE_SYN_COUNT ;
;CLRF SLAVE_FLASH_COUNT
;
CALL DATA_READ ;
;
MOVLW 0AH ;
SUBWF BANK_TEMP,W ;
BTFSS STATUS,Z ;
GOTO GO_NEXT
GOTO MAIN |
|