|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我是pic单片机的初学者,之前学的是51的。现在有一个问题,请教各位高手:
我要做的就是用1到5伏的电压控制pwm输出的占空比来控制电机的速度,并设了一个过热保护。下面是我写的程序,在编译的时候出现了这样的警告:Warning[205] F:\11111\11.ASM 1 : Found directive in column 1. (list)
Warning[205] F:\11111\11.ASM 4 : Found directive in column 1. (ORG)
Warning[203] F:\11111\11.ASM 5 : Found opcode in column 1. (GOTO)
Warning[205] F:\11111\11.ASM 6 : Found directive in column 1. (ORG)
Warning[203] F:\11111\11.ASM 8 : Found opcode in column 1. (CLRF)
全部是类似这样的警告,hex文件已经生成了,但是仿真仿不出来,请高手赐教,小弟在这里拜谢了。
list p=12f683
#include p12f683.inc
DEY EQU 0x20
ORG 0x00
GOTO MAIN
ORG 0x30
MAIN
CLRF INTCON
CALL PWM
LOOP
CALL AD
CALL ADRT
GOTO LOOP
PWM
MOVLW 0x0C ;
MOVWF CCP1CON ;设置pwm工作模式
MOVLW 0x00
MOVWF CCPR1L ;初始占空比为0
MOVLW 0XFF
MOVWF PR2 ;设置pwm周期
MOVLW 0x04
MOVWF T2CON;打开TMR2,并设置分频值3为1
BCF TRISIO,2;设置ccp1引脚为输出方式
RETURN
AD
MOVLW 0x2F
MOVWF ANSEL
MOVLW 0x0D
MOVWF ADCON0;设置A/D转换格式为左对齐,参考电压为电源电压,通道03,启动转换模块
BCF PIR1,ADIF
BCF PIE1,ADIE
BSF ADCON0,2
LOOP1
BTFSS PIR1,6
GOTO LOOP1
BSF CCP1CON,5
BSF CCP1CON,4
MOVF ADRESH,0
MOVWF CCPR1L ;输出占空比
MOVLW 0x50
MOVWF DEY
LOOP2
DECFSZ DEY,1
GOTO LOOP2 ;延时
BCF PIR1,ADIF
RETURN
ADRT
MOVLW 0x2F
MOVWF ANSEL
MOVLW 0x85
MOVWF ADCON0 ;设置为右对齐方式,参考电压为电源电压,通道选择01
BCF PIR1,ADIF
BCF PIR1,ADIE
BSF ADCON0,2
LOOP3
BTFSS PIR1,6
GOTO LOOP3
MOVF ADRESL,0
BCF STATUS,C
SUBLW 0x32
BTFSS STATUS,0 ;检测温度是否过高
GOTO LL
BCF CCP1CON,5
BCF CCP1CON,4
CLRF CCPR1L ;输出占空比为0
LL
RETURN
END |
|