打印

关于PIC10F200问题

[复制链接]
4733|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
win|  楼主 | 2008-8-8 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  由于初学PIC希望朋友们帮偶看看下面的程序问题在哪里。该程序让10F200产生一个开机延时后电平变化。故障现象为开机有时正常延时后电平能翻转,有时延时过长电平才翻转,有时电平不翻转。
    ;    1.采用PIC10F200(SOT-23)
;    2.内部时钟
;    3.说明:
;           1.无论上电时刻在负半周或正半周的任意时刻,要保证有三个完整的正半周延时.
;     在第三个正半周的160~180度之间确保转换输出。
;           2.为保证采样输入电压的安全,拟在输入脚加4.2V稳压管,保护输入安全。
;    4.由于PIC10F200上电有18ms的复位延时所以检测2个正弦波。
;==========================================================================
;引脚功能说明: 
;    GP2:输入电平检测端口
;    GP0:输出电平端口(1),上电低电平,延时三个完整的正半周后,翻转为高电位。
;    GP1:输出电平端口(2),上电高电平,延时三个完整的正半周后,翻转为低电位。
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ERRORLEVEL    -302        ;将302号提示信息屏蔽掉          ;赋值设定
 ERRORLEVEL    -306        ;将306号提示信息屏蔽掉
 LIST    P=10F200        
 #include p10f200.inc
    __CONFIG   _CP_ON & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC
;============================== 变量定义 ==================================

DL1        EQU    10H    ;延时变量
DL2        EQU    11H    ;延时变量

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    ORG    0000H                                       ;复位入口
    NOP
START
    ANDLW    0xFE                ; clear Fosc/4 output enable
    MOVWF    OSCCAL
;--------IO口初始化(重要)
    MOVLW    B'11111111'
    OPTION
    CLRF    GPIO    
    NOP
    MOVLW    B'00001100'        ;GP2为输入
    TRIS GPIO        ;其它端口为输出
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MAIN                                              ;主程序    
;        BCF    GPIO,0    
;        BSF    GPIO,1 
    MOVLW    B'00000010'
    MOVWF    GPIO
  ;第一个正弦波。
    NOP
    NOP
    CALL    DELAY500US  ;防抖动
    BTFSC    GPIO,2
    GOTO    $-3
    NOP
    CALL    DELAY500US  ;防抖动
    BTFSS    GPIO,2
    GOTO    $-3
  ;第二个正弦波。 
    NOP
    CALL    DELAY500US  ;防抖动
    BTFSC    GPIO,2
    GOTO    $-3
    NOP
    CALL    DELAY500US  ;防抖动
    BTFSS    GPIO,2
    GOTO    $-3
  ;检测正弦波的下降沿。 
    CALL    DELAY500US  ;防抖动
    NOP
    CALL    DELAY50US  ;防抖动
    BTFSC    GPIO,2
    GOTO    $-3
LOOP    
    BSF    GPIO,0    
    BCF    GPIO,1 
    GOTO    LOOP    
;===============================================================================================
;====================== DELAY 50us@4MHz ========================;子程序
DELAY50US                            ;
    MOVLW    D'1'                        ;
    MOVWF    DL1                        ;
DEL2                                ;

    MOVLW    D'16'                        ;
    MOVWF    DL2                        ;
DEL1                                ;
    DECFSZ    DL2,F                        ;
    GOTO    DEL1                        ;
    DECFSZ    DL1,F                        ;
    GOTO    DEL2                        ;
    RETLW 0                            ;
;====================== DELAY 500us@4MHz ========================;
DELAY500US                            ;
    MOVLW    D'5'                        ;
    MOVWF    DL1                        ;
DELAY2                                ;

    MOVLW    D'32'                        ;
    MOVWF    DL2                        ;
DELAY1                                ;
    DECFSZ    DL2,F                        ;
    GOTO    DELAY1                        ;
    DECFSZ    DL1,F                        ;
    GOTO    DELAY2                        ;
    RETLW 0                            ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    END                    
            
沙发
兰天白云| | 2008-8-8 17:13 | 只看该作者

没精力看,但提醒你注意电平检测端口

使用特权

评论回复
板凳
yewuyi| | 2008-8-8 17:16 | 只看该作者

看到这个就害怕。。。

;====================== DELAY 500us@4MHz ========================;
DELAY500US                            ;
    MOVLW    D'5'                        ;
    MOVWF    DL1                        ;
DELAY2                                ;

    MOVLW    D'32'                        ;
    MOVWF    DL2                        ;
DELAY1                                ;
    DECFSZ    DL2,F                        ;
    GOTO    DELAY1                        ;
    DECFSZ    DL1,F                        ;
    GOTO    DELAY2                        ;
    RETLW 0                            ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    END                    

使用特权

评论回复
地板
xieyuanbin| | 2008-8-9 07:48 | 只看该作者

估计是WDT没关

使用特权

评论回复
5
win|  楼主 | 2008-8-12 08:24 | 只看该作者

WDT已经关了

   __CONFIG   _CP_ON & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

win

6

主题

10

帖子

1

粉丝